Code Duplication    Length = 1762-1764 lines in 4 locations

src/DataDownload.php 1 location

@@ 16-1779 (lines=1764) @@
13
 * @see http://schema.org/DataDownload
14
 *
15
 */
16
class DataDownload extends BaseType implements DataDownloadContract, CreativeWorkContract, MediaObjectContract, 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
     * A NewsArticle associated with the Media Object.
226
     *
227
     * @param \Spatie\SchemaOrg\Contracts\NewsArticleContract|\Spatie\SchemaOrg\Contracts\NewsArticleContract[] $associatedArticle
228
     *
229
     * @return static
230
     *
231
     * @see http://schema.org/associatedArticle
232
     */
233
    public function associatedArticle($associatedArticle)
234
    {
235
        return $this->setProperty('associatedArticle', $associatedArticle);
236
    }
237
238
    /**
239
     * A media object that encodes this CreativeWork. This property is a synonym
240
     * for encoding.
241
     *
242
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $associatedMedia
243
     *
244
     * @return static
245
     *
246
     * @see http://schema.org/associatedMedia
247
     */
248
    public function associatedMedia($associatedMedia)
249
    {
250
        return $this->setProperty('associatedMedia', $associatedMedia);
251
    }
252
253
    /**
254
     * An intended audience, i.e. a group for whom something was created.
255
     *
256
     * @param \Spatie\SchemaOrg\Contracts\AudienceContract|\Spatie\SchemaOrg\Contracts\AudienceContract[] $audience
257
     *
258
     * @return static
259
     *
260
     * @see http://schema.org/audience
261
     */
262
    public function audience($audience)
263
    {
264
        return $this->setProperty('audience', $audience);
265
    }
266
267
    /**
268
     * An embedded audio object.
269
     *
270
     * @param \Spatie\SchemaOrg\Contracts\AudioObjectContract|\Spatie\SchemaOrg\Contracts\AudioObjectContract[]|\Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[] $audio
271
     *
272
     * @return static
273
     *
274
     * @see http://schema.org/audio
275
     */
276
    public function audio($audio)
277
    {
278
        return $this->setProperty('audio', $audio);
279
    }
280
281
    /**
282
     * The author of this content or rating. Please note that author is special
283
     * in that HTML 5 provides a special mechanism for indicating authorship via
284
     * the rel tag. That is equivalent to this and may be used interchangeably.
285
     *
286
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $author
287
     *
288
     * @return static
289
     *
290
     * @see http://schema.org/author
291
     */
292
    public function author($author)
293
    {
294
        return $this->setProperty('author', $author);
295
    }
296
297
    /**
298
     * An award won by or for this item.
299
     *
300
     * @param string|string[] $award
301
     *
302
     * @return static
303
     *
304
     * @see http://schema.org/award
305
     */
306
    public function award($award)
307
    {
308
        return $this->setProperty('award', $award);
309
    }
310
311
    /**
312
     * Awards won by or for this item.
313
     *
314
     * @param string|string[] $awards
315
     *
316
     * @return static
317
     *
318
     * @see http://schema.org/awards
319
     */
320
    public function awards($awards)
321
    {
322
        return $this->setProperty('awards', $awards);
323
    }
324
325
    /**
326
     * The bitrate of the media object.
327
     *
328
     * @param string|string[] $bitrate
329
     *
330
     * @return static
331
     *
332
     * @see http://schema.org/bitrate
333
     */
334
    public function bitrate($bitrate)
335
    {
336
        return $this->setProperty('bitrate', $bitrate);
337
    }
338
339
    /**
340
     * Fictional person connected with a creative work.
341
     *
342
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $character
343
     *
344
     * @return static
345
     *
346
     * @see http://schema.org/character
347
     */
348
    public function character($character)
349
    {
350
        return $this->setProperty('character', $character);
351
    }
352
353
    /**
354
     * A citation or reference to another creative work, such as another
355
     * publication, web page, scholarly article, etc.
356
     *
357
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $citation
358
     *
359
     * @return static
360
     *
361
     * @see http://schema.org/citation
362
     */
363
    public function citation($citation)
364
    {
365
        return $this->setProperty('citation', $citation);
366
    }
367
368
    /**
369
     * Comments, typically from users.
370
     *
371
     * @param \Spatie\SchemaOrg\Contracts\CommentContract|\Spatie\SchemaOrg\Contracts\CommentContract[] $comment
372
     *
373
     * @return static
374
     *
375
     * @see http://schema.org/comment
376
     */
377
    public function comment($comment)
378
    {
379
        return $this->setProperty('comment', $comment);
380
    }
381
382
    /**
383
     * The number of comments this CreativeWork (e.g. Article, Question or
384
     * Answer) has received. This is most applicable to works published in Web
385
     * sites with commenting system; additional comments may exist elsewhere.
386
     *
387
     * @param int|int[] $commentCount
388
     *
389
     * @return static
390
     *
391
     * @see http://schema.org/commentCount
392
     */
393
    public function commentCount($commentCount)
394
    {
395
        return $this->setProperty('commentCount', $commentCount);
396
    }
397
398
    /**
399
     * The location depicted or described in the content. For example, the
400
     * location in a photograph or painting.
401
     *
402
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $contentLocation
403
     *
404
     * @return static
405
     *
406
     * @see http://schema.org/contentLocation
407
     */
408
    public function contentLocation($contentLocation)
409
    {
410
        return $this->setProperty('contentLocation', $contentLocation);
411
    }
412
413
    /**
414
     * Official rating of a piece of content—for example,'MPAA PG-13'.
415
     *
416
     * @param \Spatie\SchemaOrg\Contracts\RatingContract|\Spatie\SchemaOrg\Contracts\RatingContract[]|string|string[] $contentRating
417
     *
418
     * @return static
419
     *
420
     * @see http://schema.org/contentRating
421
     */
422
    public function contentRating($contentRating)
423
    {
424
        return $this->setProperty('contentRating', $contentRating);
425
    }
426
427
    /**
428
     * File size in (mega/kilo) bytes.
429
     *
430
     * @param string|string[] $contentSize
431
     *
432
     * @return static
433
     *
434
     * @see http://schema.org/contentSize
435
     */
436
    public function contentSize($contentSize)
437
    {
438
        return $this->setProperty('contentSize', $contentSize);
439
    }
440
441
    /**
442
     * Actual bytes of the media object, for example the image file or video
443
     * file.
444
     *
445
     * @param string|string[] $contentUrl
446
     *
447
     * @return static
448
     *
449
     * @see http://schema.org/contentUrl
450
     */
451
    public function contentUrl($contentUrl)
