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