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