452
    {
453
        return $this->setProperty('contentUrl', $contentUrl);
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
     * The duration of the item (movie, audio recording, event, etc.) in [ISO
605
     * 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).
606
     *
607
     * @param \Spatie\SchemaOrg\Contracts\DurationContract|\Spatie\SchemaOrg\Contracts\DurationContract[] $duration
608
     *
609
     * @return static
610
     *
611
     * @see http://schema.org/duration
612
     */
613
    public function duration($duration)
614
    {
615
        return $this->setProperty('duration', $duration);
616
    }
617
618
    /**
619
     * Specifies the Person who edited the CreativeWork.
620
     *
621
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $editor
622
     *
623
     * @return static
624
     *
625
     * @see http://schema.org/editor
626
     */
627
    public function editor($editor)
628
    {
629
        return $this->setProperty('editor', $editor);
630
    }
631
632
    /**
633
     * An alignment to an established educational framework.
634
     *
635
     * @param \Spatie\SchemaOrg\Contracts\AlignmentObjectContract|\Spatie\SchemaOrg\Contracts\AlignmentObjectContract[] $educationalAlignment
636
     *
637
     * @return static
638
     *
639
     * @see http://schema.org/educationalAlignment
640
     */
641
    public function educationalAlignment($educationalAlignment)
642
    {
643
        return $this->setProperty('educationalAlignment', $educationalAlignment);
644
    }
645
646
    /**
647
     * The purpose of a work in the context of education; for example,
648
     * 'assignment', 'group work'.
649
     *
650
     * @param string|string[] $educationalUse
651
     *
652
     * @return static
653
     *
654
     * @see http://schema.org/educationalUse
655
     */
656
    public function educationalUse($educationalUse)
657
    {
658
        return $this->setProperty('educationalUse', $educationalUse);
659
    }
660
661
    /**
662
     * A URL pointing to a player for a specific video. In general, this is the
663
     * information in the ```src``` element of an ```embed``` tag and should not
664
     * be the same as the content of the ```loc``` tag.
665
     *
666
     * @param string|string[] $embedUrl
667
     *
668
     * @return static
669
     *
670
     * @see http://schema.org/embedUrl
671
     */
672
    public function embedUrl($embedUrl)
673
    {
674
        return $this->setProperty('embedUrl', $embedUrl);
675
    }
676
677
    /**
678
     * The CreativeWork encoded by this media object.
679
     *
680
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $encodesCreativeWork
681
     *
682
     * @return static
683
     *
684
     * @see http://schema.org/encodesCreativeWork
685
     */
686
    public function encodesCreativeWork($encodesCreativeWork)
687
    {
688
        return $this->setProperty('encodesCreativeWork', $encodesCreativeWork);
689
    }
690
691
    /**
692
     * A media object that encodes this CreativeWork. This property is a synonym
693
     * for associatedMedia.
694
     *
695
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encoding
696
     *
697
     * @return static
698
     *
699
     * @see http://schema.org/encoding
700
     */
701
    public function encoding($encoding)
702
    {
703
        return $this->setProperty('encoding', $encoding);
704
    }
705
706
    /**
707
     * Media type typically expressed using a MIME format (see [IANA
708
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml) and
709
     * [MDN
710
     * reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types))
711
     * e.g. application/zip for a SoftwareApplication binary, audio/mpeg for
712
     * .mp3 etc.).
713
     * 
714
     * In cases where a [[CreativeWork]] has several media type representations,
715
     * [[encoding]] can be used to indicate each [[MediaObject]] alongside
716
     * particular [[encodingFormat]] information.
717
     * 
718
     * Unregistered or niche encoding and file formats can be indicated instead
719
     * via the most appropriate URL, e.g. defining Web page or a
720
     * Wikipedia/Wikidata entry.
721
     *
722
     * @param string|string[] $encodingFormat
723
     *
724
     * @return static
725
     *
726
     * @see http://schema.org/encodingFormat
727
     */
728
    public function encodingFormat($encodingFormat)
729
    {
730
        return $this->setProperty('encodingFormat', $encodingFormat);
731
    }
732
733
    /**
734
     * A media object that encodes this CreativeWork.
735
     *
736
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encodings
737
     *
738
     * @return static
739
     *
740
     * @see http://schema.org/encodings
741
     */
742
    public function encodings($encodings)
743
    {
744
        return $this->setProperty('encodings', $encodings);
745
    }
746
747
    /**
748
     * The endTime of something. For a reserved event or service (e.g.
749
     * FoodEstablishmentReservation), the time that it is expected to end. For
750
     * actions that span a period of time, when the action was performed. e.g.
751
     * John wrote a book from January to *December*. For media, including audio
752
     * and video, it's the time offset of the end of a clip within a larger
753
     * file.
754
     * 
755
     * Note that Event uses startDate/endDate instead of startTime/endTime, even
756
     * when describing dates with times. This situation may be clarified in
757
     * future revisions.
758
     *
759
     * @param \DateTimeInterface|\DateTimeInterface[] $endTime
760
     *
761
     * @return static
762
     *
763
     * @see http://schema.org/endTime
764
     */
765
    public function endTime($endTime)
766
    {
767
        return $this->setProperty('endTime', $endTime);
768
    }
769
770
    /**
771
     * A creative work that this work is an
772
     * example/instance/realization/derivation of.
773
     *
774
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $exampleOfWork
775
     *
776
     * @return static
777
     *
778
     * @see http://schema.org/exampleOfWork
779
     */
780
    public function exampleOfWork($exampleOfWork)
781
    {
782
        return $this->setProperty('exampleOfWork', $exampleOfWork);
783
    }
784
785
    /**
786
     * Date the content expires and is no longer useful or available. For
787
     * example a [[VideoObject]] or [[NewsArticle]] whose availability or
788
     * relevance is time-limited, or a [[ClaimReview]] fact check whose
789
     * publisher wants to indicate that it may no longer be relevant (or helpful
790
     * to highlight) after some date.
791
     *
792
     * @param \DateTimeInterface|\DateTimeInterface[] $expires
793
     *
794
     * @return static
795
     *
796
     * @see http://schema.org/expires
797
     */
798
    public function expires($expires)
799
    {
800
        return $this->setProperty('expires', $expires);
801
    }
802
803
    /**
804
     * Media type, typically MIME format (see [IANA
805
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of
806
     * the content e.g. application/zip of a SoftwareApplication binary. In
807
     * cases where a CreativeWork has several media type representations,
808
     * 'encoding' can be used to indicate each MediaObject alongside particular
809
     * fileFormat information. Unregistered or niche file formats can be
810
     * indicated instead via the most appropriate URL, e.g. defining Web page or
811
     * a Wikipedia entry.
812
     *
813
     * @param string|string[] $fileFormat
814
     *
815
     * @return static
816
     *
817
     * @see http://schema.org/fileFormat
818
     */
819
    public function fileFormat($fileFormat)
820
    {
821
        return $this->setProperty('fileFormat', $fileFormat);
822
    }
823
824
    /**
825
     * A person or organization that supports (sponsors) something through some
826
     * kind of financial contribution.
827
     *
828
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $funder
829
     *
830
     * @return static
831
     *
832
     * @see http://schema.org/funder
833
     */
834
    public function funder($funder)
835
    {
836
        return $this->setProperty('funder', $funder);
837
    }
838
839
    /**
840
     * Genre of the creative work, broadcast channel or group.
841
     *
842
     * @param string|string[] $genre
843
     *
844
     * @return static
845
     *
846
     * @see http://schema.org/genre
847
     */
848
    public function genre($genre)
849
    {
850
        return $this->setProperty('genre', $genre);
851
    }
852
853
    /**
854
     * Indicates an item or CreativeWork that is part of this item, or
855
     * CreativeWork (in some sense).
856
     *
857
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $hasPart
858
     *
859
     * @return static
860
     *
861
     * @see http://schema.org/hasPart
862
     */
863
    public function hasPart($hasPart)
864
    {
865
        return $this->setProperty('hasPart', $hasPart);
866
    }
867
868
    /**
869
     * Headline of the article.
870
     *
871
     * @param string|string[] $headline
872
     *
873
     * @return static
874
     *
875
     * @see http://schema.org/headline
876
     */
877
    public function headline($headline)
878
    {
879
        return $this->setProperty('headline', $headline);
880
    }
881
882
    /**
883
     * The height of the item.
884
     *
885
     * @param \Spatie\SchemaOrg\Contracts\DistanceContract|\Spatie\SchemaOrg\Contracts\DistanceContract[]|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract[] $height
886
     *
887
     * @return static
888
     *
889
     * @see http://schema.org/height
890
     */
891
    public function height($height)
892
    {
893
        return $this->setProperty('height', $height);
894
    }
895
896
    /**
897
     * The identifier property represents any kind of identifier for any kind of
898
     * [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides
899
     * dedicated properties for representing many of these, either as textual
900
     * strings or as URL (URI) links. See [background
901
     * notes](/docs/datamodel.html#identifierBg) for more details.
902
     *
903
     * @param \Spatie\SchemaOrg\Contracts\PropertyValueContract|\Spatie\SchemaOrg\Contracts\PropertyValueContract[]|string|string[] $identifier
904
     *
905
     * @return static
906
     *
907
     * @see http://schema.org/identifier
908
     */
909
    public function identifier($identifier)
910
    {
911
        return $this->setProperty('identifier', $identifier);
912
    }
913
914
    /**
915
     * An image of the item. This can be a [[URL]] or a fully described
916
     * [[ImageObject]].
917
     *
918
     * @param \Spatie\SchemaOrg\Contracts\ImageObjectContract|\Spatie\SchemaOrg\Contracts\ImageObjectContract[]|string|string[] $image
919
     *
920
     * @return static
921
     *
922
     * @see http://schema.org/image
923
     */
924
    public function image($image)
925
    {
926
        return $this->setProperty('image', $image);
927
    }
928
929
    /**
930
     * The language of the content or performance or used in an action. Please
931
     * use one of the language codes from the [IETF BCP 47
932
     * standard](http://tools.ietf.org/html/bcp47). See also
933
     * [[availableLanguage]].
934
     *
935
     * @param \Spatie\SchemaOrg\Contracts\LanguageContract|\Spatie\SchemaOrg\Contracts\LanguageContract[]|string|string[] $inLanguage
936
     *
937
     * @return static
938
     *
939
     * @see http://schema.org/inLanguage
940
     */
941
    public function inLanguage($inLanguage)
942
    {
943
        return $this->setProperty('inLanguage', $inLanguage);
944
    }
945
946
    /**
947
     * The number of interactions for the CreativeWork using the WebSite or
948
     * SoftwareApplication. The most specific child type of InteractionCounter
949
     * should be used.
950
     *
951
     * @param \Spatie\SchemaOrg\Contracts\InteractionCounterContract|\Spatie\SchemaOrg\Contracts\InteractionCounterContract[] $interactionStatistic
952
     *
953
     * @return static
954
     *
955
     * @see http://schema.org/interactionStatistic
956
     */
957
    public function interactionStatistic($interactionStatistic)
958
    {
959
        return $this->setProperty('interactionStatistic', $interactionStatistic);
960
    }
961
962
    /**
963
     * The predominant mode of learning supported by the learning resource.
964
     * Acceptable values are 'active', 'expositive', or 'mixed'.
965
     *
966
     * @param string|string[] $interactivityType
967
     *
968
     * @return static
969
     *
970
     * @see http://schema.org/interactivityType
971
     */
972
    public function interactivityType($interactivityType)
973
    {
974
        return $this->setProperty('interactivityType', $interactivityType);
975
    }
976
977
    /**
978
     * A flag to signal that the item, event, or place is accessible for free.
979
     *
980
     * @param bool|bool[] $isAccessibleForFree
981
     *
982
     * @return static
983
     *
984
     * @see http://schema.org/isAccessibleForFree
985
     */
986
    public function isAccessibleForFree($isAccessibleForFree)
987
    {
988
        return $this->setProperty('isAccessibleForFree', $isAccessibleForFree);
989
    }
990
991
    /**
992
     * A resource from which this work is derived or from which it is a
993
     * modification or adaption.
994
     *
995
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOn
996
     *
997
     * @return static
998
     *
999
     * @see http://schema.org/isBasedOn
1000
     */
1001
    public function isBasedOn($isBasedOn)
1002
    {
1003
        return $this->setProperty('isBasedOn', $isBasedOn);
1004
    }
1005
1006
    /**
1007
     * A resource that was used in the creation of this resource. This term can
1008
     * be repeated for multiple sources. For example,
1009
     * http://example.com/great-multiplication-intro.html.
1010
     *
1011
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOnUrl
1012
     *
1013
     * @return static
1014
     *
1015
     * @see http://schema.org/isBasedOnUrl
1016
     */
1017
    public function isBasedOnUrl($isBasedOnUrl)
1018
    {
1019
        return $this->setProperty('isBasedOnUrl', $isBasedOnUrl);
1020
    }
1021
1022
    /**
1023
     * Indicates whether this content is family friendly.
1024
     *
1025
     * @param bool|bool[] $isFamilyFriendly
1026
     *
1027
     * @return static
1028
     *
1029
     * @see http://schema.org/isFamilyFriendly
1030
     */
1031
    public function isFamilyFriendly($isFamilyFriendly)
1032
    {
1033
        return $this->setProperty('isFamilyFriendly', $isFamilyFriendly);
1034
    }
1035
1036
    /**
1037
     * Indicates an item or CreativeWork that this item, or CreativeWork (in
1038
     * some sense), is part of.
1039
     *
1040
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $isPartOf
1041
     *
1042
     * @return static
1043
     *
1044
     * @see http://schema.org/isPartOf
1045
     */
1046
    public function isPartOf($isPartOf)
1047
    {
1048
        return $this->setProperty('isPartOf', $isPartOf);
1049
    }
1050
1051
    /**
1052
     * Keywords or tags used to describe this content. Multiple entries in a
1053
     * keywords list are typically delimited by commas.
1054
     *
1055
     * @param string|string[] $keywords
1056
     *
1057
     * @return static
1058
     *
1059
     * @see http://schema.org/keywords
1060
     */
1061
    public function keywords($keywords)
1062
    {
1063
        return $this->setProperty('keywords', $keywords);
1064
    }
1065
1066
    /**
1067
     * The predominant type or kind characterizing the learning resource. For
1068
     * example, 'presentation', 'handout'.
1069
     *
1070
     * @param string|string[] $learningResourceType
1071
     *
1072
     * @return static
1073
     *
1074
     * @see http://schema.org/learningResourceType
1075
     */
1076
    public function learningResourceType($learningResourceType)
1077
    {
1078
        return $this->setProperty('learningResourceType', $learningResourceType);
1079
    }
1080
1081
    /**
1082
     * A license document that applies to this content, typically indicated by
1083
     * URL.
1084
     *
1085
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $license
1086
     *
1087
     * @return static
1088
     *
1089
     * @see http://schema.org/license
1090
     */
1091
    public function license($license)
1092
    {
1093
        return $this->setProperty('license', $license);
1094
    }
1095
1096
    /**
1097
     * The location where the CreativeWork was created, which may not be the
1098
     * same as the location depicted in the CreativeWork.
1099
     *
1100
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $locationCreated
1101
     *
1102
     * @return static
1103
     *
1104
     * @see http://schema.org/locationCreated
1105
     */
1106
    public function locationCreated($locationCreated)
1107
    {
1108
        return $this->setProperty('locationCreated', $locationCreated);
1109
    }
1110
1111
    /**
1112
     * Indicates the primary entity described in some page or other
1113
     * CreativeWork.
1114
     *
1115
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mainEntity
1116
     *
1117
     * @return static
1118
     *
1119
     * @see http://schema.org/mainEntity
1120
     */
1121
    public function mainEntity($mainEntity)
1122
    {
1123
        return $this->setProperty('mainEntity', $mainEntity);
1124
    }
1125
1126
    /**
1127
     * Indicates a page (or other CreativeWork) for which this thing is the main
1128
     * entity being described. See [background
1129
     * notes](/docs/datamodel.html#mainEntityBackground) for details.
1130
     *
1131
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $mainEntityOfPage
1132
     *
1133
     * @return static
1134
     *
1135
     * @see http://schema.org/mainEntityOfPage
1136
     */
1137
    public function mainEntityOfPage($mainEntityOfPage)
1138
    {
1139
        return $this->setProperty('mainEntityOfPage', $mainEntityOfPage);
1140
    }
1141
1142
    /**
1143
     * A material that something is made from, e.g. leather, wool, cotton,
1144
     * paper.
1145
     *
1146
     * @param \Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $material
1147
     *
1148
     * @return static
1149
     *
1150
     * @see http://schema.org/material
1151
     */
1152
    public function material($material)
1153
    {
1154
        return $this->setProperty('material', $material);
1155
    }
1156
1157
    /**
1158
     * Indicates that the CreativeWork contains a reference to, but is not
1159
     * necessarily about a concept.
1160
     *
1161
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mentions
1162
     *
1163
     * @return static
1164
     *
1165
     * @see http://schema.org/mentions
1166
     */
1167
    public function mentions($mentions)
1168
    {
1169
        return $this->setProperty('mentions', $mentions);
1170
    }
1171
1172
    /**
1173
     * The name of the item.
1174
     *
1175
     * @param string|string[] $name
1176
     *
1177
     * @return static
1178
     *
1179
     * @see http://schema.org/name
1180
     */
1181
    public function name($name)
1182
    {
1183
        return $this->setProperty('name', $name);
1184
    }
1185
1186
    /**
1187
     * An offer to provide this item—for example, an offer to sell a
1188
     * product, rent the DVD of a movie, perform a service, or give away tickets
1189
     * to an event. Use [[businessFunction]] to indicate the kind of transaction
1190
     * offered, i.e. sell, lease, etc. This property can also be used to
1191
     * describe a [[Demand]]. While this property is listed as expected on a
1192
     * number of common types, it can be used in others. In that case, using a
1193
     * second type, such as Product or a subtype of Product, can clarify the
1194
     * nature of the offer.
1195
     *
1196
     * @param \Spatie\SchemaOrg\Contracts\DemandContract|\Spatie\SchemaOrg\Contracts\DemandContract[]|\Spatie\SchemaOrg\Contracts\OfferContract|\Spatie\SchemaOrg\Contracts\OfferContract[] $offers
1197
     *
1198
     * @return static
1199
     *
1200
     * @see http://schema.org/offers
1201
     */
1202
    public function offers($offers)
1203
    {
1204
        return $this->setProperty('offers', $offers);
1205
    }
1206
1207
    /**
1208
     * Player type required—for example, Flash or Silverlight.
1209
     *
1210
     * @param string|string[] $playerType
1211
     *
1212
     * @return static
1213
     *
1214
     * @see http://schema.org/playerType
1215
     */
1216
    public function playerType($playerType)
1217
    {
1218
        return $this->setProperty('playerType', $playerType);
1219
    }
1220
1221
    /**
1222
     * The position of an item in a series or sequence of items.
1223
     *
1224
     * @param int|int[]|string|string[] $position
1225
     *
1226
     * @return static
1227
     *
1228
     * @see http://schema.org/position
1229
     */
1230
    public function position($position)
1231
    {
1232
        return $this->setProperty('position', $position);
1233
    }
1234
1235
    /**
1236
     * Indicates a potential Action, which describes an idealized action in
1237
     * which this thing would play an 'object' role.
1238
     *
1239
     * @param \Spatie\SchemaOrg\Contracts\ActionContract|\Spatie\SchemaOrg\Contracts\ActionContract[] $potentialAction
1240
     *
1241
     * @return static
1242
     *
1243
     * @see http://schema.org/potentialAction
1244
     */
1245
    public function potentialAction($potentialAction)
1246
    {
1247
        return $this->setProperty('potentialAction', $potentialAction);
1248
    }
1249
1250
    /**
1251
     * The person or organization who produced the work (e.g. music album,
1252
     * movie, tv/radio series etc.).
1253
     *
1254
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $producer
1255
     *
1256
     * @return static
1257
     *
1258
     * @see http://schema.org/producer
1259
     */
1260
    public function producer($producer)
1261
    {
1262
        return $this->setProperty('producer', $producer);
1263
    }
1264
1265
    /**
1266
     * The production company or studio responsible for the item e.g. series,
1267
     * video game, episode etc.
1268
     *
1269
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $productionCompany
1270
     *
1271
     * @return static
1272
     *
1273
     * @see http://schema.org/productionCompany
1274
     */
1275
    public function productionCompany($productionCompany)
1276
    {
1277
        return $this->setProperty('productionCompany', $productionCompany);
1278
    }
1279
1280
    /**
1281
     * The service provider, service operator, or service performer; the goods
1282
     * producer. Another party (a seller) may offer those services or goods on
1283
     * behalf of the provider. A provider may also serve as the seller.
1284
     *
1285
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $provider
1286
     *
1287
     * @return static
1288
     *
1289
     * @see http://schema.org/provider
1290
     */
1291
    public function provider($provider)
1292
    {
1293
        return $this->setProperty('provider', $provider);
1294
    }
1295
1296
    /**
1297
     * A publication event associated with the item.
1298
     *
1299
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $publication
1300
     *
1301
     * @return static
1302
     *
1303
     * @see http://schema.org/publication
1304
     */
1305
    public function publication($publication)
1306
    {
1307
        return $this->setProperty('publication', $publication);
1308
    }
1309
1310
    /**
1311
     * The publisher of the creative work.
1312
     *
1313
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $publisher
1314
     *
1315
     * @return static
1316
     *
1317
     * @see http://schema.org/publisher
1318
     */
1319
    public function publisher($publisher)
1320
    {
1321
        return $this->setProperty('publisher', $publisher);
1322
    }
1323
1324
    /**
1325
     * The publishingPrinciples property indicates (typically via [[URL]]) a
1326
     * document describing the editorial principles of an [[Organization]] (or
1327
     * individual e.g. a [[Person]] writing a blog) that relate to their
1328
     * activities as a publisher, e.g. ethics or diversity policies. When
1329
     * applied to a [[CreativeWork]] (e.g. [[NewsArticle]]) the principles are
1330
     * those of the party primarily responsible for the creation of the
1331
     * [[CreativeWork]].
1332
     * 
1333
     * While such policies are most typically expressed in natural language,
1334
     * sometimes related information (e.g. indicating a [[funder]]) can be
1335
     * expressed using schema.org terminology.
1336
     *
1337
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $publishingPrinciples
1338
     *
1339
     * @return static
1340
     *
1341
     * @see http://schema.org/publishingPrinciples
1342
     */
1343
    public function publishingPrinciples($publishingPrinciples)
1344
    {
1345
        return $this->setProperty('publishingPrinciples', $publishingPrinciples);
1346
    }
1347
1348
    /**
1349
     * The Event where the CreativeWork was recorded. The CreativeWork may
1350
     * capture all or part of the event.
1351
     *
1352
     * @param \Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $recordedAt
1353
     *
1354
     * @return static
1355
     *
1356
     * @see http://schema.org/recordedAt
1357
     */
1358
    public function recordedAt($recordedAt)
1359
    {
1360
        return $this->setProperty('recordedAt', $recordedAt);
1361
    }
1362
1363
    /**
1364
     * The regions where the media is allowed. If not specified, then it's
1365
     * assumed to be allowed everywhere. Specify the countries in [ISO 3166
1366
     * format](http://en.wikipedia.org/wiki/ISO_3166).
1367
     *
1368
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $regionsAllowed
1369
     *
1370
     * @return static
1371
     *
1372
     * @see http://schema.org/regionsAllowed
1373
     */
1374
    public function regionsAllowed($regionsAllowed)
1375
    {
1376
        return $this->setProperty('regionsAllowed', $regionsAllowed);
1377
    }
1378
1379
    /**
1380
     * The place and time the release was issued, expressed as a
1381
     * PublicationEvent.
1382
     *
1383
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $releasedEvent
1384
     *
1385
     * @return static
1386
     *
1387
     * @see http://schema.org/releasedEvent
1388
     */
1389
    public function releasedEvent($releasedEvent)
1390
    {
1391
        return $this->setProperty('releasedEvent', $releasedEvent);
1392
    }
1393
1394
    /**
1395
     * Indicates if use of the media require a subscription  (either paid or
1396
     * free). Allowed values are ```true``` or ```false``` (note that an earlier
1397
     * version had 'yes', 'no').
1398
     *
1399
     * @param bool|bool[] $requiresSubscription
1400
     *
1401
     * @return static
1402
     *
1403
     * @see http://schema.org/requiresSubscription
1404
     */
1405
    public function requiresSubscription($requiresSubscription)
1406
    {
1407
        return $this->setProperty('requiresSubscription', $requiresSubscription);
1408
    }
1409
1410
    /**
1411
     * A review of the item.
1412
     *
1413
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $review
1414
     *
1415
     * @return static
1416
     *
1417
     * @see http://schema.org/review
1418
     */
1419
    public function review($review)
1420
    {
1421
        return $this->setProperty('review', $review);
1422
    }
1423
1424
    /**
1425
     * Review of the item.
1426
     *
1427
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $reviews
1428
     *
1429
     * @return static
1430
     *
1431
     * @see http://schema.org/reviews
1432
     */
1433
    public function reviews($reviews)
1434
    {
1435
        return $this->setProperty('reviews', $reviews);
1436
    }
1437
1438
    /**
1439
     * URL of a reference Web page that unambiguously indicates the item's
1440
     * identity. E.g. the URL of the item's Wikipedia page, Wikidata entry, or
1441
     * official website.
1442
     *
1443
     * @param string|string[] $sameAs
1444
     *
1445
     * @return static
1446
     *
1447
     * @see http://schema.org/sameAs
1448
     */
1449
    public function sameAs($sameAs)
1450
    {
1451
        return $this->setProperty('sameAs', $sameAs);
1452
    }
1453
1454
    /**
1455
     * Indicates (by URL or string) a particular version of a schema used in
1456
     * some CreativeWork. For example, a document could declare a schemaVersion
1457
     * using an URL such as http://schema.org/version/2.0/ if precise indication
1458
     * of schema version was required by some application.
1459
     *
1460
     * @param string|string[] $schemaVersion
1461
     *
1462
     * @return static
1463
     *
1464
     * @see http://schema.org/schemaVersion
1465
     */
1466
    public function schemaVersion($schemaVersion)
1467
    {
1468
        return $this->setProperty('schemaVersion', $schemaVersion);
1469
    }
1470
1471
    /**
1472
     * The Organization on whose behalf the creator was working.
1473
     *
1474
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $sourceOrganization
1475
     *
1476
     * @return static
1477
     *
1478
     * @see http://schema.org/sourceOrganization
1479
     */
1480
    public function sourceOrganization($sourceOrganization)
1481
    {
1482
        return $this->setProperty('sourceOrganization', $sourceOrganization);
1483
    }
1484
1485
    /**
1486
     * The "spatial" property can be used in cases when more specific properties
1487
     * (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are
1488
     * not known to be appropriate.
1489
     *
1490
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatial
1491
     *
1492
     * @return static
1493
     *
1494
     * @see http://schema.org/spatial
1495
     */
1496
    public function spatial($spatial)
1497
    {
1498
        return $this->setProperty('spatial', $spatial);
1499
    }
1500
1501
    /**
1502
     * The spatialCoverage of a CreativeWork indicates the place(s) which are
1503
     * the focus of the content. It is a subproperty of
1504
     *       contentLocation intended primarily for more technical and detailed
1505
     * materials. For example with a Dataset, it indicates
1506
     *       areas that the dataset describes: a dataset of New York weather
1507
     * would have spatialCoverage which was the place: the state of New York.
1508
     *
1509
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatialCoverage
1510
     *
1511
     * @return static
1512
     *
1513
     * @see http://schema.org/spatialCoverage
1514
     */
1515
    public function spatialCoverage($spatialCoverage)
1516
    {
1517
        return $this->setProperty('spatialCoverage', $spatialCoverage);
1518
    }
1519
1520
    /**
1521
     * A person or organization that supports a thing through a pledge, promise,
1522
     * or financial contribution. e.g. a sponsor of a Medical Study or a
1523
     * corporate sponsor of an event.
1524
     *
1525
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $sponsor
1526
     *
1527
     * @return static
1528
     *
1529
     * @see http://schema.org/sponsor
1530
     */
1531
    public function sponsor($sponsor)
1532
    {
1533
        return $this->setProperty('sponsor', $sponsor);
1534
    }
1535
1536
    /**
1537
     * The startTime of something. For a reserved event or service (e.g.
1538
     * FoodEstablishmentReservation), the time that it is expected to start. For
1539
     * actions that span a period of time, when the action was performed. e.g.
1540
     * John wrote a book from *January* to December. For media, including audio
1541
     * and video, it's the time offset of the start of a clip within a larger
1542
     * file.
1543
     * 
1544
     * Note that Event uses startDate/endDate instead of startTime/endTime, even
1545
     * when describing dates with times. This situation may be clarified in
1546
     * future revisions.
1547
     *
1548
     * @param \DateTimeInterface|\DateTimeInterface[] $startTime
1549
     *
1550
     * @return static
1551
     *
1552
     * @see http://schema.org/startTime
1553
     */
1554
    public function startTime($startTime)
1555
    {
1556
        return $this->setProperty('startTime', $startTime);
1557
    }
1558
1559
    /**
1560
     * A CreativeWork or Event about this Thing.
1561
     *
1562
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $subjectOf
1563
     *
1564
     * @return static
1565
     *
1566
     * @see http://schema.org/subjectOf
1567
     */
1568
    public function subjectOf($subjectOf)
1569
    {
1570
        return $this->setProperty('subjectOf', $subjectOf);
1571
    }
1572
1573
    /**
1574
     * The "temporal" property can be used in cases where more specific
1575
     * properties
1576
     * (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]],
1577
     * [[datePublished]]) are not known to be appropriate.
1578
     *
1579
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporal
1580
     *
1581
     * @return static
1582
     *
1583
     * @see http://schema.org/temporal
1584
     */
1585
    public function temporal($temporal)
1586
    {
1587
        return $this->setProperty('temporal', $temporal);
1588
    }
1589
1590
    /**
1591
     * The temporalCoverage of a CreativeWork indicates the period that the
1592
     * content applies to, i.e. that it describes, either as a DateTime or as a
1593
     * textual string indicating a time period in [ISO 8601 time interval
1594
     * format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In
1595
     *       the case of a Dataset it will typically indicate the relevant time
1596
     * period in a precise notation (e.g. for a 2011 census dataset, the year
1597
     * 2011 would be written "2011/2012"). Other forms of content e.g.
1598
     * ScholarlyArticle, Book, TVSeries or TVEpisode may indicate their
1599
     * temporalCoverage in broader terms - textually or via well-known URL.
1600
     *       Written works such as books may sometimes have precise temporal
1601
     * coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601
1602
     * interval format format via "1939/1945".
1603
     * 
1604
     * Open-ended date ranges can be written with ".." in place of the end date.
1605
     * For example, "2015-11/.." indicates a range beginning in November 2015
1606
     * and with no specified final date. This is tentative and might be updated
1607
     * in future when ISO 8601 is officially updated.
1608
     *
1609
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporalCoverage
1610
     *
1611
     * @return static
1612
     *
1613
     * @see http://schema.org/temporalCoverage
1614
     */
1615
    public function temporalCoverage($temporalCoverage)
1616
    {
1617
        return $this->setProperty('temporalCoverage', $temporalCoverage);
1618
    }
1619
1620
    /**
1621
     * The textual content of this CreativeWork.
1622
     *
1623
     * @param string|string[] $text
1624
     *
1625
     * @return static
1626
     *
1627
     * @see http://schema.org/text
1628
     */
1629
    public function text($text)
1630
    {
1631
        return $this->setProperty('text', $text);
1632
    }
1633
1634
    /**
1635
     * A thumbnail image relevant to the Thing.
1636
     *
1637
     * @param string|string[] $thumbnailUrl
1638
     *
1639
     * @return static
1640
     *
1641
     * @see http://schema.org/thumbnailUrl
1642
     */
1643
    public function thumbnailUrl($thumbnailUrl)
1644
    {
1645
        return $this->setProperty('thumbnailUrl', $thumbnailUrl);
1646
    }
1647
1648
    /**
1649
     * Approximate or typical time it takes to work with or through this
1650
     * learning resource for the typical intended target audience, e.g. 'PT30M',
1651
     * 'PT1H25M'.
1652
     *
1653
     * @param \Spatie\SchemaOrg\Contracts\DurationContract|\Spatie\SchemaOrg\Contracts\DurationContract[] $timeRequired
1654
     *
1655
     * @return static
1656
     *
1657
     * @see http://schema.org/timeRequired
1658
     */
1659
    public function timeRequired($timeRequired)
1660
    {
1661
        return $this->setProperty('timeRequired', $timeRequired);
1662
    }
1663
1664
    /**
1665
     * Organization or person who adapts a creative work to different languages,
1666
     * regional differences and technical requirements of a target market, or
1667
     * that translates during some event.
1668
     *
1669
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $translator
1670
     *
1671
     * @return static
1672
     *
1673
     * @see http://schema.org/translator
1674
     */
1675
    public function translator($translator)
1676
    {
1677
        return $this->setProperty('translator', $translator);
1678
    }
1679
1680
    /**
1681
     * The typical expected age range, e.g. '7-9', '11-'.
1682
     *
1683
     * @param string|string[] $typicalAgeRange
1684
     *
1685
     * @return static
1686
     *
1687
     * @see http://schema.org/typicalAgeRange
1688
     */
1689
    public function typicalAgeRange($typicalAgeRange)
1690
    {
1691
        return $this->setProperty('typicalAgeRange', $typicalAgeRange);
1692
    }
1693
1694
    /**
1695
     * Date when this media object was uploaded to this site.
1696
     *
1697
     * @param \DateTimeInterface|\DateTimeInterface[] $uploadDate
1698
     *
1699
     * @return static
1700
     *
1701
     * @see http://schema.org/uploadDate
1702
     */
1703
    public function uploadDate($uploadDate)
1704
    {
1705
        return $this->setProperty('uploadDate', $uploadDate);
1706
    }
1707
1708
    /**
1709
     * URL of the item.
1710
     *
1711
     * @param string|string[] $url
1712
     *
1713
     * @return static
1714
     *
1715
     * @see http://schema.org/url
1716
     */
1717
    public function url($url)
1718
    {
1719
        return $this->setProperty('url', $url);
1720
    }
1721
1722
    /**
1723
     * The version of the CreativeWork embodied by a specified resource.
1724
     *
1725
     * @param float|float[]|int|int[]|string|string[] $version
1726
     *
1727
     * @return static
1728
     *
1729
     * @see http://schema.org/version
1730
     */
1731
    public function version($version)
1732
    {
1733
        return $this->setProperty('version', $version);
1734
    }
1735
1736
    /**
1737
     * An embedded video object.
1738
     *
1739
     * @param \Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[]|\Spatie\SchemaOrg\Contracts\VideoObjectContract|\Spatie\SchemaOrg\Contracts\VideoObjectContract[] $video
1740
     *
1741
     * @return static
1742
     *
1743
     * @see http://schema.org/video
1744
     */
1745
    public function video($video)
1746
    {
1747
        return $this->setProperty('video', $video);
1748
    }
1749
1750
    /**
1751
     * The width of the item.
1752
     *
1753
     * @param \Spatie\SchemaOrg\Contracts\DistanceContract|\Spatie\SchemaOrg\Contracts\DistanceContract[]|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract[] $width
1754
     *
1755
     * @return static
1756
     *
1757
     * @see http://schema.org/width
1758
     */
1759
    public function width($width)
1760
    {
1761
        return $this->setProperty('width', $width);
1762
    }
1763
1764
    /**
1765
     * Example/instance/realization/derivation of the concept of this creative
1766
     * work. eg. The paperback edition, first edition, or eBook.
1767
     *
1768
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $workExample
1769
     *
1770
     * @return static
1771
     *
1772
     * @see http://schema.org/workExample
1773
     */
1774
    public function workExample($workExample)
1775
    {
1776
        return $this->setProperty('workExample', $workExample);
1777
    }
1778
1779
}
1780

