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