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/VideoObject.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\VideoObjectContract;
6
use \Spatie\SchemaOrg\Contracts\CreativeWorkContract;
7
use \Spatie\SchemaOrg\Contracts\MediaObjectContract;
8
use \Spatie\SchemaOrg\Contracts\ThingContract;
9
10
/**
11
 * A video file.
12
 *
13
 * @see http://schema.org/VideoObject
14
 *
15
 */
16 View Code Duplication
class VideoObject extends BaseType implements VideoObjectContract, CreativeWorkContract, MediaObjectContract, ThingContract
0 ignored issues
show
This class seems to be duplicated in your project.

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

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

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