src/MediaObject.php 1 location

@@ 19-1782 (lines=1764) @@
16
 * @see http://schema.org/MediaObject
17
 *
18
 */
19
class MediaObject extends BaseType implements MediaObjectContract, CreativeWorkContract, 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 NewsArticle associated with the Media Object.
229
     *
230
     * @param \Spatie\SchemaOrg\Contracts\NewsArticleContract|\Spatie\SchemaOrg\Contracts\NewsArticleContract[] $associatedArticle
231
     *
232
     * @return static
233
     *
234
     * @see http://schema.org/associatedArticle
235
     */
236
    public function associatedArticle($associatedArticle)
237
    {
238
        return $this->setProperty('associatedArticle', $associatedArticle);
239
    }
240
241
    /**
242
     * A media object that encodes this CreativeWork. This property is a synonym
243
     * for encoding.
244
     *
245
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $associatedMedia
246
     *
247
     * @return static
248
     *
249
     * @see http://schema.org/associatedMedia
250
     */
251
    public function associatedMedia($associatedMedia)
252
    {
253
        return $this->setProperty('associatedMedia', $associatedMedia);
254
    }
255
256
    /**
257
     * An intended audience, i.e. a group for whom something was created.
258
     *
259
     * @param \Spatie\SchemaOrg\Contracts\AudienceContract|\Spatie\SchemaOrg\Contracts\AudienceContract[] $audience
260
     *
261
     * @return static
262
     *
263
     * @see http://schema.org/audience
264
     */
265
    public function audience($audience)
266
    {
267
        return $this->setProperty('audience', $audience);
268
    }
269
270
    /**
271
     * An embedded audio object.
272
     *
273
     * @param \Spatie\SchemaOrg\Contracts\AudioObjectContract|\Spatie\SchemaOrg\Contracts\AudioObjectContract[]|\Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[] $audio
274
     *
275
     * @return static
276
     *
277
     * @see http://schema.org/audio
278
     */
279
    public function audio($audio)
280
    {
281
        return $this->setProperty('audio', $audio);
282
    }
283
284
    /**
285
     * The author of this content or rating. Please note that author is special
286
     * in that HTML 5 provides a special mechanism for indicating authorship via
287
     * the rel tag. That is equivalent to this and may be used interchangeably.
288
     *
289
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $author
290
     *
291
     * @return static
292
     *
293
     * @see http://schema.org/author
294
     */
295
    public function author($author)
296
    {
297
        return $this->setProperty('author', $author);
298
    }
299
300
    /**
301
     * An award won by or for this item.
302
     *
303
     * @param string|string[] $award
304
     *
305
     * @return static
306
     *
307
     * @see http://schema.org/award
308
     */
309
    public function award($award)
310
    {
311
        return $this->setProperty('award', $award);
312
    }
313
314
    /**
315
     * Awards won by or for this item.
316
     *
317
     * @param string|string[] $awards
318
     *
319
     * @return static
320
     *
321
     * @see http://schema.org/awards
322
     */
323
    public function awards($awards)
324
    {
325
        return $this->setProperty('awards', $awards);
326
    }
327
328
    /**
329
     * The bitrate of the media object.
330
     *
331
     * @param string|string[] $bitrate
332
     *
333
     * @return static
334
     *
335
     * @see http://schema.org/bitrate
336
     */
337
    public function bitrate($bitrate)
338
    {
339
        return $this->setProperty('bitrate', $bitrate);
340
    }
341
342
    /**
343
     * Fictional person connected with a creative work.
344
     *
345
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $character
346
     *
347
     * @return static
348
     *
349
     * @see http://schema.org/character
350
     */
351
    public function character($character)
352
    {
353
        return $this->setProperty('character', $character);
354
    }
355
356
    /**
357
     * A citation or reference to another creative work, such as another
358
     * publication, web page, scholarly article, etc.
359
     *
360
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $citation
361
     *
362
     * @return static
363
     *
364
     * @see http://schema.org/citation
365
     */
366
    public function citation($citation)
367
    {
368
        return $this->setProperty('citation', $citation);
369
    }
370
371
    /**
372
     * Comments, typically from users.
373
     *
374
     * @param \Spatie\SchemaOrg\Contracts\CommentContract|\Spatie\SchemaOrg\Contracts\CommentContract[] $comment
375
     *
376
     * @return static
377
     *
378
     * @see http://schema.org/comment
379
     */
380
    public function comment($comment)
381
    {
382
        return $this->setProperty('comment', $comment);
383
    }
384
385
    /**
386
     * The number of comments this CreativeWork (e.g. Article, Question or
387
     * Answer) has received. This is most applicable to works published in Web
388
     * sites with commenting system; additional comments may exist elsewhere.
389
     *
390
     * @param int|int[] $commentCount
391
     *
392
     * @return static
393
     *
394
     * @see http://schema.org/commentCount
395
     */
396
    public function commentCount($commentCount)
397
    {
398
        return $this->setProperty('commentCount', $commentCount);
399
    }
400
401
    /**
402
     * The location depicted or described in the content. For example, the
403
     * location in a photograph or painting.
404
     *
405
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $contentLocation
406
     *
407
     * @return static
408
     *
409
     * @see http://schema.org/contentLocation
410
     */
411
    public function contentLocation($contentLocation)
412
    {
413
        return $this->setProperty('contentLocation', $contentLocation);
414
    }
415
416
    /**
417
     * Official rating of a piece of content—for example,'MPAA PG-13'.
418
     *
419
     * @param \Spatie\SchemaOrg\Contracts\RatingContract|\Spatie\SchemaOrg\Contracts\RatingContract[]|string|string[] $contentRating
420
     *
421
     * @return static
422
     *
423
     * @see http://schema.org/contentRating
424
     */
425
    public function contentRating($contentRating)
426
    {
427
        return $this->setProperty('contentRating', $contentRating);
428
    }
429
430
    /**
431
     * File size in (mega/kilo) bytes.
432
     *
433
     * @param string|string[] $contentSize
434
     *
435
     * @return static
436
     *
437
     * @see http://schema.org/contentSize
438
     */
439
    public function contentSize($contentSize)
440
    {
441
        return $this->setProperty('contentSize', $contentSize);
442
    }
443
444
    /**
445
     * Actual bytes of the media object, for example the image file or video
446
     * file.
447
     *
448
     * @param string|string[] $contentUrl
449
     *
450
     * @return static
451
     *
452
     * @see http://schema.org/contentUrl
453
     */
454
    public function contentUrl($contentUrl)
455
    {
456
        return $this->setProperty('contentUrl', $contentUrl);
457
    }
458
459
    /**
460
     * A secondary contributor to the CreativeWork or Event.
461
     *
462
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $contributor
463
     *
464
     * @return static
465
     *
466
     * @see http://schema.org/contributor
467
     */
468
    public function contributor($contributor)
469
    {
470
        return $this->setProperty('contributor', $contributor);
471
    }
