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