AudioObject::image()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

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