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