Code Duplication    Length = 1864-1913 lines in 5 locations

src/MobileApplication.php 1 location

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

src/SoftwareApplication.php 1 location

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

src/VideoGameSeries.php 1 location

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

src/VideoObject.php 1 location

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

src/WebApplication.php 1 location

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