SEO. JSONLD. UserDownloads
(SEO v0.3.0-rc.0)
View Source
UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use SEO.JSONLD.Action-based vocabulary, alongside types such as SEO.JSONLD.Comment.
Helper for building a Schema.org UserDownloads JSON-LD structure.
Summary
Types
A JSON-LD map ready to be nested or rendered. String-keyed, always
includes "@type" set to "UserDownloads", 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 UserDownloads JSON-LD map.
Types
@type attrs() :: %{ optional(:about) => SEO.JSONLD.Thing.t() | map(), optional(:actor) => SEO.JSONLD.Person.t() | map() | SEO.JSONLD.PerformingGroup.t(), optional(:aggregate_rating) => SEO.JSONLD.AggregateRating.t() | map(), optional(:attendee) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:attendees) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:audience) => SEO.JSONLD.Audience.t() | map(), optional(:composer) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:contributor) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:director) => SEO.JSONLD.Person.t() | map(), optional(:door_time) => DateTime.t() | NaiveDateTime.t() | String.t() | Time.t(), optional(:duration) => Duration.t() | String.t() | SEO.JSONLD.QuantitativeValue.t() | map(), optional(:end_date) => DateTime.t() | NaiveDateTime.t() | String.t() | Date.t(), optional(:event_attendance_mode) => :mixed_event_attendance_mode | :offline_event_attendance_mode | :online_event_attendance_mode, optional(:event_schedule) => SEO.JSONLD.Schedule.t() | map(), optional(:event_status) => :event_cancelled | :event_moved_online | :event_postponed | :event_rescheduled | :event_scheduled, optional(:funder) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:funding) => SEO.JSONLD.Grant.t() | map(), optional(:has_participation_offer) => SEO.JSONLD.Offer.t() | map(), optional(:has_sponsorship_offer) => SEO.JSONLD.Offer.t() | map(), optional(:in_language) => String.t() | SEO.JSONLD.Language.t() | map(), optional(:is_accessible_for_free) => boolean(), optional(:keywords) => SEO.JSONLD.DefinedTerm.t() | map() | String.t() | URI.t(), optional(:location) => String.t() | SEO.JSONLD.PostalAddress.t() | map() | SEO.JSONLD.VirtualLocation.t() | SEO.JSONLD.Place.t(), optional(:maximum_attendee_capacity) => integer(), optional(:maximum_physical_attendee_capacity) => integer(), optional(:maximum_virtual_attendee_capacity) => integer(), optional(:offers) => SEO.JSONLD.Offer.t() | map() | SEO.JSONLD.Demand.t(), optional(:organizer) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:performer) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:performers) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:previous_start_date) => DateTime.t() | NaiveDateTime.t() | String.t() | Date.t(), optional(:recorded_in) => SEO.JSONLD.CreativeWork.t() | map(), optional(:remaining_attendee_capacity) => integer(), optional(:review) => SEO.JSONLD.Review.t() | map(), optional(:sponsor) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:start_date) => Date.t() | String.t() | DateTime.t() | NaiveDateTime.t(), optional(:sub_event) => SEO.JSONLD.Event.t() | map(), optional(:sub_events) => SEO.JSONLD.Event.t() | map(), optional(:super_event) => SEO.JSONLD.Event.t() | map(), optional(:translator) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:typical_age_range) => String.t(), optional(:work_featured) => SEO.JSONLD.CreativeWork.t() | map(), optional(:work_performed) => SEO.JSONLD.CreativeWork.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() } | [ about: SEO.JSONLD.Thing.t() | map(), actor: SEO.JSONLD.Person.t() | map() | SEO.JSONLD.PerformingGroup.t(), aggregate_rating: SEO.JSONLD.AggregateRating.t() | map(), attendee: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), attendees: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), audience: SEO.JSONLD.Audience.t() | map(), composer: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), contributor: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), director: SEO.JSONLD.Person.t() | map(), door_time: DateTime.t() | NaiveDateTime.t() | String.t() | Time.t(), duration: Duration.t() | String.t() | SEO.JSONLD.QuantitativeValue.t() | map(), end_date: DateTime.t() | NaiveDateTime.t() | String.t() | Date.t(), event_attendance_mode: :mixed_event_attendance_mode | :offline_event_attendance_mode | :online_event_attendance_mode, event_schedule: SEO.JSONLD.Schedule.t() | map(), event_status: :event_cancelled | :event_moved_online | :event_postponed | :event_rescheduled | :event_scheduled, funder: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), funding: SEO.JSONLD.Grant.t() | map(), has_participation_offer: SEO.JSONLD.Offer.t() | map(), has_sponsorship_offer: SEO.JSONLD.Offer.t() | map(), in_language: String.t() | SEO.JSONLD.Language.t() | map(), is_accessible_for_free: boolean(), keywords: SEO.JSONLD.DefinedTerm.t() | map() | String.t() | URI.t(), location: String.t() | SEO.JSONLD.PostalAddress.t() | map() | SEO.JSONLD.VirtualLocation.t() | SEO.JSONLD.Place.t(), maximum_attendee_capacity: integer(), maximum_physical_attendee_capacity: integer(), maximum_virtual_attendee_capacity: integer(), offers: SEO.JSONLD.Offer.t() | map() | SEO.JSONLD.Demand.t(), organizer: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), performer: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), performers: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), previous_start_date: DateTime.t() | NaiveDateTime.t() | String.t() | Date.t(), recorded_in: SEO.JSONLD.CreativeWork.t() | map(), remaining_attendee_capacity: integer(), review: SEO.JSONLD.Review.t() | map(), sponsor: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), start_date: Date.t() | String.t() | DateTime.t() | NaiveDateTime.t(), sub_event: SEO.JSONLD.Event.t() | map(), sub_events: SEO.JSONLD.Event.t() | map(), super_event: SEO.JSONLD.Event.t() | map(), translator: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), typical_age_range: String.t(), work_featured: SEO.JSONLD.CreativeWork.t() | map(), work_performed: SEO.JSONLD.CreativeWork.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() ]
A JSON-LD map ready to be nested or rendered. String-keyed, always
includes "@type" set to "UserDownloads", 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.