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