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/DataFeed.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\DataFeedContract;
6
use \Spatie\SchemaOrg\Contracts\CreativeWorkContract;
7
use \Spatie\SchemaOrg\Contracts\DatasetContract;
8
use \Spatie\SchemaOrg\Contracts\ThingContract;
9
10
/**
11
 * A single feed providing structured information about one or more entities or
12
 * topics.
13
 *
14
 * @see http://schema.org/DataFeed
15
 *
16
 */
17 View Code Duplication
class DataFeed extends BaseType implements DataFeedContract, CreativeWorkContract, DatasetContract, ThingContract
0 ignored issues
show
This class seems to be duplicated in your project.

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

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

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