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/NewsArticle.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\NewsArticleContract;
6
use \Spatie\SchemaOrg\Contracts\ArticleContract;
7
use \Spatie\SchemaOrg\Contracts\CreativeWorkContract;
8
use \Spatie\SchemaOrg\Contracts\ThingContract;
9
10
/**
11
 * A NewsArticle is an article whose content reports news, or provides
12
 * background context and supporting materials for understanding the news.
13
 * 
14
 * A more detailed overview of [schema.org News markup](/docs/news.html) is also
15
 * available.
16
 *
17
 * @see http://schema.org/NewsArticle
18
 *
19
 */
20 View Code Duplication
class NewsArticle extends BaseType implements NewsArticleContract, ArticleContract, CreativeWorkContract, ThingContract
0 ignored issues
show
This class seems to be duplicated in your project.

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

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

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