472
473
    /**
474
     * The party holding the legal copyright to the CreativeWork.
475
     *
476
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $copyrightHolder
477
     *
478
     * @return static
479
     *
480
     * @see http://schema.org/copyrightHolder
481
     */
482
    public function copyrightHolder($copyrightHolder)
483
    {
484
        return $this->setProperty('copyrightHolder', $copyrightHolder);
485
    }
486
487
    /**
488
     * The year during which the claimed copyright for the CreativeWork was
489
     * first asserted.
490
     *
491
     * @param float|float[]|int|int[] $copyrightYear
492
     *
493
     * @return static
494
     *
495
     * @see http://schema.org/copyrightYear
496
     */
497
    public function copyrightYear($copyrightYear)
498
    {
499
        return $this->setProperty('copyrightYear', $copyrightYear);
500
    }
501
502
    /**
503
     * The creator/author of this CreativeWork. This is the same as the Author
504
     * property for CreativeWork.
505
     *
506
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $creator
507
     *
508
     * @return static
509
     *
510
     * @see http://schema.org/creator
511
     */
512
    public function creator($creator)
513
    {
514
        return $this->setProperty('creator', $creator);
515
    }
516
517
    /**
518
     * The date on which the CreativeWork was created or the item was added to a
519
     * DataFeed.
520
     *
521
     * @param \DateTimeInterface|\DateTimeInterface[] $dateCreated
522
     *
523
     * @return static
524
     *
525
     * @see http://schema.org/dateCreated
526
     */
527
    public function dateCreated($dateCreated)
528
    {
529
        return $this->setProperty('dateCreated', $dateCreated);
530
    }
531
532
    /**
533
     * The date on which the CreativeWork was most recently modified or when the
534
     * item's entry was modified within a DataFeed.
535
     *
536
     * @param \DateTimeInterface|\DateTimeInterface[] $dateModified
537
     *
538
     * @return static
539
     *
540
     * @see http://schema.org/dateModified
541
     */
542
    public function dateModified($dateModified)
543
    {
544
        return $this->setProperty('dateModified', $dateModified);
545
    }
546
547
    /**
548
     * Date of first broadcast/publication.
549
     *
550
     * @param \DateTimeInterface|\DateTimeInterface[] $datePublished
551
     *
552
     * @return static
553
     *
554
     * @see http://schema.org/datePublished
555
     */
556
    public function datePublished($datePublished)
557
    {
558
        return $this->setProperty('datePublished', $datePublished);
559
    }
560
561
    /**
562
     * A description of the item.
563
     *
564
     * @param string|string[] $description
565
     *
566
     * @return static
567
     *
568
     * @see http://schema.org/description
569
     */
570
    public function description($description)
571
    {
572
        return $this->setProperty('description', $description);
573
    }
574
575
    /**
576
     * A sub property of description. A short description of the item used to
577
     * disambiguate from other, similar items. Information from other properties
578
     * (in particular, name) may be necessary for the description to be useful
579
     * for disambiguation.
580
     *
581
     * @param string|string[] $disambiguatingDescription
582
     *
583
     * @return static
584
     *
585
     * @see http://schema.org/disambiguatingDescription
586
     */
587
    public function disambiguatingDescription($disambiguatingDescription)
588
    {
589
        return $this->setProperty('disambiguatingDescription', $disambiguatingDescription);
590
    }
591
592
    /**
593
     * A link to the page containing the comments of the CreativeWork.
594
     *
595
     * @param string|string[] $discussionUrl
596
     *
597
     * @return static
598
     *
599
     * @see http://schema.org/discussionUrl
600
     */
601
    public function discussionUrl($discussionUrl)
602
    {
603
        return $this->setProperty('discussionUrl', $discussionUrl);
604
    }
605
606
    /**
607
     * The duration of the item (movie, audio recording, event, etc.) in [ISO
608
     * 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).
609
     *
610
     * @param \Spatie\SchemaOrg\Contracts\DurationContract|\Spatie\SchemaOrg\Contracts\DurationContract[] $duration
611
     *
612
     * @return static
613
     *
614
     * @see http://schema.org/duration
615
     */
616
    public function duration($duration)
617
    {
618
        return $this->setProperty('duration', $duration);
619
    }
620
621
    /**
622
     * Specifies the Person who edited the CreativeWork.
623
     *
624
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $editor
625
     *
626
     * @return static
627
     *
628
     * @see http://schema.org/editor
629
     */
630
    public function editor($editor)
631
    {
632
        return $this->setProperty('editor', $editor);
633
    }
634
635
    /**
636
     * An alignment to an established educational framework.
637
     *
638
     * @param \Spatie\SchemaOrg\Contracts\AlignmentObjectContract|\Spatie\SchemaOrg\Contracts\AlignmentObjectContract[] $educationalAlignment
639
     *
640
     * @return static
641
     *
642
     * @see http://schema.org/educationalAlignment
643
     */
644
    public function educationalAlignment($educationalAlignment)
645
    {
646
        return $this->setProperty('educationalAlignment', $educationalAlignment);
647
    }
648
649
    /**
650
     * The purpose of a work in the context of education; for example,
651
     * 'assignment', 'group work'.
652
     *
653
     * @param string|string[] $educationalUse
654
     *
655
     * @return static
656
     *
657
     * @see http://schema.org/educationalUse
658
     */
659
    public function educationalUse($educationalUse)
660
    {
661
        return $this->setProperty('educationalUse', $educationalUse);
662
    }
663
664
    /**
665
     * A URL pointing to a player for a specific video. In general, this is the
666
     * information in the ```src``` element of an ```embed``` tag and should not
667
     * be the same as the content of the ```loc``` tag.
668
     *
669
     * @param string|string[] $embedUrl
670
     *
671
     * @return static
672
     *
673
     * @see http://schema.org/embedUrl
674
     */
675
    public function embedUrl($embedUrl)
676
    {
677
        return $this->setProperty('embedUrl', $embedUrl);
678
    }
679
680
    /**
681
     * The CreativeWork encoded by this media object.
682
     *
683
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $encodesCreativeWork
684
     *
685
     * @return static
686
     *
687
     * @see http://schema.org/encodesCreativeWork
688
     */
689
    public function encodesCreativeWork($encodesCreativeWork)
690
    {
691
        return $this->setProperty('encodesCreativeWork', $encodesCreativeWork);
692
    }
693
694
    /**
695
     * A media object that encodes this CreativeWork. This property is a synonym
696
     * for associatedMedia.
697
     *
698
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encoding
699
     *
700
     * @return static
701
     *
702
     * @see http://schema.org/encoding
703
     */
704
    public function encoding($encoding)
705
    {
706
        return $this->setProperty('encoding', $encoding);
707
    }
708
709
    /**
710
     * Media type typically expressed using a MIME format (see [IANA
711
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml) and
712
     * [MDN
713
     * reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types))
714
     * e.g. application/zip for a SoftwareApplication binary, audio/mpeg for
715
     * .mp3 etc.).
716
     * 
717
     * In cases where a [[CreativeWork]] has several media type representations,
718
     * [[encoding]] can be used to indicate each [[MediaObject]] alongside
719
     * particular [[encodingFormat]] information.
720
     * 
721
     * Unregistered or niche encoding and file formats can be indicated instead
722
     * via the most appropriate URL, e.g. defining Web page or a
723
     * Wikipedia/Wikidata entry.
724
     *
725
     * @param string|string[] $encodingFormat
726
     *
727
     * @return static
728
     *
729
     * @see http://schema.org/encodingFormat
730
     */
731
    public function encodingFormat($encodingFormat)
732
    {
733
        return $this->setProperty('encodingFormat', $encodingFormat);
734
    }
735
736
    /**
737
     * A media object that encodes this CreativeWork.
738
     *
739
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encodings
740
     *
741
     * @return static
742
     *
743
     * @see http://schema.org/encodings
744
     */
745
    public function encodings($encodings)
746
    {
747
        return $this->setProperty('encodings', $encodings);
748
    }
749
750
    /**
751
     * The endTime of something. For a reserved event or service (e.g.
752
     * FoodEstablishmentReservation), the time that it is expected to end. For
753
     * actions that span a period of time, when the action was performed. e.g.
754
     * John wrote a book from January to *December*. For media, including audio
755
     * and video, it's the time offset of the end of a clip within a larger
756
     * file.
757
     * 
758
     * Note that Event uses startDate/endDate instead of startTime/endTime, even
759
     * when describing dates with times. This situation may be clarified in
760
     * future revisions.
761
     *
762
     * @param \DateTimeInterface|\DateTimeInterface[] $endTime
763
     *
764
     * @return static
765
     *
766
     * @see http://schema.org/endTime
767
     */
768
    public function endTime($endTime)
769
    {
770
        return $this->setProperty('endTime', $endTime);
771
    }
772
773
    /**
774
     * A creative work that this work is an
775
     * example/instance/realization/derivation of.
776
     *
777
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $exampleOfWork
778
     *
779
     * @return static
780
     *
781
     * @see http://schema.org/exampleOfWork
782
     */
783
    public function exampleOfWork($exampleOfWork)
784
    {
785
        return $this->setProperty('exampleOfWork', $exampleOfWork);
786
    }
787
788
    /**
789
     * Date the content expires and is no longer useful or available. For
790
     * example a [[VideoObject]] or [[NewsArticle]] whose availability or
791
     * relevance is time-limited, or a [[ClaimReview]] fact check whose
792
     * publisher wants to indicate that it may no longer be relevant (or helpful
793
     * to highlight) after some date.
794
     *
795
     * @param \DateTimeInterface|\DateTimeInterface[] $expires
796
     *
797
     * @return static
798
     *
799
     * @see http://schema.org/expires
800
     */
801
    public function expires($expires)
802
    {
803
        return $this->setProperty('expires', $expires);
804
    }
805
806
    /**
807
     * Media type, typically MIME format (see [IANA
808
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of
809
     * the content e.g. application/zip of a SoftwareApplication binary. In
810
     * cases where a CreativeWork has several media type representations,
811
     * 'encoding' can be used to indicate each MediaObject alongside particular
812
     * fileFormat information. Unregistered or niche file formats can be
813
     * indicated instead via the most appropriate URL, e.g. defining Web page or
814
     * a Wikipedia entry.
815
     *
816
     * @param string|string[] $fileFormat
817
     *
818
     * @return static
819
     *
820
     * @see http://schema.org/fileFormat
821
     */
822
    public function fileFormat($fileFormat)
823
    {
824
        return $this->setProperty('fileFormat', $fileFormat);
825
    }
826
827
    /**
828
     * A person or organization that supports (sponsors) something through some
829
     * kind of financial contribution.
830
     *
831
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $funder
832
     *
833
     * @return static
834
     *
835
     * @see http://schema.org/funder
836
     */
837
    public function funder($funder)
838
    {
839
        return $this->setProperty('funder', $funder);
840
    }
841
842
    /**
843
     * Genre of the creative work, broadcast channel or group.
844
     *
845
     * @param string|string[] $genre
846
     *
847
     * @return static
848
     *
849
     * @see http://schema.org/genre
850
     */
851
    public function genre($genre)
852
    {
853
        return $this->setProperty('genre', $genre);
854
    }
855
856
    /**
857
     * Indicates an item or CreativeWork that is part of this item, or
858
     * CreativeWork (in some sense).
859
     *
860
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $hasPart
861
     *
862
     * @return static
863
     *
864
     * @see http://schema.org/hasPart
865
     */
866
    public function hasPart($hasPart)
867
    {
868
        return $this->setProperty('hasPart', $hasPart);
869
    }
870
871
    /**
872
     * Headline of the article.
873
     *
874
     * @param string|string[] $headline
875
     *
876
     * @return static
877
     *
878
     * @see http://schema.org/headline
879
     */
880
    public function headline($headline)
881
    {
882
        return $this->setProperty('headline', $headline);
883
    }
884
885
    /**
886
     * The height of the item.
887
     *
888
     * @param \Spatie\SchemaOrg\Contracts\DistanceContract|\Spatie\SchemaOrg\Contracts\DistanceContract[]|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract[] $height
889
     *
890
     * @return static
891
     *
892
     * @see http://schema.org/height
893
     */
894
    public function height($height)
895
    {
896
        return $this->setProperty('height', $height);
897
    }
898
899
    /**
900
     * The identifier property represents any kind of identifier for any kind of
901
     * [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides
902
     * dedicated properties for representing many of these, either as textual
903
     * strings or as URL (URI) links. See [background
904
     * notes](/docs/datamodel.html#identifierBg) for more details.
905
     *
906
     * @param \Spatie\SchemaOrg\Contracts\PropertyValueContract|\Spatie\SchemaOrg\Contracts\PropertyValueContract[]|string|string[] $identifier
907
     *
908
     * @return static
909
     *
910
     * @see http://schema.org/identifier
911
     */
912
    public function identifier($identifier)
913
    {
914
        return $this->setProperty('identifier', $identifier);
915
    }
916
917
    /**
918
     * An image of the item. This can be a [[URL]] or a fully described
919
     * [[ImageObject]].
920
     *
921
     * @param \Spatie\SchemaOrg\Contracts\ImageObjectContract|\Spatie\SchemaOrg\Contracts\ImageObjectContract[]|string|string[] $image
922
     *
923
     * @return static
924
     *
925
     * @see http://schema.org/image
926
     */
927
    public function image($image)
928
    {
929
        return $this->setProperty('image', $image);
930
    }
931
932
    /**
933
     * The language of the content or performance or used in an action. Please
934
     * use one of the language codes from the [IETF BCP 47
935
     * standard](http://tools.ietf.org/html/bcp47). See also
936
     * [[availableLanguage]].
937
     *
938
     * @param \Spatie\SchemaOrg\Contracts\LanguageContract|\Spatie\SchemaOrg\Contracts\LanguageContract[]|string|string[] $inLanguage
939
     *
940
     * @return static
941
     *
942
     * @see http://schema.org/inLanguage
943
     */
944
    public function inLanguage($inLanguage)
945
    {
946
        return $this->setProperty('inLanguage', $inLanguage);
947
    }
948
949
    /**
950
     * The number of interactions for the CreativeWork using the WebSite or
951
     * SoftwareApplication. The most specific child type of InteractionCounter
952
     * should be used.
953
     *
954
     * @param \Spatie\SchemaOrg\Contracts\InteractionCounterContract|\Spatie\SchemaOrg\Contracts\InteractionCounterContract[] $interactionStatistic
955
     *
956
     * @return static
957
     *
958
     * @see http://schema.org/interactionStatistic
959
     */
960
    public function interactionStatistic($interactionStatistic)
961
    {
962
        return $this->setProperty('interactionStatistic', $interactionStatistic);
963
    }
964
965
    /**
966
     * The predominant mode of learning supported by the learning resource.
967
     * Acceptable values are 'active', 'expositive', or 'mixed'.
968
     *
969
     * @param string|string[] $interactivityType
970
     *
971
     * @return static
972
     *
973
     * @see http://schema.org/interactivityType
974
     */
975
    public function interactivityType($interactivityType)
976
    {
977
        return $this->setProperty('interactivityType', $interactivityType);
978
    }
979
980
    /**
981
     * A flag to signal that the item, event, or place is accessible for free.
982
     *
983
     * @param bool|bool[] $isAccessibleForFree
984
     *
985
     * @return static
986
     *
987
     * @see http://schema.org/isAccessibleForFree
988
     */
989
    public function isAccessibleForFree($isAccessibleForFree)
990
    {
991
        return $this->setProperty('isAccessibleForFree', $isAccessibleForFree);
992
    }
993
994
    /**
995
     * A resource from which this work is derived or from which it is a
996
     * modification or adaption.
997
     *
998
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOn
999
     *
1000
     * @return static
1001
     *
1002
     * @see http://schema.org/isBasedOn
1003
     */
1004
    public function isBasedOn($isBasedOn)
1005
    {
1006
        return $this->setProperty('isBasedOn', $isBasedOn);
1007
    }
1008
1009
    /**
1010
     * A resource that was used in the creation of this resource. This term can
1011
     * be repeated for multiple sources. For example,
1012
     * http://example.com/great-multiplication-intro.html.
1013
     *
1014
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOnUrl
1015
     *
1016
     * @return static
1017
     *
1018
     * @see http://schema.org/isBasedOnUrl
1019
     */
1020
    public function isBasedOnUrl($isBasedOnUrl)
1021
    {
1022
        return $this->setProperty('isBasedOnUrl', $isBasedOnUrl);
1023
    }
