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