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