1024
1025
    /**
1026
     * Indicates whether this content is family friendly.
1027
     *
1028
     * @param bool|bool[] $isFamilyFriendly
1029
     *
1030
     * @return static
1031
     *
1032
     * @see http://schema.org/isFamilyFriendly
1033
     */
1034
    public function isFamilyFriendly($isFamilyFriendly)
1035
    {
1036
        return $this->setProperty('isFamilyFriendly', $isFamilyFriendly);
1037
    }
1038
1039
    /**
1040
     * Indicates an item or CreativeWork that this item, or CreativeWork (in
1041
     * some sense), is part of.
1042
     *
1043
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $isPartOf
1044
     *
1045
     * @return static
1046
     *
1047
     * @see http://schema.org/isPartOf
1048
     */
1049
    public function isPartOf($isPartOf)
1050
    {
1051
        return $this->setProperty('isPartOf', $isPartOf);
1052
    }
1053
1054
    /**
1055
     * Keywords or tags used to describe this content. Multiple entries in a
1056
     * keywords list are typically delimited by commas.
1057
     *
1058
     * @param string|string[] $keywords
1059
     *
1060
     * @return static
1061
     *
1062
     * @see http://schema.org/keywords
1063
     */
1064
    public function keywords($keywords)
1065
    {
1066
        return $this->setProperty('keywords', $keywords);
1067
    }
1068
1069
    /**
1070
     * The predominant type or kind characterizing the learning resource. For
1071
     * example, 'presentation', 'handout'.
1072
     *
1073
     * @param string|string[] $learningResourceType
1074
     *
1075
     * @return static
1076
     *
1077
     * @see http://schema.org/learningResourceType
1078
     */
1079
    public function learningResourceType($learningResourceType)
1080
    {
1081
        return $this->setProperty('learningResourceType', $learningResourceType);
1082
    }
1083
1084
    /**
1085
     * A license document that applies to this content, typically indicated by
1086
     * URL.
1087
     *
1088
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $license
1089
     *
1090
     * @return static
1091
     *
1092
     * @see http://schema.org/license
1093
     */
1094
    public function license($license)
1095
    {
1096
        return $this->setProperty('license', $license);
1097
    }
1098
1099
    /**
1100
     * The location where the CreativeWork was created, which may not be the
1101
     * same as the location depicted in the CreativeWork.
1102
     *
1103
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $locationCreated
1104
     *
1105
     * @return static
1106
     *
1107
     * @see http://schema.org/locationCreated
1108
     */
1109
    public function locationCreated($locationCreated)
1110
    {
1111
        return $this->setProperty('locationCreated', $locationCreated);
1112
    }
1113
1114
    /**
1115
     * Indicates the primary entity described in some page or other
1116
     * CreativeWork.
1117
     *
1118
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mainEntity
1119
     *
1120
     * @return static
1121
     *
1122
     * @see http://schema.org/mainEntity
1123
     */
1124
    public function mainEntity($mainEntity)
1125
    {
1126
        return $this->setProperty('mainEntity', $mainEntity);
1127
    }
1128
1129
    /**
1130
     * Indicates a page (or other CreativeWork) for which this thing is the main
1131
     * entity being described. See [background
1132
     * notes](/docs/datamodel.html#mainEntityBackground) for details.
1133
     *
1134
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $mainEntityOfPage
1135
     *
1136
     * @return static
1137
     *
1138
     * @see http://schema.org/mainEntityOfPage
1139
     */
1140
    public function mainEntityOfPage($mainEntityOfPage)
1141
    {
1142
        return $this->setProperty('mainEntityOfPage', $mainEntityOfPage);
1143
    }
1144
1145
    /**
1146
     * A material that something is made from, e.g. leather, wool, cotton,
1147
     * paper.
1148
     *
1149
     * @param \Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $material
1150
     *
1151
     * @return static
1152
     *
1153
     * @see http://schema.org/material
1154
     */
1155
    public function material($material)
1156
    {
1157
        return $this->setProperty('material', $material);
1158
    }
1159
1160
    /**
1161
     * Indicates that the CreativeWork contains a reference to, but is not
1162
     * necessarily about a concept.
1163
     *
1164
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mentions
1165
     *
1166
     * @return static
1167
     *
1168
     * @see http://schema.org/mentions
1169
     */
1170
    public function mentions($mentions)
1171
    {
1172
        return $this->setProperty('mentions', $mentions);
1173
    }
1174
1175
    /**
1176
     * The name of the item.
1177
     *
1178
     * @param string|string[] $name
1179
     *
1180
     * @return static
1181
     *
1182
     * @see http://schema.org/name
1183
     */
1184
    public function name($name)
1185
    {
1186
        return $this->setProperty('name', $name);
1187
    }
1188
1189
    /**
1190
     * An offer to provide this item—for example, an offer to sell a
1191
     * product, rent the DVD of a movie, perform a service, or give away tickets
1192
     * to an event. Use [[businessFunction]] to indicate the kind of transaction
1193
     * offered, i.e. sell, lease, etc. This property can also be used to
1194
     * describe a [[Demand]]. While this property is listed as expected on a
1195
     * number of common types, it can be used in others. In that case, using a
1196
     * second type, such as Product or a subtype of Product, can clarify the
1197
     * nature of the offer.
1198
     *
1199
     * @param \Spatie\SchemaOrg\Contracts\DemandContract|\Spatie\SchemaOrg\Contracts\DemandContract[]|\Spatie\SchemaOrg\Contracts\OfferContract|\Spatie\SchemaOrg\Contracts\OfferContract[] $offers
1200
     *
1201
     * @return static
1202
     *
1203
     * @see http://schema.org/offers
1204
     */
1205
    public function offers($offers)
1206
    {
1207
        return $this->setProperty('offers', $offers);
1208
    }
1209
1210
    /**
1211
     * Player type required—for example, Flash or Silverlight.
1212
     *
1213
     * @param string|string[] $playerType
1214
     *
1215
     * @return static
1216
     *
1217
     * @see http://schema.org/playerType
1218
     */
1219
    public function playerType($playerType)
1220
    {
1221
        return $this->setProperty('playerType', $playerType);
1222
    }
1223
1224
    /**
1225
     * The position of an item in a series or sequence of items.
1226
     *
1227
     * @param int|int[]|string|string[] $position
1228
     *
1229
     * @return static
1230
     *
1231
     * @see http://schema.org/position
1232
     */
1233
    public function position($position)
1234
    {
1235
        return $this->setProperty('position', $position);
1236
    }
1237
1238
    /**
1239
     * Indicates a potential Action, which describes an idealized action in
1240
     * which this thing would play an 'object' role.
1241
     *
1242
     * @param \Spatie\SchemaOrg\Contracts\ActionContract|\Spatie\SchemaOrg\Contracts\ActionContract[] $potentialAction
1243
     *
1244
     * @return static
1245
     *
1246
     * @see http://schema.org/potentialAction
1247
     */
1248
    public function potentialAction($potentialAction)
1249
    {
1250
        return $this->setProperty('potentialAction', $potentialAction);
1251
    }
1252
1253
    /**
1254
     * The person or organization who produced the work (e.g. music album,
1255
     * movie, tv/radio series etc.).
1256
     *
1257
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $producer
1258
     *
1259
     * @return static
1260
     *
1261
     * @see http://schema.org/producer
1262
     */
1263
    public function producer($producer)
1264
    {
1265
        return $this->setProperty('producer', $producer);
1266
    }
1267
1268
    /**
1269
     * The production company or studio responsible for the item e.g. series,
1270
     * video game, episode etc.
1271
     *
1272
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $productionCompany
1273
     *
1274
     * @return static
1275
     *
1276
     * @see http://schema.org/productionCompany
1277
     */
1278
    public function productionCompany($productionCompany)
1279
    {
1280
        return $this->setProperty('productionCompany', $productionCompany);
1281
    }
1282
1283
    /**
1284
     * The service provider, service operator, or service performer; the goods
1285
     * producer. Another party (a seller) may offer those services or goods on
1286
     * behalf of the provider. A provider may also serve as the seller.
1287
     *
1288
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $provider
1289
     *
1290
     * @return static
1291
     *
1292
     * @see http://schema.org/provider
1293
     */
1294
    public function provider($provider)
1295
    {
1296
        return $this->setProperty('provider', $provider);
1297
    }
1298
1299
    /**
1300
     * A publication event associated with the item.
1301
     *
1302
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $publication
1303
     *
1304
     * @return static
1305
     *
1306
     * @see http://schema.org/publication
1307
     */
1308
    public function publication($publication)
1309
    {
1310
        return $this->setProperty('publication', $publication);
1311
    }
1312
1313
    /**
1314
     * The publisher of the creative work.
1315
     *
1316
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $publisher
1317
     *
1318
     * @return static
1319
     *
1320
     * @see http://schema.org/publisher
1321
     */
1322
    public function publisher($publisher)
1323
    {
1324
        return $this->setProperty('publisher', $publisher);
1325
    }
1326
1327
    /**
1328
     * The publishingPrinciples property indicates (typically via [[URL]]) a
1329
     * document describing the editorial principles of an [[Organization]] (or
1330
     * individual e.g. a [[Person]] writing a blog) that relate to their
1331
     * activities as a publisher, e.g. ethics or diversity policies. When
1332
     * applied to a [[CreativeWork]] (e.g. [[NewsArticle]]) the principles are
1333
     * those of the party primarily responsible for the creation of the
1334
     * [[CreativeWork]].
1335
     * 
1336
     * While such policies are most typically expressed in natural language,
1337
     * sometimes related information (e.g. indicating a [[funder]]) can be
1338
     * expressed using schema.org terminology.
1339
     *
1340
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $publishingPrinciples
1341
     *
1342
     * @return static
1343
     *
1344
     * @see http://schema.org/publishingPrinciples
1345
     */
1346
    public function publishingPrinciples($publishingPrinciples)
1347
    {
1348
        return $this->setProperty('publishingPrinciples', $publishingPrinciples);
1349
    }
1350
1351
    /**
1352
     * The Event where the CreativeWork was recorded. The CreativeWork may
1353
     * capture all or part of the event.
1354
     *
1355
     * @param \Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $recordedAt
1356
     *
1357
     * @return static
1358
     *
1359
     * @see http://schema.org/recordedAt
1360
     */
1361
    public function recordedAt($recordedAt)
1362
    {
1363
        return $this->setProperty('recordedAt', $recordedAt);
1364
    }
1365
1366
    /**
1367
     * The regions where the media is allowed. If not specified, then it's
1368
     * assumed to be allowed everywhere. Specify the countries in [ISO 3166
1369
     * format](http://en.wikipedia.org/wiki/ISO_3166).
1370
     *
1371
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $regionsAllowed
1372
     *
1373
     * @return static
1374
     *
1375
     * @see http://schema.org/regionsAllowed
1376
     */
1377
    public function regionsAllowed($regionsAllowed)
1378
    {
1379
        return $this->setProperty('regionsAllowed', $regionsAllowed);
1380
    }
1381
1382
    /**
1383
     * The place and time the release was issued, expressed as a
1384
     * PublicationEvent.
1385
     *
1386
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $releasedEvent
1387
     *
1388
     * @return static
1389
     *
1390
     * @see http://schema.org/releasedEvent
1391
     */
1392
    public function releasedEvent($releasedEvent)
1393
    {
1394
        return $this->setProperty('releasedEvent', $releasedEvent);
1395
    }
1396
1397
    /**
1398
     * Indicates if use of the media require a subscription  (either paid or
1399
     * free). Allowed values are ```true``` or ```false``` (note that an earlier
1400
     * version had 'yes', 'no').
1401
     *
1402
     * @param bool|bool[] $requiresSubscription
1403
     *
1404
     * @return static
1405
     *
1406
     * @see http://schema.org/requiresSubscription
1407
     */
1408
    public function requiresSubscription($requiresSubscription)
1409
    {
1410
        return $this->setProperty('requiresSubscription', $requiresSubscription);
1411
    }
1412
1413
    /**
1414
     * A review of the item.
1415
     *
1416
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $review
1417
     *
1418
     * @return static
1419
     *
1420
     * @see http://schema.org/review
1421
     */
1422
    public function review($review)
1423
    {
1424
        return $this->setProperty('review', $review);
1425
    }
1426
1427
    /**
1428
     * Review of the item.
1429
     *
1430
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $reviews
1431
     *
1432
     * @return static
1433
     *
1434
     * @see http://schema.org/reviews
1435
     */
1436
    public function reviews($reviews)
1437
    {
1438
        return $this->setProperty('reviews', $reviews);
1439
    }
1440
1441
    /**
1442
     * URL of a reference Web page that unambiguously indicates the item's
1443
     * identity. E.g. the URL of the item's Wikipedia page, Wikidata entry, or
1444
     * official website.
1445
     *
1446
     * @param string|string[] $sameAs
1447
     *
1448
     * @return static
1449
     *
1450
     * @see http://schema.org/sameAs
1451
     */
1452
    public function sameAs($sameAs)
1453
    {
1454
        return $this->setProperty('sameAs', $sameAs);
1455
    }
1456
1457
    /**
1458
     * Indicates (by URL or string) a particular version of a schema used in
1459
     * some CreativeWork. For example, a document could declare a schemaVersion
1460
     * using an URL such as http://schema.org/version/2.0/ if precise indication
1461
     * of schema version was required by some application.
1462
     *
1463
     * @param string|string[] $schemaVersion
1464
     *
1465
     * @return static
1466
     *
1467
     * @see http://schema.org/schemaVersion
1468
     */
1469
    public function schemaVersion($schemaVersion)
1470
    {
1471
        return $this->setProperty('schemaVersion', $schemaVersion);
1472
    }
1473
1474
    /**
1475
     * The Organization on whose behalf the creator was working.
1476
     *
1477
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $sourceOrganization
1478
     *
1479
     * @return static
1480
     *
1481
     * @see http://schema.org/sourceOrganization
1482
     */
1483
    public function sourceOrganization($sourceOrganization)
1484
    {
1485
        return $this->setProperty('sourceOrganization', $sourceOrganization);
1486
    }
1487
1488
    /**
1489
     * The "spatial" property can be used in cases when more specific properties
1490
     * (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are
1491
     * not known to be appropriate.
1492
     *
1493
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatial
1494
     *
1495
     * @return static
1496
     *
1497
     * @see http://schema.org/spatial
1498
     */
1499
    public function spatial($spatial)
1500
    {
1501
        return $this->setProperty('spatial', $spatial);
1502
    }
1503
1504
    /**
1505
     * The spatialCoverage of a CreativeWork indicates the place(s) which are
1506
     * the focus of the content. It is a subproperty of
1507
     *       contentLocation intended primarily for more technical and detailed
1508
     * materials. For example with a Dataset, it indicates
1509
     *       areas that the dataset describes: a dataset of New York weather
1510
     * would have spatialCoverage which was the place: the state of New York.
1511
     *
1512
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatialCoverage
1513
     *
1514
     * @return static
1515
     *
1516
     * @see http://schema.org/spatialCoverage
1517
     */
1518
    public function spatialCoverage($spatialCoverage)
1519
    {
1520
        return $this->setProperty('spatialCoverage', $spatialCoverage);
1521
    }
1522
1523
    /**
1524
     * A person or organization that supports a thing through a pledge, promise,
1525
     * or financial contribution. e.g. a sponsor of a Medical Study or a
1526
     * corporate sponsor of an event.
1527
     *
1528
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $sponsor
1529
     *
1530
     * @return static
1531
     *
1532
     * @see http://schema.org/sponsor
1533
     */
1534
    public function sponsor($sponsor)
1535
    {
1536
        return $this->setProperty('sponsor', $sponsor);
1537
    }
1538
1539
    /**
1540
     * The startTime of something. For a reserved event or service (e.g.
1541
     * FoodEstablishmentReservation), the time that it is expected to start. For
1542
     * actions that span a period of time, when the action was performed. e.g.
1543
     * John wrote a book from *January* to December. For media, including audio
1544
     * and video, it's the time offset of the start of a clip within a larger
1545
     * file.
1546
     * 
1547
     * Note that Event uses startDate/endDate instead of startTime/endTime, even
1548
     * when describing dates with times. This situation may be clarified in
1549
     * future revisions.
1550
     *
1551
     * @param \DateTimeInterface|\DateTimeInterface[] $startTime
1552
     *
1553
     * @return static
1554
     *
1555
     * @see http://schema.org/startTime
1556
     */
1557
    public function startTime($startTime)
1558
    {
1559
        return $this->setProperty('startTime', $startTime);
1560
    }
1561
1562
    /**
1563
     * A CreativeWork or Event about this Thing.
1564
     *
1565
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $subjectOf
1566
     *
1567
     * @return static
1568
     *
1569
     * @see http://schema.org/subjectOf
1570
     */
