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