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/LiveBlogPosting.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\LiveBlogPostingContract;
6
use \Spatie\SchemaOrg\Contracts\ArticleContract;
7
use \Spatie\SchemaOrg\Contracts\BlogPostingContract;
8
use \Spatie\SchemaOrg\Contracts\CreativeWorkContract;
9
use \Spatie\SchemaOrg\Contracts\SocialMediaPostingContract;
10
use \Spatie\SchemaOrg\Contracts\ThingContract;
11
12
/**
13
 * A blog post intended to provide a rolling textual coverage of an ongoing
14
 * event through continuous updates.
15
 *
16
 * @see http://schema.org/LiveBlogPosting
17
 *
18
 */
19 View Code Duplication
class LiveBlogPosting extends BaseType implements LiveBlogPostingContract, ArticleContract, BlogPostingContract, CreativeWorkContract, SocialMediaPostingContract, ThingContract
0 ignored issues
show
This class seems to be duplicated in your project.

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

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

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