1571
    public function subjectOf($subjectOf)
1572
    {
1573
        return $this->setProperty('subjectOf', $subjectOf);
1574
    }
1575
1576
    /**
1577
     * The "temporal" property can be used in cases where more specific
1578
     * properties
1579
     * (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]],
1580
     * [[datePublished]]) are not known to be appropriate.
1581
     *
1582
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporal
1583
     *
1584
     * @return static
1585
     *
1586
     * @see http://schema.org/temporal
1587
     */
1588
    public function temporal($temporal)
1589
    {
1590
        return $this->setProperty('temporal', $temporal);
1591
    }
1592
1593
    /**
1594
     * The temporalCoverage of a CreativeWork indicates the period that the
1595
     * content applies to, i.e. that it describes, either as a DateTime or as a
1596
     * textual string indicating a time period in [ISO 8601 time interval
1597
     * format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In
1598
     *       the case of a Dataset it will typically indicate the relevant time
1599
     * period in a precise notation (e.g. for a 2011 census dataset, the year
1600
     * 2011 would be written "2011/2012"). Other forms of content e.g.
1601
     * ScholarlyArticle, Book, TVSeries or TVEpisode may indicate their
1602
     * temporalCoverage in broader terms - textually or via well-known URL.
1603
     *       Written works such as books may sometimes have precise temporal
1604
     * coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601
1605
     * interval format format via "1939/1945".
1606
     * 
1607
     * Open-ended date ranges can be written with ".." in place of the end date.
1608
     * For example, "2015-11/.." indicates a range beginning in November 2015
1609
     * and with no specified final date. This is tentative and might be updated
1610
     * in future when ISO 8601 is officially updated.
1611
     *
1612
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporalCoverage
1613
     *
1614
     * @return static
1615
     *
1616
     * @see http://schema.org/temporalCoverage
1617
     */
1618
    public function temporalCoverage($temporalCoverage)
1619
    {
1620
        return $this->setProperty('temporalCoverage', $temporalCoverage);
1621
    }
1622
1623
    /**
1624
     * The textual content of this CreativeWork.
1625
     *
1626
     * @param string|string[] $text
1627
     *
1628
     * @return static
1629
     *
1630
     * @see http://schema.org/text
1631
     */
1632
    public function text($text)
1633
    {
1634
        return $this->setProperty('text', $text);
1635
    }
1636
1637
    /**
1638
     * A thumbnail image relevant to the Thing.
1639
     *
1640
     * @param string|string[] $thumbnailUrl
1641
     *
1642
     * @return static
1643
     *
1644
     * @see http://schema.org/thumbnailUrl
1645
     */
1646
    public function thumbnailUrl($thumbnailUrl)
1647
    {
1648
        return $this->setProperty('thumbnailUrl', $thumbnailUrl);
1649
    }
1650
1651
    /**
1652
     * Approximate or typical time it takes to work with or through this
1653
     * learning resource for the typical intended target audience, e.g. 'PT30M',
1654
     * 'PT1H25M'.
1655
     *
1656
     * @param \Spatie\SchemaOrg\Contracts\DurationContract|\Spatie\SchemaOrg\Contracts\DurationContract[] $timeRequired
1657
     *
1658
     * @return static
1659
     *
1660
     * @see http://schema.org/timeRequired
1661
     */
1662
    public function timeRequired($timeRequired)
1663
    {
1664
        return $this->setProperty('timeRequired', $timeRequired);
1665
    }
1666
1667
    /**
1668
     * Organization or person who adapts a creative work to different languages,
1669
     * regional differences and technical requirements of a target market, or
1670
     * that translates during some event.
1671
     *
1672
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $translator
1673
     *
1674
     * @return static
1675
     *
1676
     * @see http://schema.org/translator
1677
     */
1678
    public function translator($translator)
1679
    {
1680
        return $this->setProperty('translator', $translator);
1681
    }
1682
1683
    /**
1684
     * The typical expected age range, e.g. '7-9', '11-'.
1685
     *
1686
     * @param string|string[] $typicalAgeRange
1687
     *
1688
     * @return static
1689
     *
1690
     * @see http://schema.org/typicalAgeRange
1691
     */
1692
    public function typicalAgeRange($typicalAgeRange)
1693
    {
1694
        return $this->setProperty('typicalAgeRange', $typicalAgeRange);
1695
    }
1696
1697
    /**
1698
     * Date when this media object was uploaded to this site.
1699
     *
1700
     * @param \DateTimeInterface|\DateTimeInterface[] $uploadDate
1701
     *
1702
     * @return static
1703
     *
1704
     * @see http://schema.org/uploadDate
1705
     */
1706
    public function uploadDate($uploadDate)
1707
    {
1708
        return $this->setProperty('uploadDate', $uploadDate);
1709
    }
1710
1711
    /**
1712
     * URL of the item.
1713
     *
1714
     * @param string|string[] $url
1715
     *
1716
     * @return static
1717
     *
1718
     * @see http://schema.org/url
1719
     */
1720
    public function url($url)
1721
    {
1722
        return $this->setProperty('url', $url);
1723
    }
1724
1725
    /**
1726
     * The version of the CreativeWork embodied by a specified resource.
1727
     *
1728
     * @param float|float[]|int|int[]|string|string[] $version
1729
     *
1730
     * @return static
1731
     *
1732
     * @see http://schema.org/version
1733
     */
1734
    public function version($version)
1735
    {
1736
        return $this->setProperty('version', $version);
1737
    }
1738
1739
    /**
1740
     * An embedded video object.
1741
     *
1742
     * @param \Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[]|\Spatie\SchemaOrg\Contracts\VideoObjectContract|\Spatie\SchemaOrg\Contracts\VideoObjectContract[] $video
1743
     *
1744
     * @return static
1745
     *
1746
     * @see http://schema.org/video
1747
     */
1748
    public function video($video)
1749
    {
1750
        return $this->setProperty('video', $video);
1751
    }
1752
1753
    /**
1754
     * The width of the item.
1755
     *
1756
     * @param \Spatie\SchemaOrg\Contracts\DistanceContract|\Spatie\SchemaOrg\Contracts\DistanceContract[]|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract[] $width
1757
     *
1758
     * @return static
1759
     *
1760
     * @see http://schema.org/width
1761
     */
1762
    public function width($width)
1763
    {
1764
        return $this->setProperty('width', $width);
1765
    }
1766
1767
    /**
1768
     * Example/instance/realization/derivation of the concept of this creative
1769
     * work. eg. The paperback edition, first edition, or eBook.
1770
     *
1771
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $workExample
1772
     *
1773
     * @return static
1774
     *
1775
     * @see http://schema.org/workExample
1776
     */
1777
    public function workExample($workExample)
1778
    {
1779
        return $this->setProperty('workExample', $workExample);
1780
    }
1781
1782
}
1783

src/MusicVideoObject.php 1 location

@@ 16-1779 (lines=1764) @@
13
 * @see http://schema.org/MusicVideoObject
14
 *
15
 */
16
class MusicVideoObject extends BaseType implements MusicVideoObjectContract, CreativeWorkContract, MediaObjectContract, 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
     * A NewsArticle associated with the Media Object.
226
     *
227
     * @param \Spatie\SchemaOrg\Contracts\NewsArticleContract|\Spatie\SchemaOrg\Contracts\NewsArticleContract[] $associatedArticle
228
     *
229
     * @return static
230
     *
231
     * @see http://schema.org/associatedArticle
232
     */
233
    public function associatedArticle($associatedArticle)
234
    {
235
        return $this->setProperty('associatedArticle', $associatedArticle);
236
    }
237
238
    /**
239
     * A media object that encodes this CreativeWork. This property is a synonym
240
     * for encoding.
241
     *
242
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $associatedMedia
243
     *
244
     * @return static
245
     *
246
     * @see http://schema.org/associatedMedia
247
     */
248
    public function associatedMedia($associatedMedia)
249
    {
250
        return $this->setProperty('associatedMedia', $associatedMedia);
251
    }
252
253
    /**
254
     * An intended audience, i.e. a group for whom something was created.
255
     *
256
     * @param \Spatie\SchemaOrg\Contracts\AudienceContract|\Spatie\SchemaOrg\Contracts\AudienceContract[] $audience
257
     *
258
     * @return static
259
     *
260
     * @see http://schema.org/audience
261
     */
262
    public function audience($audience)
263
    {
264
        return $this->setProperty('audience', $audience);
265
    }
266
267
    /**
268
     * An embedded audio object.
269
     *
270
     * @param \Spatie\SchemaOrg\Contracts\AudioObjectContract|\Spatie\SchemaOrg\Contracts\AudioObjectContract[]|\Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[] $audio
271
     *
272
     * @return static
273
     *
274
     * @see http://schema.org/audio
275
     */
276
    public function audio($audio)
277
    {
278
        return $this->setProperty('audio', $audio);
279
    }
280
281
    /**
282
     * The author of this content or rating. Please note that author is special
283
     * in that HTML 5 provides a special mechanism for indicating authorship via
284
     * the rel tag. That is equivalent to this and may be used interchangeably.
285
     *
286
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $author
287
     *
288
     * @return static
289
     *
290
     * @see http://schema.org/author
291
     */
292
    public function author($author)
293
    {
294
        return $this->setProperty('author', $author);
295
    }
296
297
    /**
298
     * An award won by or for this item.
299
     *
300
     * @param string|string[] $award
301
     *
302
     * @return static
303
     *
304
     * @see http://schema.org/award
305
     */
306
    public function award($award)
307
    {
308
        return $this->setProperty('award', $award);
309
    }
310
311
    /**
312
     * Awards won by or for this item.
313
     *
314
     * @param string|string[] $awards
315
     *
316
     * @return static
317
     *
318
     * @see http://schema.org/awards
319
     */
320
    public function awards($awards)
321
    {
322
        return $this->setProperty('awards', $awards);
323
    }
324
325
    /**
326
     * The bitrate of the media object.
327
     *
328
     * @param string|string[] $bitrate
329
     *
330
     * @return static
331
     *
332
     * @see http://schema.org/bitrate
333
     */
334
    public function bitrate($bitrate)
335
    {
336
        return $this->setProperty('bitrate', $bitrate);
337
    }
338
339
    /**
340
     * Fictional person connected with a creative work.
341
     *
342
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $character
343
     *
344
     * @return static
345
     *
346
     * @see http://schema.org/character
347
     */
348
    public function character($character)
349
    {
350
        return $this->setProperty('character', $character);
351
    }
352
353
    /**
354
     * A citation or reference to another creative work, such as another
355
     * publication, web page, scholarly article, etc.
356
     *
357
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $citation
358
     *
359
     * @return static
360
     *
361
     * @see http://schema.org/citation
362
     */
363
    public function citation($citation)
364
    {
365
        return $this->setProperty('citation', $citation);
366
    }
367
368
    /**
369
     * Comments, typically from users.
370
     *
371
     * @param \Spatie\SchemaOrg\Contracts\CommentContract|\Spatie\SchemaOrg\Contracts\CommentContract[] $comment
372
     *
373
     * @return static
374
     *
375
     * @see http://schema.org/comment
376
     */
377
    public function comment($comment)
378
    {
379
        return $this->setProperty('comment', $comment);
380
    }
381
382
    /**
383
     * The number of comments this CreativeWork (e.g. Article, Question or
384
     * Answer) has received. This is most applicable to works published in Web
385
     * sites with commenting system; additional comments may exist elsewhere.
386
     *
387
     * @param int|int[] $commentCount
388
     *
389
     * @return static
390
     *
391
     * @see http://schema.org/commentCount
392
     */
393
    public function commentCount($commentCount)
394
    {
395
        return $this->setProperty('commentCount', $commentCount);
396
    }
397
398
    /**
399
     * The location depicted or described in the content. For example, the
400
     * location in a photograph or painting.
401
     *
402
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $contentLocation
403
     *
404
     * @return static
405
     *
406
     * @see http://schema.org/contentLocation
407
     */
408
    public function contentLocation($contentLocation)
409
    {
410
        return $this->setProperty('contentLocation', $contentLocation);
411
    }
412
413
    /**
414
     * Official rating of a piece of content—for example,'MPAA PG-13'.
415
     *
416
     * @param \Spatie\SchemaOrg\Contracts\RatingContract|\Spatie\SchemaOrg\Contracts\RatingContract[]|string|string[] $contentRating
417
     *
418
     * @return static
419
     *
420
     * @see http://schema.org/contentRating
421
     */
422
    public function contentRating($contentRating)
423
    {
424
        return $this->setProperty('contentRating', $contentRating);
425
    }
426
427
    /**
428
     * File size in (mega/kilo) bytes.
429
     *
430
     * @param string|string[] $contentSize
431
     *
432
     * @return static
433
     *
434
     * @see http://schema.org/contentSize
435
     */
436
    public function contentSize($contentSize)
437
    {
438
        return $this->setProperty('contentSize', $contentSize);
439
    }
440
441
    /**
442
     * Actual bytes of the media object, for example the image file or video
443
     * file.
444
     *
445
     * @param string|string[] $contentUrl
446
     *
447
     * @return static
448
     *
449
     * @see http://schema.org/contentUrl
450
     */
451
    public function contentUrl($contentUrl)
