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/MusicAlbum.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\MusicAlbumContract;
6
use \Spatie\SchemaOrg\Contracts\CreativeWorkContract;
7
use \Spatie\SchemaOrg\Contracts\MusicPlaylistContract;
8
use \Spatie\SchemaOrg\Contracts\ThingContract;
9
10
/**
11
 * A collection of music tracks.
12
 *
13
 * @see http://schema.org/MusicAlbum
14
 *
15
 */
16 View Code Duplication
class MusicAlbum extends BaseType implements MusicAlbumContract, CreativeWorkContract, MusicPlaylistContract, ThingContract
0 ignored issues
show
This class seems to be duplicated in your project.

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

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

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