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