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

View Source

An SEO.JSONLD.OfferForLease in Schema.org represents an SEO.JSONLD.Offer to lease out something, i.e. an SEO.JSONLD.Offer whose businessFunction is lease out. See Good Relations for background on the underlying concepts.

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

Summary

Types

t()

A JSON-LD map ready to be nested or rendered. String-keyed, always includes "@type" set to "OfferForLease", 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 OfferForLease JSON-LD map.

Types

attrs()

@type attrs() ::
  %{
    optional(:accepted_payment_method) =>
      SEO.JSONLD.PaymentMethod.t()
      | map()
      | SEO.JSONLD.LoanOrCredit.t()
      | String.t(),
    optional(:add_on) => SEO.JSONLD.Offer.t() | map(),
    optional(:additional_property) => SEO.JSONLD.PropertyValue.t() | map(),
    optional(:advance_booking_requirement) =>
      SEO.JSONLD.QuantitativeValue.t() | map(),
    optional(:aggregate_rating) => SEO.JSONLD.AggregateRating.t() | map(),
    optional(:area_served) =>
      SEO.JSONLD.GeoShape.t()
      | map()
      | SEO.JSONLD.AdministrativeArea.t()
      | SEO.JSONLD.Place.t()
      | String.t(),
    optional(:asin) => String.t() | URI.t(),
    optional(:availability) =>
      :back_order
      | :discontinued
      | :in_stock
      | :in_store_only
      | :limited_availability
      | :made_to_order
      | :online_only
      | :out_of_stock
      | :pre_order
      | :pre_sale
      | :reserved
      | :sold_out,
    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(:available_at_or_from) => SEO.JSONLD.Place.t() | map(),
    optional(:available_delivery_method) =>
      :locker_delivery | :on_site_pickup | :parcel_service,
    optional(:business_function) => term(),
    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(:checkout_page_url_template) => String.t(),
    optional(:delivery_lead_time) => SEO.JSONLD.QuantitativeValue.t() | map(),
    optional(:eligible_customer_type) => term(),
    optional(:eligible_duration) => SEO.JSONLD.QuantitativeValue.t() | map(),
    optional(:eligible_quantity) => SEO.JSONLD.QuantitativeValue.t() | map(),
    optional(:eligible_region) =>
      SEO.JSONLD.Place.t() | map() | String.t() | SEO.JSONLD.GeoShape.t(),
    optional(:eligible_transaction_volume) =>
      SEO.JSONLD.PriceSpecification.t() | map(),
    optional(:gtin) => String.t() | URI.t(),
    optional(:gtin12) => String.t(),
    optional(:gtin13) => String.t(),
    optional(:gtin14) => String.t(),
    optional(:gtin8) => String.t(),
    optional(:has_adult_consideration) =>
      :alcohol_consideration
      | :dangerous_good_consideration
      | :healthcare_consideration
      | :narcotic_consideration
      | :reduced_relevance_for_children_consideration
      | :sexual_content_consideration
      | :tobacco_nicotine_consideration
      | :unclassified_adult_consideration
      | :violence_consideration
      | :weapon_consideration,
    optional(:has_gs1_digital_link) => URI.t() | String.t(),
    optional(:has_measurement) => SEO.JSONLD.QuantitativeValue.t() | map(),
    optional(:has_merchant_return_policy) =>
      SEO.JSONLD.MerchantReturnPolicy.t() | map(),
    optional(:includes_object) => SEO.JSONLD.TypeAndQuantityNode.t() | map(),
    optional(:ineligible_region) =>
      SEO.JSONLD.Place.t() | map() | String.t() | SEO.JSONLD.GeoShape.t(),
    optional(:inventory_level) => SEO.JSONLD.QuantitativeValue.t() | map(),
    optional(:is_family_friendly) => boolean(),
    optional(:item_condition) =>
      :damaged_condition
      | :new_condition
      | :refurbished_condition
      | :used_condition,
    optional(:item_offered) =>
      SEO.JSONLD.MenuItem.t()
      | map()
      | SEO.JSONLD.Trip.t()
      | SEO.JSONLD.Event.t()
      | SEO.JSONLD.CreativeWork.t()
      | SEO.JSONLD.Product.t()
      | SEO.JSONLD.Service.t()
      | SEO.JSONLD.AggregateOffer.t(),
    optional(:lease_length) =>
      SEO.JSONLD.QuantitativeValue.t() | map() | Duration.t() | String.t(),
    optional(:mobile_url) => String.t(),
    optional(:mpn) => String.t(),
    optional(:offered_by) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:price) => String.t() | number(),
    optional(:price_currency) => String.t(),
    optional(:price_specification) => SEO.JSONLD.PriceSpecification.t() | map(),
    optional(:price_valid_until) => Date.t() | String.t(),
    optional(:review) => SEO.JSONLD.Review.t() | map(),
    optional(:reviews) => SEO.JSONLD.Review.t() | map(),
    optional(:seller) =>
      SEO.JSONLD.Person.t() | map() | SEO.JSONLD.Organization.t(),
    optional(:serial_number) => String.t(),
    optional(:shipping_details) => SEO.JSONLD.OfferShippingDetails.t() | map(),
    optional(:sku) => String.t(),
    optional(:valid_for_member_tier) =>
      SEO.JSONLD.MemberProgramTier.t() | map(),
    optional(:valid_from) =>
      DateTime.t() | NaiveDateTime.t() | String.t() | Date.t(),
    optional(:valid_through) =>
      DateTime.t() | NaiveDateTime.t() | String.t() | Date.t(),
    optional(:warranty) => SEO.JSONLD.WarrantyPromise.t() | map(),
    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()
  }
  | [
      accepted_payment_method:
        SEO.JSONLD.PaymentMethod.t()
        | map()
        | SEO.JSONLD.LoanOrCredit.t()
        | String.t(),
      add_on: SEO.JSONLD.Offer.t() | map(),
      additional_property: SEO.JSONLD.PropertyValue.t() | map(),
      advance_booking_requirement: SEO.JSONLD.QuantitativeValue.t() | map(),
      aggregate_rating: SEO.JSONLD.AggregateRating.t() | map(),
      area_served:
        SEO.JSONLD.GeoShape.t()
        | map()
        | SEO.JSONLD.AdministrativeArea.t()
        | SEO.JSONLD.Place.t()
        | String.t(),
      asin: String.t() | URI.t(),
      availability:
        :back_order
        | :discontinued
        | :in_stock
        | :in_store_only
        | :limited_availability
        | :made_to_order
        | :online_only
        | :out_of_stock
        | :pre_order
        | :pre_sale
        | :reserved
        | :sold_out,
      availability_ends:
        DateTime.t() | NaiveDateTime.t() | String.t() | Time.t() | Date.t(),
      availability_starts:
        Date.t() | String.t() | DateTime.t() | NaiveDateTime.t() | Time.t(),
      available_at_or_from: SEO.JSONLD.Place.t() | map(),
      available_delivery_method:
        :locker_delivery | :on_site_pickup | :parcel_service,
      business_function: term(),
      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(),
      checkout_page_url_template: String.t(),
      delivery_lead_time: SEO.JSONLD.QuantitativeValue.t() | map(),
      eligible_customer_type: term(),
      eligible_duration: SEO.JSONLD.QuantitativeValue.t() | map(),
      eligible_quantity: SEO.JSONLD.QuantitativeValue.t() | map(),
      eligible_region:
        SEO.JSONLD.Place.t() | map() | String.t() | SEO.JSONLD.GeoShape.t(),
      eligible_transaction_volume: SEO.JSONLD.PriceSpecification.t() | map(),
      gtin: String.t() | URI.t(),
      gtin12: String.t(),
      gtin13: String.t(),
      gtin14: String.t(),
      gtin8: String.t(),
      has_adult_consideration:
        :alcohol_consideration
        | :dangerous_good_consideration
        | :healthcare_consideration
        | :narcotic_consideration
        | :reduced_relevance_for_children_consideration
        | :sexual_content_consideration
        | :tobacco_nicotine_consideration
        | :unclassified_adult_consideration
        | :violence_consideration
        | :weapon_consideration,
      has_gs1_digital_link: URI.t() | String.t(),
      has_measurement: SEO.JSONLD.QuantitativeValue.t() | map(),
      has_merchant_return_policy: SEO.JSONLD.MerchantReturnPolicy.t() | map(),
      includes_object: SEO.JSONLD.TypeAndQuantityNode.t() | map(),
      ineligible_region:
        SEO.JSONLD.Place.t() | map() | String.t() | SEO.JSONLD.GeoShape.t(),
      inventory_level: SEO.JSONLD.QuantitativeValue.t() | map(),
      is_family_friendly: boolean(),
      item_condition:
        :damaged_condition
        | :new_condition
        | :refurbished_condition
        | :used_condition,
      item_offered:
        SEO.JSONLD.MenuItem.t()
        | map()
        | SEO.JSONLD.Trip.t()
        | SEO.JSONLD.Event.t()
        | SEO.JSONLD.CreativeWork.t()
        | SEO.JSONLD.Product.t()
        | SEO.JSONLD.Service.t()
        | SEO.JSONLD.AggregateOffer.t(),
      lease_length:
        SEO.JSONLD.QuantitativeValue.t() | map() | Duration.t() | String.t(),
      mobile_url: String.t(),
      mpn: String.t(),
      offered_by: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      price: String.t() | number(),
      price_currency: String.t(),
      price_specification: SEO.JSONLD.PriceSpecification.t() | map(),
      price_valid_until: Date.t() | String.t(),
      review: SEO.JSONLD.Review.t() | map(),
      reviews: SEO.JSONLD.Review.t() | map(),
      seller: SEO.JSONLD.Person.t() | map() | SEO.JSONLD.Organization.t(),
      serial_number: String.t(),
      shipping_details: SEO.JSONLD.OfferShippingDetails.t() | map(),
      sku: String.t(),
      valid_for_member_tier: SEO.JSONLD.MemberProgramTier.t() | map(),
      valid_from: DateTime.t() | NaiveDateTime.t() | String.t() | Date.t(),
      valid_through: DateTime.t() | NaiveDateTime.t() | String.t() | Date.t(),
      warranty: SEO.JSONLD.WarrantyPromise.t() | map(),
      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 "OfferForLease", 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 OfferForLease JSON-LD map.

Fields

This type has no own properties. See the inherited properties below.

Inherited properties

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