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