vendor/spatie/schema-org/src/ImageObject.php line 16

Open in your IDE?
  1. <?php
  2. namespace Spatie\SchemaOrg;
  3. use Spatie\SchemaOrg\Contracts\CreativeWorkContract;
  4. use Spatie\SchemaOrg\Contracts\ImageObjectContract;
  5. use Spatie\SchemaOrg\Contracts\MediaObjectContract;
  6. use Spatie\SchemaOrg\Contracts\ThingContract;
  7. /**
  8.  * An image file.
  9.  *
  10.  * @see https://schema.org/ImageObject
  11.  *
  12.  */
  13. class ImageObject extends BaseType implements ImageObjectContractCreativeWorkContractMediaObjectContractThingContract
  14. {
  15.     /**
  16.      * The subject matter of the content.
  17.      *
  18.      * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $about
  19.      *
  20.      * @return static
  21.      *
  22.      * @see https://schema.org/about
  23.      * @link https://github.com/schemaorg/schemaorg/issues/1670
  24.      */
  25.     public function about($about)
  26.     {
  27.         return $this->setProperty('about'$about);
  28.     }
  29.     /**
  30.      * An abstract is a short description that summarizes a [[CreativeWork]].
  31.      *
  32.      * @param string|string[] $abstract
  33.      *
  34.      * @return static
  35.      *
  36.      * @see https://schema.org/abstract
  37.      * @see https://pending.schema.org
  38.      * @link https://github.com/schemaorg/schemaorg/issues/276
  39.      */
  40.     public function abstract($abstract)
  41.     {
  42.         return $this->setProperty('abstract'$abstract);
  43.     }
  44.     /**
  45.      * The human sensory perceptual system or cognitive faculty through which a
  46.      * person may process or perceive information. Values should be drawn from
  47.      * the [approved
  48.      * vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).
  49.      *
  50.      * @param string|string[] $accessMode
  51.      *
  52.      * @return static
  53.      *
  54.      * @see https://schema.org/accessMode
  55.      * @link https://github.com/schemaorg/schemaorg/issues/1100
  56.      */
  57.     public function accessMode($accessMode)
  58.     {
  59.         return $this->setProperty('accessMode'$accessMode);
  60.     }
  61.     /**
  62.      * A list of single or combined accessModes that are sufficient to
  63.      * understand all the intellectual content of a resource. Values should be
  64.      * drawn from the [approved
  65.      * vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).
  66.      *
  67.      * @param \Spatie\SchemaOrg\Contracts\ItemListContract|\Spatie\SchemaOrg\Contracts\ItemListContract[] $accessModeSufficient
  68.      *
  69.      * @return static
  70.      *
  71.      * @see https://schema.org/accessModeSufficient
  72.      * @link https://github.com/schemaorg/schemaorg/issues/1100
  73.      */
  74.     public function accessModeSufficient($accessModeSufficient)
  75.     {
  76.         return $this->setProperty('accessModeSufficient'$accessModeSufficient);
  77.     }
  78.     /**
  79.      * Indicates that the resource is compatible with the referenced
  80.      * accessibility API. Values should be drawn from the [approved
  81.      * vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).
  82.      *
  83.      * @param string|string[] $accessibilityAPI
  84.      *
  85.      * @return static
  86.      *
  87.      * @see https://schema.org/accessibilityAPI
  88.      */
  89.     public function accessibilityAPI($accessibilityAPI)
  90.     {
  91.         return $this->setProperty('accessibilityAPI'$accessibilityAPI);
  92.     }
  93.     /**
  94.      * Identifies input methods that are sufficient to fully control the
  95.      * described resource. Values should be drawn from the [approved
  96.      * vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).
  97.      *
  98.      * @param string|string[] $accessibilityControl
  99.      *
  100.      * @return static
  101.      *
  102.      * @see https://schema.org/accessibilityControl
  103.      */
  104.     public function accessibilityControl($accessibilityControl)
  105.     {
  106.         return $this->setProperty('accessibilityControl'$accessibilityControl);
  107.     }
  108.     /**
  109.      * Content features of the resource, such as accessible media, alternatives
  110.      * and supported enhancements for accessibility. Values should be drawn from
  111.      * the [approved
  112.      * vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).
  113.      *
  114.      * @param string|string[] $accessibilityFeature
  115.      *
  116.      * @return static
  117.      *
  118.      * @see https://schema.org/accessibilityFeature
  119.      */
  120.     public function accessibilityFeature($accessibilityFeature)
  121.     {
  122.         return $this->setProperty('accessibilityFeature'$accessibilityFeature);
  123.     }
  124.     /**
  125.      * A characteristic of the described resource that is physiologically
  126.      * dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should
  127.      * be drawn from the [approved
  128.      * vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).
  129.      *
  130.      * @param string|string[] $accessibilityHazard
  131.      *
  132.      * @return static
  133.      *
  134.      * @see https://schema.org/accessibilityHazard
  135.      */
  136.     public function accessibilityHazard($accessibilityHazard)
  137.     {
  138.         return $this->setProperty('accessibilityHazard'$accessibilityHazard);
  139.     }
  140.     /**
  141.      * A human-readable summary of specific accessibility features or
  142.      * deficiencies, consistent with the other accessibility metadata but
  143.      * expressing subtleties such as "short descriptions are present but long
  144.      * descriptions will be needed for non-visual users" or "short descriptions
  145.      * are present and no long descriptions are needed."
  146.      *
  147.      * @param string|string[] $accessibilitySummary
  148.      *
  149.      * @return static
  150.      *
  151.      * @see https://schema.org/accessibilitySummary
  152.      * @link https://github.com/schemaorg/schemaorg/issues/1100
  153.      */
  154.     public function accessibilitySummary($accessibilitySummary)
  155.     {
  156.         return $this->setProperty('accessibilitySummary'$accessibilitySummary);
  157.     }
  158.     /**
  159.      * Specifies the Person that is legally accountable for the CreativeWork.
  160.      *
  161.      * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $accountablePerson
  162.      *
  163.      * @return static
  164.      *
  165.      * @see https://schema.org/accountablePerson
  166.      */
  167.     public function accountablePerson($accountablePerson)
  168.     {
  169.         return $this->setProperty('accountablePerson'$accountablePerson);
  170.     }
  171.     /**
  172.      * Indicates a page documenting how licenses can be purchased or otherwise
  173.      * acquired, for the current item.
  174.      *
  175.      * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $acquireLicensePage
  176.      *
  177.      * @return static
  178.      *
  179.      * @see https://schema.org/acquireLicensePage
  180.      * @see https://pending.schema.org
  181.      * @link https://github.com/schemaorg/schemaorg/issues/2454
  182.      */
  183.     public function acquireLicensePage($acquireLicensePage)
  184.     {
  185.         return $this->setProperty('acquireLicensePage'$acquireLicensePage);
  186.     }
  187.     /**
  188.      * An additional type for the item, typically used for adding more specific
  189.      * types from external vocabularies in microdata syntax. This is a
  190.      * relationship between something and a class that the thing is in. In RDFa
  191.      * syntax, it is better to use the native RDFa syntax - the 'typeof'
  192.      * attribute - for multiple types. Schema.org tools may have only weaker
  193.      * understanding of extra types, in particular those defined externally.
  194.      *
  195.      * @param string|string[] $additionalType
  196.      *
  197.      * @return static
  198.      *
  199.      * @see https://schema.org/additionalType
  200.      */
  201.     public function additionalType($additionalType)
  202.     {
  203.         return $this->setProperty('additionalType'$additionalType);
  204.     }
  205.     /**
  206.      * The overall rating, based on a collection of reviews or ratings, of the
  207.      * item.
  208.      *
  209.      * @param \Spatie\SchemaOrg\Contracts\AggregateRatingContract|\Spatie\SchemaOrg\Contracts\AggregateRatingContract[] $aggregateRating
  210.      *
  211.      * @return static
  212.      *
  213.      * @see https://schema.org/aggregateRating
  214.      */
  215.     public function aggregateRating($aggregateRating)
  216.     {
  217.         return $this->setProperty('aggregateRating'$aggregateRating);
  218.     }
  219.     /**
  220.      * An alias for the item.
  221.      *
  222.      * @param string|string[] $alternateName
  223.      *
  224.      * @return static
  225.      *
  226.      * @see https://schema.org/alternateName
  227.      */
  228.     public function alternateName($alternateName)
  229.     {
  230.         return $this->setProperty('alternateName'$alternateName);
  231.     }
  232.     /**
  233.      * A secondary title of the CreativeWork.
  234.      *
  235.      * @param string|string[] $alternativeHeadline
  236.      *
  237.      * @return static
  238.      *
  239.      * @see https://schema.org/alternativeHeadline
  240.      */
  241.     public function alternativeHeadline($alternativeHeadline)
  242.     {
  243.         return $this->setProperty('alternativeHeadline'$alternativeHeadline);
  244.     }
  245.     /**
  246.      * Indicates a page or other link involved in archival of a
  247.      * [[CreativeWork]]. In the case of [[MediaReview]], the items in a
  248.      * [[MediaReviewItem]] may often become inaccessible, but be archived by
  249.      * archival, journalistic, activist, or law enforcement organizations. In
  250.      * such cases, the referenced page may not directly publish the content.
  251.      *
  252.      * @param \Spatie\SchemaOrg\Contracts\WebPageContract|\Spatie\SchemaOrg\Contracts\WebPageContract[]|string|string[] $archivedAt
  253.      *
  254.      * @return static
  255.      *
  256.      * @see https://schema.org/archivedAt
  257.      * @see https://pending.schema.org
  258.      * @link https://github.com/schemaorg/schemaorg/issues/2450
  259.      */
  260.     public function archivedAt($archivedAt)
  261.     {
  262.         return $this->setProperty('archivedAt'$archivedAt);
  263.     }
  264.     /**
  265.      * The item being described is intended to assess the competency or learning
  266.      * outcome defined by the referenced term.
  267.      *
  268.      * @param \Spatie\SchemaOrg\Contracts\DefinedTermContract|\Spatie\SchemaOrg\Contracts\DefinedTermContract[]|string|string[] $assesses
  269.      *
  270.      * @return static
  271.      *
  272.      * @see https://schema.org/assesses
  273.      * @see https://pending.schema.org
  274.      * @link https://github.com/schemaorg/schemaorg/issues/2427
  275.      */
  276.     public function assesses($assesses)
  277.     {
  278.         return $this->setProperty('assesses'$assesses);
  279.     }
  280.     /**
  281.      * A NewsArticle associated with the Media Object.
  282.      *
  283.      * @param \Spatie\SchemaOrg\Contracts\NewsArticleContract|\Spatie\SchemaOrg\Contracts\NewsArticleContract[] $associatedArticle
  284.      *
  285.      * @return static
  286.      *
  287.      * @see https://schema.org/associatedArticle
  288.      */
  289.     public function associatedArticle($associatedArticle)
  290.     {
  291.         return $this->setProperty('associatedArticle'$associatedArticle);
  292.     }
  293.     /**
  294.      * A media object that encodes this CreativeWork. This property is a synonym
  295.      * for encoding.
  296.      *
  297.      * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $associatedMedia
  298.      *
  299.      * @return static
  300.      *
  301.      * @see https://schema.org/associatedMedia
  302.      */
  303.     public function associatedMedia($associatedMedia)
  304.     {
  305.         return $this->setProperty('associatedMedia'$associatedMedia);
  306.     }
  307.     /**
  308.      * An intended audience, i.e. a group for whom something was created.
  309.      *
  310.      * @param \Spatie\SchemaOrg\Contracts\AudienceContract|\Spatie\SchemaOrg\Contracts\AudienceContract[] $audience
  311.      *
  312.      * @return static
  313.      *
  314.      * @see https://schema.org/audience
  315.      */
  316.     public function audience($audience)
  317.     {
  318.         return $this->setProperty('audience'$audience);
  319.     }
  320.     /**
  321.      * An embedded audio object.
  322.      *
  323.      * @param \Spatie\SchemaOrg\Contracts\AudioObjectContract|\Spatie\SchemaOrg\Contracts\AudioObjectContract[]|\Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[]|\Spatie\SchemaOrg\Contracts\MusicRecordingContract|\Spatie\SchemaOrg\Contracts\MusicRecordingContract[] $audio
  324.      *
  325.      * @return static
  326.      *
  327.      * @see https://schema.org/audio
  328.      * @link https://github.com/schemaorg/schemaorg/issues/2420
  329.      */
  330.     public function audio($audio)
  331.     {
  332.         return $this->setProperty('audio'$audio);
  333.     }
  334.     /**
  335.      * The author of this content or rating. Please note that author is special
  336.      * in that HTML 5 provides a special mechanism for indicating authorship via
  337.      * the rel tag. That is equivalent to this and may be used interchangeably.
  338.      *
  339.      * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $author
  340.      *
  341.      * @return static
  342.      *
  343.      * @see https://schema.org/author
  344.      */
  345.     public function author($author)
  346.     {
  347.         return $this->setProperty('author'$author);
  348.     }
  349.     /**
  350.      * An award won by or for this item.
  351.      *
  352.      * @param string|string[] $award
  353.      *
  354.      * @return static
  355.      *
  356.      * @see https://schema.org/award
  357.      */
  358.     public function award($award)
  359.     {
  360.         return $this->setProperty('award'$award);
  361.     }
  362.     /**
  363.      * Awards won by or for this item.
  364.      *
  365.      * @param string|string[] $awards
  366.      *
  367.      * @return static
  368.      *
  369.      * @see https://schema.org/awards
  370.      */
  371.     public function awards($awards)
  372.     {
  373.         return $this->setProperty('awards'$awards);
  374.     }
  375.     /**
  376.      * The bitrate of the media object.
  377.      *
  378.      * @param string|string[] $bitrate
  379.      *
  380.      * @return static
  381.      *
  382.      * @see https://schema.org/bitrate
  383.      */
  384.     public function bitrate($bitrate)
  385.     {
  386.         return $this->setProperty('bitrate'$bitrate);
  387.     }
  388.     /**
  389.      * The caption for this object. For downloadable machine formats (closed
  390.      * caption, subtitles etc.) use MediaObject and indicate the
  391.      * [[encodingFormat]].
  392.      *
  393.      * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[]|string|string[] $caption
  394.      *
  395.      * @return static
  396.      *
  397.      * @see https://schema.org/caption
  398.      */
  399.     public function caption($caption)
  400.     {
  401.         return $this->setProperty('caption'$caption);
  402.     }
  403.     /**
  404.      * Fictional person connected with a creative work.
  405.      *
  406.      * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $character
  407.      *
  408.      * @return static
  409.      *
  410.      * @see https://schema.org/character
  411.      */
  412.     public function character($character)
  413.     {
  414.         return $this->setProperty('character'$character);
  415.     }
  416.     /**
  417.      * A citation or reference to another creative work, such as another
  418.      * publication, web page, scholarly article, etc.
  419.      *
  420.      * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $citation
  421.      *
  422.      * @return static
  423.      *
  424.      * @see https://schema.org/citation
  425.      */
  426.     public function citation($citation)
  427.     {
  428.         return $this->setProperty('citation'$citation);
  429.     }
  430.     /**
  431.      * Comments, typically from users.
  432.      *
  433.      * @param \Spatie\SchemaOrg\Contracts\CommentContract|\Spatie\SchemaOrg\Contracts\CommentContract[] $comment
  434.      *
  435.      * @return static
  436.      *
  437.      * @see https://schema.org/comment
  438.      */
  439.     public function comment($comment)
  440.     {
  441.         return $this->setProperty('comment'$comment);
  442.     }
  443.     /**
  444.      * The number of comments this CreativeWork (e.g. Article, Question or
  445.      * Answer) has received. This is most applicable to works published in Web
  446.      * sites with commenting system; additional comments may exist elsewhere.
  447.      *
  448.      * @param int|int[] $commentCount
  449.      *
  450.      * @return static
  451.      *
  452.      * @see https://schema.org/commentCount
  453.      */
  454.     public function commentCount($commentCount)
  455.     {
  456.         return $this->setProperty('commentCount'$commentCount);
  457.     }
  458.     /**
  459.      * Conditions that affect the availability of, or method(s) of access to, an
  460.      * item. Typically used for real world items such as an [[ArchiveComponent]]
  461.      * held by an [[ArchiveOrganization]]. This property is not suitable for use
  462.      * as a general Web access control mechanism. It is expressed only in
  463.      * natural language.
  464.      *
  465.      * For example "Available by appointment from the Reading Room" or
  466.      * "Accessible only from logged-in accounts ".
  467.      *
  468.      * @param string|string[] $conditionsOfAccess
  469.      *
  470.      * @return static
  471.      *
  472.      * @see https://schema.org/conditionsOfAccess
  473.      * @see https://pending.schema.org
  474.      * @link https://github.com/schemaorg/schemaorg/issues/2173
  475.      */
  476.     public function conditionsOfAccess($conditionsOfAccess)
  477.     {
  478.         return $this->setProperty('conditionsOfAccess'$conditionsOfAccess);
  479.     }
  480.     /**
  481.      * The location depicted or described in the content. For example, the
  482.      * location in a photograph or painting.
  483.      *
  484.      * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $contentLocation
  485.      *
  486.      * @return static
  487.      *
  488.      * @see https://schema.org/contentLocation
  489.      */
  490.     public function contentLocation($contentLocation)
  491.     {
  492.         return $this->setProperty('contentLocation'$contentLocation);
  493.     }
  494.     /**
  495.      * Official rating of a piece of content&#x2014;for example, 'MPAA PG-13'.
  496.      *
  497.      * @param \Spatie\SchemaOrg\Contracts\RatingContract|\Spatie\SchemaOrg\Contracts\RatingContract[]|string|string[] $contentRating
  498.      *
  499.      * @return static
  500.      *
  501.      * @see https://schema.org/contentRating
  502.      */
  503.     public function contentRating($contentRating)
  504.     {
  505.         return $this->setProperty('contentRating'$contentRating);
  506.     }
  507.     /**
  508.      * The specific time described by a creative work, for works (e.g. articles,
  509.      * video objects etc.) that emphasise a particular moment within an Event.
  510.      *
  511.      * @param \DateTimeInterface|\DateTimeInterface[] $contentReferenceTime
  512.      *
  513.      * @return static
  514.      *
  515.      * @see https://schema.org/contentReferenceTime
  516.      * @see https://pending.schema.org
  517.      * @link https://github.com/schemaorg/schemaorg/issues/1050
  518.      */
  519.     public function contentReferenceTime($contentReferenceTime)
  520.     {
  521.         return $this->setProperty('contentReferenceTime'$contentReferenceTime);
  522.     }
  523.     /**
  524.      * File size in (mega/kilo)bytes.
  525.      *
  526.      * @param string|string[] $contentSize
  527.      *
  528.      * @return static
  529.      *
  530.      * @see https://schema.org/contentSize
  531.      */
  532.     public function contentSize($contentSize)
  533.     {
  534.         return $this->setProperty('contentSize'$contentSize);
  535.     }
  536.     /**
  537.      * Actual bytes of the media object, for example the image file or video
  538.      * file.
  539.      *
  540.      * @param string|string[] $contentUrl
  541.      *
  542.      * @return static
  543.      *
  544.      * @see https://schema.org/contentUrl
  545.      */
  546.     public function contentUrl($contentUrl)
  547.     {
  548.         return $this->setProperty('contentUrl'$contentUrl);
  549.     }
  550.     /**
  551.      * A secondary contributor to the CreativeWork or Event.
  552.      *
  553.      * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $contributor
  554.      *
  555.      * @return static
  556.      *
  557.      * @see https://schema.org/contributor
  558.      */
  559.     public function contributor($contributor)
  560.     {
  561.         return $this->setProperty('contributor'$contributor);
  562.     }
  563.     /**
  564.      * The party holding the legal copyright to the CreativeWork.
  565.      *
  566.      * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $copyrightHolder
  567.      *
  568.      * @return static
  569.      *
  570.      * @see https://schema.org/copyrightHolder
  571.      */
  572.     public function copyrightHolder($copyrightHolder)
  573.     {
  574.         return $this->setProperty('copyrightHolder'$copyrightHolder);
  575.     }
  576.     /**
  577.      * Text of a notice appropriate for describing the copyright aspects of this
  578.      * Creative Work, ideally indicating the owner of the copyright for the
  579.      * Work.
  580.      *
  581.      * @param string|string[] $copyrightNotice
  582.      *
  583.      * @return static
  584.      *
  585.      * @see https://schema.org/copyrightNotice
  586.      * @see https://pending.schema.org
  587.      * @link https://github.com/schemaorg/schemaorg/issues/2659
  588.      */
  589.     public function copyrightNotice($copyrightNotice)
  590.     {
  591.         return $this->setProperty('copyrightNotice'$copyrightNotice);
  592.     }
  593.     /**
  594.      * The year during which the claimed copyright for the CreativeWork was
  595.      * first asserted.
  596.      *
  597.      * @param float|float[]|int|int[] $copyrightYear
  598.      *
  599.      * @return static
  600.      *
  601.      * @see https://schema.org/copyrightYear
  602.      */
  603.     public function copyrightYear($copyrightYear)
  604.     {
  605.         return $this->setProperty('copyrightYear'$copyrightYear);
  606.     }
  607.     /**
  608.      * Indicates a correction to a [[CreativeWork]], either via a
  609.      * [[CorrectionComment]], textually or in another document.
  610.      *
  611.      * @param \Spatie\SchemaOrg\Contracts\CorrectionCommentContract|\Spatie\SchemaOrg\Contracts\CorrectionCommentContract[]|string|string[] $correction
  612.      *
  613.      * @return static
  614.      *
  615.      * @see https://schema.org/correction
  616.      * @see https://pending.schema.org
  617.      */
  618.     public function correction($correction)
  619.     {
  620.         return $this->setProperty('correction'$correction);
  621.     }
  622.     /**
  623.      * The country of origin of something, including products as well as
  624.      * creative  works such as movie and TV content.
  625.      *
  626.      * In the case of TV and movie, this would be the country of the principle
  627.      * offices of the production company or individual responsible for the
  628.      * movie. For other kinds of [[CreativeWork]] it is difficult to provide
  629.      * fully general guidance, and properties such as [[contentLocation]] and
  630.      * [[locationCreated]] may be more applicable.
  631.      *
  632.      * In the case of products, the country of origin of the product. The exact
  633.      * interpretation of this may vary by context and product type, and cannot
  634.      * be fully enumerated here.
  635.      *
  636.      * @param \Spatie\SchemaOrg\Contracts\CountryContract|\Spatie\SchemaOrg\Contracts\CountryContract[] $countryOfOrigin
  637.      *
  638.      * @return static
  639.      *
  640.      * @see https://schema.org/countryOfOrigin
  641.      */
  642.     public function countryOfOrigin($countryOfOrigin)
  643.     {
  644.         return $this->setProperty('countryOfOrigin'$countryOfOrigin);
  645.     }
  646.     /**
  647.      * The status of a creative work in terms of its stage in a lifecycle.
  648.      * Example terms include Incomplete, Draft, Published, Obsolete. Some
  649.      * organizations define a set of terms for the stages of their publication
  650.      * lifecycle.
  651.      *
  652.      * @param \Spatie\SchemaOrg\Contracts\DefinedTermContract|\Spatie\SchemaOrg\Contracts\DefinedTermContract[]|string|string[] $creativeWorkStatus
  653.      *
  654.      * @return static
  655.      *
  656.      * @see https://schema.org/creativeWorkStatus
  657.      * @see https://pending.schema.org
  658.      * @link https://github.com/schemaorg/schemaorg/issues/987
  659.      */
  660.     public function creativeWorkStatus($creativeWorkStatus)
  661.     {
  662.         return $this->setProperty('creativeWorkStatus'$creativeWorkStatus);
  663.     }
  664.     /**
  665.      * The creator/author of this CreativeWork. This is the same as the Author
  666.      * property for CreativeWork.
  667.      *
  668.      * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $creator
  669.      *
  670.      * @return static
  671.      *
  672.      * @see https://schema.org/creator
  673.      */
  674.     public function creator($creator)
  675.     {
  676.         return $this->setProperty('creator'$creator);
  677.     }
  678.     /**
  679.      * Text that can be used to credit person(s) and/or organization(s)
  680.      * associated with a published Creative Work.
  681.      *
  682.      * @param string|string[] $creditText
  683.      *
  684.      * @return static
  685.      *
  686.      * @see https://schema.org/creditText
  687.      * @see https://pending.schema.org
  688.      * @link https://github.com/schemaorg/schemaorg/issues/2659
  689.      */
  690.     public function creditText($creditText)
  691.     {
  692.         return $this->setProperty('creditText'$creditText);
  693.     }
  694.     /**
  695.      * The date on which the CreativeWork was created or the item was added to a
  696.      * DataFeed.
  697.      *
  698.      * @param \DateTimeInterface|\DateTimeInterface[] $dateCreated
  699.      *
  700.      * @return static
  701.      *
  702.      * @see https://schema.org/dateCreated
  703.      */
  704.     public function dateCreated($dateCreated)
  705.     {
  706.         return $this->setProperty('dateCreated'$dateCreated);
  707.     }
  708.     /**
  709.      * The date on which the CreativeWork was most recently modified or when the
  710.      * item's entry was modified within a DataFeed.
  711.      *
  712.      * @param \DateTimeInterface|\DateTimeInterface[] $dateModified
  713.      *
  714.      * @return static
  715.      *
  716.      * @see https://schema.org/dateModified
  717.      */
  718.     public function dateModified($dateModified)
  719.     {
  720.         return $this->setProperty('dateModified'$dateModified);
  721.     }
  722.     /**
  723.      * Date of first broadcast/publication.
  724.      *
  725.      * @param \DateTimeInterface|\DateTimeInterface[] $datePublished
  726.      *
  727.      * @return static
  728.      *
  729.      * @see https://schema.org/datePublished
  730.      */
  731.     public function datePublished($datePublished)
  732.     {
  733.         return $this->setProperty('datePublished'$datePublished);
  734.     }
  735.     /**
  736.      * A description of the item.
  737.      *
  738.      * @param string|string[] $description
  739.      *
  740.      * @return static
  741.      *
  742.      * @see https://schema.org/description
  743.      */
  744.     public function description($description)
  745.     {
  746.         return $this->setProperty('description'$description);
  747.     }
  748.     /**
  749.      * A sub property of description. A short description of the item used to
  750.      * disambiguate from other, similar items. Information from other properties
  751.      * (in particular, name) may be necessary for the description to be useful
  752.      * for disambiguation.
  753.      *
  754.      * @param string|string[] $disambiguatingDescription
  755.      *
  756.      * @return static
  757.      *
  758.      * @see https://schema.org/disambiguatingDescription
  759.      */
  760.     public function disambiguatingDescription($disambiguatingDescription)
  761.     {
  762.         return $this->setProperty('disambiguatingDescription'$disambiguatingDescription);
  763.     }
  764.     /**
  765.      * A link to the page containing the comments of the CreativeWork.
  766.      *
  767.      * @param string|string[] $discussionUrl
  768.      *
  769.      * @return static
  770.      *
  771.      * @see https://schema.org/discussionUrl
  772.      */
  773.     public function discussionUrl($discussionUrl)
  774.     {
  775.         return $this->setProperty('discussionUrl'$discussionUrl);
  776.     }
  777.     /**
  778.      * The duration of the item (movie, audio recording, event, etc.) in [ISO
  779.      * 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).
  780.      *
  781.      * @param \Spatie\SchemaOrg\Contracts\DurationContract|\Spatie\SchemaOrg\Contracts\DurationContract[] $duration
  782.      *
  783.      * @return static
  784.      *
  785.      * @see https://schema.org/duration
  786.      */
  787.     public function duration($duration)
  788.     {
  789.         return $this->setProperty('duration'$duration);
  790.     }
  791.     /**
  792.      * An [EIDR](https://eidr.org/) (Entertainment Identifier Registry)
  793.      * [[identifier]] representing a specific edit / edition for a work of film
  794.      * or television.
  795.      *
  796.      * For example, the motion picture known as "Ghostbusters" whose
  797.      * [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits,
  798.      * e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and
  799.      * "10.5240/8A35-3BEE-6497-5D12-9E4F-3".
  800.      *
  801.      * Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for
  802.      * both works and their multiple expressions, it is possible to use
  803.      * [[titleEIDR]] alone (for a general description), or alongside
  804.      * [[editEIDR]] for a more edit-specific description.
  805.      *
  806.      * @param string|string[] $editEIDR
  807.      *
  808.      * @return static
  809.      *
  810.      * @see https://schema.org/editEIDR
  811.      * @see https://pending.schema.org
  812.      * @link https://github.com/schemaorg/schemaorg/issues/2469
  813.      */
  814.     public function editEIDR($editEIDR)
  815.     {
  816.         return $this->setProperty('editEIDR'$editEIDR);
  817.     }
  818.     /**
  819.      * Specifies the Person who edited the CreativeWork.
  820.      *
  821.      * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $editor
  822.      *
  823.      * @return static
  824.      *
  825.      * @see https://schema.org/editor
  826.      */
  827.     public function editor($editor)
  828.     {
  829.         return $this->setProperty('editor'$editor);
  830.     }
  831.     /**
  832.      * An alignment to an established educational framework.
  833.      *
  834.      * This property should not be used where the nature of the alignment can be
  835.      * described using a simple property, for example to express that a resource
  836.      * [[teaches]] or [[assesses]] a competency.
  837.      *
  838.      * @param \Spatie\SchemaOrg\Contracts\AlignmentObjectContract|\Spatie\SchemaOrg\Contracts\AlignmentObjectContract[] $educationalAlignment
  839.      *
  840.      * @return static
  841.      *
  842.      * @see https://schema.org/educationalAlignment
  843.      */
  844.     public function educationalAlignment($educationalAlignment)
  845.     {
  846.         return $this->setProperty('educationalAlignment'$educationalAlignment);
  847.     }
  848.     /**
  849.      * The level in terms of progression through an educational or training
  850.      * context. Examples of educational levels include 'beginner',
  851.      * 'intermediate' or 'advanced', and formal sets of level indicators.
  852.      *
  853.      * @param \Spatie\SchemaOrg\Contracts\DefinedTermContract|\Spatie\SchemaOrg\Contracts\DefinedTermContract[]|string|string[] $educationalLevel
  854.      *
  855.      * @return static
  856.      *
  857.      * @see https://schema.org/educationalLevel
  858.      * @see https://pending.schema.org
  859.      * @link https://github.com/schemaorg/schemaorg/issues/1779
  860.      */
  861.     public function educationalLevel($educationalLevel)
  862.     {
  863.         return $this->setProperty('educationalLevel'$educationalLevel);
  864.     }
  865.     /**
  866.      * The purpose of a work in the context of education; for example,
  867.      * 'assignment', 'group work'.
  868.      *
  869.      * @param \Spatie\SchemaOrg\Contracts\DefinedTermContract|\Spatie\SchemaOrg\Contracts\DefinedTermContract[]|string|string[] $educationalUse
  870.      *
  871.      * @return static
  872.      *
  873.      * @see https://schema.org/educationalUse
  874.      */
  875.     public function educationalUse($educationalUse)
  876.     {
  877.         return $this->setProperty('educationalUse'$educationalUse);
  878.     }
  879.     /**
  880.      * A URL pointing to a player for a specific video. In general, this is the
  881.      * information in the ```src``` element of an ```embed``` tag and should not
  882.      * be the same as the content of the ```loc``` tag.
  883.      *
  884.      * @param string|string[] $embedUrl
  885.      *
  886.      * @return static
  887.      *
  888.      * @see https://schema.org/embedUrl
  889.      */
  890.     public function embedUrl($embedUrl)
  891.     {
  892.         return $this->setProperty('embedUrl'$embedUrl);
  893.     }
  894.     /**
  895.      * Represents textual captioning from a [[MediaObject]], e.g. text of a
  896.      * 'meme'.
  897.      *
  898.      * @param string|string[] $embeddedTextCaption
  899.      *
  900.      * @return static
  901.      *
  902.      * @see https://schema.org/embeddedTextCaption
  903.      * @see https://pending.schema.org
  904.      * @link https://github.com/schemaorg/schemaorg/issues/2450
  905.      */
  906.     public function embeddedTextCaption($embeddedTextCaption)
  907.     {
  908.         return $this->setProperty('embeddedTextCaption'$embeddedTextCaption);
  909.     }
  910.     /**
  911.      * The CreativeWork encoded by this media object.
  912.      *
  913.      * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $encodesCreativeWork
  914.      *
  915.      * @return static
  916.      *
  917.      * @see https://schema.org/encodesCreativeWork
  918.      */
  919.     public function encodesCreativeWork($encodesCreativeWork)
  920.     {
  921.         return $this->setProperty('encodesCreativeWork'$encodesCreativeWork);
  922.     }
  923.     /**
  924.      * A media object that encodes this CreativeWork. This property is a synonym
  925.      * for associatedMedia.
  926.      *
  927.      * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encoding
  928.      *
  929.      * @return static
  930.      *
  931.      * @see https://schema.org/encoding
  932.      */
  933.     public function encoding($encoding)
  934.     {
  935.         return $this->setProperty('encoding'$encoding);
  936.     }
  937.     /**
  938.      * Media type typically expressed using a MIME format (see [IANA
  939.      * site](http://www.iana.org/assignments/media-types/media-types.xhtml) and
  940.      * [MDN
  941.      * reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)),
  942.      * e.g. application/zip for a SoftwareApplication binary, audio/mpeg for
  943.      * .mp3 etc.
  944.      *
  945.      * In cases where a [[CreativeWork]] has several media type representations,
  946.      * [[encoding]] can be used to indicate each [[MediaObject]] alongside
  947.      * particular [[encodingFormat]] information.
  948.      *
  949.      * Unregistered or niche encoding and file formats can be indicated instead
  950.      * via the most appropriate URL, e.g. defining Web page or a
  951.      * Wikipedia/Wikidata entry.
  952.      *
  953.      * @param string|string[] $encodingFormat
  954.      *
  955.      * @return static
  956.      *
  957.      * @see https://schema.org/encodingFormat
  958.      */
  959.     public function encodingFormat($encodingFormat)
  960.     {
  961.         return $this->setProperty('encodingFormat'$encodingFormat);
  962.     }
  963.     /**
  964.      * A media object that encodes this CreativeWork.
  965.      *
  966.      * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encodings
  967.      *
  968.      * @return static
  969.      *
  970.      * @see https://schema.org/encodings
  971.      */
  972.     public function encodings($encodings)
  973.     {
  974.         return $this->setProperty('encodings'$encodings);
  975.     }
  976.     /**
  977.      * The endTime of something. For a reserved event or service (e.g.
  978.      * FoodEstablishmentReservation), the time that it is expected to end. For
  979.      * actions that span a period of time, when the action was performed. E.g.
  980.      * John wrote a book from January to *December*. For media, including audio
  981.      * and video, it's the time offset of the end of a clip within a larger
  982.      * file.
  983.      *
  984.      * Note that Event uses startDate/endDate instead of startTime/endTime, even
  985.      * when describing dates with times. This situation may be clarified in
  986.      * future revisions.
  987.      *
  988.      * @param \DateTimeInterface|\DateTimeInterface[] $endTime
  989.      *
  990.      * @return static
  991.      *
  992.      * @see https://schema.org/endTime
  993.      * @link https://github.com/schemaorg/schemaorg/issues/2493
  994.      */
  995.     public function endTime($endTime)
  996.     {
  997.         return $this->setProperty('endTime'$endTime);
  998.     }
  999.     /**
  1000.      * A creative work that this work is an
  1001.      * example/instance/realization/derivation of.
  1002.      *
  1003.      * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $exampleOfWork
  1004.      *
  1005.      * @return static
  1006.      *
  1007.      * @see https://schema.org/exampleOfWork
  1008.      * @link http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_bibex
  1009.      */
  1010.     public function exampleOfWork($exampleOfWork)
  1011.     {
  1012.         return $this->setProperty('exampleOfWork'$exampleOfWork);
  1013.     }
  1014.     /**
  1015.      * exif data for this object.
  1016.      *
  1017.      * @param \Spatie\SchemaOrg\Contracts\PropertyValueContract|\Spatie\SchemaOrg\Contracts\PropertyValueContract[]|string|string[] $exifData
  1018.      *
  1019.      * @return static
  1020.      *
  1021.      * @see https://schema.org/exifData
  1022.      */
  1023.     public function exifData($exifData)
  1024.     {
  1025.         return $this->setProperty('exifData'$exifData);
  1026.     }
  1027.     /**
  1028.      * Date the content expires and is no longer useful or available. For
  1029.      * example a [[VideoObject]] or [[NewsArticle]] whose availability or
  1030.      * relevance is time-limited, or a [[ClaimReview]] fact check whose
  1031.      * publisher wants to indicate that it may no longer be relevant (or helpful
  1032.      * to highlight) after some date.
  1033.      *
  1034.      * @param \DateTimeInterface|\DateTimeInterface[] $expires
  1035.      *
  1036.      * @return static
  1037.      *
  1038.      * @see https://schema.org/expires
  1039.      */
  1040.     public function expires($expires)
  1041.     {
  1042.         return $this->setProperty('expires'$expires);
  1043.     }
  1044.     /**
  1045.      * Media type, typically MIME format (see [IANA
  1046.      * site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of
  1047.      * the content, e.g. application/zip of a SoftwareApplication binary. In
  1048.      * cases where a CreativeWork has several media type representations,
  1049.      * 'encoding' can be used to indicate each MediaObject alongside particular
  1050.      * fileFormat information. Unregistered or niche file formats can be
  1051.      * indicated instead via the most appropriate URL, e.g. defining Web page or
  1052.      * a Wikipedia entry.
  1053.      *
  1054.      * @param string|string[] $fileFormat
  1055.      *
  1056.      * @return static
  1057.      *
  1058.      * @see https://schema.org/fileFormat
  1059.      */
  1060.     public function fileFormat($fileFormat)
  1061.     {
  1062.         return $this->setProperty('fileFormat'$fileFormat);
  1063.     }
  1064.     /**
  1065.      * A person or organization that supports (sponsors) something through some
  1066.      * kind of financial contribution.
  1067.      *
  1068.      * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $funder
  1069.      *
  1070.      * @return static
  1071.      *
  1072.      * @see https://schema.org/funder
  1073.      */
  1074.     public function funder($funder)
  1075.     {
  1076.         return $this->setProperty('funder'$funder);
  1077.     }
  1078.     /**
  1079.      * A [[Grant]] that directly or indirectly provide funding or sponsorship
  1080.      * for this item. See also [[ownershipFundingInfo]].
  1081.      *
  1082.      * @param \Spatie\SchemaOrg\Contracts\GrantContract|\Spatie\SchemaOrg\Contracts\GrantContract[] $funding
  1083.      *
  1084.      * @return static
  1085.      *
  1086.      * @see https://schema.org/funding
  1087.      * @see https://pending.schema.org
  1088.      */
  1089.     public function funding($funding)
  1090.     {
  1091.         return $this->setProperty('funding'$funding);
  1092.     }
  1093.     /**
  1094.      * Genre of the creative work, broadcast channel or group.
  1095.      *
  1096.      * @param string|string[] $genre
  1097.      *
  1098.      * @return static
  1099.      *
  1100.      * @see https://schema.org/genre
  1101.      */
  1102.     public function genre($genre)
  1103.     {
  1104.         return $this->setProperty('genre'$genre);
  1105.     }
  1106.     /**
  1107.      * Indicates an item or CreativeWork that is part of this item, or
  1108.      * CreativeWork (in some sense).
  1109.      *
  1110.      * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $hasPart
  1111.      *
  1112.      * @return static
  1113.      *
  1114.      * @see https://schema.org/hasPart
  1115.      * @link http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_bibex
  1116.      */
  1117.     public function hasPart($hasPart)
  1118.     {
  1119.         return $this->setProperty('hasPart'$hasPart);
  1120.     }
  1121.     /**
  1122.      * Headline of the article.
  1123.      *
  1124.      * @param string|string[] $headline
  1125.      *
  1126.      * @return static
  1127.      *
  1128.      * @see https://schema.org/headline
  1129.      */
  1130.     public function headline($headline)
  1131.     {
  1132.         return $this->setProperty('headline'$headline);
  1133.     }
  1134.     /**
  1135.      * The height of the item.
  1136.      *
  1137.      * @param \Spatie\SchemaOrg\Contracts\DistanceContract|\Spatie\SchemaOrg\Contracts\DistanceContract[]|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract[] $height
  1138.      *
  1139.      * @return static
  1140.      *
  1141.      * @see https://schema.org/height
  1142.      */
  1143.     public function height($height)
  1144.     {
  1145.         return $this->setProperty('height'$height);
  1146.     }
  1147.     /**
  1148.      * The identifier property represents any kind of identifier for any kind of
  1149.      * [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides
  1150.      * dedicated properties for representing many of these, either as textual
  1151.      * strings or as URL (URI) links. See [background
  1152.      * notes](/docs/datamodel.html#identifierBg) for more details.
  1153.      *
  1154.      * @param \Spatie\SchemaOrg\Contracts\PropertyValueContract|\Spatie\SchemaOrg\Contracts\PropertyValueContract[]|string|string[] $identifier
  1155.      *
  1156.      * @return static
  1157.      *
  1158.      * @see https://schema.org/identifier
  1159.      */
  1160.     public function identifier($identifier)
  1161.     {
  1162.         return $this->setProperty('identifier'$identifier);
  1163.     }
  1164.     /**
  1165.      * An image of the item. This can be a [[URL]] or a fully described
  1166.      * [[ImageObject]].
  1167.      *
  1168.      * @param \Spatie\SchemaOrg\Contracts\ImageObjectContract|\Spatie\SchemaOrg\Contracts\ImageObjectContract[]|string|string[] $image
  1169.      *
  1170.      * @return static
  1171.      *
  1172.      * @see https://schema.org/image
  1173.      */
  1174.     public function image($image)
  1175.     {
  1176.         return $this->setProperty('image'$image);
  1177.     }
  1178.     /**
  1179.      * The language of the content or performance or used in an action. Please
  1180.      * use one of the language codes from the [IETF BCP 47
  1181.      * standard](http://tools.ietf.org/html/bcp47). See also
  1182.      * [[availableLanguage]].
  1183.      *
  1184.      * @param \Spatie\SchemaOrg\Contracts\LanguageContract|\Spatie\SchemaOrg\Contracts\LanguageContract[]|string|string[] $inLanguage
  1185.      *
  1186.      * @return static
  1187.      *
  1188.      * @see https://schema.org/inLanguage
  1189.      * @link https://github.com/schemaorg/schemaorg/issues/2382
  1190.      */
  1191.     public function inLanguage($inLanguage)
  1192.     {
  1193.         return $this->setProperty('inLanguage'$inLanguage);
  1194.     }
  1195.     /**
  1196.      * The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the
  1197.      * GeoShape for the geo-political region(s) for which the offer or delivery
  1198.      * charge specification is not valid, e.g. a region where the transaction is
  1199.      * not allowed.
  1200.      *
  1201.      * See also [[eligibleRegion]].
  1202.      *
  1203.      * @param \Spatie\SchemaOrg\Contracts\GeoShapeContract|\Spatie\SchemaOrg\Contracts\GeoShapeContract[]|\Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[]|string|string[] $ineligibleRegion
  1204.      *
  1205.      * @return static
  1206.      *
  1207.      * @see https://schema.org/ineligibleRegion
  1208.      * @see https://pending.schema.org
  1209.      * @link https://github.com/schemaorg/schemaorg/issues/2242
  1210.      */
  1211.     public function ineligibleRegion($ineligibleRegion)
  1212.     {
  1213.         return $this->setProperty('ineligibleRegion'$ineligibleRegion);
  1214.     }
  1215.     /**
  1216.      * The number of interactions for the CreativeWork using the WebSite or
  1217.      * SoftwareApplication. The most specific child type of InteractionCounter
  1218.      * should be used.
  1219.      *
  1220.      * @param \Spatie\SchemaOrg\Contracts\InteractionCounterContract|\Spatie\SchemaOrg\Contracts\InteractionCounterContract[] $interactionStatistic
  1221.      *
  1222.      * @return static
  1223.      *
  1224.      * @see https://schema.org/interactionStatistic
  1225.      * @link https://github.com/schemaorg/schemaorg/issues/2421
  1226.      */
  1227.     public function interactionStatistic($interactionStatistic)
  1228.     {
  1229.         return $this->setProperty('interactionStatistic'$interactionStatistic);
  1230.     }
  1231.     /**
  1232.      * The predominant mode of learning supported by the learning resource.
  1233.      * Acceptable values are 'active', 'expositive', or 'mixed'.
  1234.      *
  1235.      * @param string|string[] $interactivityType
  1236.      *
  1237.      * @return static
  1238.      *
  1239.      * @see https://schema.org/interactivityType
  1240.      */
  1241.     public function interactivityType($interactivityType)
  1242.     {
  1243.         return $this->setProperty('interactivityType'$interactivityType);
  1244.     }
  1245.     /**
  1246.      * Used to indicate a specific claim contained, implied, translated or
  1247.      * refined from the content of a [[MediaObject]] or other [[CreativeWork]].
  1248.      * The interpreting party can be indicated using [[claimInterpreter]].
  1249.      *
  1250.      * @param \Spatie\SchemaOrg\Contracts\ClaimContract|\Spatie\SchemaOrg\Contracts\ClaimContract[] $interpretedAsClaim
  1251.      *
  1252.      * @return static
  1253.      *
  1254.      * @see https://schema.org/interpretedAsClaim
  1255.      * @see https://pending.schema.org
  1256.      * @link https://github.com/schemaorg/schemaorg/issues/2450
  1257.      */
  1258.     public function interpretedAsClaim($interpretedAsClaim)
  1259.     {
  1260.         return $this->setProperty('interpretedAsClaim'$interpretedAsClaim);
  1261.     }
  1262.     /**
  1263.      * A flag to signal that the item, event, or place is accessible for free.
  1264.      *
  1265.      * @param bool|bool[] $isAccessibleForFree
  1266.      *
  1267.      * @return static
  1268.      *
  1269.      * @see https://schema.org/isAccessibleForFree
  1270.      */
  1271.     public function isAccessibleForFree($isAccessibleForFree)
  1272.     {
  1273.         return $this->setProperty('isAccessibleForFree'$isAccessibleForFree);
  1274.     }
  1275.     /**
  1276.      * A resource from which this work is derived or from which it is a
  1277.      * modification or adaption.
  1278.      *
  1279.      * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOn
  1280.      *
  1281.      * @return static
  1282.      *
  1283.      * @see https://schema.org/isBasedOn
  1284.      */
  1285.     public function isBasedOn($isBasedOn)
  1286.     {
  1287.         return $this->setProperty('isBasedOn'$isBasedOn);
  1288.     }
  1289.     /**
  1290.      * A resource that was used in the creation of this resource. This term can
  1291.      * be repeated for multiple sources. For example,
  1292.      * http://example.com/great-multiplication-intro.html.
  1293.      *
  1294.      * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOnUrl
  1295.      *
  1296.      * @return static
  1297.      *
  1298.      * @see https://schema.org/isBasedOnUrl
  1299.      */
  1300.     public function isBasedOnUrl($isBasedOnUrl)
  1301.     {
  1302.         return $this->setProperty('isBasedOnUrl'$isBasedOnUrl);
  1303.     }
  1304.     /**
  1305.      * Indicates whether this content is family friendly.
  1306.      *
  1307.      * @param bool|bool[] $isFamilyFriendly
  1308.      *
  1309.      * @return static
  1310.      *
  1311.      * @see https://schema.org/isFamilyFriendly
  1312.      */
  1313.     public function isFamilyFriendly($isFamilyFriendly)
  1314.     {
  1315.         return $this->setProperty('isFamilyFriendly'$isFamilyFriendly);
  1316.     }
  1317.     /**
  1318.      * Indicates an item or CreativeWork that this item, or CreativeWork (in
  1319.      * some sense), is part of.
  1320.      *
  1321.      * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $isPartOf
  1322.      *
  1323.      * @return static
  1324.      *
  1325.      * @see https://schema.org/isPartOf
  1326.      */
  1327.     public function isPartOf($isPartOf)
  1328.     {
  1329.         return $this->setProperty('isPartOf'$isPartOf);
  1330.     }
  1331.     /**
  1332.      * Keywords or tags used to describe some item. Multiple textual entries in
  1333.      * a keywords list are typically delimited by commas, or by repeating the
  1334.      * property.
  1335.      *
  1336.      * @param \Spatie\SchemaOrg\Contracts\DefinedTermContract|\Spatie\SchemaOrg\Contracts\DefinedTermContract[]|string|string[] $keywords
  1337.      *
  1338.      * @return static
  1339.      *
  1340.      * @see https://schema.org/keywords
  1341.      */
  1342.     public function keywords($keywords)
  1343.     {
  1344.         return $this->setProperty('keywords'$keywords);
  1345.     }
  1346.     /**
  1347.      * The predominant type or kind characterizing the learning resource. For
  1348.      * example, 'presentation', 'handout'.
  1349.      *
  1350.      * @param \Spatie\SchemaOrg\Contracts\DefinedTermContract|\Spatie\SchemaOrg\Contracts\DefinedTermContract[]|string|string[] $learningResourceType
  1351.      *
  1352.      * @return static
  1353.      *
  1354.      * @see https://schema.org/learningResourceType
  1355.      */
  1356.     public function learningResourceType($learningResourceType)
  1357.     {
  1358.         return $this->setProperty('learningResourceType'$learningResourceType);
  1359.     }
  1360.     /**
  1361.      * A license document that applies to this content, typically indicated by
  1362.      * URL.
  1363.      *
  1364.      * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $license
  1365.      *
  1366.      * @return static
  1367.      *
  1368.      * @see https://schema.org/license
  1369.      */
  1370.     public function license($license)
  1371.     {
  1372.         return $this->setProperty('license'$license);
  1373.     }
  1374.     /**
  1375.      * The location where the CreativeWork was created, which may not be the
  1376.      * same as the location depicted in the CreativeWork.
  1377.      *
  1378.      * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $locationCreated
  1379.      *
  1380.      * @return static
  1381.      *
  1382.      * @see https://schema.org/locationCreated
  1383.      */
  1384.     public function locationCreated($locationCreated)
  1385.     {
  1386.         return $this->setProperty('locationCreated'$locationCreated);
  1387.     }
  1388.     /**
  1389.      * Indicates the primary entity described in some page or other
  1390.      * CreativeWork.
  1391.      *
  1392.      * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mainEntity
  1393.      *
  1394.      * @return static
  1395.      *
  1396.      * @see https://schema.org/mainEntity
  1397.      */
  1398.     public function mainEntity($mainEntity)
  1399.     {
  1400.         return $this->setProperty('mainEntity'$mainEntity);
  1401.     }
  1402.     /**
  1403.      * Indicates a page (or other CreativeWork) for which this thing is the main
  1404.      * entity being described. See [background
  1405.      * notes](/docs/datamodel.html#mainEntityBackground) for details.
  1406.      *
  1407.      * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $mainEntityOfPage
  1408.      *
  1409.      * @return static
  1410.      *
  1411.      * @see https://schema.org/mainEntityOfPage
  1412.      */
  1413.     public function mainEntityOfPage($mainEntityOfPage)
  1414.     {
  1415.         return $this->setProperty('mainEntityOfPage'$mainEntityOfPage);
  1416.     }
  1417.     /**
  1418.      * A maintainer of a [[Dataset]], software package
  1419.      * ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a
  1420.      * [[Person]] or [[Organization]] that manages contributions to, and/or
  1421.      * publication of, some (typically complex) artifact. It is common for
  1422.      * distributions of software and data to be based on "upstream" sources.
  1423.      * When [[maintainer]] is applied to a specific version of something e.g. a
  1424.      * particular version or packaging of a [[Dataset]], it is always  possible
  1425.      * that the upstream source has a different maintainer. The [[isBasedOn]]
  1426.      * property can be used to indicate such relationships between datasets to
  1427.      * make the different maintenance roles clear. Similarly in the case of
  1428.      * software, a package may have dedicated maintainers working on integration
  1429.      * into software distributions such as Ubuntu, as well as upstream
  1430.      * maintainers of the underlying work.
  1431.      *
  1432.      * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $maintainer
  1433.      *
  1434.      * @return static
  1435.      *
  1436.      * @see https://schema.org/maintainer
  1437.      * @see https://pending.schema.org
  1438.      * @link https://github.com/schemaorg/schemaorg/issues/2311
  1439.      */
  1440.     public function maintainer($maintainer)
  1441.     {
  1442.         return $this->setProperty('maintainer'$maintainer);
  1443.     }
  1444.     /**
  1445.      * A material that something is made from, e.g. leather, wool, cotton,
  1446.      * paper.
  1447.      *
  1448.      * @param \Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $material
  1449.      *
  1450.      * @return static
  1451.      *
  1452.      * @see https://schema.org/material
  1453.      */
  1454.     public function material($material)
  1455.     {
  1456.         return $this->setProperty('material'$material);
  1457.     }
  1458.     /**
  1459.      * The quantity of the materials being described or an expression of the
  1460.      * physical space they occupy.
  1461.      *
  1462.      * @param \Spatie\SchemaOrg\Contracts\QuantitativeValueContract|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract[]|string|string[] $materialExtent
  1463.      *
  1464.      * @return static
  1465.      *
  1466.      * @see https://schema.org/materialExtent
  1467.      * @see https://pending.schema.org
  1468.      * @link https://github.com/schemaorg/schemaorg/issues/1759
  1469.      */
  1470.     public function materialExtent($materialExtent)
  1471.     {
  1472.         return $this->setProperty('materialExtent'$materialExtent);
  1473.     }
  1474.     /**
  1475.      * Indicates that the CreativeWork contains a reference to, but is not
  1476.      * necessarily about a concept.
  1477.      *
  1478.      * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mentions
  1479.      *
  1480.      * @return static
  1481.      *
  1482.      * @see https://schema.org/mentions
  1483.      */
  1484.     public function mentions($mentions)
  1485.     {
  1486.         return $this->setProperty('mentions'$mentions);
  1487.     }
  1488.     /**
  1489.      * The name of the item.
  1490.      *
  1491.      * @param string|string[] $name
  1492.      *
  1493.      * @return static
  1494.      *
  1495.      * @see https://schema.org/name
  1496.      */
  1497.     public function name($name)
  1498.     {
  1499.         return $this->setProperty('name'$name);
  1500.     }
  1501.     /**
  1502.      * An offer to provide this item&#x2014;for example, an offer to sell a
  1503.      * product, rent the DVD of a movie, perform a service, or give away tickets
  1504.      * to an event. Use [[businessFunction]] to indicate the kind of transaction
  1505.      * offered, i.e. sell, lease, etc. This property can also be used to
  1506.      * describe a [[Demand]]. While this property is listed as expected on a
  1507.      * number of common types, it can be used in others. In that case, using a
  1508.      * second type, such as Product or a subtype of Product, can clarify the
  1509.      * nature of the offer.
  1510.      *
  1511.      * @param \Spatie\SchemaOrg\Contracts\DemandContract|\Spatie\SchemaOrg\Contracts\DemandContract[]|\Spatie\SchemaOrg\Contracts\OfferContract|\Spatie\SchemaOrg\Contracts\OfferContract[] $offers
  1512.      *
  1513.      * @return static
  1514.      *
  1515.      * @see https://schema.org/offers
  1516.      * @link https://github.com/schemaorg/schemaorg/issues/2289
  1517.      */
  1518.     public function offers($offers)
  1519.     {
  1520.         return $this->setProperty('offers'$offers);
  1521.     }
  1522.     /**
  1523.      * A pattern that something has, for example 'polka dot', 'striped',
  1524.      * 'Canadian flag'. Values are typically expressed as text, although links
  1525.      * to controlled value schemes are also supported.
  1526.      *
  1527.      * @param \Spatie\SchemaOrg\Contracts\DefinedTermContract|\Spatie\SchemaOrg\Contracts\DefinedTermContract[]|string|string[] $pattern
  1528.      *
  1529.      * @return static
  1530.      *
  1531.      * @see https://schema.org/pattern
  1532.      * @see https://pending.schema.org
  1533.      * @link https://github.com/schemaorg/schemaorg/issues/1797
  1534.      */
  1535.     public function pattern($pattern)
  1536.     {
  1537.         return $this->setProperty('pattern'$pattern);
  1538.     }
  1539.     /**
  1540.      * Player type required&#x2014;for example, Flash or Silverlight.
  1541.      *
  1542.      * @param string|string[] $playerType
  1543.      *
  1544.      * @return static
  1545.      *
  1546.      * @see https://schema.org/playerType
  1547.      */
  1548.     public function playerType($playerType)
  1549.     {
  1550.         return $this->setProperty('playerType'$playerType);
  1551.     }
  1552.     /**
  1553.      * The position of an item in a series or sequence of items.
  1554.      *
  1555.      * @param int|int[]|string|string[] $position
  1556.      *
  1557.      * @return static
  1558.      *
  1559.      * @see https://schema.org/position
  1560.      */
  1561.     public function position($position)
  1562.     {
  1563.         return $this->setProperty('position'$position);
  1564.     }
  1565.     /**
  1566.      * Indicates a potential Action, which describes an idealized action in
  1567.      * which this thing would play an 'object' role.
  1568.      *
  1569.      * @param \Spatie\SchemaOrg\Contracts\ActionContract|\Spatie\SchemaOrg\Contracts\ActionContract[] $potentialAction
  1570.      *
  1571.      * @return static
  1572.      *
  1573.      * @see https://schema.org/potentialAction
  1574.      */
  1575.     public function potentialAction($potentialAction)
  1576.     {
  1577.         return $this->setProperty('potentialAction'$potentialAction);
  1578.     }
  1579.     /**
  1580.      * The person or organization who produced the work (e.g. music album,
  1581.      * movie, TV/radio series etc.).
  1582.      *
  1583.      * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $producer
  1584.      *
  1585.      * @return static
  1586.      *
  1587.      * @see https://schema.org/producer
  1588.      */
  1589.     public function producer($producer)
  1590.     {
  1591.         return $this->setProperty('producer'$producer);
  1592.     }
  1593.     /**
  1594.      * The production company or studio responsible for the item, e.g. series,
  1595.      * video game, episode etc.
  1596.      *
  1597.      * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $productionCompany
  1598.      *
  1599.      * @return static
  1600.      *
  1601.      * @see https://schema.org/productionCompany
  1602.      */
  1603.     public function productionCompany($productionCompany)
  1604.     {
  1605.         return $this->setProperty('productionCompany'$productionCompany);
  1606.     }
  1607.     /**
  1608.      * The service provider, service operator, or service performer; the goods
  1609.      * producer. Another party (a seller) may offer those services or goods on
  1610.      * behalf of the provider. A provider may also serve as the seller.
  1611.      *
  1612.      * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $provider
  1613.      *
  1614.      * @return static
  1615.      *
  1616.      * @see https://schema.org/provider
  1617.      * @see https://pending.schema.org
  1618.      */
  1619.     public function provider($provider)
  1620.     {
  1621.         return $this->setProperty('provider'$provider);
  1622.     }
  1623.     /**
  1624.      * A publication event associated with the item.
  1625.      *
  1626.      * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $publication
  1627.      *
  1628.      * @return static
  1629.      *
  1630.      * @see https://schema.org/publication
  1631.      */
  1632.     public function publication($publication)
  1633.     {
  1634.         return $this->setProperty('publication'$publication);
  1635.     }
  1636.     /**
  1637.      * The publisher of the creative work.
  1638.      *
  1639.      * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $publisher
  1640.      *
  1641.      * @return static
  1642.      *
  1643.      * @see https://schema.org/publisher
  1644.      */
  1645.     public function publisher($publisher)
  1646.     {
  1647.         return $this->setProperty('publisher'$publisher);
  1648.     }
  1649.     /**
  1650.      * The publishing division which published the comic.
  1651.      *
  1652.      * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $publisherImprint
  1653.      *
  1654.      * @return static
  1655.      *
  1656.      * @see https://schema.org/publisherImprint
  1657.      * @see https://bib.schema.org
  1658.      */
  1659.     public function publisherImprint($publisherImprint)
  1660.     {
  1661.         return $this->setProperty('publisherImprint'$publisherImprint);
  1662.     }
  1663.     /**
  1664.      * The publishingPrinciples property indicates (typically via [[URL]]) a
  1665.      * document describing the editorial principles of an [[Organization]] (or
  1666.      * individual, e.g. a [[Person]] writing a blog) that relate to their
  1667.      * activities as a publisher, e.g. ethics or diversity policies. When
  1668.      * applied to a [[CreativeWork]] (e.g. [[NewsArticle]]) the principles are
  1669.      * those of the party primarily responsible for the creation of the
  1670.      * [[CreativeWork]].
  1671.      *
  1672.      * While such policies are most typically expressed in natural language,
  1673.      * sometimes related information (e.g. indicating a [[funder]]) can be
  1674.      * expressed using schema.org terminology.
  1675.      *
  1676.      * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $publishingPrinciples
  1677.      *
  1678.      * @return static
  1679.      *
  1680.      * @see https://schema.org/publishingPrinciples
  1681.      */
  1682.     public function publishingPrinciples($publishingPrinciples)
  1683.     {
  1684.         return $this->setProperty('publishingPrinciples'$publishingPrinciples);
  1685.     }
  1686.     /**
  1687.      * The Event where the CreativeWork was recorded. The CreativeWork may
  1688.      * capture all or part of the event.
  1689.      *
  1690.      * @param \Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $recordedAt
  1691.      *
  1692.      * @return static
  1693.      *
  1694.      * @see https://schema.org/recordedAt
  1695.      */
  1696.     public function recordedAt($recordedAt)
  1697.     {
  1698.         return $this->setProperty('recordedAt'$recordedAt);
  1699.     }
  1700.     /**
  1701.      * The regions where the media is allowed. If not specified, then it's
  1702.      * assumed to be allowed everywhere. Specify the countries in [ISO 3166
  1703.      * format](http://en.wikipedia.org/wiki/ISO_3166).
  1704.      *
  1705.      * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $regionsAllowed
  1706.      *
  1707.      * @return static
  1708.      *
  1709.      * @see https://schema.org/regionsAllowed
  1710.      */
  1711.     public function regionsAllowed($regionsAllowed)
  1712.     {
  1713.         return $this->setProperty('regionsAllowed'$regionsAllowed);
  1714.     }
  1715.     /**
  1716.      * The place and time the release was issued, expressed as a
  1717.      * PublicationEvent.
  1718.      *
  1719.      * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $releasedEvent
  1720.      *
  1721.      * @return static
  1722.      *
  1723.      * @see https://schema.org/releasedEvent
  1724.      */
  1725.     public function releasedEvent($releasedEvent)
  1726.     {
  1727.         return $this->setProperty('releasedEvent'$releasedEvent);
  1728.     }
  1729.     /**
  1730.      * Indicates whether this image is representative of the content of the
  1731.      * page.
  1732.      *
  1733.      * @param bool|bool[] $representativeOfPage
  1734.      *
  1735.      * @return static
  1736.      *
  1737.      * @see https://schema.org/representativeOfPage
  1738.      */
  1739.     public function representativeOfPage($representativeOfPage)
  1740.     {
  1741.         return $this->setProperty('representativeOfPage'$representativeOfPage);
  1742.     }
  1743.     /**
  1744.      * Indicates if use of the media require a subscription  (either paid or
  1745.      * free). Allowed values are ```true``` or ```false``` (note that an earlier
  1746.      * version had 'yes', 'no').
  1747.      *
  1748.      * @param \Spatie\SchemaOrg\Contracts\MediaSubscriptionContract|\Spatie\SchemaOrg\Contracts\MediaSubscriptionContract[]|bool|bool[] $requiresSubscription
  1749.      *
  1750.      * @return static
  1751.      *
  1752.      * @see https://schema.org/requiresSubscription
  1753.      * @link https://github.com/schemaorg/schemaorg/issues/1741
  1754.      */
  1755.     public function requiresSubscription($requiresSubscription)
  1756.     {
  1757.         return $this->setProperty('requiresSubscription'$requiresSubscription);
  1758.     }
  1759.     /**
  1760.      * A review of the item.
  1761.      *
  1762.      * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $review
  1763.      *
  1764.      * @return static
  1765.      *
  1766.      * @see https://schema.org/review
  1767.      */
  1768.     public function review($review)
  1769.     {
  1770.         return $this->setProperty('review'$review);
  1771.     }
  1772.     /**
  1773.      * Review of the item.
  1774.      *
  1775.      * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $reviews
  1776.      *
  1777.      * @return static
  1778.      *
  1779.      * @see https://schema.org/reviews
  1780.      */
  1781.     public function reviews($reviews)
  1782.     {
  1783.         return $this->setProperty('reviews'$reviews);
  1784.     }
  1785.     /**
  1786.      * URL of a reference Web page that unambiguously indicates the item's
  1787.      * identity. E.g. the URL of the item's Wikipedia page, Wikidata entry, or
  1788.      * official website.
  1789.      *
  1790.      * @param string|string[] $sameAs
  1791.      *
  1792.      * @return static
  1793.      *
  1794.      * @see https://schema.org/sameAs
  1795.      */
  1796.     public function sameAs($sameAs)
  1797.     {
  1798.         return $this->setProperty('sameAs'$sameAs);
  1799.     }
  1800.     /**
  1801.      * Indicates (by URL or string) a particular version of a schema used in
  1802.      * some CreativeWork. This property was created primarily to
  1803.      *     indicate the use of a specific schema.org release, e.g. ```10.0``` as
  1804.      * a simple string, or more explicitly via URL,
  1805.      * ```https://schema.org/docs/releases.html#v10.0```. There may be
  1806.      * situations in which other schemas might usefully be referenced this way,
  1807.      * e.g.
  1808.      * ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/```
  1809.      * but this has not been carefully explored in the community.
  1810.      *
  1811.      * @param string|string[] $schemaVersion
  1812.      *
  1813.      * @return static
  1814.      *
  1815.      * @see https://schema.org/schemaVersion
  1816.      */
  1817.     public function schemaVersion($schemaVersion)
  1818.     {
  1819.         return $this->setProperty('schemaVersion'$schemaVersion);
  1820.     }
  1821.     /**
  1822.      * Indicates the date on which the current structured data was generated /
  1823.      * published. Typically used alongside [[sdPublisher]]
  1824.      *
  1825.      * @param \DateTimeInterface|\DateTimeInterface[] $sdDatePublished
  1826.      *
  1827.      * @return static
  1828.      *
  1829.      * @see https://schema.org/sdDatePublished
  1830.      * @see https://pending.schema.org
  1831.      * @link https://github.com/schemaorg/schemaorg/issues/1886
  1832.      */
  1833.     public function sdDatePublished($sdDatePublished)
  1834.     {
  1835.         return $this->setProperty('sdDatePublished'$sdDatePublished);
  1836.     }
  1837.     /**
  1838.      * A license document that applies to this structured data, typically
  1839.      * indicated by URL.
  1840.      *
  1841.      * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $sdLicense
  1842.      *
  1843.      * @return static
  1844.      *
  1845.      * @see https://schema.org/sdLicense
  1846.      * @see https://pending.schema.org
  1847.      * @link https://github.com/schemaorg/schemaorg/issues/1886
  1848.      */
  1849.     public function sdLicense($sdLicense)
  1850.     {
  1851.         return $this->setProperty('sdLicense'$sdLicense);
  1852.     }
  1853.     /**
  1854.      * Indicates the party responsible for generating and publishing the current
  1855.      * structured data markup, typically in cases where the structured data is
  1856.      * derived automatically from existing published content but published on a
  1857.      * different site. For example, student projects and open data initiatives
  1858.      * often re-publish existing content with more explicitly structured
  1859.      * metadata. The
  1860.      * [[sdPublisher]] property helps make such practices more explicit.
  1861.      *
  1862.      * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $sdPublisher
  1863.      *
  1864.      * @return static
  1865.      *
  1866.      * @see https://schema.org/sdPublisher
  1867.      * @see https://pending.schema.org
  1868.      * @link https://github.com/schemaorg/schemaorg/issues/1886
  1869.      */
  1870.     public function sdPublisher($sdPublisher)
  1871.     {
  1872.         return $this->setProperty('sdPublisher'$sdPublisher);
  1873.     }
  1874.     /**
  1875.      * The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the
  1876.      * content of the item. For example, a zero-length input has value
  1877.      * 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
  1878.      *
  1879.      * @param string|string[] $sha256
  1880.      *
  1881.      * @return static
  1882.      *
  1883.      * @see https://schema.org/sha256
  1884.      * @see https://pending.schema.org
  1885.      * @link https://github.com/schemaorg/schemaorg/issues/2450
  1886.      */
  1887.     public function sha256($sha256)
  1888.     {
  1889.         return $this->setProperty('sha256'$sha256);
  1890.     }
  1891.     /**
  1892.      * A standardized size of a product or creative work, specified either
  1893.      * through a simple textual string (for example 'XL', '32Wx34L'), a
  1894.      * QuantitativeValue with a unitCode, or a comprehensive and structured
  1895.      * [[SizeSpecification]]; in other cases, the [[width]], [[height]],
  1896.      * [[depth]] and [[weight]] properties may be more applicable.
  1897.      *
  1898.      * @param \Spatie\SchemaOrg\Contracts\DefinedTermContract|\Spatie\SchemaOrg\Contracts\DefinedTermContract[]|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract[]|\Spatie\SchemaOrg\Contracts\SizeSpecificationContract|\Spatie\SchemaOrg\Contracts\SizeSpecificationContract[]|string|string[] $size
  1899.      *
  1900.      * @return static
  1901.      *
  1902.      * @see https://schema.org/size
  1903.      * @see https://pending.schema.org
  1904.      * @link https://github.com/schemaorg/schemaorg/issues/1797
  1905.      */
  1906.     public function size($size)
  1907.     {
  1908.         return $this->setProperty('size'$size);
  1909.     }
  1910.     /**
  1911.      * The Organization on whose behalf the creator was working.
  1912.      *
  1913.      * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $sourceOrganization
  1914.      *
  1915.      * @return static
  1916.      *
  1917.      * @see https://schema.org/sourceOrganization
  1918.      */
  1919.     public function sourceOrganization($sourceOrganization)
  1920.     {
  1921.         return $this->setProperty('sourceOrganization'$sourceOrganization);
  1922.     }
  1923.     /**
  1924.      * The "spatial" property can be used in cases when more specific properties
  1925.      * (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are
  1926.      * not known to be appropriate.
  1927.      *
  1928.      * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatial
  1929.      *
  1930.      * @return static
  1931.      *
  1932.      * @see https://schema.org/spatial
  1933.      */
  1934.     public function spatial($spatial)
  1935.     {
  1936.         return $this->setProperty('spatial'$spatial);
  1937.     }
  1938.     /**
  1939.      * The spatialCoverage of a CreativeWork indicates the place(s) which are
  1940.      * the focus of the content. It is a subproperty of
  1941.      *       contentLocation intended primarily for more technical and detailed
  1942.      * materials. For example with a Dataset, it indicates
  1943.      *       areas that the dataset describes: a dataset of New York weather
  1944.      * would have spatialCoverage which was the place: the state of New York.
  1945.      *
  1946.      * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatialCoverage
  1947.      *
  1948.      * @return static
  1949.      *
  1950.      * @see https://schema.org/spatialCoverage
  1951.      */
  1952.     public function spatialCoverage($spatialCoverage)
  1953.     {
  1954.         return $this->setProperty('spatialCoverage'$spatialCoverage);
  1955.     }
  1956.     /**
  1957.      * A person or organization that supports a thing through a pledge, promise,
  1958.      * or financial contribution. E.g. a sponsor of a Medical Study or a
  1959.      * corporate sponsor of an event.
  1960.      *
  1961.      * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $sponsor
  1962.      *
  1963.      * @return static
  1964.      *
  1965.      * @see https://schema.org/sponsor
  1966.      */
  1967.     public function sponsor($sponsor)
  1968.     {
  1969.         return $this->setProperty('sponsor'$sponsor);
  1970.     }
  1971.     /**
  1972.      * The startTime of something. For a reserved event or service (e.g.
  1973.      * FoodEstablishmentReservation), the time that it is expected to start. For
  1974.      * actions that span a period of time, when the action was performed. E.g.
  1975.      * John wrote a book from *January* to December. For media, including audio
  1976.      * and video, it's the time offset of the start of a clip within a larger
  1977.      * file.
  1978.      *
  1979.      * Note that Event uses startDate/endDate instead of startTime/endTime, even
  1980.      * when describing dates with times. This situation may be clarified in
  1981.      * future revisions.
  1982.      *
  1983.      * @param \DateTimeInterface|\DateTimeInterface[] $startTime
  1984.      *
  1985.      * @return static
  1986.      *
  1987.      * @see https://schema.org/startTime
  1988.      * @link https://github.com/schemaorg/schemaorg/issues/2493
  1989.      */
  1990.     public function startTime($startTime)
  1991.     {
  1992.         return $this->setProperty('startTime'$startTime);
  1993.     }
  1994.     /**
  1995.      * A CreativeWork or Event about this Thing.
  1996.      *
  1997.      * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $subjectOf
  1998.      *
  1999.      * @return static
  2000.      *
  2001.      * @see https://schema.org/subjectOf
  2002.      * @link https://github.com/schemaorg/schemaorg/issues/1670
  2003.      */
  2004.     public function subjectOf($subjectOf)
  2005.     {
  2006.         return $this->setProperty('subjectOf'$subjectOf);
  2007.     }
  2008.     /**
  2009.      * The item being described is intended to help a person learn the
  2010.      * competency or learning outcome defined by the referenced term.
  2011.      *
  2012.      * @param \Spatie\SchemaOrg\Contracts\DefinedTermContract|\Spatie\SchemaOrg\Contracts\DefinedTermContract[]|string|string[] $teaches
  2013.      *
  2014.      * @return static
  2015.      *
  2016.      * @see https://schema.org/teaches
  2017.      * @see https://pending.schema.org
  2018.      * @link https://github.com/schemaorg/schemaorg/issues/2427
  2019.      */
  2020.     public function teaches($teaches)
  2021.     {
  2022.         return $this->setProperty('teaches'$teaches);
  2023.     }
  2024.     /**
  2025.      * The "temporal" property can be used in cases where more specific
  2026.      * properties
  2027.      * (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]],
  2028.      * [[datePublished]]) are not known to be appropriate.
  2029.      *
  2030.      * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporal
  2031.      *
  2032.      * @return static
  2033.      *
  2034.      * @see https://schema.org/temporal
  2035.      */
  2036.     public function temporal($temporal)
  2037.     {
  2038.         return $this->setProperty('temporal'$temporal);
  2039.     }
  2040.     /**
  2041.      * The temporalCoverage of a CreativeWork indicates the period that the
  2042.      * content applies to, i.e. that it describes, either as a DateTime or as a
  2043.      * textual string indicating a time period in [ISO 8601 time interval
  2044.      * format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In
  2045.      *       the case of a Dataset it will typically indicate the relevant time
  2046.      * period in a precise notation (e.g. for a 2011 census dataset, the year
  2047.      * 2011 would be written "2011/2012"). Other forms of content, e.g.
  2048.      * ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their
  2049.      * temporalCoverage in broader terms - textually or via well-known URL.
  2050.      *       Written works such as books may sometimes have precise temporal
  2051.      * coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601
  2052.      * interval format format via "1939/1945".
  2053.      *
  2054.      * Open-ended date ranges can be written with ".." in place of the end date.
  2055.      * For example, "2015-11/.." indicates a range beginning in November 2015
  2056.      * and with no specified final date. This is tentative and might be updated
  2057.      * in future when ISO 8601 is officially updated.
  2058.      *
  2059.      * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporalCoverage
  2060.      *
  2061.      * @return static
  2062.      *
  2063.      * @see https://schema.org/temporalCoverage
  2064.      */
  2065.     public function temporalCoverage($temporalCoverage)
  2066.     {
  2067.         return $this->setProperty('temporalCoverage'$temporalCoverage);
  2068.     }
  2069.     /**
  2070.      * The textual content of this CreativeWork.
  2071.      *
  2072.      * @param string|string[] $text
  2073.      *
  2074.      * @return static
  2075.      *
  2076.      * @see https://schema.org/text
  2077.      */
  2078.     public function text($text)
  2079.     {
  2080.         return $this->setProperty('text'$text);
  2081.     }
  2082.     /**
  2083.      * Thumbnail image for an image or video.
  2084.      *
  2085.      * @param \Spatie\SchemaOrg\Contracts\ImageObjectContract|\Spatie\SchemaOrg\Contracts\ImageObjectContract[] $thumbnail
  2086.      *
  2087.      * @return static
  2088.      *
  2089.      * @see https://schema.org/thumbnail
  2090.      */
  2091.     public function thumbnail($thumbnail)
  2092.     {
  2093.         return $this->setProperty('thumbnail'$thumbnail);
  2094.     }
  2095.     /**
  2096.      * A thumbnail image relevant to the Thing.
  2097.      *
  2098.      * @param string|string[] $thumbnailUrl
  2099.      *
  2100.      * @return static
  2101.      *
  2102.      * @see https://schema.org/thumbnailUrl
  2103.      */
  2104.     public function thumbnailUrl($thumbnailUrl)
  2105.     {
  2106.         return $this->setProperty('thumbnailUrl'$thumbnailUrl);
  2107.     }
  2108.     /**
  2109.      * Approximate or typical time it takes to work with or through this
  2110.      * learning resource for the typical intended target audience, e.g. 'PT30M',
  2111.      * 'PT1H25M'.
  2112.      *
  2113.      * @param \Spatie\SchemaOrg\Contracts\DurationContract|\Spatie\SchemaOrg\Contracts\DurationContract[] $timeRequired
  2114.      *
  2115.      * @return static
  2116.      *
  2117.      * @see https://schema.org/timeRequired
  2118.      */
  2119.     public function timeRequired($timeRequired)
  2120.     {
  2121.         return $this->setProperty('timeRequired'$timeRequired);
  2122.     }
  2123.     /**
  2124.      * The work that this work has been translated from. E.g. 物种起源 is a
  2125.      * translationOf “On the Origin of Species”.
  2126.      *
  2127.      * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $translationOfWork
  2128.      *
  2129.      * @return static
  2130.      *
  2131.      * @see https://schema.org/translationOfWork
  2132.      * @see https://bib.schema.org
  2133.      */
  2134.     public function translationOfWork($translationOfWork)
  2135.     {
  2136.         return $this->setProperty('translationOfWork'$translationOfWork);
  2137.     }
  2138.     /**
  2139.      * Organization or person who adapts a creative work to different languages,
  2140.      * regional differences and technical requirements of a target market, or
  2141.      * that translates during some event.
  2142.      *
  2143.      * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $translator
  2144.      *
  2145.      * @return static
  2146.      *
  2147.      * @see https://schema.org/translator
  2148.      */
  2149.     public function translator($translator)
  2150.     {
  2151.         return $this->setProperty('translator'$translator);
  2152.     }
  2153.     /**
  2154.      * The typical expected age range, e.g. '7-9', '11-'.
  2155.      *
  2156.      * @param string|string[] $typicalAgeRange
  2157.      *
  2158.      * @return static
  2159.      *
  2160.      * @see https://schema.org/typicalAgeRange
  2161.      */
  2162.     public function typicalAgeRange($typicalAgeRange)
  2163.     {
  2164.         return $this->setProperty('typicalAgeRange'$typicalAgeRange);
  2165.     }
  2166.     /**
  2167.      * Date when this media object was uploaded to this site.
  2168.      *
  2169.      * @param \DateTimeInterface|\DateTimeInterface[] $uploadDate
  2170.      *
  2171.      * @return static
  2172.      *
  2173.      * @see https://schema.org/uploadDate
  2174.      */
  2175.     public function uploadDate($uploadDate)
  2176.     {
  2177.         return $this->setProperty('uploadDate'$uploadDate);
  2178.     }
  2179.     /**
  2180.      * URL of the item.
  2181.      *
  2182.      * @param string|string[] $url
  2183.      *
  2184.      * @return static
  2185.      *
  2186.      * @see https://schema.org/url
  2187.      */
  2188.     public function url($url)
  2189.     {
  2190.         return $this->setProperty('url'$url);
  2191.     }
  2192.     /**
  2193.      * The schema.org [[usageInfo]] property indicates further information about
  2194.      * a [[CreativeWork]]. This property is applicable both to works that are
  2195.      * freely available and to those that require payment or other transactions.
  2196.      * It can reference additional information, e.g. community expectations on
  2197.      * preferred linking and citation conventions, as well as purchasing
  2198.      * details. For something that can be commercially licensed, usageInfo can
  2199.      * provide detailed, resource-specific information about licensing options.
  2200.      *
  2201.      * This property can be used alongside the license property which indicates
  2202.      * license(s) applicable to some piece of content. The usageInfo property
  2203.      * can provide information about other licensing options, e.g. acquiring
  2204.      * commercial usage rights for an image that is also available under
  2205.      * non-commercial creative commons licenses.
  2206.      *
  2207.      * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $usageInfo
  2208.      *
  2209.      * @return static
  2210.      *
  2211.      * @see https://schema.org/usageInfo
  2212.      * @see https://pending.schema.org
  2213.      * @link https://github.com/schemaorg/schemaorg/issues/2454
  2214.      */
  2215.     public function usageInfo($usageInfo)
  2216.     {
  2217.         return $this->setProperty('usageInfo'$usageInfo);
  2218.     }
  2219.     /**
  2220.      * The version of the CreativeWork embodied by a specified resource.
  2221.      *
  2222.      * @param float|float[]|int|int[]|string|string[] $version
  2223.      *
  2224.      * @return static
  2225.      *
  2226.      * @see https://schema.org/version
  2227.      */
  2228.     public function version($version)
  2229.     {
  2230.         return $this->setProperty('version'$version);
  2231.     }
  2232.     /**
  2233.      * An embedded video object.
  2234.      *
  2235.      * @param \Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[]|\Spatie\SchemaOrg\Contracts\VideoObjectContract|\Spatie\SchemaOrg\Contracts\VideoObjectContract[] $video
  2236.      *
  2237.      * @return static
  2238.      *
  2239.      * @see https://schema.org/video
  2240.      */
  2241.     public function video($video)
  2242.     {
  2243.         return $this->setProperty('video'$video);
  2244.     }
  2245.     /**
  2246.      * The width of the item.
  2247.      *
  2248.      * @param \Spatie\SchemaOrg\Contracts\DistanceContract|\Spatie\SchemaOrg\Contracts\DistanceContract[]|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract[] $width
  2249.      *
  2250.      * @return static
  2251.      *
  2252.      * @see https://schema.org/width
  2253.      */
  2254.     public function width($width)
  2255.     {
  2256.         return $this->setProperty('width'$width);
  2257.     }
  2258.     /**
  2259.      * Example/instance/realization/derivation of the concept of this creative
  2260.      * work. E.g. the paperback edition, first edition, or e-book.
  2261.      *
  2262.      * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $workExample
  2263.      *
  2264.      * @return static
  2265.      *
  2266.      * @see https://schema.org/workExample
  2267.      * @link http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_bibex
  2268.      */
  2269.     public function workExample($workExample)
  2270.     {
  2271.         return $this->setProperty('workExample'$workExample);
  2272.     }
  2273.     /**
  2274.      * A work that is a translation of the content of this work. E.g. 西遊記
  2275.      * has an English workTranslation “Journey to the West”, a German
  2276.      * workTranslation “Monkeys Pilgerfahrt” and a Vietnamese  translation
  2277.      * Tây du ký bình khảo.
  2278.      *
  2279.      * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $workTranslation
  2280.      *
  2281.      * @return static
  2282.      *
  2283.      * @see https://schema.org/workTranslation
  2284.      * @see https://bib.schema.org
  2285.      */
  2286.     public function workTranslation($workTranslation)
  2287.     {
  2288.         return $this->setProperty('workTranslation'$workTranslation);
  2289.     }
  2290. }