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