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