Issues (439)

Security Analysis    no request data  

This project does not seem to handle request data directly as such no vulnerable execution paths were found.

  Cross-Site Scripting
Cross-Site Scripting enables an attacker to inject code into the response of a web-request that is viewed by other users. It can for example be used to bypass access controls, or even to take over other users' accounts.
  File Exposure
File Exposure allows an attacker to gain access to local files that he should not be able to access. These files can for example include database credentials, or other configuration files.
  File Manipulation
File Manipulation enables an attacker to write custom data to files. This potentially leads to injection of arbitrary code on the server.
  Object Injection
Object Injection enables an attacker to inject an object into PHP code, and can lead to arbitrary code execution, file exposure, or file manipulation attacks.
  Code Injection
Code Injection enables an attacker to execute arbitrary code on the server.
  Response Splitting
Response Splitting can be used to send arbitrary responses.
  File Inclusion
File Inclusion enables an attacker to inject custom files into PHP's file loading mechanism, either explicitly passed to include, or for example via PHP's auto-loading mechanism.
  Command Injection
Command Injection enables an attacker to inject a shell command that is execute with the privileges of the web-server. This can be used to expose sensitive data, or gain access of your server.
  SQL Injection
SQL Injection enables an attacker to execute arbitrary SQL code on your database server gaining access to user data, or manipulating user data.
  XPath Injection
XPath Injection enables an attacker to modify the parts of XML document that are read. If that XML document is for example used for authentication, this can lead to further vulnerabilities similar to SQL Injection.
  LDAP Injection
LDAP Injection enables an attacker to inject LDAP statements potentially granting permission to run unauthorized queries, or modify content inside the LDAP tree.
  Header Injection
  Other Vulnerability
This category comprises other attack vectors such as manipulating the PHP runtime, loading custom extensions, freezing the runtime, or similar.
  Regex Injection
Regex Injection enables an attacker to execute arbitrary code in your PHP process.
  XML Injection
XML Injection enables an attacker to read files on your local filesystem including configuration files, or can be abused to freeze your web-server process.
  Variable Injection
Variable Injection enables an attacker to overwrite program variables with custom data, and can lead to further vulnerabilities.
Unfortunately, the security analysis is currently not available for your project. If you are a non-commercial open-source project, please contact support to gain access.

src/MobileApplication.php (1 issue)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

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