MusicRecording::expires()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 4
Ratio 100 %

Importance

Changes 0
Metric Value
dl 4
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\MusicRecordingContract;
6
use \Spatie\SchemaOrg\Contracts\CreativeWorkContract;
7
use \Spatie\SchemaOrg\Contracts\ThingContract;
8
9
/**
10
 * A music recording (track), usually a single song.
11
 *
12
 * @see http://schema.org/MusicRecording
13
 *
14
 */
15 View Code Duplication
class MusicRecording extends BaseType implements MusicRecordingContract, CreativeWorkContract, ThingContract
0 ignored issues
show
Duplication introduced by
This class seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

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