DataCatalog::mainEntity()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 4
Ratio 100 %

Importance

Changes 0
Metric Value
dl 4
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
namespace Spatie\SchemaOrg;
4
5
use \Spatie\SchemaOrg\Contracts\DataCatalogContract;
6
use \Spatie\SchemaOrg\Contracts\CreativeWorkContract;
7
use \Spatie\SchemaOrg\Contracts\ThingContract;
8
9
/**
10
 * A collection of datasets.
11
 *
12
 * @see http://schema.org/DataCatalog
13
 *
14
 */
15 View Code Duplication
class DataCatalog extends BaseType implements DataCatalogContract, CreativeWorkContract, ThingContract
0 ignored issues
show
Duplication introduced by
This class seems to be duplicated in your project.

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

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

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