FAQPage::associatedMedia()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

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