SEO.JSONLD.ActionAccessSpecification (SEO v0.3.0-rc.0)

View Source

A set of requirements that must be fulfilled in order to perform an Action.

Helper for building a Schema.org ActionAccessSpecification JSON-LD structure.

Summary

Types

t()

A JSON-LD map ready to be nested or rendered. String-keyed, always includes "@type" set to "ActionAccessSpecification", plus any camelCased field keys the caller provided (see build/1). "@context" is added at render time by SEO.JSONLD.meta/1 on the top-level node only.

Functions

Build a ActionAccessSpecification JSON-LD map.

Types

attrs()

@type attrs() ::
  %{
    optional(:availability_ends) =>
      DateTime.t() | NaiveDateTime.t() | String.t() | Time.t() | Date.t(),
    optional(:availability_starts) =>
      Date.t() | String.t() | DateTime.t() | NaiveDateTime.t() | Time.t(),
    optional(:category) =>
      String.t()
      | URI.t()
      | SEO.JSONLD.Thing.t()
      | map()
      | :aerobic_activity
      | :anaerobic_activity
      | :balance
      | :flexibility
      | :leisure_time_activity
      | :occupational_activity
      | :strength_training
      | SEO.JSONLD.CategoryCode.t(),
    optional(:eligible_region) =>
      SEO.JSONLD.Place.t() | map() | String.t() | SEO.JSONLD.GeoShape.t(),
    optional(:expects_acceptance_of) => SEO.JSONLD.Offer.t() | map(),
    optional(:ineligible_region) =>
      SEO.JSONLD.Place.t() | map() | String.t() | SEO.JSONLD.GeoShape.t(),
    optional(:requires_subscription) =>
      SEO.JSONLD.MediaSubscription.t() | map() | boolean(),
    optional(:additional_type) => String.t() | URI.t(),
    optional(:alternate_name) => String.t(),
    optional(:description) => SEO.JSONLD.TextObject.t() | map() | String.t(),
    optional(:disambiguating_description) => String.t(),
    optional(:identifier) =>
      String.t() | URI.t() | SEO.JSONLD.PropertyValue.t() | map(),
    optional(:image) =>
      URI.t() | String.t() | SEO.JSONLD.ImageObject.t() | map(),
    optional(:main_entity_of_page) =>
      SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(),
    optional(:name) => String.t(),
    optional(:owner) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:potential_action) => SEO.JSONLD.Action.t() | map(),
    optional(:same_as) => URI.t() | String.t(),
    optional(:subject_of) =>
      SEO.JSONLD.Event.t() | map() | SEO.JSONLD.CreativeWork.t(),
    optional(:url) => URI.t() | String.t()
  }
  | [
      availability_ends:
        DateTime.t() | NaiveDateTime.t() | String.t() | Time.t() | Date.t(),
      availability_starts:
        Date.t() | String.t() | DateTime.t() | NaiveDateTime.t() | Time.t(),
      category:
        String.t()
        | URI.t()
        | SEO.JSONLD.Thing.t()
        | map()
        | :aerobic_activity
        | :anaerobic_activity
        | :balance
        | :flexibility
        | :leisure_time_activity
        | :occupational_activity
        | :strength_training
        | SEO.JSONLD.CategoryCode.t(),
      eligible_region:
        SEO.JSONLD.Place.t() | map() | String.t() | SEO.JSONLD.GeoShape.t(),
      expects_acceptance_of: SEO.JSONLD.Offer.t() | map(),
      ineligible_region:
        SEO.JSONLD.Place.t() | map() | String.t() | SEO.JSONLD.GeoShape.t(),
      requires_subscription:
        SEO.JSONLD.MediaSubscription.t() | map() | boolean(),
      additional_type: String.t() | URI.t(),
      alternate_name: String.t(),
      description: SEO.JSONLD.TextObject.t() | map() | String.t(),
      disambiguating_description: String.t(),
      identifier: String.t() | URI.t() | SEO.JSONLD.PropertyValue.t() | map(),
      image: URI.t() | String.t() | SEO.JSONLD.ImageObject.t() | map(),
      main_entity_of_page:
        SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(),
      name: String.t(),
      owner: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      potential_action: SEO.JSONLD.Action.t() | map(),
      same_as: URI.t() | String.t(),
      subject_of: SEO.JSONLD.Event.t() | map() | SEO.JSONLD.CreativeWork.t(),
      url: URI.t() | String.t()
    ]

t()

@type t() :: %{required(String.t()) => term()}

A JSON-LD map ready to be nested or rendered. String-keyed, always includes "@type" set to "ActionAccessSpecification", plus any camelCased field keys the caller provided (see build/1). "@context" is added at render time by SEO.JSONLD.meta/1 on the top-level node only.

Functions

build(attrs)

@spec build(attrs()) :: t()

Build a ActionAccessSpecification JSON-LD map.

Fields

  • :availability_ends - The end of the availability of the product or service included in the offer.
  • :availability_starts - The beginning of the availability of the product or service included in the offer.
  • :category - A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy. One of: :aerobic_activity, :anaerobic_activity, :balance, :flexibility, :leisure_time_activity, :occupational_activity, :strength_training.
  • :eligible_region - The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is valid.

See also ineligibleRegion.

  • :expects_acceptance_of - An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.
  • :ineligible_region - The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed.

See also eligibleRegion.

  • :requires_subscription - Indicates if use of the media require a subscription (either paid or free). Allowed values are true or false (note that an earlier version had 'yes', 'no').

Inherited properties

Additional properties are available through the inheritance chain. See each ancestor's docs for its properties: