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