452
    {
453
        return $this->setProperty('contentUrl', $contentUrl);
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
     * The duration of the item (movie, audio recording, event, etc.) in [ISO
605
     * 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).
606
     *
607
     * @param \Spatie\SchemaOrg\Contracts\DurationContract|\Spatie\SchemaOrg\Contracts\DurationContract[] $duration
608
     *
609
     * @return static
610
     *
611
     * @see http://schema.org/duration
612
     */
613
    public function duration($duration)
614
    {
615
        return $this->setProperty('duration', $duration);
616
    }
617
618
    /**
619
     * Specifies the Person who edited the CreativeWork.
620
     *
621
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $editor
622
     *
623
     * @return static
624
     *
625
     * @see http://schema.org/editor
626
     */
627
    public function editor($editor)
628
    {
629
        return $this->setProperty('editor', $editor);
630
    }
631
632
    /**
633
     * An alignment to an established educational framework.
634
     *
635
     * @param \Spatie\SchemaOrg\Contracts\AlignmentObjectContract|\Spatie\SchemaOrg\Contracts\AlignmentObjectContract[] $educationalAlignment
636
     *
637
     * @return static
638
     *
639
     * @see http://schema.org/educationalAlignment
640
     */
641
    public function educationalAlignment($educationalAlignment)
642
    {
643
        return $this->setProperty('educationalAlignment', $educationalAlignment);
644
    }
645
646
    /**
647
     * The purpose of a work in the context of education; for example,
648
     * 'assignment', 'group work'.
649
     *
650
     * @param string|string[] $educationalUse
651
     *
652
     * @return static
653
     *
654
     * @see http://schema.org/educationalUse
655
     */
656
    public function educationalUse($educationalUse)
657
    {
658
        return $this->setProperty('educationalUse', $educationalUse);
659
    }
660
661
    /**
662
     * A URL pointing to a player for a specific video. In general, this is the
663
     * information in the ```src``` element of an ```embed``` tag and should not
664
     * be the same as the content of the ```loc``` tag.
665
     *
666
     * @param string|string[] $embedUrl
667
     *
668
     * @return static
669
     *
670
     * @see http://schema.org/embedUrl
671
     */
672
    public function embedUrl($embedUrl)
673
    {
674
        return $this->setProperty('embedUrl', $embedUrl);
675
    }
676
677
    /**
678
     * The CreativeWork encoded by this media object.
679
     *
680
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $encodesCreativeWork
681
     *
682
     * @return static
683
     *
684
     * @see http://schema.org/encodesCreativeWork
685
     */
686
    public function encodesCreativeWork($encodesCreativeWork)
687
    {
688
        return $this->setProperty('encodesCreativeWork', $encodesCreativeWork);
689
    }
690
691
    /**
692
     * A media object that encodes this CreativeWork. This property is a synonym
693
     * for associatedMedia.
694
     *
695
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encoding
696
     *
697
     * @return static
698
     *
699
     * @see http://schema.org/encoding
700
     */
701
    public function encoding($encoding)
702
    {
703
        return $this->setProperty('encoding', $encoding);
704
    }
705
706
    /**
707
     * Media type typically expressed using a MIME format (see [IANA
708
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml) and
709
     * [MDN
710
     * reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types))
711
     * e.g. application/zip for a SoftwareApplication binary, audio/mpeg for
712
     * .mp3 etc.).
713
     * 
714
     * In cases where a [[CreativeWork]] has several media type representations,
715
     * [[encoding]] can be used to indicate each [[MediaObject]] alongside
716
     * particular [[encodingFormat]] information.
717
     * 
718
     * Unregistered or niche encoding and file formats can be indicated instead
719
     * via the most appropriate URL, e.g. defining Web page or a
720
     * Wikipedia/Wikidata entry.
721
     *
722
     * @param string|string[] $encodingFormat
723
     *
724
     * @return static
725
     *
726
     * @see http://schema.org/encodingFormat
727
     */
728
    public function encodingFormat($encodingFormat)
729
    {
730
        return $this->setProperty('encodingFormat', $encodingFormat);
731
    }
732
733
    /**
734
     * A media object that encodes this CreativeWork.
735
     *
736
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encodings
737
     *
738
     * @return static
739
     *
740
     * @see http://schema.org/encodings
741
     */
742
    public function encodings($encodings)
743
    {
744
        return $this->setProperty('encodings', $encodings);
745
    }
746
747
    /**
748
     * The endTime of something. For a reserved event or service (e.g.
749
     * FoodEstablishmentReservation), the time that it is expected to end. For
750
     * actions that span a period of time, when the action was performed. e.g.
751
     * John wrote a book from January to *December*. For media, including audio
752
     * and video, it's the time offset of the end of a clip within a larger
753
     * file.
754
     * 
755
     * Note that Event uses startDate/endDate instead of startTime/endTime, even
756
     * when describing dates with times. This situation may be clarified in
757
     * future revisions.
758
     *
759
     * @param \DateTimeInterface|\DateTimeInterface[] $endTime
760
     *
761
     * @return static
762
     *
763
     * @see http://schema.org/endTime
764
     */
765
    public function endTime($endTime)
766
    {
767
        return $this->setProperty('endTime', $endTime);
768
    }
769
770
    /**
771
     * A creative work that this work is an
772
     * example/instance/realization/derivation of.
773
     *
774
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $exampleOfWork
775
     *
776
     * @return static
777
     *
778
     * @see http://schema.org/exampleOfWork
779
     */
780
    public function exampleOfWork($exampleOfWork)
781
    {
782
        return $this->setProperty('exampleOfWork', $exampleOfWork);
783
    }
784
785
    /**
786
     * Date the content expires and is no longer useful or available. For
787
     * example a [[VideoObject]] or [[NewsArticle]] whose availability or
788
     * relevance is time-limited, or a [[ClaimReview]] fact check whose
789
     * publisher wants to indicate that it may no longer be relevant (or helpful
790
     * to highlight) after some date.
791
     *
792
     * @param \DateTimeInterface|\DateTimeInterface[] $expires
793
     *
794
     * @return static
795
     *
796
     * @see http://schema.org/expires
797
     */
798
    public function expires($expires)
799
    {
800
        return $this->setProperty('expires', $expires);
801
    }
802
803
    /**
804
     * Media type, typically MIME format (see [IANA
805
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of
806
     * the content e.g. application/zip of a SoftwareApplication binary. In
807
     * cases where a CreativeWork has several media type representations,
808
     * 'encoding' can be used to indicate each MediaObject alongside particular
809
     * fileFormat information. Unregistered or niche file formats can be
810
     * indicated instead via the most appropriate URL, e.g. defining Web page or
811
     * a Wikipedia entry.
812
     *
813
     * @param string|string[] $fileFormat
814
     *
815
     * @return static
816
     *
817
     * @see http://schema.org/fileFormat
818
     */
819
    public function fileFormat($fileFormat)
820
    {
821
        return $this->setProperty('fileFormat', $fileFormat);
822
    }
823
824
    /**
825
     * A person or organization that supports (sponsors) something through some
826
     * kind of financial contribution.
827
     *
828
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $funder
829
     *
830
     * @return static
831
     *
832
     * @see http://schema.org/funder
833
     */
834
    public function funder($funder)
835
    {
836
        return $this->setProperty('funder', $funder);
837
    }
838
839
    /**
840
     * Genre of the creative work, broadcast channel or group.
841
     *
842
     * @param string|string[] $genre
843
     *
844
     * @return static
845
     *
846
     * @see http://schema.org/genre
847
     */
848
    public function genre($genre)
849
    {
850
        return $this->setProperty('genre', $genre);
851
    }
852
853
    /**
854
     * Indicates an item or CreativeWork that is part of this item, or
855
     * CreativeWork (in some sense).
856
     *
857
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $hasPart
858
     *
859
     * @return static
860
     *
861
     * @see http://schema.org/hasPart
862
     */
863
    public function hasPart($hasPart)
864
    {
865
        return $this->setProperty('hasPart', $hasPart);
866
    }
867
868
    /**
869
     * Headline of the article.
870
     *
871
     * @param string|string[] $headline
872
     *
873
     * @return static
874
     *
875
     * @see http://schema.org/headline
876
     */
877
    public function headline($headline)
878
    {
879
        return $this->setProperty('headline', $headline);
880
    }
881
882
    /**
883
     * The height of the item.
884
     *
885
     * @param \Spatie\SchemaOrg\Contracts\DistanceContract|\Spatie\SchemaOrg\Contracts\DistanceContract[]|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract[] $height
886
     *
887
     * @return static
888
     *
889
     * @see http://schema.org/height
890
     */
891
    public function height($height)
892
    {
893
        return $this->setProperty('height', $height);
894
    }
895
896
    /**
897
     * The identifier property represents any kind of identifier for any kind of
898
     * [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides
899
     * dedicated properties for representing many of these, either as textual
900
     * strings or as URL (URI) links. See [background
901
     * notes](/docs/datamodel.html#identifierBg) for more details.
902
     *
903
     * @param \Spatie\SchemaOrg\Contracts\PropertyValueContract|\Spatie\SchemaOrg\Contracts\PropertyValueContract[]|string|string[] $identifier
904
     *
905
     * @return static
906
     *
907
     * @see http://schema.org/identifier
908
     */
909
    public function identifier($identifier)
910
    {
911
        return $this->setProperty('identifier', $identifier);
912
    }
913
914
    /**
915
     * An image of the item. This can be a [[URL]] or a fully described
916
     * [[ImageObject]].
917
     *
918
     * @param \Spatie\SchemaOrg\Contracts\ImageObjectContract|\Spatie\SchemaOrg\Contracts\ImageObjectContract[]|string|string[] $image
919
     *
920
     * @return static
921
     *
922
     * @see http://schema.org/image
923
     */
924
    public function image($image)
925
    {
926
        return $this->setProperty('image', $image);
927
    }
928
929
    /**
930
     * The language of the content or performance or used in an action. Please
931
     * use one of the language codes from the [IETF BCP 47
932
     * standard](http://tools.ietf.org/html/bcp47). See also
933
     * [[availableLanguage]].
934
     *
935
     * @param \Spatie\SchemaOrg\Contracts\LanguageContract|\Spatie\SchemaOrg\Contracts\LanguageContract[]|string|string[] $inLanguage
936
     *
937
     * @return static
938
     *
939
     * @see http://schema.org/inLanguage
940
     */
941
    public function inLanguage($inLanguage)
942
    {
943
        return $this->setProperty('inLanguage', $inLanguage);
944
    }
945
946
    /**
947
     * The number of interactions for the CreativeWork using the WebSite or
948
     * SoftwareApplication. The most specific child type of InteractionCounter
949
     * should be used.
950
     *
951
     * @param \Spatie\SchemaOrg\Contracts\InteractionCounterContract|\Spatie\SchemaOrg\Contracts\InteractionCounterContract[] $interactionStatistic
952
     *
953
     * @return static
954
     *
955
     * @see http://schema.org/interactionStatistic
956
     */
957
    public function interactionStatistic($interactionStatistic)
958
    {
959
        return $this->setProperty('interactionStatistic', $interactionStatistic);
960
    }
961
962
    /**
963
     * The predominant mode of learning supported by the learning resource.
964
     * Acceptable values are 'active', 'expositive', or 'mixed'.
965
     *
966
     * @param string|string[] $interactivityType
967
     *
968
     * @return static
969
     *
970
     * @see http://schema.org/interactivityType
971
     */
972
    public function interactivityType($interactivityType)
973
    {
974
        return $this->setProperty('interactivityType', $interactivityType);
975
    }
976
977
    /**
978
     * A flag to signal that the item, event, or place is accessible for free.
979
     *
980
     * @param bool|bool[] $isAccessibleForFree
981
     *
982
     * @return static
983
     *
984
     * @see http://schema.org/isAccessibleForFree
985
     */
986
    public function isAccessibleForFree($isAccessibleForFree)
987
    {
988
        return $this->setProperty('isAccessibleForFree', $isAccessibleForFree);
989
    }
990
991
    /**
992
     * A resource from which this work is derived or from which it is a
993
     * modification or adaption.
994
     *
995
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOn
996
     *
997
     * @return static
998
     *
999
     * @see http://schema.org/isBasedOn
1000
     */
1001
    public function isBasedOn($isBasedOn)
1002
    {
1003
        return $this->setProperty('isBasedOn', $isBasedOn);
1004
    }
1005
1006
    /**
1007
     * A resource that was used in the creation of this resource. This term can
1008
     * be repeated for multiple sources. For example,
1009
     * http://example.com/great-multiplication-intro.html.
1010
     *
1011
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOnUrl
1012
     *
1013
     * @return static
1014
     *
1015
     * @see http://schema.org/isBasedOnUrl
1016
     */
1017
    public function isBasedOnUrl($isBasedOnUrl)
1018
    {
1019
        return $this->setProperty('isBasedOnUrl', $isBasedOnUrl);
1020
    }
1021
1022
    /**
1023
     * Indicates whether this content is family friendly.
1024
     *
1025
     * @param bool|bool[] $isFamilyFriendly
1026
     *
1027
     * @return static
1028
     *
1029
     * @see http://schema.org/isFamilyFriendly
1030
     */
1031
    public function isFamilyFriendly($isFamilyFriendly)
1032
    {
1033
        return $this->setProperty('isFamilyFriendly', $isFamilyFriendly);
1034
    }
1035
1036
    /**
1037
     * Indicates an item or CreativeWork that this item, or CreativeWork (in
1038
     * some sense), is part of.
1039
     *
1040
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $isPartOf
1041
     *
1042
     * @return static
1043
     *
1044
     * @see http://schema.org/isPartOf
1045
     */
1046
    public function isPartOf($isPartOf)
1047
    {
1048
        return $this->setProperty('isPartOf', $isPartOf);
1049
    }
1050
1051
    /**
1052
     * Keywords or tags used to describe this content. Multiple entries in a
1053
     * keywords list are typically delimited by commas.
1054
     *
1055
     * @param string|string[] $keywords
1056
     *
1057
     * @return static
1058
     *
1059
     * @see http://schema.org/keywords
1060
     */
1061
    public function keywords($keywords)
1062
    {
1063
        return $this->setProperty('keywords', $keywords);
1064
    }
1065
1066
    /**
1067
     * The predominant type or kind characterizing the learning resource. For
1068
     * example, 'presentation', 'handout'.
1069
     *
1070
     * @param string|string[] $learningResourceType
1071
     *
1072
     * @return static
1073
     *
1074
     * @see http://schema.org/learningResourceType
1075
     */
1076
    public function learningResourceType($learningResourceType)
1077
    {
1078
        return $this->setProperty('learningResourceType', $learningResourceType);
1079
    }
1080
1081
    /**
1082
     * A license document that applies to this content, typically indicated by
1083
     * URL.
1084
     *
1085
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $license
1086
     *
1087
     * @return static
1088
     *
1089
     * @see http://schema.org/license
1090
     */
1091
    public function license($license)
1092
    {
1093
        return $this->setProperty('license', $license);
1094
    }
1095
1096
    /**
1097
     * The location where the CreativeWork was created, which may not be the
1098
     * same as the location depicted in the CreativeWork.
1099
     *
1100
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $locationCreated
1101
     *
1102
     * @return static
1103
     *
1104
     * @see http://schema.org/locationCreated
1105
     */
1106
    public function locationCreated($locationCreated)
1107
    {
1108
        return $this->setProperty('locationCreated', $locationCreated);
1109
    }
1110
1111
    /**
1112
     * Indicates the primary entity described in some page or other
1113
     * CreativeWork.
1114
     *
1115
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mainEntity
1116
     *
1117
     * @return static
1118
     *
1119
     * @see http://schema.org/mainEntity
1120
     */
1121
    public function mainEntity($mainEntity)
1122
    {
1123
        return $this->setProperty('mainEntity', $mainEntity);
1124
    }
1125
1126
    /**
1127
     * Indicates a page (or other CreativeWork) for which this thing is the main
1128
     * entity being described. See [background
1129
     * notes](/docs/datamodel.html#mainEntityBackground) for details.
1130
     *
1131
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $mainEntityOfPage
1132
     *
1133
     * @return static
1134
     *
1135
     * @see http://schema.org/mainEntityOfPage
1136
     */
1137
    public function mainEntityOfPage($mainEntityOfPage)
1138
    {
1139
        return $this->setProperty('mainEntityOfPage', $mainEntityOfPage);
1140
    }
1141
1142
    /**
1143
     * A material that something is made from, e.g. leather, wool, cotton,
1144
     * paper.
1145
     *
1146
     * @param \Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $material
1147
     *
1148
     * @return static
1149
     *
1150
     * @see http://schema.org/material
1151
     */
1152
    public function material($material)
1153
    {
1154
        return $this->setProperty('material', $material);
1155
    }
1156
1157
    /**
1158
     * Indicates that the CreativeWork contains a reference to, but is not
1159
     * necessarily about a concept.
1160
     *
1161
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mentions
1162
     *
1163
     * @return static
1164
     *
1165
     * @see http://schema.org/mentions
1166
     */
1167
    public function mentions($mentions)
1168
    {
1169
        return $this->setProperty('mentions', $mentions);
1170
    }
1171
1172
    /**
1173
     * The name of the item.
1174
     *
1175
     * @param string|string[] $name
1176
     *
1177
     * @return static
1178
     *
1179
     * @see http://schema.org/name
1180
     */
1181
    public function name($name)
1182
    {
1183
        return $this->setProperty('name', $name);
1184
    }
1185
1186
    /**
1187
     * An offer to provide this item—for example, an offer to sell a
1188
     * product, rent the DVD of a movie, perform a service, or give away tickets
1189
     * to an event. Use [[businessFunction]] to indicate the kind of transaction
1190
     * offered, i.e. sell, lease, etc. This property can also be used to
1191
     * describe a [[Demand]]. While this property is listed as expected on a
1192
     * number of common types, it can be used in others. In that case, using a
1193
     * second type, such as Product or a subtype of Product, can clarify the
1194
     * nature of the offer.
1195
     *
1196
     * @param \Spatie\SchemaOrg\Contracts\DemandContract|\Spatie\SchemaOrg\Contracts\DemandContract[]|\Spatie\SchemaOrg\Contracts\OfferContract|\Spatie\SchemaOrg\Contracts\OfferContract[] $offers
1197
     *
1198
     * @return static
1199
     *
1200
     * @see http://schema.org/offers
1201
     */
1202
    public function offers($offers)
1203
    {
1204
        return $this->setProperty('offers', $offers);
1205
    }
1206
1207
    /**
1208
     * Player type required—for example, Flash or Silverlight.
1209
     *
1210
     * @param string|string[] $playerType
1211
     *
1212
     * @return static
1213
     *
1214
     * @see http://schema.org/playerType
1215
     */
1216
    public function playerType($playerType)
1217
    {
1218
        return $this->setProperty('playerType', $playerType);
1219
    }
1220
1221
    /**
1222
     * The position of an item in a series or sequence of items.
1223
     *
1224
     * @param int|int[]|string|string[] $position
1225
     *
1226
     * @return static
1227
     *
1228
     * @see http://schema.org/position
1229
     */
1230
    public function position($position)
1231
    {
1232
        return $this->setProperty('position', $position);
1233
    }
1234
1235
    /**
1236
     * Indicates a potential Action, which describes an idealized action in
1237
     * which this thing would play an 'object' role.
1238
     *
1239
     * @param \Spatie\SchemaOrg\Contracts\ActionContract|\Spatie\SchemaOrg\Contracts\ActionContract[] $potentialAction
1240
     *
1241
     * @return static
1242
     *
1243
     * @see http://schema.org/potentialAction
1244
     */
1245
    public function potentialAction($potentialAction)
1246
    {
1247
        return $this->setProperty('potentialAction', $potentialAction);
1248
    }
1249
1250
    /**
1251
     * The person or organization who produced the work (e.g. music album,
1252
     * movie, tv/radio series etc.).
1253
     *
1254
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $producer
1255
     *
1256
     * @return static
1257
     *
1258
     * @see http://schema.org/producer
1259
     */
1260
    public function producer($producer)
1261
    {
1262
        return $this->setProperty('producer', $producer);
1263
    }
1264
1265
    /**
1266
     * The production company or studio responsible for the item e.g. series,
1267
     * video game, episode etc.
1268
     *
1269
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $productionCompany
1270
     *
1271
     * @return static
1272
     *
1273
     * @see http://schema.org/productionCompany
1274
     */
1275
    public function productionCompany($productionCompany)
1276
    {
1277
        return $this->setProperty('productionCompany', $productionCompany);
1278
    }
1279
1280
    /**
1281
     * The service provider, service operator, or service performer; the goods
1282
     * producer. Another party (a seller) may offer those services or goods on
1283
     * behalf of the provider. A provider may also serve as the seller.
1284
     *
1285
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $provider
1286
     *
1287
     * @return static
1288
     *
1289
     * @see http://schema.org/provider
1290
     */
1291
    public function provider($provider)
1292
    {
1293
        return $this->setProperty('provider', $provider);
1294
    }
1295
1296
    /**
1297
     * A publication event associated with the item.
1298
     *
1299
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $publication
1300
     *
1301
     * @return static
1302
     *
1303
     * @see http://schema.org/publication
1304
     */
1305
    public function publication($publication)
1306
    {
1307
        return $this->setProperty('publication', $publication);
1308
    }
1309
1310
    /**
1311
     * The publisher of the creative work.
1312
     *
1313
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $publisher
1314
     *
1315
     * @return static
1316
     *
1317
     * @see http://schema.org/publisher
1318
     */
1319
    public function publisher($publisher)
1320
    {
1321
        return $this->setProperty('publisher', $publisher);
1322
    }
1323
1324
    /**
1325
     * The publishingPrinciples property indicates (typically via [[URL]]) a
1326
     * document describing the editorial principles of an [[Organization]] (or
1327
     * individual e.g. a [[Person]] writing a blog) that relate to their
1328
     * activities as a publisher, e.g. ethics or diversity policies. When
1329
     * applied to a [[CreativeWork]] (e.g. [[NewsArticle]]) the principles are
1330
     * those of the party primarily responsible for the creation of the
1331
     * [[CreativeWork]].
1332
     * 
1333
     * While such policies are most typically expressed in natural language,
1334
     * sometimes related information (e.g. indicating a [[funder]]) can be
1335
     * expressed using schema.org terminology.
1336
     *
1337
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $publishingPrinciples
1338
     *
1339
     * @return static
1340
     *
1341
     * @see http://schema.org/publishingPrinciples
1342
     */
1343
    public function publishingPrinciples($publishingPrinciples)
1344
    {
1345
        return $this->setProperty('publishingPrinciples', $publishingPrinciples);
1346
    }
1347
1348
    /**
1349
     * The Event where the CreativeWork was recorded. The CreativeWork may
1350
     * capture all or part of the event.
1351
     *
1352
     * @param \Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $recordedAt
1353
     *
1354
     * @return static
1355
     *
1356
     * @see http://schema.org/recordedAt
1357
     */
1358
    public function recordedAt($recordedAt)
1359
    {
1360
        return $this->setProperty('recordedAt', $recordedAt);
1361
    }
1362
1363
    /**
1364
     * The regions where the media is allowed. If not specified, then it's
1365
     * assumed to be allowed everywhere. Specify the countries in [ISO 3166
1366
     * format](http://en.wikipedia.org/wiki/ISO_3166).
1367
     *
1368
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $regionsAllowed
1369
     *
1370
     * @return static
1371
     *
1372
     * @see http://schema.org/regionsAllowed
1373
     */
1374
    public function regionsAllowed($regionsAllowed)
1375
    {
1376
        return $this->setProperty('regionsAllowed', $regionsAllowed);
1377
    }
1378
1379
    /**
1380
     * The place and time the release was issued, expressed as a
1381
     * PublicationEvent.
1382
     *
1383
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $releasedEvent
1384
     *
1385
     * @return static
1386
     *
1387
     * @see http://schema.org/releasedEvent
1388
     */
1389
    public function releasedEvent($releasedEvent)
1390
    {
1391
        return $this->setProperty('releasedEvent', $releasedEvent);
1392
    }
1393
1394
    /**
1395
     * Indicates if use of the media require a subscription  (either paid or
1396
     * free). Allowed values are ```true``` or ```false``` (note that an earlier
1397
     * version had 'yes', 'no').
1398
     *
1399
     * @param bool|bool[] $requiresSubscription
1400
     *
1401
     * @return static
1402
     *
1403
     * @see http://schema.org/requiresSubscription
1404
     */
1405
    public function requiresSubscription($requiresSubscription)
1406
    {
1407
        return $this->setProperty('requiresSubscription', $requiresSubscription);
1408
    }
1409
1410
    /**
1411
     * A review of the item.
1412
     *
1413
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $review
1414
     *
1415
     * @return static
1416
     *
1417
     * @see http://schema.org/review
1418
     */
1419
    public function review($review)
1420
    {
1421
        return $this->setProperty('review', $review);
1422
    }
1423
1424
    /**
1425
     * Review of the item.
1426
     *
1427
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $reviews
1428
     *
1429
     * @return static
1430
     *
1431
     * @see http://schema.org/reviews
1432
     */
1433
    public function reviews($reviews)
1434
    {
1435
        return $this->setProperty('reviews', $reviews);
1436
    }
1437
1438
    /**
1439
     * URL of a reference Web page that unambiguously indicates the item's
1440
     * identity. E.g. the URL of the item's Wikipedia page, Wikidata entry, or
1441
     * official website.
1442
     *
1443
     * @param string|string[] $sameAs
1444
     *
1445
     * @return static
1446
     *
1447
     * @see http://schema.org/sameAs
1448
     */
1449
    public function sameAs($sameAs)
1450
    {
1451
        return $this->setProperty('sameAs', $sameAs);
1452
    }
1453
1454
    /**
1455
     * Indicates (by URL or string) a particular version of a schema used in
1456
     * some CreativeWork. For example, a document could declare a schemaVersion
1457
     * using an URL such as http://schema.org/version/2.0/ if precise indication
1458
     * of schema version was required by some application.
1459
     *
1460
     * @param string|string[] $schemaVersion
1461
     *
1462
     * @return static
1463
     *
1464
     * @see http://schema.org/schemaVersion
1465
     */
1466
    public function schemaVersion($schemaVersion)
1467
    {
1468
        return $this->setProperty('schemaVersion', $schemaVersion);
1469
    }
1470
1471
    /**
1472
     * The Organization on whose behalf the creator was working.
1473
     *
1474
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $sourceOrganization
1475
     *
1476
     * @return static
1477
     *
1478
     * @see http://schema.org/sourceOrganization
1479
     */
1480
    public function sourceOrganization($sourceOrganization)
1481
    {
1482
        return $this->setProperty('sourceOrganization', $sourceOrganization);
1483
    }
1484
1485
    /**
1486
     * The "spatial" property can be used in cases when more specific properties
1487
     * (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are
1488
     * not known to be appropriate.
1489
     *
1490
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatial
1491
     *
1492
     * @return static
1493
     *
1494
     * @see http://schema.org/spatial
1495
     */
1496
    public function spatial($spatial)
1497
    {
1498
        return $this->setProperty('spatial', $spatial);
1499
    }
1500
1501
    /**
1502
     * The spatialCoverage of a CreativeWork indicates the place(s) which are
1503
     * the focus of the content. It is a subproperty of
1504
     *       contentLocation intended primarily for more technical and detailed
1505
     * materials. For example with a Dataset, it indicates
1506
     *       areas that the dataset describes: a dataset of New York weather
1507
     * would have spatialCoverage which was the place: the state of New York.
1508
     *
1509
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatialCoverage
1510
     *
1511
     * @return static
1512
     *
1513
     * @see http://schema.org/spatialCoverage
1514
     */
1515
    public function spatialCoverage($spatialCoverage)
1516
    {
1517
        return $this->setProperty('spatialCoverage', $spatialCoverage);
1518
    }
1519
1520
    /**
1521
     * A person or organization that supports a thing through a pledge, promise,
1522
     * or financial contribution. e.g. a sponsor of a Medical Study or a
1523
     * corporate sponsor of an event.
1524
     *
1525
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $sponsor
1526
     *
1527
     * @return static
1528
     *
1529
     * @see http://schema.org/sponsor
1530
     */
1531
    public function sponsor($sponsor)
1532
    {
1533
        return $this->setProperty('sponsor', $sponsor);
1534
    }
1535
1536
    /**
1537
     * The startTime of something. For a reserved event or service (e.g.
1538
     * FoodEstablishmentReservation), the time that it is expected to start. For
1539
     * actions that span a period of time, when the action was performed. e.g.
1540
     * John wrote a book from *January* to December. For media, including audio
1541
     * and video, it's the time offset of the start of a clip within a larger
1542
     * file.
1543
     * 
1544
     * Note that Event uses startDate/endDate instead of startTime/endTime, even
1545
     * when describing dates with times. This situation may be clarified in
1546
     * future revisions.
1547
     *
1548
     * @param \DateTimeInterface|\DateTimeInterface[] $startTime
1549
     *
1550
     * @return static
1551
     *
1552
     * @see http://schema.org/startTime
1553
     */
1554
    public function startTime($startTime)
1555
    {
1556
        return $this->setProperty('startTime', $startTime);
1557
    }
1558
1559
    /**
1560
     * A CreativeWork or Event about this Thing.
1561
     *
1562
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $subjectOf
1563
     *
1564
     * @return static
1565
     *
1566
     * @see http://schema.org/subjectOf
1567
     */
1568
    public function subjectOf($subjectOf)
1569
    {
1570
        return $this->setProperty('subjectOf', $subjectOf);
1571
    }
1572
1573
    /**
1574
     * The "temporal" property can be used in cases where more specific
1575
     * properties
1576
     * (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]],
1577
     * [[datePublished]]) are not known to be appropriate.
1578
     *
1579
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporal
1580
     *
1581
     * @return static
1582
     *
1583
     * @see http://schema.org/temporal
1584
     */
1585
    public function temporal($temporal)
1586
    {
1587
        return $this->setProperty('temporal', $temporal);
1588
    }
1589
1590
    /**
1591
     * The temporalCoverage of a CreativeWork indicates the period that the
1592
     * content applies to, i.e. that it describes, either as a DateTime or as a
1593
     * textual string indicating a time period in [ISO 8601 time interval
1594
     * format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In
1595
     *       the case of a Dataset it will typically indicate the relevant time
1596
     * period in a precise notation (e.g. for a 2011 census dataset, the year
1597
     * 2011 would be written "2011/2012"). Other forms of content e.g.
1598
     * ScholarlyArticle, Book, TVSeries or TVEpisode may indicate their
1599
     * temporalCoverage in broader terms - textually or via well-known URL.
1600
     *       Written works such as books may sometimes have precise temporal
1601
     * coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601
1602
     * interval format format via "1939/1945".
1603
     * 
1604
     * Open-ended date ranges can be written with ".." in place of the end date.
1605
     * For example, "2015-11/.." indicates a range beginning in November 2015
1606
     * and with no specified final date. This is tentative and might be updated
1607
     * in future when ISO 8601 is officially updated.
1608
     *
1609
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporalCoverage
1610
     *
1611
     * @return static
1612
     *
1613
     * @see http://schema.org/temporalCoverage
1614
     */
1615
    public function temporalCoverage($temporalCoverage)
1616
    {
1617
        return $this->setProperty('temporalCoverage', $temporalCoverage);
1618
    }
1619
1620
    /**
1621
     * The textual content of this CreativeWork.
1622
     *
1623
     * @param string|string[] $text
1624
     *
1625
     * @return static
1626
     *
1627
     * @see http://schema.org/text
1628
     */
1629
    public function text($text)
1630
    {
1631
        return $this->setProperty('text', $text);
1632
    }
1633
1634
    /**
1635
     * A thumbnail image relevant to the Thing.
1636
     *
1637
     * @param string|string[] $thumbnailUrl
1638
     *
1639
     * @return static
1640
     *
1641
     * @see http://schema.org/thumbnailUrl
1642
     */
1643
    public function thumbnailUrl($thumbnailUrl)
1644
    {
1645
        return $this->setProperty('thumbnailUrl', $thumbnailUrl);
1646
    }
1647
1648
    /**
1649
     * Approximate or typical time it takes to work with or through this
1650
     * learning resource for the typical intended target audience, e.g. 'PT30M',
1651
     * 'PT1H25M'.
1652
     *
1653
     * @param \Spatie\SchemaOrg\Contracts\DurationContract|\Spatie\SchemaOrg\Contracts\DurationContract[] $timeRequired
1654
     *
1655
     * @return static
1656
     *
1657
     * @see http://schema.org/timeRequired
1658
     */
1659
    public function timeRequired($timeRequired)
1660
    {
1661
        return $this->setProperty('timeRequired', $timeRequired);
1662
    }
1663
1664
    /**
1665
     * Organization or person who adapts a creative work to different languages,
1666
     * regional differences and technical requirements of a target market, or
1667
     * that translates during some event.
1668
     *
1669
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $translator
1670
     *
1671
     * @return static
1672
     *
1673
     * @see http://schema.org/translator
1674
     */
1675
    public function translator($translator)
1676
    {
1677
        return $this->setProperty('translator', $translator);
1678
    }
1679
1680
    /**
1681
     * The typical expected age range, e.g. '7-9', '11-'.
1682
     *
1683
     * @param string|string[] $typicalAgeRange
1684
     *
1685
     * @return static
1686
     *
1687
     * @see http://schema.org/typicalAgeRange
1688
     */
1689
    public function typicalAgeRange($typicalAgeRange)
1690
    {
1691
        return $this->setProperty('typicalAgeRange', $typicalAgeRange);
1692
    }
1693
1694
    /**
1695
     * Date when this media object was uploaded to this site.
1696
     *
1697
     * @param \DateTimeInterface|\DateTimeInterface[] $uploadDate
1698
     *
1699
     * @return static
1700
     *
1701
     * @see http://schema.org/uploadDate
1702
     */
1703
    public function uploadDate($uploadDate)
1704
    {
1705
        return $this->setProperty('uploadDate', $uploadDate);
1706
    }
1707
1708
    /**
1709
     * URL of the item.
1710
     *
1711
     * @param string|string[] $url
1712
     *
1713
     * @return static
1714
     *
1715
     * @see http://schema.org/url
1716
     */
1717
    public function url($url)
1718
    {
1719
        return $this->setProperty('url', $url);
1720
    }
1721
1722
    /**
1723
     * The version of the CreativeWork embodied by a specified resource.
1724
     *
1725
     * @param float|float[]|int|int[]|string|string[] $version
1726
     *
1727
     * @return static
1728
     *
1729
     * @see http://schema.org/version
1730
     */
1731
    public function version($version)
1732
    {
1733
        return $this->setProperty('version', $version);
1734
    }
1735
1736
    /**
1737
     * An embedded video object.
1738
     *
1739
     * @param \Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[]|\Spatie\SchemaOrg\Contracts\VideoObjectContract|\Spatie\SchemaOrg\Contracts\VideoObjectContract[] $video
1740
     *
1741
     * @return static
1742
     *
1743
     * @see http://schema.org/video
1744
     */
1745
    public function video($video)
1746
    {
1747
        return $this->setProperty('video', $video);
1748
    }
1749
1750
    /**
1751
     * The width of the item.
1752
     *
1753
     * @param \Spatie\SchemaOrg\Contracts\DistanceContract|\Spatie\SchemaOrg\Contracts\DistanceContract[]|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract[] $width
1754
     *
1755
     * @return static
1756
     *
1757
     * @see http://schema.org/width
1758
     */
1759
    public function width($width)
1760
    {
1761
        return $this->setProperty('width', $width);
1762
    }
1763
1764
    /**
1765
     * Example/instance/realization/derivation of the concept of this creative
1766
     * work. eg. The paperback edition, first edition, or eBook.
1767
     *
1768
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $workExample
1769
     *
1770
     * @return static
1771
     *
1772
     * @see http://schema.org/workExample
1773
     */
1774
    public function workExample($workExample)
1775
    {
1776
        return $this->setProperty('workExample', $workExample);
1777
    }
1778
1779
}
1780

src/RadioSeries.php 1 location

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