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