SoftwareApplication::screenshot()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 4
Ratio 100 %

Importance

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

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

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

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