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