Code Duplication    Length = 1795-1823 lines in 3 locations

src/Barcode.php 1 location

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

src/ImageObject.php 1 location

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

src/Recipe.php 1 location

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