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