diff --git a/streams/streams_manual_data_test.go b/streams/streams_manual_data_test.go
new file mode 100644
index 0000000..9106b5a
--- /dev/null
+++ b/streams/streams_manual_data_test.go
@@ -0,0 +1,5855 @@
+package streams
+
+import (
+ "github.com/go-fed/activity/streams/vocab"
+ "net/url"
+ "time"
+)
+
+func MustParseURL(s string) *url.URL {
+ u, err := url.Parse(s)
+ if err != nil {
+ panic(err)
+ }
+ return u
+}
+
+const example1 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Object",
+ "id": "http://www.test.example/object/1",
+ "name": "A Simple, non-specific object"
+}`
+
+func example1Type() vocab.ObjectInterface {
+ example1Type := NewActivityStreamsObject()
+ id := NewActivityStreamsIdProperty()
+ id.Set(MustParseURL("http://www.test.example/object/1"))
+ example1Type.SetId(id)
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("A Simple, non-specific object")
+ example1Type.SetName(name)
+ return example1Type
+}
+
+const example2 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Link",
+ "href": "http://example.org/abc",
+ "hreflang": "en",
+ "mediaType": "text/html",
+ "name": "An example link"
+}`
+
+func example2Type() vocab.LinkInterface {
+ example2Type := NewActivityStreamsLink()
+ hrefUrl := MustParseURL("http://example.org/abc")
+ href := NewActivityStreamsHrefProperty()
+ href.Set(hrefUrl)
+ example2Type.SetHref(href)
+ hrefLang := NewActivityStreamsHreflangProperty()
+ hrefLang.Set("en")
+ example2Type.SetHreflang(hrefLang)
+ mediaType := NewActivityStreamsMediaTypeProperty()
+ mediaType.Set("text/html")
+ example2Type.SetMediaType(mediaType)
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("An example link")
+ example2Type.SetName(name)
+ return example2Type
+}
+
+const example3 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Activity",
+ "summary": "Sally did something to a note",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": {
+ "type": "Note",
+ "name": "A Note"
+ }
+}`
+
+func example3Type() vocab.ActivityInterface {
+ example3Type := NewActivityStreamsActivity()
+ person := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ person.SetName(sally)
+ note := NewActivityStreamsNote()
+ aNote := NewActivityStreamsNameProperty()
+ aNote.AppendString("Sally")
+ note.SetName(aNote)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally did something to a note")
+ example3Type.SetSummary(summary)
+ actor := NewActivityStreamsActorProperty()
+ actor.AppendPerson(person)
+ example3Type.SetActor(actor)
+ object := NewActivityStreamsObjectProperty()
+ object.AppendNote(note)
+ example3Type.SetObject(object)
+ return example3Type
+}
+
+const example4 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Travel",
+ "summary": "Sally went to work",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "target": {
+ "type": "Place",
+ "name": "Work"
+ }
+}`
+
+func example4Type() vocab.TravelInterface {
+ example4Type := NewActivityStreamsTravel()
+ person := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ person.SetName(sally)
+ place := NewActivityStreamsPlace()
+ work := NewActivityStreamsNameProperty()
+ work.AppendString("Work")
+ place.SetName(work)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally went to work")
+ example4Type.SetSummary(summary)
+ actor := NewActivityStreamsActorProperty()
+ actor.AppendPerson(person)
+ example4Type.SetActor(actor)
+ target := NewActivityStreamsTargetProperty()
+ target.AppendPlace(place)
+ example4Type.SetTarget(target)
+ return example4Type
+}
+
+const example5 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally's notes",
+ "type": "Collection",
+ "totalItems": 2,
+ "items": [
+ {
+ "type": "Note",
+ "name": "A Simple Note"
+ },
+ {
+ "type": "Note",
+ "name": "Another Simple Note"
+ }
+ ]
+}`
+
+func example5Type() vocab.CollectionInterface {
+ example5Type := NewActivityStreamsCollection()
+ note1 := NewActivityStreamsNote()
+ name1 := NewActivityStreamsNameProperty()
+ name1.AppendString("A Simple Note")
+ note1.SetName(name1)
+ note2 := NewActivityStreamsNote()
+ name2 := NewActivityStreamsNameProperty()
+ name2.AppendString("Another Simple Note")
+ note2.SetName(name2)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally's notes")
+ example5Type.SetSummary(summary)
+ totalItems := NewActivityStreamsTotalItemsProperty()
+ totalItems.Set(2)
+ example5Type.SetTotalItems(totalItems)
+ items := NewActivityStreamsItemsProperty()
+ items.AppendNote(note1)
+ items.AppendNote(note2)
+ example5Type.SetItems(items)
+ return example5Type
+}
+
+const example6 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally's notes",
+ "type": "OrderedCollection",
+ "totalItems": 2,
+ "orderedItems": [
+ {
+ "type": "Note",
+ "name": "A Simple Note"
+ },
+ {
+ "type": "Note",
+ "name": "Another Simple Note"
+ }
+ ]
+}`
+
+func example6Type() vocab.OrderedCollectionInterface {
+ example6Type := NewActivityStreamsOrderedCollection()
+ note1 := NewActivityStreamsNote()
+ name1 := NewActivityStreamsNameProperty()
+ name1.AppendString("A Simple Note")
+ note1.SetName(name1)
+ note2 := NewActivityStreamsNote()
+ name2 := NewActivityStreamsNameProperty()
+ name2.AppendString("Another Simple Note")
+ note2.SetName(name2)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally's notes")
+ example6Type.SetSummary(summary)
+ totalItems := NewActivityStreamsTotalItemsProperty()
+ totalItems.Set(2)
+ example6Type.SetTotalItems(totalItems)
+ orderedItems := NewActivityStreamsOrderedItemsProperty()
+ orderedItems.AppendNote(note1)
+ orderedItems.AppendNote(note2)
+ example6Type.SetOrderedItems(orderedItems)
+ return example6Type
+}
+
+const example7 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Page 1 of Sally's notes",
+ "type": "CollectionPage",
+ "id": "http://example.org/foo?page=1",
+ "partOf": "http://example.org/foo",
+ "items": [
+ {
+ "type": "Note",
+ "name": "A Simple Note"
+ },
+ {
+ "type": "Note",
+ "name": "Another Simple Note"
+ }
+ ]
+}`
+
+func example7Type() vocab.CollectionPageInterface {
+ example7Type := NewActivityStreamsCollectionPage()
+ note1 := NewActivityStreamsNote()
+ name1 := NewActivityStreamsNameProperty()
+ name1.AppendString("A Simple Note")
+ note1.SetName(name1)
+ note2 := NewActivityStreamsNote()
+ name2 := NewActivityStreamsNameProperty()
+ name2.AppendString("Another Simple Note")
+ note2.SetName(name2)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Page 1 of Sally's notes")
+ example7Type.SetSummary(summary)
+ id := NewActivityStreamsIdProperty()
+ id.Set(MustParseURL("http://example.org/foo?page=1"))
+ example7Type.SetId(id)
+ partOf := NewActivityStreamsPartOfProperty()
+ partOf.SetIRI(MustParseURL("http://example.org/foo"))
+ example7Type.SetPartOf(partOf)
+ items := NewActivityStreamsItemsProperty()
+ items.AppendNote(note1)
+ items.AppendNote(note2)
+ example7Type.SetItems(items)
+ return example7Type
+}
+
+const example8 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Page 1 of Sally's notes",
+ "type": "OrderedCollectionPage",
+ "id": "http://example.org/foo?page=1",
+ "partOf": "http://example.org/foo",
+ "orderedItems": [
+ {
+ "type": "Note",
+ "name": "A Simple Note"
+ },
+ {
+ "type": "Note",
+ "name": "Another Simple Note"
+ }
+ ]
+}`
+
+func example8Type() vocab.OrderedCollectionPageInterface {
+ example8Type := NewActivityStreamsOrderedCollectionPage()
+ note1 := NewActivityStreamsNote()
+ name1 := NewActivityStreamsNameProperty()
+ name1.AppendString("A Simple Note")
+ note1.SetName(name1)
+ note2 := NewActivityStreamsNote()
+ name2 := NewActivityStreamsNameProperty()
+ name2.AppendString("Another Simple Note")
+ note2.SetName(name2)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Page 1 of Sally's notes")
+ example8Type.SetSummary(summary)
+ id := NewActivityStreamsIdProperty()
+ id.Set(MustParseURL("http://example.org/foo?page=1"))
+ example8Type.SetId(id)
+ partOf := NewActivityStreamsPartOfProperty()
+ partOf.SetIRI(MustParseURL("http://example.org/foo"))
+ example8Type.SetPartOf(partOf)
+ orderedItems := NewActivityStreamsOrderedItemsProperty()
+ orderedItems.AppendNote(note1)
+ orderedItems.AppendNote(note2)
+ example8Type.SetOrderedItems(orderedItems)
+ return example8Type
+}
+
+const example9 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally accepted an invitation to a party",
+ "type": "Accept",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": {
+ "type": "Invite",
+ "actor": "http://john.example.org",
+ "object": {
+ "type": "Event",
+ "name": "Going-Away Party for Jim"
+ }
+ }
+}`
+
+func example9Type() vocab.AcceptInterface {
+ example9Type := NewActivityStreamsAccept()
+ person := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ person.SetName(sally)
+ event := NewActivityStreamsEvent()
+ goingAway := NewActivityStreamsNameProperty()
+ goingAway.AppendString("Going-Away Party for Jim")
+ event.SetName(goingAway)
+ invite := NewActivityStreamsInvite()
+ actor := NewActivityStreamsActorProperty()
+ actor.AppendIRI(MustParseURL("http://john.example.org"))
+ invite.SetActor(actor)
+ object := NewActivityStreamsObjectProperty()
+ object.AppendEvent(event)
+ invite.SetObject(object)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally accepted an invitation to a party")
+ example9Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(person)
+ example9Type.SetActor(rootActor)
+ inviteObject := NewActivityStreamsObjectProperty()
+ inviteObject.AppendInvite(invite)
+ example9Type.SetObject(inviteObject)
+ return example9Type
+}
+
+const example10 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally accepted Joe into the club",
+ "type": "Accept",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": {
+ "type": "Person",
+ "name": "Joe"
+ },
+ "target": {
+ "type": "Group",
+ "name": "The Club"
+ }
+}`
+
+func example10Type() vocab.AcceptInterface {
+ example10Type := NewActivityStreamsAccept()
+ person := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ person.SetName(sally)
+ object := NewActivityStreamsPerson()
+ joe := NewActivityStreamsNameProperty()
+ joe.AppendString("Joe")
+ object.SetName(joe)
+ target := NewActivityStreamsGroup()
+ club := NewActivityStreamsNameProperty()
+ club.AppendString("The Club")
+ target.SetName(club)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally accepted Joe into the club")
+ example10Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(person)
+ example10Type.SetActor(rootActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendPerson(object)
+ example10Type.SetObject(obj)
+ tobj := NewActivityStreamsTargetProperty()
+ tobj.AppendGroup(target)
+ example10Type.SetTarget(tobj)
+ return example10Type
+}
+
+const example11 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally tentatively accepted an invitation to a party",
+ "type": "TentativeAccept",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": {
+ "type": "Invite",
+ "actor": "http://john.example.org",
+ "object": {
+ "type": "Event",
+ "name": "Going-Away Party for Jim"
+ }
+ }
+}`
+
+func example11Type() vocab.TentativeAcceptInterface {
+ example11Type := NewActivityStreamsTentativeAccept()
+ person := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ person.SetName(sally)
+ event := NewActivityStreamsEvent()
+ goingAway := NewActivityStreamsNameProperty()
+ goingAway.AppendString("Going-Away Party for Jim")
+ event.SetName(goingAway)
+ invite := NewActivityStreamsInvite()
+ inviteActor := NewActivityStreamsActorProperty()
+ inviteActor.AppendIRI(MustParseURL("http://john.example.org"))
+ invite.SetActor(inviteActor)
+ objInvite := NewActivityStreamsObjectProperty()
+ objInvite.AppendEvent(event)
+ invite.SetObject(objInvite)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally tentatively accepted an invitation to a party")
+ example11Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(person)
+ example11Type.SetActor(rootActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendInvite(invite)
+ example11Type.SetObject(obj)
+ return example11Type
+}
+
+const example12 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally added an object",
+ "type": "Add",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": "http://example.org/abc"
+}`
+
+func example12Type() vocab.AddInterface {
+ example12Type := NewActivityStreamsAdd()
+ person := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ person.SetName(sally)
+ link := MustParseURL("http://example.org/abc")
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally added an object")
+ example12Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(person)
+ example12Type.SetActor(rootActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(link)
+ example12Type.SetObject(obj)
+ return example12Type
+}
+
+const example13 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally added a picture of her cat to her cat picture collection",
+ "type": "Add",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": {
+ "type": "Image",
+ "name": "A picture of my cat",
+ "url": "http://example.org/img/cat.png"
+ },
+ "origin": {
+ "type": "Collection",
+ "name": "Camera Roll"
+ },
+ "target": {
+ "type": "Collection",
+ "name": "My Cat Pictures"
+ }
+}`
+
+func example13Type() vocab.AddInterface {
+ example13Type := NewActivityStreamsAdd()
+ person := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ person.SetName(sally)
+ link := MustParseURL("http://example.org/img/cat.png")
+ object := NewActivityStreamsImage()
+ objectName := NewActivityStreamsNameProperty()
+ objectName.AppendString("A picture of my cat")
+ object.SetName(objectName)
+ urlProp := NewActivityStreamsUrlProperty()
+ urlProp.AppendIRI(link)
+ object.SetUrl(urlProp)
+ origin := NewActivityStreamsCollection()
+ originName := NewActivityStreamsNameProperty()
+ originName.AppendString("Camera Roll")
+ origin.SetName(originName)
+ target := NewActivityStreamsCollection()
+ targetName := NewActivityStreamsNameProperty()
+ targetName.AppendString("My Cat Pictures")
+ target.SetName(targetName)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally added a picture of her cat to her cat picture collection")
+ example13Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(person)
+ example13Type.SetActor(rootActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendImage(object)
+ example13Type.SetObject(obj)
+ originProp := NewActivityStreamsOriginProperty()
+ originProp.AppendCollection(origin)
+ example13Type.SetOrigin(originProp)
+ tobj := NewActivityStreamsTargetProperty()
+ tobj.AppendCollection(target)
+ example13Type.SetTarget(tobj)
+ return example13Type
+}
+
+const example14 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally arrived at work",
+ "type": "Arrive",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "location": {
+ "type": "Place",
+ "name": "Work"
+ },
+ "origin": {
+ "type": "Place",
+ "name": "Home"
+ }
+}`
+
+func example14Type() vocab.ArriveInterface {
+ example14Type := NewActivityStreamsArrive()
+ person := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ person.SetName(sally)
+ location := NewActivityStreamsPlace()
+ locationName := NewActivityStreamsNameProperty()
+ locationName.AppendString("Work")
+ location.SetName(locationName)
+ origin := NewActivityStreamsPlace()
+ originName := NewActivityStreamsNameProperty()
+ originName.AppendString("Home")
+ origin.SetName(originName)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally arrived at work")
+ example14Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(person)
+ example14Type.SetActor(rootActor)
+ loc := NewActivityStreamsLocationProperty()
+ loc.AppendPlace(location)
+ example14Type.SetLocation(loc)
+ originProp := NewActivityStreamsOriginProperty()
+ originProp.AppendPlace(origin)
+ example14Type.SetOrigin(originProp)
+ return example14Type
+}
+
+const example15 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally created a note",
+ "type": "Create",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": {
+ "type": "Note",
+ "name": "A Simple Note",
+ "content": "This is a simple note"
+ }
+}`
+
+func example15Type() vocab.CreateInterface {
+ example15Type := NewActivityStreamsCreate()
+ actor := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ actor.SetName(sally)
+ object := NewActivityStreamsNote()
+ objectName := NewActivityStreamsNameProperty()
+ objectName.AppendString("A Simple Note")
+ object.SetName(objectName)
+ content := NewActivityStreamsContentProperty()
+ content.AppendString("This is a simple note")
+ object.SetContent(content)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally created a note")
+ example15Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(actor)
+ example15Type.SetActor(rootActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendNote(object)
+ example15Type.SetObject(obj)
+ return example15Type
+}
+
+const example16 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally deleted a note",
+ "type": "Delete",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": "http://example.org/notes/1",
+ "origin": {
+ "type": "Collection",
+ "name": "Sally's Notes"
+ }
+}`
+
+func example16Type() vocab.DeleteInterface {
+ example16Type := NewActivityStreamsDelete()
+ actor := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ actor.SetName(sally)
+ origin := NewActivityStreamsCollection()
+ originName := NewActivityStreamsNameProperty()
+ originName.AppendString("Sally's Notes")
+ origin.SetName(originName)
+ link := MustParseURL("http://example.org/notes/1")
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally deleted a note")
+ example16Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(actor)
+ example16Type.SetActor(rootActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(link)
+ example16Type.SetObject(obj)
+ originProp := NewActivityStreamsOriginProperty()
+ originProp.AppendCollection(origin)
+ example16Type.SetOrigin(originProp)
+ return example16Type
+}
+
+const example17 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally followed John",
+ "type": "Follow",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": {
+ "type": "Person",
+ "name": "John"
+ }
+}`
+
+func example17Type() vocab.FollowInterface {
+ example17Type := NewActivityStreamsFollow()
+ actor := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ actor.SetName(sally)
+ object := NewActivityStreamsPerson()
+ objectName := NewActivityStreamsNameProperty()
+ objectName.AppendString("John")
+ object.SetName(objectName)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally followed John")
+ example17Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(actor)
+ example17Type.SetActor(rootActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendPerson(object)
+ example17Type.SetObject(obj)
+ return example17Type
+}
+
+const example18 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally ignored a note",
+ "type": "Ignore",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": "http://example.org/notes/1"
+}`
+
+func example18Type() vocab.IgnoreInterface {
+ example18Type := NewActivityStreamsIgnore()
+ actor := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ actor.SetName(sally)
+ link := MustParseURL("http://example.org/notes/1")
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally ignored a note")
+ example18Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(actor)
+ example18Type.SetActor(rootActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(link)
+ example18Type.SetObject(obj)
+ return example18Type
+}
+
+const example19 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally joined a group",
+ "type": "Join",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": {
+ "type": "Group",
+ "name": "A Simple Group"
+ }
+}`
+
+func example19Type() vocab.JoinInterface {
+ example19Type := NewActivityStreamsJoin()
+ actor := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ actor.SetName(sally)
+ object := NewActivityStreamsGroup()
+ objectName := NewActivityStreamsNameProperty()
+ objectName.AppendString("A Simple Group")
+ object.SetName(objectName)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally joined a group")
+ example19Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(actor)
+ example19Type.SetActor(rootActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendGroup(object)
+ example19Type.SetObject(obj)
+ return example19Type
+}
+
+const example20 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally left work",
+ "type": "Leave",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": {
+ "type": "Place",
+ "name": "Work"
+ }
+}`
+
+func example20Type() vocab.LeaveInterface {
+ example20Type := NewActivityStreamsLeave()
+ actor := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ actor.SetName(sally)
+ object := NewActivityStreamsPlace()
+ objectName := NewActivityStreamsNameProperty()
+ objectName.AppendString("Work")
+ object.SetName(objectName)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally left work")
+ example20Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(actor)
+ example20Type.SetActor(rootActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendPlace(object)
+ example20Type.SetObject(obj)
+ return example20Type
+}
+
+const example21 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally left a group",
+ "type": "Leave",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": {
+ "type": "Group",
+ "name": "A Simple Group"
+ }
+}`
+
+func example21Type() vocab.LeaveInterface {
+ example21Type := NewActivityStreamsLeave()
+ actor := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ actor.SetName(sally)
+ object := NewActivityStreamsGroup()
+ objectName := NewActivityStreamsNameProperty()
+ objectName.AppendString("A Simple Group")
+ object.SetName(objectName)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally left a group")
+ example21Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(actor)
+ example21Type.SetActor(rootActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendGroup(object)
+ example21Type.SetObject(obj)
+ return example21Type
+}
+
+const example22 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally liked a note",
+ "type": "Like",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": "http://example.org/notes/1"
+}`
+
+func example22Type() vocab.LikeInterface {
+ example22Type := NewActivityStreamsLike()
+ actor := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ actor.SetName(sally)
+ link := MustParseURL("http://example.org/notes/1")
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally liked a note")
+ example22Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(actor)
+ example22Type.SetActor(rootActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(link)
+ example22Type.SetObject(obj)
+ return example22Type
+}
+
+const example23 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally offered 50% off to Lewis",
+ "type": "Offer",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": {
+ "type": "http://www.types.example/ProductOffer",
+ "name": "50% Off!"
+ },
+ "target": {
+ "type": "Person",
+ "name": "Lewis"
+ }
+}`
+
+var example23Unknown = func(m map[string]interface{}) map[string]interface{} {
+ m["object"] = map[string]interface{}{
+ "type": "http://www.types.example/ProductOffer",
+ "name": "50% Off!",
+ }
+ return m
+}
+
+func example23Type() vocab.OfferInterface {
+ example23Type := NewActivityStreamsOffer()
+ actor := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ actor.SetName(sally)
+ target := NewActivityStreamsPerson()
+ targetName := NewActivityStreamsNameProperty()
+ targetName.AppendString("Lewis")
+ target.SetName(targetName)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally offered 50% off to Lewis")
+ example23Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(actor)
+ example23Type.SetActor(rootActor)
+ tobj := NewActivityStreamsTargetProperty()
+ tobj.AppendPerson(target)
+ example23Type.SetTarget(tobj)
+ return example23Type
+}
+
+const example24 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally invited John and Lisa to a party",
+ "type": "Invite",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": {
+ "type": "Event",
+ "name": "A Party"
+ },
+ "target": [
+ {
+ "type": "Person",
+ "name": "John"
+ },
+ {
+ "type": "Person",
+ "name": "Lisa"
+ }
+ ]
+}`
+
+func example24Type() vocab.InviteInterface {
+ example24Type := NewActivityStreamsInvite()
+ actor := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ actor.SetName(sally)
+ object := NewActivityStreamsEvent()
+ objectName := NewActivityStreamsNameProperty()
+ objectName.AppendString("A Party")
+ object.SetName(objectName)
+ target1 := NewActivityStreamsPerson()
+ target1Name := NewActivityStreamsNameProperty()
+ target1Name.AppendString("John")
+ target1.SetName(target1Name)
+ target2 := NewActivityStreamsPerson()
+ target2Name := NewActivityStreamsNameProperty()
+ target2Name.AppendString("Lisa")
+ target2.SetName(target2Name)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally invited John and Lisa to a party")
+ example24Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(actor)
+ example24Type.SetActor(rootActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendEvent(object)
+ example24Type.SetObject(obj)
+ tobj := NewActivityStreamsTargetProperty()
+ tobj.AppendPerson(target1)
+ tobj.AppendPerson(target2)
+ example24Type.SetTarget(tobj)
+ return example24Type
+}
+
+const example25 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally rejected an invitation to a party",
+ "type": "Reject",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": {
+ "type": "Invite",
+ "actor": "http://john.example.org",
+ "object": {
+ "type": "Event",
+ "name": "Going-Away Party for Jim"
+ }
+ }
+}`
+
+func example25Type() vocab.RejectInterface {
+ example25Type := NewActivityStreamsReject()
+ actor := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ actor.SetName(sally)
+ inviteObject := NewActivityStreamsEvent()
+ goingAway := NewActivityStreamsNameProperty()
+ goingAway.AppendString("Going-Away Party for Jim")
+ inviteObject.SetName(goingAway)
+ object := NewActivityStreamsInvite()
+ objectActor := NewActivityStreamsActorProperty()
+ objectActor.AppendIRI(MustParseURL("http://john.example.org"))
+ object.SetActor(objectActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendEvent(inviteObject)
+ object.SetObject(obj)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally rejected an invitation to a party")
+ example25Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(actor)
+ example25Type.SetActor(rootActor)
+ objRoot := NewActivityStreamsObjectProperty()
+ objRoot.AppendInvite(object)
+ example25Type.SetObject(objRoot)
+ return example25Type
+}
+
+const example26 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally tentatively rejected an invitation to a party",
+ "type": "TentativeReject",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": {
+ "type": "Invite",
+ "actor": "http://john.example.org",
+ "object": {
+ "type": "Event",
+ "name": "Going-Away Party for Jim"
+ }
+ }
+}`
+
+func example26Type() vocab.TentativeRejectInterface {
+ example26Type := NewActivityStreamsTentativeReject()
+ actor := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ actor.SetName(sally)
+ inviteObject := NewActivityStreamsEvent()
+ goingAway := NewActivityStreamsNameProperty()
+ goingAway.AppendString("Going-Away Party for Jim")
+ inviteObject.SetName(goingAway)
+ object := NewActivityStreamsInvite()
+ objectActor := NewActivityStreamsActorProperty()
+ objectActor.AppendIRI(MustParseURL("http://john.example.org"))
+ object.SetActor(objectActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendEvent(inviteObject)
+ object.SetObject(obj)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally tentatively rejected an invitation to a party")
+ example26Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(actor)
+ example26Type.SetActor(rootActor)
+ objRoot := NewActivityStreamsObjectProperty()
+ objRoot.AppendInvite(object)
+ example26Type.SetObject(objRoot)
+ return example26Type
+}
+
+const example27 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally removed a note from her notes folder",
+ "type": "Remove",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": "http://example.org/notes/1",
+ "target": {
+ "type": "Collection",
+ "name": "Notes Folder"
+ }
+}`
+
+func example27Type() vocab.RemoveInterface {
+ example27Type := NewActivityStreamsRemove()
+ actor := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ actor.SetName(sally)
+ link := MustParseURL("http://example.org/notes/1")
+ target := NewActivityStreamsCollection()
+ targetName := NewActivityStreamsNameProperty()
+ targetName.AppendString("Notes Folder")
+ target.SetName(targetName)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally removed a note from her notes folder")
+ example27Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(actor)
+ example27Type.SetActor(rootActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(link)
+ example27Type.SetObject(obj)
+ tobj := NewActivityStreamsTargetProperty()
+ tobj.AppendCollection(target)
+ example27Type.SetTarget(tobj)
+ return example27Type
+}
+
+const example28 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "The moderator removed Sally from a group",
+ "type": "Remove",
+ "actor": {
+ "type": "http://example.org/Role",
+ "name": "The Moderator"
+ },
+ "object": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "origin": {
+ "type": "Group",
+ "name": "A Simple Group"
+ }
+}`
+
+var example28Unknown = func(m map[string]interface{}) map[string]interface{} {
+ m["actor"] = map[string]interface{}{
+ "type": "http://example.org/Role",
+ "name": "The Moderator",
+ }
+ return m
+}
+
+func example28Type() vocab.RemoveInterface {
+ example28Type := NewActivityStreamsRemove()
+ object := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ object.SetName(sally)
+ origin := NewActivityStreamsGroup()
+ originName := NewActivityStreamsNameProperty()
+ originName.AppendString("A Simple Group")
+ origin.SetName(originName)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("The moderator removed Sally from a group")
+ example28Type.SetSummary(summary)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendPerson(object)
+ example28Type.SetObject(obj)
+ originProp := NewActivityStreamsOriginProperty()
+ originProp.AppendGroup(origin)
+ example28Type.SetOrigin(originProp)
+ return example28Type
+}
+
+const example29 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally retracted her offer to John",
+ "type": "Undo",
+ "actor": "http://sally.example.org",
+ "object": {
+ "type": "Offer",
+ "actor": "http://sally.example.org",
+ "object": "http://example.org/posts/1",
+ "target": "http://john.example.org"
+ }
+}`
+
+func example29Type() vocab.UndoInterface {
+ example29Type := NewActivityStreamsUndo()
+ link := MustParseURL("http://sally.example.org")
+ objectLink := MustParseURL("http://example.org/posts/1")
+ targetLink := MustParseURL("http://john.example.org")
+ object := NewActivityStreamsOffer()
+ objectActor := NewActivityStreamsActorProperty()
+ objectActor.AppendIRI(link)
+ object.SetActor(objectActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(objectLink)
+ object.SetObject(obj)
+ target := NewActivityStreamsTargetProperty()
+ target.AppendIRI(targetLink)
+ object.SetTarget(target)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally retracted her offer to John")
+ example29Type.SetSummary(summary)
+ actor := NewActivityStreamsActorProperty()
+ actor.AppendIRI(link)
+ example29Type.SetActor(actor)
+ objRoot := NewActivityStreamsObjectProperty()
+ objRoot.AppendOffer(object)
+ example29Type.SetObject(objRoot)
+ return example29Type
+}
+
+const example30 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally updated her note",
+ "type": "Update",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": "http://example.org/notes/1"
+}`
+
+func example30Type() vocab.UpdateInterface {
+ example30Type := NewActivityStreamsUpdate()
+ actor := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ actor.SetName(sally)
+ link := MustParseURL("http://example.org/notes/1")
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally updated her note")
+ example30Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(actor)
+ example30Type.SetActor(rootActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(link)
+ example30Type.SetObject(obj)
+ return example30Type
+}
+
+const example31 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally read an article",
+ "type": "View",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": {
+ "type": "Article",
+ "name": "What You Should Know About Activity Streams"
+ }
+}`
+
+func example31Type() vocab.ViewInterface {
+ example31Type := NewActivityStreamsView()
+ actor := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ actor.SetName(sally)
+ object := NewActivityStreamsArticle()
+ objectName := NewActivityStreamsNameProperty()
+ objectName.AppendString("What You Should Know About Activity Streams")
+ object.SetName(objectName)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally read an article")
+ example31Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(actor)
+ example31Type.SetActor(rootActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendArticle(object)
+ example31Type.SetObject(obj)
+ return example31Type
+}
+
+const example32 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally listened to a piece of music",
+ "type": "Listen",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": "http://example.org/music.mp3"
+}`
+
+func example32Type() vocab.ListenInterface {
+ example32Type := NewActivityStreamsListen()
+ actor := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ actor.SetName(sally)
+ link := MustParseURL("http://example.org/music.mp3")
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally listened to a piece of music")
+ example32Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(actor)
+ example32Type.SetActor(rootActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(link)
+ example32Type.SetObject(obj)
+ return example32Type
+}
+
+const example33 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally read a blog post",
+ "type": "Read",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": "http://example.org/posts/1"
+}`
+
+func example33Type() vocab.ReadInterface {
+ example33Type := NewActivityStreamsRead()
+ actor := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ actor.SetName(sally)
+ link := MustParseURL("http://example.org/posts/1")
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally read a blog post")
+ example33Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(actor)
+ example33Type.SetActor(rootActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(link)
+ example33Type.SetObject(obj)
+ return example33Type
+}
+
+const example34 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally moved a post from List A to List B",
+ "type": "Move",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": "http://example.org/posts/1",
+ "target": {
+ "type": "Collection",
+ "name": "List B"
+ },
+ "origin": {
+ "type": "Collection",
+ "name": "List A"
+ }
+}`
+
+func example34Type() vocab.MoveInterface {
+ example34Type := NewActivityStreamsMove()
+ actor := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ actor.SetName(sally)
+ link := MustParseURL("http://example.org/posts/1")
+ target := NewActivityStreamsCollection()
+ targetName := NewActivityStreamsNameProperty()
+ targetName.AppendString("List B")
+ target.SetName(targetName)
+ origin := NewActivityStreamsCollection()
+ originName := NewActivityStreamsNameProperty()
+ originName.AppendString("List A")
+ origin.SetName(originName)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally moved a post from List A to List B")
+ example34Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(actor)
+ example34Type.SetActor(rootActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(link)
+ example34Type.SetObject(obj)
+ tobj := NewActivityStreamsTargetProperty()
+ tobj.AppendCollection(target)
+ example34Type.SetTarget(tobj)
+ originProp := NewActivityStreamsOriginProperty()
+ originProp.AppendCollection(origin)
+ example34Type.SetOrigin(originProp)
+ return example34Type
+}
+
+const example35 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally went home from work",
+ "type": "Travel",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "target": {
+ "type": "Place",
+ "name": "Home"
+ },
+ "origin": {
+ "type": "Place",
+ "name": "Work"
+ }
+}`
+
+func example35Type() vocab.TravelInterface {
+ example35Type := NewActivityStreamsTravel()
+ actor := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ actor.SetName(sally)
+ target := NewActivityStreamsPlace()
+ targetName := NewActivityStreamsNameProperty()
+ targetName.AppendString("Home")
+ target.SetName(targetName)
+ origin := NewActivityStreamsPlace()
+ originName := NewActivityStreamsNameProperty()
+ originName.AppendString("Work")
+ origin.SetName(originName)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally went home from work")
+ example35Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(actor)
+ example35Type.SetActor(rootActor)
+ tobj := NewActivityStreamsTargetProperty()
+ tobj.AppendPlace(target)
+ example35Type.SetTarget(tobj)
+ originProp := NewActivityStreamsOriginProperty()
+ originProp.AppendPlace(origin)
+ example35Type.SetOrigin(originProp)
+ return example35Type
+}
+
+const example36 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally announced that she had arrived at work",
+ "type": "Announce",
+ "actor": {
+ "type": "Person",
+ "id": "http://sally.example.org",
+ "name": "Sally"
+ },
+ "object": {
+ "type": "Arrive",
+ "actor": "http://sally.example.org",
+ "location": {
+ "type": "Place",
+ "name": "Work"
+ }
+ }
+}`
+
+func example36Type() vocab.AnnounceInterface {
+ example36Type := NewActivityStreamsAnnounce()
+ link := MustParseURL("http://sally.example.org")
+ actor := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ actor.SetName(sally)
+ id := NewActivityStreamsIdProperty()
+ id.Set(link)
+ actor.SetId(id)
+ loc := NewActivityStreamsPlace()
+ locName := NewActivityStreamsNameProperty()
+ locName.AppendString("Work")
+ loc.SetName(locName)
+ object := NewActivityStreamsArrive()
+ objectActor := NewActivityStreamsActorProperty()
+ objectActor.AppendIRI(link)
+ object.SetActor(objectActor)
+ location := NewActivityStreamsLocationProperty()
+ location.AppendPlace(loc)
+ object.SetLocation(location)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally announced that she had arrived at work")
+ example36Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(actor)
+ example36Type.SetActor(rootActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendArrive(object)
+ example36Type.SetObject(obj)
+ return example36Type
+}
+
+const example37 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally blocked Joe",
+ "type": "Block",
+ "actor": "http://sally.example.org",
+ "object": "http://joe.example.org"
+}`
+
+func example37Type() vocab.BlockInterface {
+ example37Type := NewActivityStreamsBlock()
+ link := MustParseURL("http://sally.example.org")
+ objLink := MustParseURL("http://joe.example.org")
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally blocked Joe")
+ example37Type.SetSummary(summary)
+ objectActor := NewActivityStreamsActorProperty()
+ objectActor.AppendIRI(link)
+ example37Type.SetActor(objectActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(objLink)
+ example37Type.SetObject(obj)
+ return example37Type
+}
+
+const example38 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally flagged an inappropriate note",
+ "type": "Flag",
+ "actor": "http://sally.example.org",
+ "object": {
+ "type": "Note",
+ "content": "An inappropriate note"
+ }
+}`
+
+func example38Type() vocab.FlagInterface {
+ example38Type := NewActivityStreamsFlag()
+ link := MustParseURL("http://sally.example.org")
+ object := NewActivityStreamsNote()
+ content := NewActivityStreamsContentProperty()
+ content.AppendString("An inappropriate note")
+ object.SetContent(content)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally flagged an inappropriate note")
+ example38Type.SetSummary(summary)
+ objectActor := NewActivityStreamsActorProperty()
+ objectActor.AppendIRI(link)
+ example38Type.SetActor(objectActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendNote(object)
+ example38Type.SetObject(obj)
+ return example38Type
+}
+
+const example39 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally disliked a post",
+ "type": "Dislike",
+ "actor": "http://sally.example.org",
+ "object": "http://example.org/posts/1"
+}`
+
+func example39Type() vocab.DislikeInterface {
+ example39Type := NewActivityStreamsDislike()
+ link := MustParseURL("http://sally.example.org")
+ objLink := MustParseURL("http://example.org/posts/1")
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally disliked a post")
+ example39Type.SetSummary(summary)
+ objectActor := NewActivityStreamsActorProperty()
+ objectActor.AppendIRI(link)
+ example39Type.SetActor(objectActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(objLink)
+ example39Type.SetObject(obj)
+ return example39Type
+}
+
+const example40 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Question",
+ "name": "What is the answer?",
+ "oneOf": [
+ {
+ "type": "Note",
+ "name": "Option A"
+ },
+ {
+ "type": "Note",
+ "name": "Option B"
+ }
+ ]
+}`
+
+func example40Type() vocab.QuestionInterface {
+ example40Type := NewActivityStreamsQuestion()
+ note1 := NewActivityStreamsNote()
+ note1Name := NewActivityStreamsNameProperty()
+ note1Name.AppendString("Option A")
+ note1.SetName(note1Name)
+ note2 := NewActivityStreamsNote()
+ note2Name := NewActivityStreamsNameProperty()
+ note2Name.AppendString("Option B")
+ note2.SetName(note2Name)
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("What is the answer?")
+ example40Type.SetName(name)
+ oneOf1 := NewActivityStreamsOneOfProperty()
+ oneOf1.AppendNote(note1)
+ example40Type.SetOneOf(oneOf1)
+ oneOf2 := NewActivityStreamsOneOfProperty()
+ oneOf2.AppendNote(note2)
+ example40Type.SetOneOf(oneOf2)
+ return example40Type
+}
+
+const example41 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Question",
+ "name": "What is the answer?",
+ "closed": "2016-05-10T00:00:00Z"
+}`
+
+func example41Type() vocab.QuestionInterface {
+ example41Type := NewActivityStreamsQuestion()
+ t, err := time.Parse(time.RFC3339, "2016-05-10T00:00:00Z")
+ if err != nil {
+ panic(err)
+ }
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("What is the answer?")
+ example41Type.SetName(name)
+ closed := NewActivityStreamsClosedProperty()
+ closed.AppendDateTime(t)
+ example41Type.SetClosed(closed)
+ return example41Type
+}
+
+const example42 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Application",
+ "name": "Exampletron 3000"
+}`
+
+func example42Type() vocab.ApplicationInterface {
+ example42Type := NewActivityStreamsApplication()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Exampletron 3000")
+ example42Type.SetName(name)
+ return example42Type
+}
+
+const example43 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Group",
+ "name": "Big Beards of Austin"
+}`
+
+func example43Type() vocab.GroupInterface {
+ example43Type := NewActivityStreamsGroup()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Big Beards of Austin")
+ example43Type.SetName(name)
+ return example43Type
+}
+
+const example44 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Organization",
+ "name": "Example Co."
+}`
+
+func example44Type() vocab.OrganizationInterface {
+ example44Type := NewActivityStreamsOrganization()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Example Co.")
+ example44Type.SetName(name)
+ return example44Type
+}
+
+const example45 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Person",
+ "name": "Sally Smith"
+}`
+
+func example45Type() vocab.PersonInterface {
+ example45Type := NewActivityStreamsPerson()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Sally Smith")
+ example45Type.SetName(name)
+ return example45Type
+}
+
+const example46 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Service",
+ "name": "Acme Web Service"
+}`
+
+func example46Type() vocab.ServiceInterface {
+ example46Type := NewActivityStreamsService()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Acme Web Service")
+ example46Type.SetName(name)
+ return example46Type
+}
+
+const example47 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally is an acquaintance of John",
+ "type": "Relationship",
+ "subject": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "relationship": "http://purl.org/vocab/relationship/acquaintanceOf",
+ "object": {
+ "type": "Person",
+ "name": "John"
+ }
+}`
+
+func example47Type() vocab.RelationshipInterface {
+ example47Type := NewActivityStreamsRelationship()
+ subject := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ subject.SetName(sally)
+ object := NewActivityStreamsPerson()
+ objectName := NewActivityStreamsNameProperty()
+ objectName.AppendString("John")
+ object.SetName(objectName)
+ rel := MustParseURL("http://purl.org/vocab/relationship/acquaintanceOf")
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally is an acquaintance of John")
+ example47Type.SetSummary(summary)
+ subj := NewActivityStreamsSubjectProperty()
+ subj.SetPerson(subject)
+ example47Type.SetSubject(subj)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendPerson(object)
+ example47Type.SetObject(obj)
+ relationship := NewActivityStreamsRelationshipProperty()
+ relationship.AppendIRI(rel)
+ example47Type.SetRelationship(relationship)
+ return example47Type
+}
+
+const example48 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Article",
+ "name": "What a Crazy Day I Had",
+ "content": "
... you will never believe ...
",
+ "attributedTo": "http://sally.example.org"
+}`
+
+func example48Type() vocab.ArticleInterface {
+ example48Type := NewActivityStreamsArticle()
+ att := MustParseURL("http://sally.example.org")
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("What a Crazy Day I Had")
+ example48Type.SetName(name)
+ attr := NewActivityStreamsAttributedToProperty()
+ attr.AppendIRI(att)
+ example48Type.SetAttributedTo(attr)
+ content := NewActivityStreamsContentProperty()
+ content.AppendString("... you will never believe ...
")
+ example48Type.SetContent(content)
+ return example48Type
+}
+
+const example49 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Document",
+ "name": "4Q Sales Forecast",
+ "url": "http://example.org/4q-sales-forecast.pdf"
+}`
+
+func example49Type() vocab.DocumentInterface {
+ example49Type := NewActivityStreamsDocument()
+ l := MustParseURL("http://example.org/4q-sales-forecast.pdf")
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("4Q Sales Forecast")
+ example49Type.SetName(name)
+ urlProp := NewActivityStreamsUrlProperty()
+ urlProp.AppendIRI(l)
+ example49Type.SetUrl(urlProp)
+ return example49Type
+}
+
+const example50 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Audio",
+ "name": "Interview With A Famous Technologist",
+ "url": {
+ "type": "Link",
+ "href": "http://example.org/podcast.mp3",
+ "mediaType": "audio/mp3"
+ }
+}`
+
+func example50Type() vocab.AudioInterface {
+ example50Type := NewActivityStreamsAudio()
+ l := MustParseURL("http://example.org/podcast.mp3")
+ link := NewActivityStreamsLink()
+ href := NewActivityStreamsHrefProperty()
+ href.Set(l)
+ link.SetHref(href)
+ mediaType := NewActivityStreamsMediaTypeProperty()
+ mediaType.Set("audio/mp3")
+ link.SetMediaType(mediaType)
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Interview With A Famous Technologist")
+ example50Type.SetName(name)
+ urlProperty := NewActivityStreamsUrlProperty()
+ urlProperty.AppendLink(link)
+ example50Type.SetUrl(urlProperty)
+ return example50Type
+}
+
+const example51 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Image",
+ "name": "Cat Jumping on Wagon",
+ "url": [
+ {
+ "type": "Link",
+ "href": "http://example.org/image.jpeg",
+ "mediaType": "image/jpeg"
+ },
+ {
+ "type": "Link",
+ "href": "http://example.org/image.png",
+ "mediaType": "image/png"
+ }
+ ]
+}`
+
+func example51Type() vocab.ImageInterface {
+ example51Type := NewActivityStreamsImage()
+ l1 := MustParseURL("http://example.org/image.jpeg")
+ l2 := MustParseURL("http://example.org/image.png")
+ link1 := NewActivityStreamsLink()
+ href1 := NewActivityStreamsHrefProperty()
+ href1.Set(l1)
+ link1.SetHref(href1)
+ mediaType1 := NewActivityStreamsMediaTypeProperty()
+ mediaType1.Set("image/jpeg")
+ link1.SetMediaType(mediaType1)
+ link2 := NewActivityStreamsLink()
+ href2 := NewActivityStreamsHrefProperty()
+ href2.Set(l2)
+ link2.SetHref(href2)
+ mediaType2 := NewActivityStreamsMediaTypeProperty()
+ mediaType2.Set("image/png")
+ link2.SetMediaType(mediaType2)
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Cat Jumping on Wagon")
+ example51Type.SetName(name)
+ urlProperty1 := NewActivityStreamsUrlProperty()
+ urlProperty1.AppendLink(link1)
+ example51Type.SetUrl(urlProperty1)
+ urlProperty2 := NewActivityStreamsUrlProperty()
+ urlProperty2.AppendLink(link2)
+ example51Type.SetUrl(urlProperty2)
+ return example51Type
+}
+
+const example52 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Video",
+ "name": "Puppy Plays With Ball",
+ "url": "http://example.org/video.mkv",
+ "duration": "PT2H"
+}`
+
+func example52Type() vocab.VideoInterface {
+ example52Type := NewActivityStreamsVideo()
+ l := MustParseURL("http://example.org/video.mkv")
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Puppy Plays With Ball")
+ example52Type.SetName(name)
+ urlProp := NewActivityStreamsUrlProperty()
+ urlProp.AppendIRI(l)
+ example52Type.SetUrl(urlProp)
+ dur := NewActivityStreamsDurationProperty()
+ dur.Set(time.Hour * 2)
+ example52Type.SetDuration(dur)
+ return example52Type
+}
+
+const example53 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Note",
+ "name": "A Word of Warning",
+ "content": "Looks like it is going to rain today. Bring an umbrella!"
+}`
+
+func example53Type() vocab.NoteInterface {
+ example53Type := NewActivityStreamsNote()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("A Word of Warning")
+ example53Type.SetName(name)
+ content := NewActivityStreamsContentProperty()
+ content.AppendString("Looks like it is going to rain today. Bring an umbrella!")
+ example53Type.SetContent(content)
+ return example53Type
+}
+
+const example54 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Page",
+ "name": "Omaha Weather Report",
+ "url": "http://example.org/weather-in-omaha.html"
+}`
+
+func example54Type() vocab.PageInterface {
+ example54Type := NewActivityStreamsPage()
+ l := MustParseURL("http://example.org/weather-in-omaha.html")
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Omaha Weather Report")
+ example54Type.SetName(name)
+ urlProp := NewActivityStreamsUrlProperty()
+ urlProp.AppendIRI(l)
+ example54Type.SetUrl(urlProp)
+ return example54Type
+}
+
+const example55 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Event",
+ "name": "Going-Away Party for Jim",
+ "startTime": "2014-12-31T23:00:00-08:00",
+ "endTime": "2015-01-01T06:00:00-08:00"
+}`
+
+func example55Type() vocab.EventInterface {
+ example55Type := NewActivityStreamsEvent()
+ t1, err := time.Parse(time.RFC3339, "2014-12-31T23:00:00-08:00")
+ if err != nil {
+ panic(err)
+ }
+ t2, err := time.Parse(time.RFC3339, "2015-01-01T06:00:00-08:00")
+ if err != nil {
+ panic(err)
+ }
+ goingAway := NewActivityStreamsNameProperty()
+ goingAway.AppendString("Going-Away Party for Jim")
+ example55Type.SetName(goingAway)
+ startTime := NewActivityStreamsStartTimeProperty()
+ startTime.Set(t1)
+ example55Type.SetStartTime(startTime)
+ endTime := NewActivityStreamsEndTimeProperty()
+ endTime.Set(t2)
+ example55Type.SetEndTime(endTime)
+ return example55Type
+}
+
+const example56 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Place",
+ "name": "Work"
+}`
+
+func example56Type() vocab.PlaceInterface {
+ example56Type := NewActivityStreamsPlace()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Work")
+ example56Type.SetName(name)
+ return example56Type
+}
+
+const example57 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Place",
+ "name": "Fresno Area",
+ "latitude": 36.75,
+ "longitude": 119.7667,
+ "radius": 15,
+ "units": "miles"
+}`
+
+func example57Type() vocab.PlaceInterface {
+ example57Type := NewActivityStreamsPlace()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Fresno Area")
+ example57Type.SetName(name)
+ lat := NewActivityStreamsLatitudeProperty()
+ lat.Set(36.75)
+ example57Type.SetLatitude(lat)
+ lon := NewActivityStreamsLongitudeProperty()
+ lon.Set(119.7667)
+ example57Type.SetLongitude(lon)
+ rad := NewActivityStreamsRadiusProperty()
+ rad.Set(15)
+ example57Type.SetRadius(rad)
+ units := NewActivityStreamsUnitsProperty()
+ units.SetString("miles")
+ example57Type.SetUnits(units)
+ return example57Type
+}
+
+const example58 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Mention",
+ "summary": "Mention of Joe by Carrie in her note",
+ "href": "http://example.org/joe",
+ "name": "Joe"
+}`
+
+func example58Type() vocab.MentionInterface {
+ example58Type := NewActivityStreamsMention()
+ l := MustParseURL("http://example.org/joe")
+ href := NewActivityStreamsHrefProperty()
+ href.Set(l)
+ example58Type.SetHref(href)
+ joe := NewActivityStreamsNameProperty()
+ joe.AppendString("Joe")
+ example58Type.SetName(joe)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Mention of Joe by Carrie in her note")
+ example58Type.SetSummary(summary)
+ return example58Type
+}
+
+const example59 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Profile",
+ "summary": "Sally's Profile",
+ "describes": {
+ "type": "Person",
+ "name": "Sally Smith"
+ }
+}`
+
+func example59Type() vocab.ProfileInterface {
+ example59Type := NewActivityStreamsProfile()
+ person := NewActivityStreamsPerson()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Sally Smith")
+ person.SetName(name)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally's Profile")
+ example59Type.SetSummary(summary)
+ describes := NewActivityStreamsDescribesProperty()
+ describes.SetPerson(person)
+ example59Type.SetDescribes(describes)
+ return example59Type
+}
+
+// Note that the @context is missing from the spec!
+const example60 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "OrderedCollection",
+ "totalItems": 3,
+ "name": "Vacation photos 2016",
+ "orderedItems": [
+ {
+ "type": "Image",
+ "id": "http://image.example/1"
+ },
+ {
+ "type": "Tombstone",
+ "formerType": "Image",
+ "id": "http://image.example/2",
+ "deleted": "2016-03-17T00:00:00Z"
+ },
+ {
+ "type": "Image",
+ "id": "http://image.example/3"
+ }
+ ]
+}`
+
+func example60Type() vocab.OrderedCollectionInterface {
+ example60Type := NewActivityStreamsOrderedCollection()
+ t, err := time.Parse(time.RFC3339, "2016-03-17T00:00:00Z")
+ if err != nil {
+ panic(err)
+ }
+ image1 := NewActivityStreamsImage()
+ imgId1 := NewActivityStreamsIdProperty()
+ imgId1.Set(MustParseURL("http://image.example/1"))
+ image1.SetId(imgId1)
+ tombstone := NewActivityStreamsTombstone()
+ ft := NewActivityStreamsFormerTypeProperty()
+ ft.AppendString("Image")
+ tombstone.SetFormerType(ft)
+ tombId := NewActivityStreamsIdProperty()
+ tombId.Set(MustParseURL("http://image.example/2"))
+ tombstone.SetId(tombId)
+ deleted := NewActivityStreamsDeletedProperty()
+ deleted.Set(t)
+ tombstone.SetDeleted(deleted)
+ image2 := NewActivityStreamsImage()
+ imgId2 := NewActivityStreamsIdProperty()
+ imgId2.Set(MustParseURL("http://image.example/3"))
+ image2.SetId(imgId2)
+ totalItems := NewActivityStreamsTotalItemsProperty()
+ totalItems.Set(3)
+ example60Type.SetTotalItems(totalItems)
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Vacation photos 2016")
+ example60Type.SetName(name)
+ orderedItems := NewActivityStreamsOrderedItemsProperty()
+ orderedItems.AppendImage(image1)
+ orderedItems.AppendTombstone(tombstone)
+ orderedItems.AppendImage(image2)
+ example60Type.SetOrderedItems(orderedItems)
+ return example60Type
+}
+
+const example61 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "name": "Foo",
+ "id": "http://example.org/foo"
+}`
+
+func example61Type() interface{} {
+ return nil
+}
+
+var example61Unknown = func(m map[string]interface{}) map[string]interface{} {
+ m["id"] = "http://example.org/foo"
+ m["name"] = "Foo"
+ return m
+}
+
+const example62 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "A foo",
+ "type": "http://example.org/Foo"
+}`
+
+func example62Type() interface{} {
+ return nil
+}
+
+var example62Unknown = func(m map[string]interface{}) map[string]interface{} {
+ m["type"] = "http://example.org/Foo"
+ m["summary"] = "A foo"
+ return m
+}
+
+const example63 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally offered the Foo object",
+ "type": "Offer",
+ "actor": "http://sally.example.org",
+ "object": "http://example.org/foo"
+}`
+
+func example63Type() vocab.OfferInterface {
+ example63Type := NewActivityStreamsOffer()
+ l := MustParseURL("http://sally.example.org")
+ o := MustParseURL("http://example.org/foo")
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally offered the Foo object")
+ example63Type.SetSummary(summary)
+ objectActor := NewActivityStreamsActorProperty()
+ objectActor.AppendIRI(l)
+ example63Type.SetActor(objectActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(o)
+ example63Type.SetObject(obj)
+ return example63Type
+}
+
+const example64 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally offered the Foo object",
+ "type": "Offer",
+ "actor": {
+ "type": "Person",
+ "id": "http://sally.example.org",
+ "summary": "Sally"
+ },
+ "object": "http://example.org/foo"
+}`
+
+func example64Type() vocab.OfferInterface {
+ example64Type := NewActivityStreamsOffer()
+ actor := NewActivityStreamsPerson()
+ actorId := NewActivityStreamsIdProperty()
+ actorId.Set(MustParseURL("http://sally.example.org"))
+ actor.SetId(actorId)
+ summaryActor := NewActivityStreamsSummaryProperty()
+ summaryActor.AppendString("Sally")
+ actor.SetSummary(summaryActor)
+ o := MustParseURL("http://example.org/foo")
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally offered the Foo object")
+ example64Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(actor)
+ example64Type.SetActor(rootActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(o)
+ example64Type.SetObject(obj)
+ return example64Type
+}
+
+const example65 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally and Joe offered the Foo object",
+ "type": "Offer",
+ "actor": [
+ "http://joe.example.org",
+ {
+ "type": "Person",
+ "id": "http://sally.example.org",
+ "name": "Sally"
+ }
+ ],
+ "object": "http://example.org/foo"
+}`
+
+func example65Type() vocab.OfferInterface {
+ example65Type := NewActivityStreamsOffer()
+ actor := NewActivityStreamsPerson()
+ actorId := NewActivityStreamsIdProperty()
+ actorId.Set(MustParseURL("http://sally.example.org"))
+ actor.SetId(actorId)
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ actor.SetName(sally)
+ o := MustParseURL("http://example.org/foo")
+ l := MustParseURL("http://joe.example.org")
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally and Joe offered the Foo object")
+ example65Type.SetSummary(summary)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(o)
+ example65Type.SetObject(obj)
+ objectActor := NewActivityStreamsActorProperty()
+ objectActor.AppendIRI(l)
+ example65Type.SetActor(objectActor)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(actor)
+ example65Type.SetActor(rootActor)
+ return example65Type
+}
+
+// NOTE: Changed to not be an array value for "attachment" to keep in line with other examples in spec!
+const example66 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Note",
+ "name": "Have you seen my cat?",
+ "attachment": {
+ "type": "Image",
+ "content": "This is what he looks like.",
+ "url": "http://example.org/cat.jpeg"
+ }
+}`
+
+func example66Type() vocab.NoteInterface {
+ example66Type := NewActivityStreamsNote()
+ l := MustParseURL("http://example.org/cat.jpeg")
+ image := NewActivityStreamsImage()
+ content := NewActivityStreamsContentProperty()
+ content.AppendString("This is what he looks like.")
+ image.SetContent(content)
+ imgProp := NewActivityStreamsUrlProperty()
+ imgProp.AppendIRI(l)
+ image.SetUrl(imgProp)
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Have you seen my cat?")
+ example66Type.SetName(name)
+ attachment := NewActivityStreamsAttachmentProperty()
+ attachment.AppendImage(image)
+ example66Type.SetAttachment(attachment)
+ return example66Type
+}
+
+// NOTE: Changed to not be an array value for "attributedTo" to keep in line with other examples in spec!
+const example67 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Image",
+ "name": "My cat taking a nap",
+ "url": "http://example.org/cat.jpeg",
+ "attributedTo": {
+ "type": "Person",
+ "name": "Sally"
+ }
+}`
+
+func example67Type() vocab.ImageInterface {
+ example67Type := NewActivityStreamsImage()
+ l := MustParseURL("http://example.org/cat.jpeg")
+ person := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ person.SetName(sally)
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("My cat taking a nap")
+ example67Type.SetName(name)
+ urlProp := NewActivityStreamsUrlProperty()
+ urlProp.AppendIRI(l)
+ example67Type.SetUrl(urlProp)
+ attr := NewActivityStreamsAttributedToProperty()
+ attr.AppendPerson(person)
+ example67Type.SetAttributedTo(attr)
+ return example67Type
+}
+
+const example68 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Image",
+ "name": "My cat taking a nap",
+ "url": "http://example.org/cat.jpeg",
+ "attributedTo": [
+ "http://joe.example.org",
+ {
+ "type": "Person",
+ "name": "Sally"
+ }
+ ]
+}`
+
+func example68Type() vocab.ImageInterface {
+ example68Type := NewActivityStreamsImage()
+ l := MustParseURL("http://example.org/cat.jpeg")
+ a := MustParseURL("http://joe.example.org")
+ person := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ person.SetName(sally)
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("My cat taking a nap")
+ example68Type.SetName(name)
+ urlProp := NewActivityStreamsUrlProperty()
+ urlProp.AppendIRI(l)
+ example68Type.SetUrl(urlProp)
+ attr := NewActivityStreamsAttributedToProperty()
+ attr.AppendIRI(a)
+ example68Type.SetAttributedTo(attr)
+ attrPerson := NewActivityStreamsAttributedToProperty()
+ attrPerson.AppendPerson(person)
+ example68Type.SetAttributedTo(attrPerson)
+ return example68Type
+}
+
+const example69 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "name": "Holiday announcement",
+ "type": "Note",
+ "content": "Thursday will be a company-wide holiday. Enjoy your day off!",
+ "audience": {
+ "type": "http://example.org/Organization",
+ "name": "ExampleCo LLC"
+ }
+}`
+
+var example69Unknown = func(m map[string]interface{}) map[string]interface{} {
+ m["audience"] = map[string]interface{}{
+ "type": "http://example.org/Organization",
+ "name": "ExampleCo LLC",
+ }
+ return m
+}
+
+func example69Type() vocab.NoteInterface {
+ example69Type := NewActivityStreamsNote()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Holiday announcement")
+ example69Type.SetName(name)
+ content := NewActivityStreamsContentProperty()
+ content.AppendString("Thursday will be a company-wide holiday. Enjoy your day off!")
+ example69Type.SetContent(content)
+ return example69Type
+}
+
+// NOTE: Changed to not be an array value for "bcc" to keep in line with other examples in spec!
+const example70 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally offered a post to John",
+ "type": "Offer",
+ "actor": "http://sally.example.org",
+ "object": "http://example.org/posts/1",
+ "target": "http://john.example.org",
+ "bcc": "http://joe.example.org"
+}`
+
+func example70Type() vocab.OfferInterface {
+ example70Type := NewActivityStreamsOffer()
+ o := MustParseURL("http://example.org/posts/1")
+ a := MustParseURL("http://sally.example.org")
+ t := MustParseURL("http://john.example.org")
+ b := MustParseURL("http://joe.example.org")
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally offered a post to John")
+ example70Type.SetSummary(summary)
+ objectActor := NewActivityStreamsActorProperty()
+ objectActor.AppendIRI(a)
+ example70Type.SetActor(objectActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(o)
+ example70Type.SetObject(obj)
+ target := NewActivityStreamsTargetProperty()
+ target.AppendIRI(t)
+ example70Type.SetTarget(target)
+ bcc := NewActivityStreamsBccProperty()
+ bcc.AppendIRI(b)
+ example70Type.SetBcc(bcc)
+ return example70Type
+}
+
+// NOTE: Changed to not be an array value for "bto" to keep in line with other examples in spec!
+const example71 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally offered a post to John",
+ "type": "Offer",
+ "actor": "http://sally.example.org",
+ "object": "http://example.org/posts/1",
+ "target": "http://john.example.org",
+ "bto": "http://joe.example.org"
+}`
+
+func example71Type() vocab.OfferInterface {
+ example71Type := NewActivityStreamsOffer()
+ o := MustParseURL("http://example.org/posts/1")
+ a := MustParseURL("http://sally.example.org")
+ t := MustParseURL("http://john.example.org")
+ b := MustParseURL("http://joe.example.org")
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally offered a post to John")
+ example71Type.SetSummary(summary)
+ objectActor := NewActivityStreamsActorProperty()
+ objectActor.AppendIRI(a)
+ example71Type.SetActor(objectActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(o)
+ example71Type.SetObject(obj)
+ target := NewActivityStreamsTargetProperty()
+ target.AppendIRI(t)
+ example71Type.SetTarget(target)
+ bto := NewActivityStreamsBtoProperty()
+ bto.AppendIRI(b)
+ example71Type.SetBto(bto)
+ return example71Type
+}
+
+// NOTE: Changed to not be an array value for "cc" to keep in line with other examples in spec!
+const example72 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally offered a post to John",
+ "type": "Offer",
+ "actor": "http://sally.example.org",
+ "object": "http://example.org/posts/1",
+ "target": "http://john.example.org",
+ "cc": "http://joe.example.org"
+}`
+
+func example72Type() vocab.OfferInterface {
+ example72Type := NewActivityStreamsOffer()
+ o := MustParseURL("http://example.org/posts/1")
+ a := MustParseURL("http://sally.example.org")
+ t := MustParseURL("http://john.example.org")
+ b := MustParseURL("http://joe.example.org")
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally offered a post to John")
+ example72Type.SetSummary(summary)
+ objectActor := NewActivityStreamsActorProperty()
+ objectActor.AppendIRI(a)
+ example72Type.SetActor(objectActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(o)
+ example72Type.SetObject(obj)
+ target := NewActivityStreamsTargetProperty()
+ target.AppendIRI(t)
+ example72Type.SetTarget(target)
+ cc := NewActivityStreamsCcProperty()
+ cc.AppendIRI(b)
+ example72Type.SetCc(cc)
+ return example72Type
+}
+
+const example73 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Activities in context 1",
+ "type": "Collection",
+ "items": [
+ {
+ "type": "Offer",
+ "actor": "http://sally.example.org",
+ "object": "http://example.org/posts/1",
+ "target": "http://john.example.org",
+ "context": "http://example.org/contexts/1"
+ },
+ {
+ "type": "Like",
+ "actor": "http://joe.example.org",
+ "object": "http://example.org/posts/2",
+ "context": "http://example.org/contexts/1"
+ }
+ ]
+}`
+
+func example73Type() vocab.CollectionInterface {
+ example73Type := NewActivityStreamsCollection()
+ oa := MustParseURL("http://sally.example.org")
+ oo := MustParseURL("http://example.org/posts/1")
+ ot := MustParseURL("http://john.example.org")
+ oc := MustParseURL("http://example.org/contexts/1")
+ offer := NewActivityStreamsOffer()
+ offerActor := NewActivityStreamsActorProperty()
+ offerActor.AppendIRI(oa)
+ offer.SetActor(offerActor)
+ objOffer := NewActivityStreamsObjectProperty()
+ objOffer.AppendIRI(oo)
+ offer.SetObject(objOffer)
+ target := NewActivityStreamsTargetProperty()
+ target.AppendIRI(ot)
+ offer.SetTarget(target)
+ ctx := NewActivityStreamsContextProperty()
+ ctx.AppendIRI(oc)
+ offer.SetContext(ctx)
+ la := MustParseURL("http://joe.example.org")
+ lo := MustParseURL("http://example.org/posts/2")
+ lc := MustParseURL("http://example.org/contexts/1")
+ like := NewActivityStreamsLike()
+ likeActor := NewActivityStreamsActorProperty()
+ likeActor.AppendIRI(la)
+ like.SetActor(likeActor)
+ objLike := NewActivityStreamsObjectProperty()
+ objLike.AppendIRI(lo)
+ like.SetObject(objLike)
+ ctxLike := NewActivityStreamsContextProperty()
+ ctxLike.AppendIRI(lc)
+ like.SetContext(ctxLike)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Activities in context 1")
+ example73Type.SetSummary(summary)
+ items := NewActivityStreamsItemsProperty()
+ items.AppendOffer(offer)
+ items.AppendLike(like)
+ example73Type.SetItems(items)
+ return example73Type
+}
+
+const example74 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally's blog posts",
+ "type": "Collection",
+ "totalItems": 3,
+ "current": "http://example.org/collection",
+ "items": [
+ "http://example.org/posts/1",
+ "http://example.org/posts/2",
+ "http://example.org/posts/3"
+ ]
+}`
+
+func example74Type() vocab.CollectionInterface {
+ example74Type := NewActivityStreamsCollection()
+ c := MustParseURL("http://example.org/collection")
+ i1 := MustParseURL("http://example.org/posts/1")
+ i2 := MustParseURL("http://example.org/posts/2")
+ i3 := MustParseURL("http://example.org/posts/3")
+ totalItems := NewActivityStreamsTotalItemsProperty()
+ totalItems.Set(3)
+ example74Type.SetTotalItems(totalItems)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally's blog posts")
+ example74Type.SetSummary(summary)
+ current := NewActivityStreamsCurrentProperty()
+ current.SetIRI(c)
+ example74Type.SetCurrent(current)
+ items := NewActivityStreamsItemsProperty()
+ items.AppendIRI(i1)
+ items.AppendIRI(i2)
+ items.AppendIRI(i3)
+ example74Type.SetItems(items)
+ return example74Type
+}
+
+const example75 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally's blog posts",
+ "type": "Collection",
+ "totalItems": 3,
+ "current": {
+ "type": "Link",
+ "summary": "Most Recent Items",
+ "href": "http://example.org/collection"
+ },
+ "items": [
+ "http://example.org/posts/1",
+ "http://example.org/posts/2",
+ "http://example.org/posts/3"
+ ]
+}`
+
+func example75Type() vocab.CollectionInterface {
+ example75Type := NewActivityStreamsCollection()
+ i1 := MustParseURL("http://example.org/posts/1")
+ i2 := MustParseURL("http://example.org/posts/2")
+ i3 := MustParseURL("http://example.org/posts/3")
+ href := MustParseURL("http://example.org/collection")
+ link := NewActivityStreamsLink()
+ summaryLink := NewActivityStreamsSummaryProperty()
+ summaryLink.AppendString("Most Recent Items")
+ link.SetSummary(summaryLink)
+ hrefLink := NewActivityStreamsHrefProperty()
+ hrefLink.Set(href)
+ link.SetHref(hrefLink)
+ totalItems := NewActivityStreamsTotalItemsProperty()
+ totalItems.Set(3)
+ example75Type.SetTotalItems(totalItems)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally's blog posts")
+ example75Type.SetSummary(summary)
+ current := NewActivityStreamsCurrentProperty()
+ current.SetLink(link)
+ example75Type.SetCurrent(current)
+ items := NewActivityStreamsItemsProperty()
+ items.AppendIRI(i1)
+ items.AppendIRI(i2)
+ items.AppendIRI(i3)
+ example75Type.SetItems(items)
+ return example75Type
+}
+
+const example76 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally's blog posts",
+ "type": "Collection",
+ "totalItems": 3,
+ "first": "http://example.org/collection?page=0"
+}`
+
+func example76Type() vocab.CollectionInterface {
+ example76Type := NewActivityStreamsCollection()
+ f := MustParseURL("http://example.org/collection?page=0")
+ totalItems := NewActivityStreamsTotalItemsProperty()
+ totalItems.Set(3)
+ example76Type.SetTotalItems(totalItems)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally's blog posts")
+ example76Type.SetSummary(summary)
+ first := NewActivityStreamsFirstProperty()
+ first.SetIRI(f)
+ example76Type.SetFirst(first)
+ return example76Type
+}
+
+const example77 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally's blog posts",
+ "type": "Collection",
+ "totalItems": 3,
+ "first": {
+ "type": "Link",
+ "summary": "First Page",
+ "href": "http://example.org/collection?page=0"
+ }
+}`
+
+func example77Type() vocab.CollectionInterface {
+ example77Type := NewActivityStreamsCollection()
+ href := MustParseURL("http://example.org/collection?page=0")
+ link := NewActivityStreamsLink()
+ summaryLink := NewActivityStreamsSummaryProperty()
+ summaryLink.AppendString("First Page")
+ link.SetSummary(summaryLink)
+ hrefLink := NewActivityStreamsHrefProperty()
+ hrefLink.Set(href)
+ link.SetHref(hrefLink)
+ totalItems := NewActivityStreamsTotalItemsProperty()
+ totalItems.Set(3)
+ example77Type.SetTotalItems(totalItems)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally's blog posts")
+ example77Type.SetSummary(summary)
+ first := NewActivityStreamsFirstProperty()
+ first.SetLink(link)
+ example77Type.SetFirst(first)
+ return example77Type
+}
+
+const example78 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "A simple note",
+ "type": "Note",
+ "content": "This is all there is.",
+ "generator": {
+ "type": "Application",
+ "name": "Exampletron 3000"
+ }
+}`
+
+func example78Type() vocab.NoteInterface {
+ example78Type := NewActivityStreamsNote()
+ app := NewActivityStreamsApplication()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Exampletron 3000")
+ app.SetName(name)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("A simple note")
+ example78Type.SetSummary(summary)
+ content := NewActivityStreamsContentProperty()
+ content.AppendString("This is all there is.")
+ example78Type.SetContent(content)
+ gen := NewActivityStreamsGeneratorProperty()
+ gen.AppendApplication(app)
+ example78Type.SetGenerator(gen)
+ return example78Type
+}
+
+const example79 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "A simple note",
+ "type": "Note",
+ "content": "This is all there is.",
+ "icon": {
+ "type": "Image",
+ "name": "Note icon",
+ "url": "http://example.org/note.png",
+ "width": 16,
+ "height": 16
+ }
+}`
+
+func example79Type() vocab.NoteInterface {
+ example79Type := NewActivityStreamsNote()
+ u := MustParseURL("http://example.org/note.png")
+ image := NewActivityStreamsImage()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Note icon")
+ image.SetName(name)
+ imgProp := NewActivityStreamsUrlProperty()
+ imgProp.AppendIRI(u)
+ image.SetUrl(imgProp)
+ width := NewActivityStreamsWidthProperty()
+ width.Set(16)
+ image.SetWidth(width)
+ height := NewActivityStreamsHeightProperty()
+ height.Set(16)
+ image.SetHeight(height)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("A simple note")
+ example79Type.SetSummary(summary)
+ content := NewActivityStreamsContentProperty()
+ content.AppendString("This is all there is.")
+ example79Type.SetContent(content)
+ icon := NewActivityStreamsIconProperty()
+ icon.AppendImage(image)
+ example79Type.SetIcon(icon)
+ return example79Type
+}
+
+const example80 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "A simple note",
+ "type": "Note",
+ "content": "A simple note",
+ "icon": [
+ {
+ "type": "Image",
+ "summary": "Note (16x16)",
+ "url": "http://example.org/note1.png",
+ "width": 16,
+ "height": 16
+ },
+ {
+ "type": "Image",
+ "summary": "Note (32x32)",
+ "url": "http://example.org/note2.png",
+ "width": 32,
+ "height": 32
+ }
+ ]
+}`
+
+func example80Type() vocab.NoteInterface {
+ example80Type := NewActivityStreamsNote()
+ u1 := MustParseURL("http://example.org/note1.png")
+ u2 := MustParseURL("http://example.org/note2.png")
+ image1 := NewActivityStreamsImage()
+ summaryImg1 := NewActivityStreamsSummaryProperty()
+ summaryImg1.AppendString("Note (16x16)")
+ image1.SetSummary(summaryImg1)
+ imgProp1 := NewActivityStreamsUrlProperty()
+ imgProp1.AppendIRI(u1)
+ image1.SetUrl(imgProp1)
+ width1 := NewActivityStreamsWidthProperty()
+ width1.Set(16)
+ image1.SetWidth(width1)
+ height1 := NewActivityStreamsHeightProperty()
+ height1.Set(16)
+ image1.SetHeight(height1)
+ image2 := NewActivityStreamsImage()
+ summaryImg2 := NewActivityStreamsSummaryProperty()
+ summaryImg2.AppendString("Note (32x32)")
+ image2.SetSummary(summaryImg2)
+ imgProp2 := NewActivityStreamsUrlProperty()
+ imgProp2.AppendIRI(u2)
+ image2.SetUrl(imgProp2)
+ width2 := NewActivityStreamsWidthProperty()
+ width2.Set(32)
+ image2.SetWidth(width2)
+ height2 := NewActivityStreamsHeightProperty()
+ height2.Set(32)
+ image2.SetHeight(height2)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("A simple note")
+ example80Type.SetSummary(summary)
+ content := NewActivityStreamsContentProperty()
+ content.AppendString("A simple note")
+ example80Type.SetContent(content)
+ icon := NewActivityStreamsIconProperty()
+ icon.AppendImage(image1)
+ icon.AppendImage(image2)
+ example80Type.SetIcon(icon)
+ return example80Type
+}
+
+const example81 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "name": "A simple note",
+ "type": "Note",
+ "content": "This is all there is.",
+ "image": {
+ "type": "Image",
+ "name": "A Cat",
+ "url": "http://example.org/cat.png"
+ }
+}`
+
+func example81Type() vocab.NoteInterface {
+ example81Type := NewActivityStreamsNote()
+ u := MustParseURL("http://example.org/cat.png")
+ image := NewActivityStreamsImage()
+ imageName := NewActivityStreamsNameProperty()
+ imageName.AppendString("A Cat")
+ image.SetName(imageName)
+ imgProp := NewActivityStreamsUrlProperty()
+ imgProp.AppendIRI(u)
+ image.SetUrl(imgProp)
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("A simple note")
+ example81Type.SetName(name)
+ content := NewActivityStreamsContentProperty()
+ content.AppendString("This is all there is.")
+ example81Type.SetContent(content)
+ imageProp := NewActivityStreamsImageProperty()
+ imageProp.AppendImage(image)
+ example81Type.SetImage(imageProp)
+ return example81Type
+}
+
+const example82 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "name": "A simple note",
+ "type": "Note",
+ "content": "This is all there is.",
+ "image": [
+ {
+ "type": "Image",
+ "name": "Cat 1",
+ "url": "http://example.org/cat1.png"
+ },
+ {
+ "type": "Image",
+ "name": "Cat 2",
+ "url": "http://example.org/cat2.png"
+ }
+ ]
+}`
+
+func example82Type() vocab.NoteInterface {
+ example82Type := NewActivityStreamsNote()
+ u1 := MustParseURL("http://example.org/cat1.png")
+ u2 := MustParseURL("http://example.org/cat2.png")
+ image1 := NewActivityStreamsImage()
+ image1Name := NewActivityStreamsNameProperty()
+ image1Name.AppendString("Cat 1")
+ image1.SetName(image1Name)
+ imgProp1 := NewActivityStreamsUrlProperty()
+ imgProp1.AppendIRI(u1)
+ image1.SetUrl(imgProp1)
+ image2 := NewActivityStreamsImage()
+ image2Name := NewActivityStreamsNameProperty()
+ image2Name.AppendString("Cat 2")
+ image2.SetName(image2Name)
+ imgProp2 := NewActivityStreamsUrlProperty()
+ imgProp2.AppendIRI(u2)
+ image2.SetUrl(imgProp2)
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("A simple note")
+ example82Type.SetName(name)
+ content := NewActivityStreamsContentProperty()
+ content.AppendString("This is all there is.")
+ example82Type.SetContent(content)
+ imageProp := NewActivityStreamsImageProperty()
+ imageProp.AppendImage(image1)
+ imageProp.AppendImage(image2)
+ example82Type.SetImage(imageProp)
+ return example82Type
+}
+
+const example83 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "A simple note",
+ "type": "Note",
+ "content": "This is all there is.",
+ "inReplyTo": {
+ "summary": "Previous note",
+ "type": "Note",
+ "content": "What else is there?"
+ }
+}`
+
+func example83Type() vocab.NoteInterface {
+ example83Type := NewActivityStreamsNote()
+ note := NewActivityStreamsNote()
+ summaryNote := NewActivityStreamsSummaryProperty()
+ summaryNote.AppendString("Previous note")
+ note.SetSummary(summaryNote)
+ contentNote := NewActivityStreamsContentProperty()
+ contentNote.AppendString("What else is there?")
+ note.SetContent(contentNote)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("A simple note")
+ example83Type.SetSummary(summary)
+ content := NewActivityStreamsContentProperty()
+ content.AppendString("This is all there is.")
+ example83Type.SetContent(content)
+ inReplyTo := NewActivityStreamsInReplyToProperty()
+ inReplyTo.AppendNote(note)
+ example83Type.SetInReplyTo(inReplyTo)
+ return example83Type
+}
+
+const example84 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "A simple note",
+ "type": "Note",
+ "content": "This is all there is.",
+ "inReplyTo": "http://example.org/posts/1"
+}`
+
+func example84Type() vocab.NoteInterface {
+ example84Type := NewActivityStreamsNote()
+ u := MustParseURL("http://example.org/posts/1")
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("A simple note")
+ example84Type.SetSummary(summary)
+ content := NewActivityStreamsContentProperty()
+ content.AppendString("This is all there is.")
+ example84Type.SetContent(content)
+ inReplyTo := NewActivityStreamsInReplyToProperty()
+ inReplyTo.AppendIRI(u)
+ example84Type.SetInReplyTo(inReplyTo)
+ return example84Type
+}
+
+const example85 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally listened to a piece of music on the Acme Music Service",
+ "type": "Listen",
+ "actor": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "object": "http://example.org/foo.mp3",
+ "instrument": {
+ "type": "Service",
+ "name": "Acme Music Service"
+ }
+}`
+
+func example85Type() vocab.ListenInterface {
+ example85Type := NewActivityStreamsListen()
+ u := MustParseURL("http://example.org/foo.mp3")
+ actor := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ actor.SetName(sally)
+ service := NewActivityStreamsService()
+ serviceName := NewActivityStreamsNameProperty()
+ serviceName.AppendString("Acme Music Service")
+ service.SetName(serviceName)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally listened to a piece of music on the Acme Music Service")
+ example85Type.SetSummary(summary)
+ rootActor := NewActivityStreamsActorProperty()
+ rootActor.AppendPerson(actor)
+ example85Type.SetActor(rootActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(u)
+ example85Type.SetObject(obj)
+ inst := NewActivityStreamsInstrumentProperty()
+ inst.AppendService(service)
+ example85Type.SetInstrument(inst)
+ return example85Type
+}
+
+const example86 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "A collection",
+ "type": "Collection",
+ "totalItems": 3,
+ "last": "http://example.org/collection?page=1"
+}`
+
+func example86Type() vocab.CollectionInterface {
+ example86Type := NewActivityStreamsCollection()
+ u := MustParseURL("http://example.org/collection?page=1")
+ totalItems := NewActivityStreamsTotalItemsProperty()
+ totalItems.Set(3)
+ example86Type.SetTotalItems(totalItems)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("A collection")
+ example86Type.SetSummary(summary)
+ last := NewActivityStreamsLastProperty()
+ last.SetIRI(u)
+ example86Type.SetLast(last)
+ return example86Type
+}
+
+const example87 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "A collection",
+ "type": "Collection",
+ "totalItems": 5,
+ "last": {
+ "type": "Link",
+ "summary": "Last Page",
+ "href": "http://example.org/collection?page=1"
+ }
+}`
+
+func example87Type() vocab.CollectionInterface {
+ example87Type := NewActivityStreamsCollection()
+ u := MustParseURL("http://example.org/collection?page=1")
+ link := NewActivityStreamsLink()
+ summaryLink := NewActivityStreamsSummaryProperty()
+ summaryLink.AppendString("Last Page")
+ link.SetSummary(summaryLink)
+ hrefLink := NewActivityStreamsHrefProperty()
+ hrefLink.Set(u)
+ link.SetHref(hrefLink)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("A collection")
+ example87Type.SetSummary(summary)
+ totalItems := NewActivityStreamsTotalItemsProperty()
+ totalItems.Set(5)
+ example87Type.SetTotalItems(totalItems)
+ last := NewActivityStreamsLastProperty()
+ last.SetLink(link)
+ example87Type.SetLast(last)
+ return example87Type
+}
+
+const example88 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Person",
+ "name": "Sally",
+ "location": {
+ "name": "Over the Arabian Sea, east of Socotra Island Nature Sanctuary",
+ "type": "Place",
+ "longitude": 12.34,
+ "latitude": 56.78,
+ "altitude": 90,
+ "units": "m"
+ }
+}`
+
+func example88Type() vocab.PersonInterface {
+ example88Type := NewActivityStreamsPerson()
+ place := NewActivityStreamsPlace()
+ placeName := NewActivityStreamsNameProperty()
+ placeName.AppendString("Over the Arabian Sea, east of Socotra Island Nature Sanctuary")
+ place.SetName(placeName)
+ lon := NewActivityStreamsLongitudeProperty()
+ lon.Set(12.34)
+ place.SetLongitude(lon)
+ lat := NewActivityStreamsLatitudeProperty()
+ lat.Set(56.78)
+ place.SetLatitude(lat)
+ alt := NewActivityStreamsAltitudeProperty()
+ alt.Set(90)
+ place.SetAltitude(alt)
+ units := NewActivityStreamsUnitsProperty()
+ units.SetString("m")
+ place.SetUnits(units)
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ example88Type.SetName(sally)
+ location := NewActivityStreamsLocationProperty()
+ location.AppendPlace(place)
+ example88Type.SetLocation(location)
+ return example88Type
+}
+
+const example89 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally's notes",
+ "type": "Collection",
+ "totalItems": 2,
+ "items": [
+ {
+ "type": "Note",
+ "name": "Reminder for Going-Away Party"
+ },
+ {
+ "type": "Note",
+ "name": "Meeting 2016-11-17"
+ }
+ ]
+}`
+
+func example89Type() vocab.CollectionInterface {
+ example89Type := NewActivityStreamsCollection()
+ note1 := NewActivityStreamsNote()
+ note1Name := NewActivityStreamsNameProperty()
+ note1Name.AppendString("Reminder for Going-Away Party")
+ note1.SetName(note1Name)
+ note2 := NewActivityStreamsNote()
+ note2Name := NewActivityStreamsNameProperty()
+ note2Name.AppendString("Meeting 2016-11-17")
+ note2.SetName(note2Name)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally's notes")
+ example89Type.SetSummary(summary)
+ totalItems := NewActivityStreamsTotalItemsProperty()
+ totalItems.Set(2)
+ example89Type.SetTotalItems(totalItems)
+ items := NewActivityStreamsItemsProperty()
+ items.AppendNote(note1)
+ items.AppendNote(note2)
+ example89Type.SetItems(items)
+ return example89Type
+}
+
+const example90 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally's notes",
+ "type": "OrderedCollection",
+ "totalItems": 2,
+ "orderedItems": [
+ {
+ "type": "Note",
+ "name": "Meeting 2016-11-17"
+ },
+ {
+ "type": "Note",
+ "name": "Reminder for Going-Away Party"
+ }
+ ]
+}`
+
+func example90Type() vocab.OrderedCollectionInterface {
+ example90Type := NewActivityStreamsOrderedCollection()
+ note1 := NewActivityStreamsNote()
+ note1Name := NewActivityStreamsNameProperty()
+ note1Name.AppendString("Meeting 2016-11-17")
+ note1.SetName(note1Name)
+ note2 := NewActivityStreamsNote()
+ note2Name := NewActivityStreamsNameProperty()
+ note2Name.AppendString("Reminder for Going-Away Party")
+ note2.SetName(note2Name)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally's notes")
+ example90Type.SetSummary(summary)
+ totalItems := NewActivityStreamsTotalItemsProperty()
+ totalItems.Set(2)
+ example90Type.SetTotalItems(totalItems)
+ orderedItems := NewActivityStreamsOrderedItemsProperty()
+ orderedItems.AppendNote(note1)
+ orderedItems.AppendNote(note2)
+ example90Type.SetOrderedItems(orderedItems)
+ return example90Type
+}
+
+const example91 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Question",
+ "name": "What is the answer?",
+ "oneOf": [
+ {
+ "type": "Note",
+ "name": "Option A"
+ },
+ {
+ "type": "Note",
+ "name": "Option B"
+ }
+ ]
+}`
+
+func example91Type() vocab.QuestionInterface {
+ example91Type := NewActivityStreamsQuestion()
+ note1 := NewActivityStreamsNote()
+ note1Name := NewActivityStreamsNameProperty()
+ note1Name.AppendString("Option A")
+ note1.SetName(note1Name)
+ note2 := NewActivityStreamsNote()
+ note2Name := NewActivityStreamsNameProperty()
+ note2Name.AppendString("Option B")
+ note2.SetName(note2Name)
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("What is the answer?")
+ example91Type.SetName(name)
+ oneOf1 := NewActivityStreamsOneOfProperty()
+ oneOf1.AppendNote(note1)
+ example91Type.SetOneOf(oneOf1)
+ oneOf2 := NewActivityStreamsOneOfProperty()
+ oneOf2.AppendNote(note2)
+ example91Type.SetOneOf(oneOf2)
+ return example91Type
+}
+
+const example92 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Question",
+ "name": "What is the answer?",
+ "anyOf": [
+ {
+ "type": "Note",
+ "name": "Option A"
+ },
+ {
+ "type": "Note",
+ "name": "Option B"
+ }
+ ]
+}`
+
+func example92Type() vocab.QuestionInterface {
+ example92Type := NewActivityStreamsQuestion()
+ note1 := NewActivityStreamsNote()
+ note1Name := NewActivityStreamsNameProperty()
+ note1Name.AppendString("Option A")
+ note1.SetName(note1Name)
+ note2 := NewActivityStreamsNote()
+ note2Name := NewActivityStreamsNameProperty()
+ note2Name.AppendString("Option B")
+ note2.SetName(note2Name)
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("What is the answer?")
+ example92Type.SetName(name)
+ anyOf := NewActivityStreamsAnyOfProperty()
+ anyOf.AppendNote(note1)
+ anyOf.AppendNote(note2)
+ example92Type.SetAnyOf(anyOf)
+ return example92Type
+}
+
+const example93 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Question",
+ "name": "What is the answer?",
+ "closed": "2016-05-10T00:00:00Z"
+}`
+
+func example93Type() vocab.QuestionInterface {
+ example93Type := NewActivityStreamsQuestion()
+ t, err := time.Parse(time.RFC3339, "2016-05-10T00:00:00Z")
+ if err != nil {
+ panic(err)
+ }
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("What is the answer?")
+ example93Type.SetName(name)
+ closed := NewActivityStreamsClosedProperty()
+ closed.AppendDateTime(t)
+ example93Type.SetClosed(closed)
+ return example93Type
+}
+
+const example94 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally moved a post from List A to List B",
+ "type": "Move",
+ "actor": "http://sally.example.org",
+ "object": "http://example.org/posts/1",
+ "target": {
+ "type": "Collection",
+ "name": "List B"
+ },
+ "origin": {
+ "type": "Collection",
+ "name": "List A"
+ }
+}`
+
+func example94Type() vocab.MoveInterface {
+ example94Type := NewActivityStreamsMove()
+ a := MustParseURL("http://sally.example.org")
+ o := MustParseURL("http://example.org/posts/1")
+ target := NewActivityStreamsCollection()
+ targetName := NewActivityStreamsNameProperty()
+ targetName.AppendString("List B")
+ target.SetName(targetName)
+ origin := NewActivityStreamsCollection()
+ originName := NewActivityStreamsNameProperty()
+ originName.AppendString("List A")
+ origin.SetName(originName)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally moved a post from List A to List B")
+ example94Type.SetSummary(summary)
+ objectActor := NewActivityStreamsActorProperty()
+ objectActor.AppendIRI(a)
+ example94Type.SetActor(objectActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(o)
+ example94Type.SetObject(obj)
+ tobj := NewActivityStreamsTargetProperty()
+ tobj.AppendCollection(target)
+ example94Type.SetTarget(tobj)
+ originProp := NewActivityStreamsOriginProperty()
+ originProp.AppendCollection(origin)
+ example94Type.SetOrigin(originProp)
+ return example94Type
+}
+
+const example95 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Page 2 of Sally's blog posts",
+ "type": "CollectionPage",
+ "next": "http://example.org/collection?page=2",
+ "items": [
+ "http://example.org/posts/1",
+ "http://example.org/posts/2",
+ "http://example.org/posts/3"
+ ]
+}`
+
+func example95Type() vocab.CollectionPageInterface {
+ example95Type := NewActivityStreamsCollectionPage()
+ i := MustParseURL("http://example.org/collection?page=2")
+ u1 := MustParseURL("http://example.org/posts/1")
+ u2 := MustParseURL("http://example.org/posts/2")
+ u3 := MustParseURL("http://example.org/posts/3")
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Page 2 of Sally's blog posts")
+ example95Type.SetSummary(summary)
+ next := NewActivityStreamsNextProperty()
+ next.SetIRI(i)
+ example95Type.SetNext(next)
+ items := NewActivityStreamsItemsProperty()
+ items.AppendIRI(u1)
+ items.AppendIRI(u2)
+ items.AppendIRI(u3)
+ example95Type.SetItems(items)
+ return example95Type
+}
+
+const example96 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Page 2 of Sally's blog posts",
+ "type": "CollectionPage",
+ "next": {
+ "type": "Link",
+ "name": "Next Page",
+ "href": "http://example.org/collection?page=2"
+ },
+ "items": [
+ "http://example.org/posts/1",
+ "http://example.org/posts/2",
+ "http://example.org/posts/3"
+ ]
+}`
+
+func example96Type() vocab.CollectionPageInterface {
+ example96Type := NewActivityStreamsCollectionPage()
+ href := MustParseURL("http://example.org/collection?page=2")
+ u1 := MustParseURL("http://example.org/posts/1")
+ u2 := MustParseURL("http://example.org/posts/2")
+ u3 := MustParseURL("http://example.org/posts/3")
+ link := NewActivityStreamsLink()
+ linkName := NewActivityStreamsNameProperty()
+ linkName.AppendString("Next Page")
+ link.SetName(linkName)
+ hrefLink := NewActivityStreamsHrefProperty()
+ hrefLink.Set(href)
+ link.SetHref(hrefLink)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Page 2 of Sally's blog posts")
+ example96Type.SetSummary(summary)
+ next := NewActivityStreamsNextProperty()
+ next.SetLink(link)
+ example96Type.SetNext(next)
+ items := NewActivityStreamsItemsProperty()
+ items.AppendIRI(u1)
+ items.AppendIRI(u2)
+ items.AppendIRI(u3)
+ example96Type.SetItems(items)
+ return example96Type
+}
+
+const example97 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally liked a post",
+ "type": "Like",
+ "actor": "http://sally.example.org",
+ "object": "http://example.org/posts/1"
+}`
+
+func example97Type() vocab.LikeInterface {
+ example97Type := NewActivityStreamsLike()
+ a := MustParseURL("http://sally.example.org")
+ o := MustParseURL("http://example.org/posts/1")
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally liked a post")
+ example97Type.SetSummary(summary)
+ objectActor := NewActivityStreamsActorProperty()
+ objectActor.AppendIRI(a)
+ example97Type.SetActor(objectActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(o)
+ example97Type.SetObject(obj)
+ return example97Type
+}
+
+const example98 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Like",
+ "actor": "http://sally.example.org",
+ "object": {
+ "type": "Note",
+ "content": "A simple note"
+ }
+}`
+
+func example98Type() vocab.LikeInterface {
+ example98Type := NewActivityStreamsLike()
+ a := MustParseURL("http://sally.example.org")
+ note := NewActivityStreamsNote()
+ content := NewActivityStreamsContentProperty()
+ content.AppendString("A simple note")
+ note.SetContent(content)
+ objectActor := NewActivityStreamsActorProperty()
+ objectActor.AppendIRI(a)
+ example98Type.SetActor(objectActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendNote(note)
+ example98Type.SetObject(obj)
+ return example98Type
+}
+
+const example99 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally liked a note",
+ "type": "Like",
+ "actor": "http://sally.example.org",
+ "object": [
+ "http://example.org/posts/1",
+ {
+ "type": "Note",
+ "summary": "A simple note",
+ "content": "That is a tree."
+ }
+ ]
+}`
+
+func example99Type() vocab.LikeInterface {
+ example99Type := NewActivityStreamsLike()
+ a := MustParseURL("http://sally.example.org")
+ o := MustParseURL("http://example.org/posts/1")
+ note := NewActivityStreamsNote()
+ summaryNote := NewActivityStreamsSummaryProperty()
+ summaryNote.AppendString("A simple note")
+ note.SetSummary(summaryNote)
+ content := NewActivityStreamsContentProperty()
+ content.AppendString("That is a tree.")
+ note.SetContent(content)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally liked a note")
+ example99Type.SetSummary(summary)
+ objectActor := NewActivityStreamsActorProperty()
+ objectActor.AppendIRI(a)
+ example99Type.SetActor(objectActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(o)
+ example99Type.SetObject(obj)
+ objRoot := NewActivityStreamsObjectProperty()
+ objRoot.AppendNote(note)
+ example99Type.SetObject(objRoot)
+ return example99Type
+}
+
+const example100 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Page 1 of Sally's blog posts",
+ "type": "CollectionPage",
+ "prev": "http://example.org/collection?page=1",
+ "items": [
+ "http://example.org/posts/1",
+ "http://example.org/posts/2",
+ "http://example.org/posts/3"
+ ]
+}`
+
+func example100Type() vocab.CollectionPageInterface {
+ example100Type := NewActivityStreamsCollectionPage()
+ p := MustParseURL("http://example.org/collection?page=1")
+ u1 := MustParseURL("http://example.org/posts/1")
+ u2 := MustParseURL("http://example.org/posts/2")
+ u3 := MustParseURL("http://example.org/posts/3")
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Page 1 of Sally's blog posts")
+ example100Type.SetSummary(summary)
+ prev := NewActivityStreamsPrevProperty()
+ prev.SetIRI(p)
+ example100Type.SetPrev(prev)
+ items := NewActivityStreamsItemsProperty()
+ items.AppendIRI(u1)
+ items.AppendIRI(u2)
+ items.AppendIRI(u3)
+ example100Type.SetItems(items)
+ return example100Type
+}
+
+const example101 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Page 1 of Sally's blog posts",
+ "type": "CollectionPage",
+ "prev": {
+ "type": "Link",
+ "name": "Previous Page",
+ "href": "http://example.org/collection?page=1"
+ },
+ "items": [
+ "http://example.org/posts/1",
+ "http://example.org/posts/2",
+ "http://example.org/posts/3"
+ ]
+}`
+
+func example101Type() vocab.CollectionPageInterface {
+ example101Type := NewActivityStreamsCollectionPage()
+ p := MustParseURL("http://example.org/collection?page=1")
+ u1 := MustParseURL("http://example.org/posts/1")
+ u2 := MustParseURL("http://example.org/posts/2")
+ u3 := MustParseURL("http://example.org/posts/3")
+ link := NewActivityStreamsLink()
+ linkName := NewActivityStreamsNameProperty()
+ linkName.AppendString("Previous Page")
+ link.SetName(linkName)
+ hrefLink := NewActivityStreamsHrefProperty()
+ hrefLink.Set(p)
+ link.SetHref(hrefLink)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Page 1 of Sally's blog posts")
+ example101Type.SetSummary(summary)
+ prev := NewActivityStreamsPrevProperty()
+ prev.SetLink(link)
+ example101Type.SetPrev(prev)
+ items := NewActivityStreamsItemsProperty()
+ items.AppendIRI(u1)
+ items.AppendIRI(u2)
+ items.AppendIRI(u3)
+ example101Type.SetItems(items)
+ return example101Type
+}
+
+// NOTE: The 'url' field has added the 'type' property
+const example102 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Video",
+ "name": "Cool New Movie",
+ "duration": "PT2H30M",
+ "preview": {
+ "type": "Video",
+ "name": "Trailer",
+ "duration": "PT1M",
+ "url": {
+ "type": "Link",
+ "href": "http://example.org/trailer.mkv",
+ "mediaType": "video/mkv"
+ }
+ }
+}`
+
+func example102Type() vocab.VideoInterface {
+ example102Type := NewActivityStreamsVideo()
+ u := MustParseURL("http://example.org/trailer.mkv")
+ link := NewActivityStreamsLink()
+ mediaType := NewActivityStreamsMediaTypeProperty()
+ mediaType.Set("video/mkv")
+ link.SetMediaType(mediaType)
+ hrefLink := NewActivityStreamsHrefProperty()
+ hrefLink.Set(u)
+ link.SetHref(hrefLink)
+ video := NewActivityStreamsVideo()
+ videoName := NewActivityStreamsNameProperty()
+ videoName.AppendString("Trailer")
+ video.SetName(videoName)
+ durVideo := NewActivityStreamsDurationProperty()
+ durVideo.Set(time.Minute)
+ video.SetDuration(durVideo)
+ urlProperty := NewActivityStreamsUrlProperty()
+ urlProperty.AppendLink(link)
+ video.SetUrl(urlProperty)
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Cool New Movie")
+ example102Type.SetName(name)
+ dur := NewActivityStreamsDurationProperty()
+ dur.Set(time.Hour*2 + time.Minute*30)
+ example102Type.SetDuration(dur)
+ preview := NewActivityStreamsPreviewProperty()
+ preview.AppendVideo(video)
+ example102Type.SetPreview(preview)
+ return example102Type
+}
+
+const example103 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally checked that her flight was on time",
+ "type": ["Activity", "http://www.verbs.example/Check"],
+ "actor": "http://sally.example.org",
+ "object": "http://example.org/flights/1",
+ "result": {
+ "type": "http://www.types.example/flightstatus",
+ "name": "On Time"
+ }
+}`
+
+var example103Unknown = func(m map[string]interface{}) map[string]interface{} {
+ m["result"] = map[string]interface{}{
+ "type": "http://www.types.example/flightstatus",
+ "name": "On Time",
+ }
+ return m
+}
+
+func example103Type() vocab.ActivityInterface {
+ example103Type := NewActivityStreamsActivity()
+ o := MustParseURL("http://example.org/flights/1")
+ a := MustParseURL("http://sally.example.org")
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally checked that her flight was on time")
+ example103Type.SetSummary(summary)
+ objectActor := NewActivityStreamsActorProperty()
+ objectActor.AppendIRI(a)
+ example103Type.SetActor(objectActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(o)
+ example103Type.SetObject(obj)
+ return example103Type
+}
+
+// NOTE: Changed to not be an array value for "items" to keep in line with other examples in spec!
+const example104 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "A simple note",
+ "type": "Note",
+ "id": "http://www.test.example/notes/1",
+ "content": "I am fine.",
+ "replies": {
+ "type": "Collection",
+ "totalItems": 1,
+ "items": {
+ "summary": "A response to the note",
+ "type": "Note",
+ "content": "I am glad to hear it.",
+ "inReplyTo": "http://www.test.example/notes/1"
+ }
+ }
+}`
+
+func example104Type() vocab.NoteInterface {
+ example104Type := NewActivityStreamsNote()
+ i := MustParseURL("http://www.test.example/notes/1")
+ note := NewActivityStreamsNote()
+ summaryNote := NewActivityStreamsSummaryProperty()
+ summaryNote.AppendString("A response to the note")
+ note.SetSummary(summaryNote)
+ contentNote := NewActivityStreamsContentProperty()
+ contentNote.AppendString("I am glad to hear it.")
+ note.SetContent(contentNote)
+ inReplyTo := NewActivityStreamsInReplyToProperty()
+ inReplyTo.AppendIRI(i)
+ note.SetInReplyTo(inReplyTo)
+ replies := NewActivityStreamsCollection()
+ totalItems := NewActivityStreamsTotalItemsProperty()
+ totalItems.Set(1)
+ replies.SetTotalItems(totalItems)
+ items := NewActivityStreamsItemsProperty()
+ items.AppendNote(note)
+ replies.SetItems(items)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("A simple note")
+ example104Type.SetSummary(summary)
+ id := NewActivityStreamsIdProperty()
+ id.Set(MustParseURL("http://www.test.example/notes/1"))
+ example104Type.SetId(id)
+ content := NewActivityStreamsContentProperty()
+ content.AppendString("I am fine.")
+ example104Type.SetContent(content)
+ reply := NewActivityStreamsRepliesProperty()
+ reply.SetCollection(replies)
+ example104Type.SetReplies(reply)
+ return example104Type
+}
+
+// NOTE: Changed to not be an array value for "tag" to keep in line with other examples in spec!
+const example105 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Image",
+ "summary": "Picture of Sally",
+ "url": "http://example.org/sally.jpg",
+ "tag": {
+ "type": "Person",
+ "id": "http://sally.example.org",
+ "name": "Sally"
+ }
+}`
+
+func example105Type() vocab.ImageInterface {
+ example105Type := NewActivityStreamsImage()
+ u := MustParseURL("http://example.org/sally.jpg")
+ person := NewActivityStreamsPerson()
+ id := NewActivityStreamsIdProperty()
+ id.Set(MustParseURL("http://sally.example.org"))
+ person.SetId(id)
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ person.SetName(sally)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Picture of Sally")
+ example105Type.SetSummary(summary)
+ urlProp := NewActivityStreamsUrlProperty()
+ urlProp.AppendIRI(u)
+ example105Type.SetUrl(urlProp)
+ tag := NewActivityStreamsTagProperty()
+ tag.AppendPerson(person)
+ example105Type.SetTag(tag)
+ return example105Type
+}
+
+const example106 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally offered the post to John",
+ "type": "Offer",
+ "actor": "http://sally.example.org",
+ "object": "http://example.org/posts/1",
+ "target": "http://john.example.org"
+}`
+
+func example106Type() vocab.OfferInterface {
+ example106Type := NewActivityStreamsOffer()
+ a := MustParseURL("http://sally.example.org")
+ o := MustParseURL("http://example.org/posts/1")
+ t := MustParseURL("http://john.example.org")
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally offered the post to John")
+ example106Type.SetSummary(summary)
+ objectActor := NewActivityStreamsActorProperty()
+ objectActor.AppendIRI(a)
+ example106Type.SetActor(objectActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(o)
+ example106Type.SetObject(obj)
+ target := NewActivityStreamsTargetProperty()
+ target.AppendIRI(t)
+ example106Type.SetTarget(target)
+ return example106Type
+}
+
+const example107 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally offered the post to John",
+ "type": "Offer",
+ "actor": "http://sally.example.org",
+ "object": "http://example.org/posts/1",
+ "target": {
+ "type": "Person",
+ "name": "John"
+ }
+}`
+
+func example107Type() vocab.OfferInterface {
+ example107Type := NewActivityStreamsOffer()
+ a := MustParseURL("http://sally.example.org")
+ o := MustParseURL("http://example.org/posts/1")
+ person := NewActivityStreamsPerson()
+ personName := NewActivityStreamsNameProperty()
+ personName.AppendString("John")
+ person.SetName(personName)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally offered the post to John")
+ example107Type.SetSummary(summary)
+ objectActor := NewActivityStreamsActorProperty()
+ objectActor.AppendIRI(a)
+ example107Type.SetActor(objectActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(o)
+ example107Type.SetObject(obj)
+ tobj := NewActivityStreamsTargetProperty()
+ tobj.AppendPerson(person)
+ example107Type.SetTarget(tobj)
+ return example107Type
+}
+
+// NOTE: Changed to not be an array value for "to" to keep in line with other examples in spec!
+const example108 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally offered the post to John",
+ "type": "Offer",
+ "actor": "http://sally.example.org",
+ "object": "http://example.org/posts/1",
+ "target": "http://john.example.org",
+ "to": "http://joe.example.org"
+}`
+
+func example108Type() vocab.OfferInterface {
+ example108Type := NewActivityStreamsOffer()
+ a := MustParseURL("http://sally.example.org")
+ o := MustParseURL("http://example.org/posts/1")
+ t := MustParseURL("http://john.example.org")
+ z := MustParseURL("http://joe.example.org")
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally offered the post to John")
+ example108Type.SetSummary(summary)
+ objectActor := NewActivityStreamsActorProperty()
+ objectActor.AppendIRI(a)
+ example108Type.SetActor(objectActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(o)
+ example108Type.SetObject(obj)
+ target := NewActivityStreamsTargetProperty()
+ target.AppendIRI(t)
+ example108Type.SetTarget(target)
+ to := NewActivityStreamsToProperty()
+ to.AppendIRI(z)
+ example108Type.SetTo(to)
+ return example108Type
+}
+
+const example109 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Document",
+ "name": "4Q Sales Forecast",
+ "url": "http://example.org/4q-sales-forecast.pdf"
+}`
+
+func example109Type() vocab.DocumentInterface {
+ example109Type := NewActivityStreamsDocument()
+ u := MustParseURL("http://example.org/4q-sales-forecast.pdf")
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("4Q Sales Forecast")
+ example109Type.SetName(name)
+ urlProp := NewActivityStreamsUrlProperty()
+ urlProp.AppendIRI(u)
+ example109Type.SetUrl(urlProp)
+ return example109Type
+}
+
+const example110 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Document",
+ "name": "4Q Sales Forecast",
+ "url": {
+ "type": "Link",
+ "href": "http://example.org/4q-sales-forecast.pdf"
+ }
+}`
+
+func example110Type() vocab.DocumentInterface {
+ example110Type := NewActivityStreamsDocument()
+ u := MustParseURL("http://example.org/4q-sales-forecast.pdf")
+ link := NewActivityStreamsLink()
+ hrefLink := NewActivityStreamsHrefProperty()
+ hrefLink.Set(u)
+ link.SetHref(hrefLink)
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("4Q Sales Forecast")
+ example110Type.SetName(name)
+ urlProperty := NewActivityStreamsUrlProperty()
+ urlProperty.AppendLink(link)
+ example110Type.SetUrl(urlProperty)
+ return example110Type
+}
+
+const example111 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Document",
+ "name": "4Q Sales Forecast",
+ "url": [
+ {
+ "type": "Link",
+ "href": "http://example.org/4q-sales-forecast.pdf",
+ "mediaType": "application/pdf"
+ },
+ {
+ "type": "Link",
+ "href": "http://example.org/4q-sales-forecast.html",
+ "mediaType": "text/html"
+ }
+ ]
+}`
+
+func example111Type() vocab.DocumentInterface {
+ example111Type := NewActivityStreamsDocument()
+ u1 := MustParseURL("http://example.org/4q-sales-forecast.pdf")
+ u2 := MustParseURL("http://example.org/4q-sales-forecast.html")
+ link1 := NewActivityStreamsLink()
+ hrefLink1 := NewActivityStreamsHrefProperty()
+ hrefLink1.Set(u1)
+ link1.SetHref(hrefLink1)
+ mediaType1 := NewActivityStreamsMediaTypeProperty()
+ mediaType1.Set("application/pdf")
+ link1.SetMediaType(mediaType1)
+ link2 := NewActivityStreamsLink()
+ hrefLink2 := NewActivityStreamsHrefProperty()
+ hrefLink2.Set(u2)
+ link2.SetHref(hrefLink2)
+ mediaType2 := NewActivityStreamsMediaTypeProperty()
+ mediaType2.Set("text/html")
+ link2.SetMediaType(mediaType2)
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("4Q Sales Forecast")
+ example111Type.SetName(name)
+ urlProperty1 := NewActivityStreamsUrlProperty()
+ urlProperty1.AppendLink(link1)
+ example111Type.SetUrl(urlProperty1)
+ urlProperty2 := NewActivityStreamsUrlProperty()
+ urlProperty2.AppendLink(link2)
+ example111Type.SetUrl(urlProperty2)
+ return example111Type
+}
+
+const example112 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "name": "Liu Gu Lu Cun, Pingdu, Qingdao, Shandong, China",
+ "type": "Place",
+ "latitude": 36.75,
+ "longitude": 119.7667,
+ "accuracy": 94.5
+}`
+
+func example112Type() vocab.PlaceInterface {
+ example112Type := NewActivityStreamsPlace()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Liu Gu Lu Cun, Pingdu, Qingdao, Shandong, China")
+ example112Type.SetName(name)
+ lat := NewActivityStreamsLatitudeProperty()
+ lat.Set(36.75)
+ example112Type.SetLatitude(lat)
+ lon := NewActivityStreamsLongitudeProperty()
+ lon.Set(119.7667)
+ example112Type.SetLongitude(lon)
+ acc := NewActivityStreamsAccuracyProperty()
+ acc.Set(94.5)
+ example112Type.SetAccuracy(acc)
+ return example112Type
+}
+
+const example113 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Place",
+ "name": "Fresno Area",
+ "altitude": 15.0,
+ "latitude": 36.75,
+ "longitude": 119.7667,
+ "units": "miles"
+}`
+
+func example113Type() vocab.PlaceInterface {
+ example113Type := NewActivityStreamsPlace()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Fresno Area")
+ example113Type.SetName(name)
+ alt := NewActivityStreamsAltitudeProperty()
+ alt.Set(15.0)
+ example113Type.SetAltitude(alt)
+ lat := NewActivityStreamsLatitudeProperty()
+ lat.Set(36.75)
+ example113Type.SetLatitude(lat)
+ lon := NewActivityStreamsLongitudeProperty()
+ lon.Set(119.7667)
+ example113Type.SetLongitude(lon)
+ units := NewActivityStreamsUnitsProperty()
+ units.SetString("miles")
+ example113Type.SetUnits(units)
+ return example113Type
+}
+
+const example114 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "A simple note",
+ "type": "Note",
+ "content": "A simple note"
+}`
+
+func example114Type() vocab.NoteInterface {
+ example114Type := NewActivityStreamsNote()
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("A simple note")
+ example114Type.SetSummary(summary)
+ content := NewActivityStreamsContentProperty()
+ content.AppendString("A simple note")
+ example114Type.SetContent(content)
+ return example114Type
+}
+
+const example115 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "A simple note",
+ "type": "Note",
+ "contentMap": {
+ "en": "A simple note",
+ "es": "Una nota sencilla",
+ "zh-Hans": "一段简单的笔记"
+ }
+}`
+
+func example115Type() vocab.NoteInterface {
+ example115Type := NewActivityStreamsNote()
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("A simple note")
+ example115Type.SetSummary(summary)
+ content := NewActivityStreamsContentProperty()
+ content.AppendLangString(map[string]string{
+ "en": "A simple note",
+ "es": "Una nota sencilla",
+ "zh-Hans": "一段简单的笔记",
+ })
+ example115Type.SetContent(content)
+ return example115Type
+}
+
+const example116 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "A simple note",
+ "type": "Note",
+ "mediaType": "text/markdown",
+ "content": "## A simple note\nA simple markdown ` + "`note`" + `"
+}`
+
+func example116Type() vocab.NoteInterface {
+ example116Type := NewActivityStreamsNote()
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("A simple note")
+ example116Type.SetSummary(summary)
+ mediaType := NewActivityStreamsMediaTypeProperty()
+ mediaType.Set("text/markdown")
+ example116Type.SetMediaType(mediaType)
+ content := NewActivityStreamsContentProperty()
+ content.AppendString("## A simple note\nA simple markdown `note`")
+ example116Type.SetContent(content)
+ return example116Type
+}
+
+const example117 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Note",
+ "name": "A simple note"
+}`
+
+func example117Type() vocab.NoteInterface {
+ example117Type := NewActivityStreamsNote()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("A simple note")
+ example117Type.SetName(name)
+ return example117Type
+}
+
+const example118 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Note",
+ "nameMap": {
+ "en": "A simple note",
+ "es": "Una nota sencilla",
+ "zh-Hans": "一段简单的笔记"
+ }
+}`
+
+func example118Type() vocab.NoteInterface {
+ example118Type := NewActivityStreamsNote()
+ name := NewActivityStreamsNameProperty()
+ name.AppendLangString(map[string]string{
+ "en": "A simple note",
+ "es": "Una nota sencilla",
+ "zh-Hans": "一段简单的笔记",
+ })
+ example118Type.SetName(name)
+ return example118Type
+}
+
+const example119 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Video",
+ "name": "Birds Flying",
+ "url": "http://example.org/video.mkv",
+ "duration": "PT2H"
+}`
+
+func example119Type() vocab.VideoInterface {
+ example119Type := NewActivityStreamsVideo()
+ u := MustParseURL("http://example.org/video.mkv")
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Birds Flying")
+ example119Type.SetName(name)
+ urlProp := NewActivityStreamsUrlProperty()
+ urlProp.AppendIRI(u)
+ example119Type.SetUrl(urlProp)
+ dur := NewActivityStreamsDurationProperty()
+ dur.Set(time.Hour * 2)
+ example119Type.SetDuration(dur)
+ return example119Type
+}
+
+const example120 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Link",
+ "href": "http://example.org/image.png",
+ "height": 100,
+ "width": 100
+}`
+
+func example120Type() vocab.LinkInterface {
+ example120Type := NewActivityStreamsLink()
+ u := MustParseURL("http://example.org/image.png")
+ hrefLink := NewActivityStreamsHrefProperty()
+ hrefLink.Set(u)
+ example120Type.SetHref(hrefLink)
+ width := NewActivityStreamsWidthProperty()
+ width.Set(100)
+ example120Type.SetWidth(width)
+ height := NewActivityStreamsHeightProperty()
+ height.Set(100)
+ example120Type.SetHeight(height)
+ return example120Type
+}
+
+const example121 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Link",
+ "href": "http://example.org/abc",
+ "mediaType": "text/html",
+ "name": "Previous"
+}`
+
+func example121Type() vocab.LinkInterface {
+ example121Type := NewActivityStreamsLink()
+ u := MustParseURL("http://example.org/abc")
+ hrefLink := NewActivityStreamsHrefProperty()
+ hrefLink.Set(u)
+ example121Type.SetHref(hrefLink)
+ mediaType := NewActivityStreamsMediaTypeProperty()
+ mediaType.Set("text/html")
+ example121Type.SetMediaType(mediaType)
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Previous")
+ example121Type.SetName(name)
+ return example121Type
+}
+
+const example122 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Link",
+ "href": "http://example.org/abc",
+ "hreflang": "en",
+ "mediaType": "text/html",
+ "name": "Previous"
+}`
+
+func example122Type() vocab.LinkInterface {
+ example122Type := NewActivityStreamsLink()
+ u := MustParseURL("http://example.org/abc")
+ hrefLink := NewActivityStreamsHrefProperty()
+ hrefLink.Set(u)
+ example122Type.SetHref(hrefLink)
+ mediaType := NewActivityStreamsMediaTypeProperty()
+ mediaType.Set("text/html")
+ example122Type.SetMediaType(mediaType)
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Previous")
+ example122Type.SetName(name)
+ hreflang := NewActivityStreamsHreflangProperty()
+ hreflang.Set("en")
+ example122Type.SetHreflang(hreflang)
+ return example122Type
+}
+
+const example123 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Page 1 of Sally's notes",
+ "type": "CollectionPage",
+ "id": "http://example.org/collection?page=1",
+ "partOf": "http://example.org/collection",
+ "items": [
+ {
+ "type": "Note",
+ "name": "Pizza Toppings to Try"
+ },
+ {
+ "type": "Note",
+ "name": "Thought about California"
+ }
+ ]
+}`
+
+func example123Type() vocab.CollectionPageInterface {
+ example123Type := NewActivityStreamsCollectionPage()
+ u := MustParseURL("http://example.org/collection")
+ note1 := NewActivityStreamsNote()
+ name1 := NewActivityStreamsNameProperty()
+ name1.AppendString("Pizza Toppings to Try")
+ note1.SetName(name1)
+ note2 := NewActivityStreamsNote()
+ name2 := NewActivityStreamsNameProperty()
+ name2.AppendString("Thought about California")
+ note2.SetName(name2)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Page 1 of Sally's notes")
+ example123Type.SetSummary(summary)
+ id := NewActivityStreamsIdProperty()
+ id.Set(MustParseURL("http://example.org/collection?page=1"))
+ example123Type.SetId(id)
+ partOf := NewActivityStreamsPartOfProperty()
+ partOf.SetIRI(u)
+ example123Type.SetPartOf(partOf)
+ items := NewActivityStreamsItemsProperty()
+ items.AppendNote(note1)
+ items.AppendNote(note2)
+ example123Type.SetItems(items)
+ return example123Type
+}
+
+const example124 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Place",
+ "name": "Fresno Area",
+ "latitude": 36.75,
+ "longitude": 119.7667,
+ "radius": 15,
+ "units": "miles"
+}`
+
+func example124Type() vocab.PlaceInterface {
+ example124Type := NewActivityStreamsPlace()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Fresno Area")
+ example124Type.SetName(name)
+ lat := NewActivityStreamsLatitudeProperty()
+ lat.Set(36.75)
+ example124Type.SetLatitude(lat)
+ lon := NewActivityStreamsLongitudeProperty()
+ lon.Set(119.7667)
+ example124Type.SetLongitude(lon)
+ rad := NewActivityStreamsRadiusProperty()
+ rad.Set(15)
+ example124Type.SetRadius(rad)
+ units := NewActivityStreamsUnitsProperty()
+ units.SetString("miles")
+ example124Type.SetUnits(units)
+ return example124Type
+}
+
+const example125 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Place",
+ "name": "Fresno Area",
+ "latitude": 36.75,
+ "longitude": 119.7667,
+ "radius": 15,
+ "units": "miles"
+}`
+
+func example125Type() vocab.PlaceInterface {
+ example125Type := NewActivityStreamsPlace()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Fresno Area")
+ example125Type.SetName(name)
+ lat := NewActivityStreamsLatitudeProperty()
+ lat.Set(36.75)
+ example125Type.SetLatitude(lat)
+ lon := NewActivityStreamsLongitudeProperty()
+ lon.Set(119.7667)
+ example125Type.SetLongitude(lon)
+ rad := NewActivityStreamsRadiusProperty()
+ rad.Set(15)
+ example125Type.SetRadius(rad)
+ units := NewActivityStreamsUnitsProperty()
+ units.SetString("miles")
+ example125Type.SetUnits(units)
+ return example125Type
+}
+
+const example126 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Link",
+ "href": "http://example.org/abc",
+ "hreflang": "en",
+ "mediaType": "text/html",
+ "name": "Next"
+}`
+
+func example126Type() vocab.LinkInterface {
+ example126Type := NewActivityStreamsLink()
+ u := MustParseURL("http://example.org/abc")
+ hrefLink := NewActivityStreamsHrefProperty()
+ hrefLink.Set(u)
+ example126Type.SetHref(hrefLink)
+ hreflang := NewActivityStreamsHreflangProperty()
+ hreflang.Set("en")
+ example126Type.SetHreflang(hreflang)
+ mediaType := NewActivityStreamsMediaTypeProperty()
+ mediaType.Set("text/html")
+ example126Type.SetMediaType(mediaType)
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Next")
+ example126Type.SetName(name)
+ return example126Type
+}
+
+const example127 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Event",
+ "name": "Going-Away Party for Jim",
+ "startTime": "2014-12-31T23:00:00-08:00",
+ "endTime": "2015-01-01T06:00:00-08:00"
+}`
+
+func example127Type() vocab.EventInterface {
+ example127Type := NewActivityStreamsEvent()
+ t1, err := time.Parse(time.RFC3339, "2014-12-31T23:00:00-08:00")
+ if err != nil {
+ panic(err)
+ }
+ t2, err := time.Parse(time.RFC3339, "2015-01-01T06:00:00-08:00")
+ if err != nil {
+ panic(err)
+ }
+ goingAway := NewActivityStreamsNameProperty()
+ goingAway.AppendString("Going-Away Party for Jim")
+ example127Type.SetName(goingAway)
+ startTime := NewActivityStreamsStartTimeProperty()
+ startTime.Set(t1)
+ example127Type.SetStartTime(startTime)
+ endTime := NewActivityStreamsEndTimeProperty()
+ endTime.Set(t2)
+ example127Type.SetEndTime(endTime)
+ return example127Type
+}
+
+const example128 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "A simple note",
+ "type": "Note",
+ "content": "Fish swim.",
+ "published": "2014-12-12T12:12:12Z"
+}`
+
+func example128Type() vocab.NoteInterface {
+ example128Type := NewActivityStreamsNote()
+ t, err := time.Parse(time.RFC3339, "2014-12-12T12:12:12Z")
+ if err != nil {
+ panic(err)
+ }
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("A simple note")
+ example128Type.SetSummary(summary)
+ content := NewActivityStreamsContentProperty()
+ content.AppendString("Fish swim.")
+ example128Type.SetContent(content)
+ published := NewActivityStreamsPublishedProperty()
+ published.Set(t)
+ example128Type.SetPublished(published)
+ return example128Type
+}
+
+const example129 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Event",
+ "name": "Going-Away Party for Jim",
+ "startTime": "2014-12-31T23:00:00-08:00",
+ "endTime": "2015-01-01T06:00:00-08:00"
+}`
+
+func example129Type() vocab.EventInterface {
+ example129Type := NewActivityStreamsEvent()
+ t1, err := time.Parse(time.RFC3339, "2014-12-31T23:00:00-08:00")
+ if err != nil {
+ panic(err)
+ }
+ t2, err := time.Parse(time.RFC3339, "2015-01-01T06:00:00-08:00")
+ if err != nil {
+ panic(err)
+ }
+ goingAway := NewActivityStreamsNameProperty()
+ goingAway.AppendString("Going-Away Party for Jim")
+ example129Type.SetName(goingAway)
+ startTime := NewActivityStreamsStartTimeProperty()
+ startTime.Set(t1)
+ example129Type.SetStartTime(startTime)
+ endTime := NewActivityStreamsEndTimeProperty()
+ endTime.Set(t2)
+ example129Type.SetEndTime(endTime)
+ return example129Type
+}
+
+const example130 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Place",
+ "name": "Fresno Area",
+ "latitude": 36.75,
+ "longitude": 119.7667,
+ "radius": 15,
+ "units": "miles"
+}`
+
+func example130Type() vocab.PlaceInterface {
+ example130Type := NewActivityStreamsPlace()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Fresno Area")
+ example130Type.SetName(name)
+ lat := NewActivityStreamsLatitudeProperty()
+ lat.Set(36.75)
+ example130Type.SetLatitude(lat)
+ lon := NewActivityStreamsLongitudeProperty()
+ lon.Set(119.7667)
+ example130Type.SetLongitude(lon)
+ rad := NewActivityStreamsRadiusProperty()
+ rad.Set(15)
+ example130Type.SetRadius(rad)
+ units := NewActivityStreamsUnitsProperty()
+ units.SetString("miles")
+ example130Type.SetUnits(units)
+ return example130Type
+}
+
+const example131 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Link",
+ "href": "http://example.org/abc",
+ "hreflang": "en",
+ "mediaType": "text/html",
+ "name": "Preview",
+ "rel": ["canonical", "preview"]
+}`
+
+func example131Type() vocab.LinkInterface {
+ example131Type := NewActivityStreamsLink()
+ u := MustParseURL("http://example.org/abc")
+ hrefLink := NewActivityStreamsHrefProperty()
+ hrefLink.Set(u)
+ example131Type.SetHref(hrefLink)
+ hreflang := NewActivityStreamsHreflangProperty()
+ hreflang.Set("en")
+ example131Type.SetHreflang(hreflang)
+ mediaType := NewActivityStreamsMediaTypeProperty()
+ mediaType.Set("text/html")
+ example131Type.SetMediaType(mediaType)
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Preview")
+ example131Type.SetName(name)
+ rel := NewActivityStreamsRelProperty()
+ rel.AppendRfc5988("canonical")
+ rel.AppendRfc5988("preview")
+ example131Type.SetRel(rel)
+ return example131Type
+}
+
+const example132 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Page 1 of Sally's notes",
+ "type": "OrderedCollectionPage",
+ "startIndex": 0,
+ "orderedItems": [
+ {
+ "type": "Note",
+ "name": "Density of Water"
+ },
+ {
+ "type": "Note",
+ "name": "Air Mattress Idea"
+ }
+ ]
+}`
+
+func example132Type() vocab.OrderedCollectionPageInterface {
+ example132Type := NewActivityStreamsOrderedCollectionPage()
+ note1 := NewActivityStreamsNote()
+ name1 := NewActivityStreamsNameProperty()
+ name1.AppendString("Density of Water")
+ note1.SetName(name1)
+ note2 := NewActivityStreamsNote()
+ name2 := NewActivityStreamsNameProperty()
+ name2.AppendString("Air Mattress Idea")
+ note2.SetName(name2)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Page 1 of Sally's notes")
+ example132Type.SetSummary(summary)
+ start := NewActivityStreamsStartIndexProperty()
+ start.Set(0)
+ example132Type.SetStartIndex(start)
+ orderedItems := NewActivityStreamsOrderedItemsProperty()
+ orderedItems.AppendNote(note1)
+ orderedItems.AppendNote(note2)
+ example132Type.SetOrderedItems(orderedItems)
+ return example132Type
+}
+
+const example133 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "name": "Cane Sugar Processing",
+ "type": "Note",
+ "summary": "A simple note"
+}`
+
+func example133Type() vocab.NoteInterface {
+ example133Type := NewActivityStreamsNote()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Cane Sugar Processing")
+ example133Type.SetName(name)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("A simple note")
+ example133Type.SetSummary(summary)
+ return example133Type
+}
+
+const example134 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "name": "Cane Sugar Processing",
+ "type": "Note",
+ "summaryMap": {
+ "en": "A simple note",
+ "es": "Una nota sencilla",
+ "zh-Hans": "一段简单的笔记"
+ }
+}`
+
+func example134Type() vocab.NoteInterface {
+ example134Type := NewActivityStreamsNote()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Cane Sugar Processing")
+ example134Type.SetName(name)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendLangString(map[string]string{
+ "en": "A simple note",
+ "es": "Una nota sencilla",
+ "zh-Hans": "一段简单的笔记",
+ })
+ example134Type.SetSummary(summary)
+ return example134Type
+}
+
+const example135 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally's notes",
+ "type": "Collection",
+ "totalItems": 2,
+ "items": [
+ {
+ "type": "Note",
+ "name": "Which Staircase Should I Use"
+ },
+ {
+ "type": "Note",
+ "name": "Something to Remember"
+ }
+ ]
+}`
+
+func example135Type() vocab.CollectionInterface {
+ example135Type := NewActivityStreamsCollection()
+ note1 := NewActivityStreamsNote()
+ name1 := NewActivityStreamsNameProperty()
+ name1.AppendString("Which Staircase Should I Use")
+ note1.SetName(name1)
+ note2 := NewActivityStreamsNote()
+ name2 := NewActivityStreamsNameProperty()
+ name2.AppendString("Something to Remember")
+ note2.SetName(name2)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally's notes")
+ example135Type.SetSummary(summary)
+ totalItems := NewActivityStreamsTotalItemsProperty()
+ totalItems.Set(2)
+ example135Type.SetTotalItems(totalItems)
+ items := NewActivityStreamsItemsProperty()
+ items.AppendNote(note1)
+ items.AppendNote(note2)
+ example135Type.SetItems(items)
+ return example135Type
+}
+
+const example136 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Place",
+ "name": "Fresno Area",
+ "latitude": 36.75,
+ "longitude": 119.7667,
+ "radius": 15,
+ "units": "miles"
+}`
+
+func example136Type() vocab.PlaceInterface {
+ example136Type := NewActivityStreamsPlace()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Fresno Area")
+ example136Type.SetName(name)
+ lat := NewActivityStreamsLatitudeProperty()
+ lat.Set(36.75)
+ example136Type.SetLatitude(lat)
+ lon := NewActivityStreamsLongitudeProperty()
+ lon.Set(119.7667)
+ example136Type.SetLongitude(lon)
+ rad := NewActivityStreamsRadiusProperty()
+ rad.Set(15)
+ example136Type.SetRadius(rad)
+ units := NewActivityStreamsUnitsProperty()
+ units.SetString("miles")
+ example136Type.SetUnits(units)
+ return example136Type
+}
+
+const example137 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "name": "Cranberry Sauce Idea",
+ "type": "Note",
+ "content": "Mush it up so it does not have the same shape as the can.",
+ "updated": "2014-12-12T12:12:12Z"
+}`
+
+func example137Type() vocab.NoteInterface {
+ example137Type := NewActivityStreamsNote()
+ t, err := time.Parse(time.RFC3339, "2014-12-12T12:12:12Z")
+ if err != nil {
+ panic(err)
+ }
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Cranberry Sauce Idea")
+ example137Type.SetName(name)
+ content := NewActivityStreamsContentProperty()
+ content.AppendString("Mush it up so it does not have the same shape as the can.")
+ example137Type.SetContent(content)
+ updated := NewActivityStreamsUpdatedProperty()
+ updated.Set(t)
+ example137Type.SetUpdated(updated)
+ return example137Type
+}
+
+const example138 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Link",
+ "href": "http://example.org/image.png",
+ "height": 100,
+ "width": 100
+}`
+
+func example138Type() vocab.LinkInterface {
+ example138Type := NewActivityStreamsLink()
+ u := MustParseURL("http://example.org/image.png")
+ hrefLink := NewActivityStreamsHrefProperty()
+ hrefLink.Set(u)
+ example138Type.SetHref(hrefLink)
+ width := NewActivityStreamsWidthProperty()
+ width.Set(100)
+ example138Type.SetWidth(width)
+ height := NewActivityStreamsHeightProperty()
+ height.Set(100)
+ example138Type.SetHeight(height)
+ return example138Type
+}
+
+const example139 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally is an acquaintance of John's",
+ "type": "Relationship",
+ "subject": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "relationship": "http://purl.org/vocab/relationship/acquaintanceOf",
+ "object": {
+ "type": "Person",
+ "name": "John"
+ }
+}`
+
+func example139Type() vocab.RelationshipInterface {
+ example139Type := NewActivityStreamsRelationship()
+ u := MustParseURL("http://purl.org/vocab/relationship/acquaintanceOf")
+ subject := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ subject.SetName(sally)
+ object := NewActivityStreamsPerson()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("John")
+ object.SetName(name)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally is an acquaintance of John's")
+ example139Type.SetSummary(summary)
+ subj := NewActivityStreamsSubjectProperty()
+ subj.SetPerson(subject)
+ example139Type.SetSubject(subj)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendPerson(object)
+ example139Type.SetObject(obj)
+ relationship := NewActivityStreamsRelationshipProperty()
+ relationship.AppendIRI(u)
+ example139Type.SetRelationship(relationship)
+ return example139Type
+}
+
+const example140 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally is an acquaintance of John's",
+ "type": "Relationship",
+ "subject": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "relationship": "http://purl.org/vocab/relationship/acquaintanceOf",
+ "object": {
+ "type": "Person",
+ "name": "John"
+ }
+}`
+
+func example140Type() vocab.RelationshipInterface {
+ example140Type := NewActivityStreamsRelationship()
+ u := MustParseURL("http://purl.org/vocab/relationship/acquaintanceOf")
+ subject := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ subject.SetName(sally)
+ object := NewActivityStreamsPerson()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("John")
+ object.SetName(name)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally is an acquaintance of John's")
+ example140Type.SetSummary(summary)
+ subj := NewActivityStreamsSubjectProperty()
+ subj.SetPerson(subject)
+ example140Type.SetSubject(subj)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendPerson(object)
+ example140Type.SetObject(obj)
+ relationship := NewActivityStreamsRelationshipProperty()
+ relationship.AppendIRI(u)
+ example140Type.SetRelationship(relationship)
+ return example140Type
+}
+
+const example141 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally's profile",
+ "type": "Profile",
+ "describes": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "url": "http://sally.example.org"
+}`
+
+func example141Type() vocab.ProfileInterface {
+ example141Type := NewActivityStreamsProfile()
+ u := MustParseURL("http://sally.example.org")
+ person := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ person.SetName(sally)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally's profile")
+ example141Type.SetSummary(summary)
+ urlProp := NewActivityStreamsUrlProperty()
+ urlProp.AppendIRI(u)
+ example141Type.SetUrl(urlProp)
+ describes := NewActivityStreamsDescribesProperty()
+ describes.SetPerson(person)
+ example141Type.SetDescribes(describes)
+ return example141Type
+}
+
+const example142 = `{
+"@context": "https://www.w3.org/ns/activitystreams",
+"summary": "This image has been deleted",
+"type": "Tombstone",
+"formerType": "Image",
+"url": "http://example.org/image/2"
+}`
+
+func example142Type() vocab.TombstoneInterface {
+ example142Type := NewActivityStreamsTombstone()
+ u := MustParseURL("http://example.org/image/2")
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("This image has been deleted")
+ example142Type.SetSummary(summary)
+ former := NewActivityStreamsFormerTypeProperty()
+ former.AppendString("Image")
+ example142Type.SetFormerType(former)
+ urlProp := NewActivityStreamsUrlProperty()
+ urlProp.AppendIRI(u)
+ example142Type.SetUrl(urlProp)
+ return example142Type
+}
+
+const example143 = `{
+"@context": "https://www.w3.org/ns/activitystreams",
+"summary": "This image has been deleted",
+"type": "Tombstone",
+"deleted": "2016-05-03T00:00:00Z"
+}`
+
+func example143Type() vocab.TombstoneInterface {
+ example143Type := NewActivityStreamsTombstone()
+ t, err := time.Parse(time.RFC3339, "2016-05-03T00:00:00Z")
+ if err != nil {
+ panic(err)
+ }
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("This image has been deleted")
+ example143Type.SetSummary(summary)
+ deleted := NewActivityStreamsDeletedProperty()
+ deleted.Set(t)
+ example143Type.SetDeleted(deleted)
+ return example143Type
+}
+
+const example144 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Activities in Project XYZ",
+ "type": "Collection",
+ "items": [
+ {
+ "summary": "Sally created a note",
+ "type": "Create",
+ "id": "http://activities.example.com/1",
+ "actor": "http://sally.example.org",
+ "object": {
+ "summary": "A note",
+ "type": "Note",
+ "id": "http://notes.example.com/1",
+ "content": "A note"
+ },
+ "context": {
+ "type": "http://example.org/Project",
+ "name": "Project XYZ"
+ },
+ "audience": {
+ "type": "Group",
+ "name": "Project XYZ Working Group"
+ },
+ "to": "http://john.example.org"
+ },
+ {
+ "summary": "John liked Sally's note",
+ "type": "Like",
+ "id": "http://activities.example.com/1",
+ "actor": "http://john.example.org",
+ "object": "http://notes.example.com/1",
+ "context": {
+ "type": "http://example.org/Project",
+ "name": "Project XYZ"
+ },
+ "audience": {
+ "type": "Group",
+ "name": "Project XYZ Working Group"
+ },
+ "to": "http://sally.example.org"
+ }
+ ]
+}`
+
+var example144Unknown = func(m map[string]interface{}) map[string]interface{} {
+ items := m["items"].([]interface{})
+ create := items[0].(map[string]interface{})
+ like := items[1].(map[string]interface{})
+ create["context"] = map[string]interface{}{
+ "type": "http://example.org/Project",
+ "name": "Project XYZ",
+ }
+ like["context"] = map[string]interface{}{
+ "type": "http://example.org/Project",
+ "name": "Project XYZ",
+ }
+ m["items"] = []interface{}{create, like}
+ return m
+}
+
+func example144Type() vocab.CollectionInterface {
+ example144Type := NewActivityStreamsCollection()
+ sally := MustParseURL("http://sally.example.org")
+ john := MustParseURL("http://john.example.org")
+ o := MustParseURL("http://notes.example.com/1")
+ audience := NewActivityStreamsGroup()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Project XYZ Working Group")
+ audience.SetName(name)
+ note := NewActivityStreamsNote()
+ summaryNote := NewActivityStreamsSummaryProperty()
+ summaryNote.AppendString("A note")
+ note.SetSummary(summaryNote)
+ noteId := NewActivityStreamsIdProperty()
+ noteId.Set(MustParseURL("http://notes.example.com/1"))
+ note.SetId(noteId)
+ content := NewActivityStreamsContentProperty()
+ content.AppendString("A note")
+ note.SetContent(content)
+ create := NewActivityStreamsCreate()
+ summaryCreate := NewActivityStreamsSummaryProperty()
+ summaryCreate.AppendString("Sally created a note")
+ create.SetSummary(summaryCreate)
+ createId := NewActivityStreamsIdProperty()
+ createId.Set(MustParseURL("http://activities.example.com/1"))
+ create.SetId(createId)
+ createActor := NewActivityStreamsActorProperty()
+ createActor.AppendIRI(sally)
+ create.SetActor(createActor)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendNote(note)
+ create.SetObject(obj)
+ aud1 := NewActivityStreamsAudienceProperty()
+ aud1.AppendGroup(audience)
+ create.SetAudience(aud1)
+ toCreate := NewActivityStreamsToProperty()
+ toCreate.AppendIRI(john)
+ create.SetTo(toCreate)
+ like := NewActivityStreamsLike()
+ summaryLike := NewActivityStreamsSummaryProperty()
+ summaryLike.AppendString("John liked Sally's note")
+ like.SetSummary(summaryLike)
+ likeId := NewActivityStreamsIdProperty()
+ likeId.Set(MustParseURL("http://activities.example.com/1"))
+ like.SetId(likeId)
+ likeActor := NewActivityStreamsActorProperty()
+ likeActor.AppendIRI(john)
+ like.SetActor(likeActor)
+ objLike := NewActivityStreamsObjectProperty()
+ objLike.AppendIRI(o)
+ like.SetObject(objLike)
+ aud2 := NewActivityStreamsAudienceProperty()
+ aud2.AppendGroup(audience)
+ like.SetAudience(aud2)
+ toLike := NewActivityStreamsToProperty()
+ toLike.AppendIRI(sally)
+ like.SetTo(toLike)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Activities in Project XYZ")
+ example144Type.SetSummary(summary)
+ items := NewActivityStreamsItemsProperty()
+ items.AppendCreate(create)
+ items.AppendLike(like)
+ example144Type.SetItems(items)
+ return example144Type
+}
+
+const example145 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally's friends list",
+ "type": "Collection",
+ "items": [
+ {
+ "summary": "Sally is influenced by Joe",
+ "type": "Relationship",
+ "subject": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "relationship": "http://purl.org/vocab/relationship/influencedBy",
+ "object": {
+ "type": "Person",
+ "name": "Joe"
+ }
+ },
+ {
+ "summary": "Sally is a friend of Jane",
+ "type": "Relationship",
+ "subject": {
+ "type": "Person",
+ "name": "Sally"
+ },
+ "relationship": "http://purl.org/vocab/relationship/friendOf",
+ "object": {
+ "type": "Person",
+ "name": "Jane"
+ }
+ }
+ ]
+}`
+
+func example145Type() vocab.CollectionInterface {
+ example145Type := NewActivityStreamsCollection()
+ friend := MustParseURL("http://purl.org/vocab/relationship/friendOf")
+ influenced := MustParseURL("http://purl.org/vocab/relationship/influencedBy")
+ sally := NewActivityStreamsPerson()
+ sallyName := NewActivityStreamsNameProperty()
+ sallyName.AppendString("Sally")
+ sally.SetName(sallyName)
+ jane := NewActivityStreamsPerson()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("Jane")
+ jane.SetName(name)
+ joe := NewActivityStreamsPerson()
+ joeName := NewActivityStreamsNameProperty()
+ joeName.AppendString("Joe")
+ joe.SetName(joeName)
+ joeRel := NewActivityStreamsRelationship()
+ summaryJoe := NewActivityStreamsSummaryProperty()
+ summaryJoe.AppendString("Sally is influenced by Joe")
+ joeRel.SetSummary(summaryJoe)
+ subj1 := NewActivityStreamsSubjectProperty()
+ subj1.SetPerson(sally)
+ joeRel.SetSubject(subj1)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendPerson(joe)
+ joeRel.SetObject(obj)
+ relationship := NewActivityStreamsRelationshipProperty()
+ relationship.AppendIRI(influenced)
+ joeRel.SetRelationship(relationship)
+ janeRel := NewActivityStreamsRelationship()
+ summaryJane := NewActivityStreamsSummaryProperty()
+ summaryJane.AppendString("Sally is a friend of Jane")
+ janeRel.SetSummary(summaryJane)
+ subj2 := NewActivityStreamsSubjectProperty()
+ subj2.SetPerson(sally)
+ janeRel.SetSubject(subj2)
+ objJane := NewActivityStreamsObjectProperty()
+ objJane.AppendPerson(jane)
+ janeRel.SetObject(objJane)
+ relationshipJane := NewActivityStreamsRelationshipProperty()
+ relationshipJane.AppendIRI(friend)
+ janeRel.SetRelationship(relationshipJane)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally's friends list")
+ example145Type.SetSummary(summary)
+ items := NewActivityStreamsItemsProperty()
+ items.AppendRelationship(joeRel)
+ items.AppendRelationship(janeRel)
+ example145Type.SetItems(items)
+ return example145Type
+}
+
+// NOTE: Added `Z` to `startTime` to make align to spec!
+const example146 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally became a friend of Matt",
+ "type": "Create",
+ "actor": "http://sally.example.org",
+ "object": {
+ "type": "Relationship",
+ "subject": "http://sally.example.org",
+ "relationship": "http://purl.org/vocab/relationship/friendOf",
+ "object": "http://matt.example.org",
+ "startTime": "2015-04-21T12:34:56Z"
+ }
+}`
+
+func example146Type() vocab.CreateInterface {
+ example146Type := NewActivityStreamsCreate()
+ friend := MustParseURL("http://purl.org/vocab/relationship/friendOf")
+ m := MustParseURL("http://matt.example.org")
+ s := MustParseURL("http://sally.example.org")
+ t, err := time.Parse(time.RFC3339, "2015-04-21T12:34:56Z")
+ if err != nil {
+ panic(err)
+ }
+ relationship := NewActivityStreamsRelationship()
+ subj := NewActivityStreamsSubjectProperty()
+ subj.SetIRI(s)
+ relationship.SetSubject(subj)
+ friendRel := NewActivityStreamsRelationshipProperty()
+ friendRel.AppendIRI(friend)
+ relationship.SetRelationship(friendRel)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(m)
+ relationship.SetObject(obj)
+ startTime := NewActivityStreamsStartTimeProperty()
+ startTime.Set(t)
+ relationship.SetStartTime(startTime)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally became a friend of Matt")
+ example146Type.SetSummary(summary)
+ objectActor := NewActivityStreamsActorProperty()
+ objectActor.AppendIRI(s)
+ example146Type.SetActor(objectActor)
+ objRoot := NewActivityStreamsObjectProperty()
+ objRoot.AppendRelationship(relationship)
+ example146Type.SetObject(objRoot)
+ return example146Type
+}
+
+const example147 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "id": "http://example.org/connection-requests/123",
+ "summary": "Sally requested to be a friend of John",
+ "type": "Offer",
+ "actor": "acct:sally@example.org",
+ "object": {
+ "summary": "Sally and John's friendship",
+ "id": "http://example.org/connections/123",
+ "type": "Relationship",
+ "subject": "acct:sally@example.org",
+ "relationship": "http://purl.org/vocab/relationship/friendOf",
+ "object": "acct:john@example.org"
+ },
+ "target": "acct:john@example.org"
+}`
+
+func example147Type() vocab.OfferInterface {
+ example147Type := NewActivityStreamsOffer()
+ friend := MustParseURL("http://purl.org/vocab/relationship/friendOf")
+ s := MustParseURL("acct:sally@example.org")
+ t := MustParseURL("acct:john@example.org")
+ rel := NewActivityStreamsRelationship()
+ summaryRel := NewActivityStreamsSummaryProperty()
+ summaryRel.AppendString("Sally and John's friendship")
+ rel.SetSummary(summaryRel)
+ relId := NewActivityStreamsIdProperty()
+ relId.Set(MustParseURL("http://example.org/connections/123"))
+ rel.SetId(relId)
+ subj := NewActivityStreamsSubjectProperty()
+ subj.SetIRI(s)
+ rel.SetSubject(subj)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(t)
+ rel.SetObject(obj)
+ relationship := NewActivityStreamsRelationshipProperty()
+ relationship.AppendIRI(friend)
+ rel.SetRelationship(relationship)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally requested to be a friend of John")
+ example147Type.SetSummary(summary)
+ id := NewActivityStreamsIdProperty()
+ id.Set(MustParseURL("http://example.org/connection-requests/123"))
+ example147Type.SetId(id)
+ objectActor := NewActivityStreamsActorProperty()
+ objectActor.AppendIRI(s)
+ example147Type.SetActor(objectActor)
+ objRel := NewActivityStreamsObjectProperty()
+ objRel.AppendRelationship(rel)
+ example147Type.SetObject(objRel)
+ objRoot := NewActivityStreamsObjectProperty()
+ objRoot.AppendRelationship(rel)
+ example147Type.SetObject(objRoot)
+ target := NewActivityStreamsTargetProperty()
+ target.AppendIRI(t)
+ example147Type.SetTarget(target)
+ return example147Type
+}
+
+const example148 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally and John's relationship history",
+ "type": "Collection",
+ "items": [
+ {
+ "summary": "John accepted Sally's friend request",
+ "id": "http://example.org/activities/122",
+ "type": "Accept",
+ "actor": "acct:john@example.org",
+ "object": "http://example.org/connection-requests/123",
+ "inReplyTo": "http://example.org/connection-requests/123",
+ "context": "http://example.org/connections/123",
+ "result": [
+ "http://example.org/activities/123",
+ "http://example.org/activities/124",
+ "http://example.org/activities/125",
+ "http://example.org/activities/126"
+ ]
+ },
+ {
+ "summary": "John followed Sally",
+ "id": "http://example.org/activities/123",
+ "type": "Follow",
+ "actor": "acct:john@example.org",
+ "object": "acct:sally@example.org",
+ "context": "http://example.org/connections/123"
+ },
+ {
+ "summary": "Sally followed John",
+ "id": "http://example.org/activities/124",
+ "type": "Follow",
+ "actor": "acct:sally@example.org",
+ "object": "acct:john@example.org",
+ "context": "http://example.org/connections/123"
+ },
+ {
+ "summary": "John added Sally to his friends list",
+ "id": "http://example.org/activities/125",
+ "type": "Add",
+ "actor": "acct:john@example.org",
+ "object": "http://example.org/connections/123",
+ "target": {
+ "type": "Collection",
+ "summary": "John's Connections"
+ },
+ "context": "http://example.org/connections/123"
+ },
+ {
+ "summary": "Sally added John to her friends list",
+ "id": "http://example.org/activities/126",
+ "type": "Add",
+ "actor": "acct:sally@example.org",
+ "object": "http://example.org/connections/123",
+ "target": {
+ "type": "Collection",
+ "summary": "Sally's Connections"
+ },
+ "context": "http://example.org/connections/123"
+ }
+ ]
+}`
+
+func example148Type() vocab.CollectionInterface {
+ example148Type := NewActivityStreamsCollection()
+ john := MustParseURL("acct:john@example.org")
+ sally := MustParseURL("acct:sally@example.org")
+ req123 := MustParseURL("http://example.org/connection-requests/123")
+ conn123 := MustParseURL("http://example.org/connections/123")
+ a123 := MustParseURL("http://example.org/activities/123")
+ a124 := MustParseURL("http://example.org/activities/124")
+ a125 := MustParseURL("http://example.org/activities/125")
+ a126 := MustParseURL("http://example.org/activities/126")
+ jc := NewActivityStreamsCollection()
+ summaryJc := NewActivityStreamsSummaryProperty()
+ summaryJc.AppendString("John's Connections")
+ jc.SetSummary(summaryJc)
+ sc := NewActivityStreamsCollection()
+ summarySc := NewActivityStreamsSummaryProperty()
+ summarySc.AppendString("Sally's Connections")
+ sc.SetSummary(summarySc)
+ o1 := NewActivityStreamsAccept()
+ oId1 := NewActivityStreamsIdProperty()
+ oId1.Set(MustParseURL("http://example.org/activities/122"))
+ o1.SetId(oId1)
+ summary1 := NewActivityStreamsSummaryProperty()
+ summary1.AppendString("John accepted Sally's friend request")
+ o1.SetSummary(summary1)
+ obj1 := NewActivityStreamsObjectProperty()
+ obj1.AppendIRI(req123)
+ o1.SetObject(obj1)
+ inReplyTo := NewActivityStreamsInReplyToProperty()
+ inReplyTo.AppendIRI(req123)
+ o1.SetInReplyTo(inReplyTo)
+ ctx1 := NewActivityStreamsContextProperty()
+ ctx1.AppendIRI(conn123)
+ o1.SetContext(ctx1)
+ result := NewActivityStreamsResultProperty()
+ result.AppendIRI(a123)
+ result.AppendIRI(a124)
+ result.AppendIRI(a125)
+ result.AppendIRI(a126)
+ o1.SetResult(result)
+ objectActor1 := NewActivityStreamsActorProperty()
+ objectActor1.AppendIRI(john)
+ o1.SetActor(objectActor1)
+ o2 := NewActivityStreamsFollow()
+ oId2 := NewActivityStreamsIdProperty()
+ oId2.Set(MustParseURL("http://example.org/activities/123"))
+ o2.SetId(oId2)
+ objectActor2 := NewActivityStreamsActorProperty()
+ objectActor2.AppendIRI(john)
+ o2.SetActor(objectActor2)
+ obj2 := NewActivityStreamsObjectProperty()
+ obj2.AppendIRI(sally)
+ o2.SetObject(obj2)
+ ctx2 := NewActivityStreamsContextProperty()
+ ctx2.AppendIRI(conn123)
+ o2.SetContext(ctx2)
+ summary2 := NewActivityStreamsSummaryProperty()
+ summary2.AppendString("John followed Sally")
+ o2.SetSummary(summary2)
+ o3 := NewActivityStreamsFollow()
+ oId3 := NewActivityStreamsIdProperty()
+ oId3.Set(MustParseURL("http://example.org/activities/124"))
+ o3.SetId(oId3)
+ objectActor3 := NewActivityStreamsActorProperty()
+ objectActor3.AppendIRI(sally)
+ o3.SetActor(objectActor3)
+ obj3 := NewActivityStreamsObjectProperty()
+ obj3.AppendIRI(john)
+ o3.SetObject(obj3)
+ ctx3 := NewActivityStreamsContextProperty()
+ ctx3.AppendIRI(conn123)
+ o3.SetContext(ctx3)
+ summary3 := NewActivityStreamsSummaryProperty()
+ summary3.AppendString("Sally followed John")
+ o3.SetSummary(summary3)
+ o4 := NewActivityStreamsAdd()
+ oId4 := NewActivityStreamsIdProperty()
+ oId4.Set(MustParseURL("http://example.org/activities/125"))
+ o4.SetId(oId4)
+ summary4 := NewActivityStreamsSummaryProperty()
+ summary4.AppendString("John added Sally to his friends list")
+ o4.SetSummary(summary4)
+ objectActor4 := NewActivityStreamsActorProperty()
+ objectActor4.AppendIRI(john)
+ o4.SetActor(objectActor4)
+ obj4 := NewActivityStreamsObjectProperty()
+ obj4.AppendIRI(conn123)
+ o4.SetObject(obj4)
+ ctx4 := NewActivityStreamsContextProperty()
+ ctx4.AppendIRI(conn123)
+ o4.SetContext(ctx4)
+ tobj4 := NewActivityStreamsTargetProperty()
+ tobj4.AppendCollection(jc)
+ o4.SetTarget(tobj4)
+ o5 := NewActivityStreamsAdd()
+ oId5 := NewActivityStreamsIdProperty()
+ oId5.Set(MustParseURL("http://example.org/activities/126"))
+ o5.SetId(oId5)
+ summary5 := NewActivityStreamsSummaryProperty()
+ summary5.AppendString("Sally added John to her friends list")
+ o5.SetSummary(summary5)
+ objectActor5 := NewActivityStreamsActorProperty()
+ objectActor5.AppendIRI(sally)
+ o5.SetActor(objectActor5)
+ obj5 := NewActivityStreamsObjectProperty()
+ obj5.AppendIRI(conn123)
+ o5.SetObject(obj5)
+ ctx5 := NewActivityStreamsContextProperty()
+ ctx5.AppendIRI(conn123)
+ o5.SetContext(ctx5)
+ tobj5 := NewActivityStreamsTargetProperty()
+ tobj5.AppendCollection(sc)
+ o5.SetTarget(tobj5)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally and John's relationship history")
+ example148Type.SetSummary(summary)
+ items := NewActivityStreamsItemsProperty()
+ items.AppendAccept(o1)
+ items.AppendFollow(o2)
+ items.AppendFollow(o3)
+ items.AppendAdd(o4)
+ items.AppendAdd(o5)
+ example148Type.SetItems(items)
+ return example148Type
+}
+
+const example149 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Place",
+ "name": "San Francisco, CA"
+}`
+
+func example149Type() vocab.PlaceInterface {
+ example149Type := NewActivityStreamsPlace()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("San Francisco, CA")
+ example149Type.SetName(name)
+ return example149Type
+}
+
+// NOTE: Un-stringified the longitude and latitude values.
+const example150 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Place",
+ "name": "San Francisco, CA",
+ "longitude": 122.4167,
+ "latitude": 37.7833
+}`
+
+func example150Type() vocab.PlaceInterface {
+ example150Type := NewActivityStreamsPlace()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("San Francisco, CA")
+ example150Type.SetName(name)
+ lon := NewActivityStreamsLongitudeProperty()
+ lon.Set(122.4167)
+ example150Type.SetLongitude(lon)
+ lat := NewActivityStreamsLatitudeProperty()
+ lat.Set(37.7833)
+ example150Type.SetLatitude(lat)
+ return example150Type
+}
+
+const example151 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "name": "A question about robots",
+ "id": "http://help.example.org/question/1",
+ "type": "Question",
+ "content": "I'd like to build a robot to feed my cat. Should I use Arduino or Raspberry Pi?"
+}`
+
+func example151Type() vocab.QuestionInterface {
+ example151Type := NewActivityStreamsQuestion()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("A question about robots")
+ example151Type.SetName(name)
+ id := NewActivityStreamsIdProperty()
+ id.Set(MustParseURL("http://help.example.org/question/1"))
+ example151Type.SetId(id)
+ content := NewActivityStreamsContentProperty()
+ content.AppendString("I'd like to build a robot to feed my cat. Should I use Arduino or Raspberry Pi?")
+ example151Type.SetContent(content)
+ return example151Type
+}
+
+const example152 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "id": "http://polls.example.org/question/1",
+ "name": "A question about robots",
+ "type": "Question",
+ "content": "I'd like to build a robot to feed my cat. Which platform is best?",
+ "oneOf": [
+ {"name": "arduino"},
+ {"name": "raspberry pi"}
+ ]
+}`
+
+var example152Unknown = func(m map[string]interface{}) map[string]interface{} {
+ ard := make(map[string]interface{})
+ ard["name"] = "arduino"
+ ras := make(map[string]interface{})
+ ras["name"] = "raspberry pi"
+ m["oneOf"] = []interface{}{ard, ras}
+ return m
+}
+
+func example152Type() vocab.QuestionInterface {
+ example152Type := NewActivityStreamsQuestion()
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("A question about robots")
+ example152Type.SetName(name)
+ id := NewActivityStreamsIdProperty()
+ id.Set(MustParseURL("http://polls.example.org/question/1"))
+ example152Type.SetId(id)
+ content := NewActivityStreamsContentProperty()
+ content.AppendString("I'd like to build a robot to feed my cat. Which platform is best?")
+ example152Type.SetContent(content)
+ return example152Type
+}
+
+const example153 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "attributedTo": "http://sally.example.org",
+ "inReplyTo": "http://polls.example.org/question/1",
+ "name": "arduino"
+}`
+
+func example153Type() interface{} {
+ return nil
+}
+
+var example153Unknown = func(m map[string]interface{}) map[string]interface{} {
+ m["attributedTo"] = "http://sally.example.org"
+ m["inReplyTo"] = "http://polls.example.org/question/1"
+ m["name"] = "arduino"
+ return m
+}
+
+const example154 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "name": "A question about robots",
+ "id": "http://polls.example.org/question/1",
+ "type": "Question",
+ "content": "I'd like to build a robot to feed my cat. Which platform is best?",
+ "oneOf": [
+ {"name": "arduino"},
+ {"name": "raspberry pi"}
+ ],
+ "replies": {
+ "type": "Collection",
+ "totalItems": 3,
+ "items": [
+ {
+ "attributedTo": "http://sally.example.org",
+ "inReplyTo": "http://polls.example.org/question/1",
+ "name": "arduino"
+ },
+ {
+ "attributedTo": "http://joe.example.org",
+ "inReplyTo": "http://polls.example.org/question/1",
+ "name": "arduino"
+ },
+ {
+ "attributedTo": "http://john.example.org",
+ "inReplyTo": "http://polls.example.org/question/1",
+ "name": "raspberry pi"
+ }
+ ]
+ },
+ "result": {
+ "type": "Note",
+ "content": "Users are favoriting "arduino" by a 33% margin."
+ }
+}`
+
+var example154Unknown = func(m map[string]interface{}) map[string]interface{} {
+ ard := make(map[string]interface{})
+ ard["name"] = "arduino"
+ ras := make(map[string]interface{})
+ ras["name"] = "raspberry pi"
+ m["oneOf"] = []interface{}{ard, ras}
+ // replies
+ one := make(map[string]interface{})
+ one["attributedTo"] = "http://sally.example.org"
+ one["inReplyTo"] = "http://polls.example.org/question/1"
+ one["name"] = "arduino"
+ two := make(map[string]interface{})
+ two["attributedTo"] = "http://joe.example.org"
+ two["inReplyTo"] = "http://polls.example.org/question/1"
+ two["name"] = "arduino"
+ three := make(map[string]interface{})
+ three["attributedTo"] = "http://john.example.org"
+ three["inReplyTo"] = "http://polls.example.org/question/1"
+ three["name"] = "raspberry pi"
+ items := []interface{}{one, two, three}
+ replies := m["replies"].(map[string]interface{})
+ replies["items"] = items
+ return m
+}
+
+func example154Type() vocab.QuestionInterface {
+ example154Type := NewActivityStreamsQuestion()
+ replies := NewActivityStreamsCollection()
+ totalItems := NewActivityStreamsTotalItemsProperty()
+ totalItems.Set(3)
+ replies.SetTotalItems(totalItems)
+ note := NewActivityStreamsNote()
+ contentNote := NewActivityStreamsContentProperty()
+ contentNote.AppendString("Users are favoriting "arduino" by a 33% margin.")
+ note.SetContent(contentNote)
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("A question about robots")
+ example154Type.SetName(name)
+ id := NewActivityStreamsIdProperty()
+ id.Set(MustParseURL("http://polls.example.org/question/1"))
+ example154Type.SetId(id)
+ content := NewActivityStreamsContentProperty()
+ content.AppendString("I'd like to build a robot to feed my cat. Which platform is best?")
+ example154Type.SetContent(content)
+ reply := NewActivityStreamsRepliesProperty()
+ reply.SetCollection(replies)
+ example154Type.SetReplies(reply)
+ result := NewActivityStreamsResultProperty()
+ result.AppendNote(note)
+ example154Type.SetResult(result)
+ return example154Type
+}
+
+const example155 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "History of John's note",
+ "type": "Collection",
+ "items": [
+ {
+ "summary": "Sally liked John's note",
+ "type": "Like",
+ "actor": "http://sally.example.org",
+ "id": "http://activities.example.com/1",
+ "published": "2015-11-12T12:34:56Z",
+ "object": {
+ "summary": "John's note",
+ "type": "Note",
+ "id": "http://notes.example.com/1",
+ "attributedTo": "http://john.example.org",
+ "content": "My note"
+ }
+ },
+ {
+ "summary": "Sally disliked John's note",
+ "type": "Dislike",
+ "actor": "http://sally.example.org",
+ "id": "http://activities.example.com/2",
+ "published": "2015-12-11T21:43:56Z",
+ "object": {
+ "summary": "John's note",
+ "type": "Note",
+ "id": "http://notes.example.com/1",
+ "attributedTo": "http://john.example.org",
+ "content": "My note"
+ }
+ }
+ ]
+}`
+
+func example155Type() vocab.CollectionInterface {
+ example155Type := NewActivityStreamsCollection()
+ john := MustParseURL("http://john.example.org")
+ sally := MustParseURL("http://sally.example.org")
+ t1, err := time.Parse(time.RFC3339, "2015-11-12T12:34:56Z")
+ if err != nil {
+ panic(err)
+ }
+ t2, err := time.Parse(time.RFC3339, "2015-12-11T21:43:56Z")
+ if err != nil {
+ panic(err)
+ }
+ note := NewActivityStreamsNote()
+ summaryNote := NewActivityStreamsSummaryProperty()
+ summaryNote.AppendString("John's note")
+ note.SetSummary(summaryNote)
+ noteId := NewActivityStreamsIdProperty()
+ noteId.Set(MustParseURL("http://notes.example.com/1"))
+ note.SetId(noteId)
+ contentNote := NewActivityStreamsContentProperty()
+ contentNote.AppendString("My note")
+ note.SetContent(contentNote)
+ attr := NewActivityStreamsAttributedToProperty()
+ attr.AppendIRI(john)
+ note.SetAttributedTo(attr)
+ like := NewActivityStreamsLike()
+ summaryLike := NewActivityStreamsSummaryProperty()
+ summaryLike.AppendString("Sally liked John's note")
+ like.SetSummary(summaryLike)
+ likeId := NewActivityStreamsIdProperty()
+ likeId.Set(MustParseURL("http://activities.example.com/1"))
+ like.SetId(likeId)
+ likeActor := NewActivityStreamsActorProperty()
+ likeActor.AppendIRI(sally)
+ like.SetActor(likeActor)
+ published1 := NewActivityStreamsPublishedProperty()
+ published1.Set(t1)
+ like.SetPublished(published1)
+ objLike := NewActivityStreamsObjectProperty()
+ objLike.AppendNote(note)
+ like.SetObject(objLike)
+ dislike := NewActivityStreamsDislike()
+ summaryDislike := NewActivityStreamsSummaryProperty()
+ summaryDislike.AppendString("Sally disliked John's note")
+ dislike.SetSummary(summaryDislike)
+ dislikeId := NewActivityStreamsIdProperty()
+ dislikeId.Set(MustParseURL("http://activities.example.com/2"))
+ dislike.SetId(dislikeId)
+ dislikeActor := NewActivityStreamsActorProperty()
+ dislikeActor.AppendIRI(sally)
+ dislike.SetActor(dislikeActor)
+ published2 := NewActivityStreamsPublishedProperty()
+ published2.Set(t2)
+ dislike.SetPublished(published2)
+ objDislike := NewActivityStreamsObjectProperty()
+ objDislike.AppendNote(note)
+ dislike.SetObject(objDislike)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("History of John's note")
+ example155Type.SetSummary(summary)
+ items := NewActivityStreamsItemsProperty()
+ items.AppendLike(like)
+ items.AppendDislike(dislike)
+ example155Type.SetItems(items)
+ return example155Type
+}
+
+const example156 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "History of John's note",
+ "type": "Collection",
+ "items": [
+ {
+ "summary": "Sally liked John's note",
+ "type": "Like",
+ "id": "http://activities.example.com/1",
+ "actor": "http://sally.example.org",
+ "published": "2015-11-12T12:34:56Z",
+ "object": {
+ "summary": "John's note",
+ "type": "Note",
+ "id": "http://notes.example.com/1",
+ "attributedTo": "http://john.example.org",
+ "content": "My note"
+ }
+ },
+ {
+ "summary": "Sally no longer likes John's note",
+ "type": "Undo",
+ "id": "http://activities.example.com/2",
+ "actor": "http://sally.example.org",
+ "published": "2015-12-11T21:43:56Z",
+ "object": "http://activities.example.com/1"
+ }
+ ]
+}`
+
+func example156Type() vocab.CollectionInterface {
+ example156Type := NewActivityStreamsCollection()
+ john := MustParseURL("http://john.example.org")
+ sally := MustParseURL("http://sally.example.org")
+ a := MustParseURL("http://activities.example.com/1")
+ t1, err := time.Parse(time.RFC3339, "2015-11-12T12:34:56Z")
+ if err != nil {
+ panic(err)
+ }
+ t2, err := time.Parse(time.RFC3339, "2015-12-11T21:43:56Z")
+ if err != nil {
+ panic(err)
+ }
+ note := NewActivityStreamsNote()
+ noteId := NewActivityStreamsIdProperty()
+ noteId.Set(MustParseURL("http://notes.example.com/1"))
+ note.SetId(noteId)
+ summaryNote := NewActivityStreamsSummaryProperty()
+ summaryNote.AppendString("John's note")
+ note.SetSummary(summaryNote)
+ attr := NewActivityStreamsAttributedToProperty()
+ attr.AppendIRI(john)
+ note.SetAttributedTo(attr)
+ contentNote := NewActivityStreamsContentProperty()
+ contentNote.AppendString("My note")
+ note.SetContent(contentNote)
+ like := NewActivityStreamsLike()
+ likeId := NewActivityStreamsIdProperty()
+ likeId.Set(MustParseURL("http://activities.example.com/1"))
+ like.SetId(likeId)
+ summaryLike := NewActivityStreamsSummaryProperty()
+ summaryLike.AppendString("Sally liked John's note")
+ like.SetSummary(summaryLike)
+ likeActor := NewActivityStreamsActorProperty()
+ likeActor.AppendIRI(sally)
+ like.SetActor(likeActor)
+ published1 := NewActivityStreamsPublishedProperty()
+ published1.Set(t1)
+ like.SetPublished(published1)
+ objLike := NewActivityStreamsObjectProperty()
+ objLike.AppendNote(note)
+ like.SetObject(objLike)
+ undo := NewActivityStreamsUndo()
+ undoId := NewActivityStreamsIdProperty()
+ undoId.Set(MustParseURL("http://activities.example.com/2"))
+ undo.SetId(undoId)
+ summaryUndo := NewActivityStreamsSummaryProperty()
+ summaryUndo.AppendString("Sally no longer likes John's note")
+ undo.SetSummary(summaryUndo)
+ undoActor := NewActivityStreamsActorProperty()
+ undoActor.AppendIRI(sally)
+ undo.SetActor(undoActor)
+ published2 := NewActivityStreamsPublishedProperty()
+ published2.Set(t2)
+ undo.SetPublished(published2)
+ obj := NewActivityStreamsObjectProperty()
+ obj.AppendIRI(a)
+ undo.SetObject(obj)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("History of John's note")
+ example156Type.SetSummary(summary)
+ items := NewActivityStreamsItemsProperty()
+ items.AppendLike(like)
+ items.AppendUndo(undo)
+ example156Type.SetItems(items)
+ return example156Type
+}
+
+// NOTE: The `content` field has been inlined to keep within JSON spec.
+const example157 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "name": "A thank-you note",
+ "type": "Note",
+ "content": "Thank you @sally for all your hard work! #givingthanks",
+ "to": {
+ "name": "Sally",
+ "type": "Person",
+ "id": "http://sally.example.org"
+ },
+ "tag": {
+ "id": "http://example.org/tags/givingthanks",
+ "name": "#givingthanks"
+ }
+}`
+
+var example157Unknown = func(m map[string]interface{}) map[string]interface{} {
+ m["tag"] = map[string]interface{}{
+ "id": "http://example.org/tags/givingthanks",
+ "name": "#givingthanks",
+ }
+ return m
+}
+
+func example157Type() vocab.NoteInterface {
+ example157Type := NewActivityStreamsNote()
+ person := NewActivityStreamsPerson()
+ sally := NewActivityStreamsNameProperty()
+ sally.AppendString("Sally")
+ person.SetName(sally)
+ id := NewActivityStreamsIdProperty()
+ id.Set(MustParseURL("http://sally.example.org"))
+ person.SetId(id)
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("A thank-you note")
+ example157Type.SetName(name)
+ contentNote := NewActivityStreamsContentProperty()
+ contentNote.AppendString("Thank you @sally for all your hard work! #givingthanks")
+ example157Type.SetContent(contentNote)
+ to := NewActivityStreamsToProperty()
+ to.AppendPerson(person)
+ example157Type.SetTo(to)
+ return example157Type
+}
+
+const example158 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "name": "A thank-you note",
+ "type": "Note",
+ "content": "Thank you @sally for all your hard work! #givingthanks",
+ "tag": [
+ {
+ "type": "Mention",
+ "href": "http://example.org/people/sally",
+ "name": "@sally"
+ },
+ {
+ "id": "http://example.org/tags/givingthanks",
+ "name": "#givingthanks"
+ }
+ ]
+}`
+
+var example158Unknown = func(m map[string]interface{}) map[string]interface{} {
+ existing := m["tag"]
+ next := map[string]interface{}{
+ "id": "http://example.org/tags/givingthanks",
+ "name": "#givingthanks",
+ }
+ m["tag"] = []interface{}{existing, next}
+ return m
+}
+
+func example158Type() vocab.NoteInterface {
+ example158Type := NewActivityStreamsNote()
+ u := MustParseURL("http://example.org/people/sally")
+ mention := NewActivityStreamsMention()
+ hrefLink := NewActivityStreamsHrefProperty()
+ hrefLink.Set(u)
+ mention.SetHref(hrefLink)
+ mentionName := NewActivityStreamsNameProperty()
+ mentionName.AppendString("@sally")
+ mention.SetName(mentionName)
+ name := NewActivityStreamsNameProperty()
+ name.AppendString("A thank-you note")
+ example158Type.SetName(name)
+ contentNote := NewActivityStreamsContentProperty()
+ contentNote.AppendString("Thank you @sally for all your hard work! #givingthanks")
+ example158Type.SetContent(contentNote)
+ tag := NewActivityStreamsTagProperty()
+ tag.AppendMention(mention)
+ example158Type.SetTag(tag)
+ return example158Type
+}
+
+const example159 = `{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "summary": "Sally moved the sales figures from Folder A to Folder B",
+ "type": "Move",
+ "actor": "http://sally.example.org",
+ "object": {
+ "type": "Document",
+ "name": "sales figures"
+ },
+ "origin": {
+ "type": "Collection",
+ "name": "Folder A"
+ },
+ "target": {
+ "type": "Collection",
+ "name": "Folder B"
+ }
+}`
+
+func example159Type() vocab.MoveInterface {
+ example159Type := NewActivityStreamsMove()
+ sally := MustParseURL("http://sally.example.org")
+ obj := NewActivityStreamsDocument()
+ nameObj := NewActivityStreamsNameProperty()
+ nameObj.AppendString("sales figures")
+ obj.SetName(nameObj)
+ origin := NewActivityStreamsCollection()
+ nameOrigin := NewActivityStreamsNameProperty()
+ nameOrigin.AppendString("Folder A")
+ origin.SetName(nameOrigin)
+ target := NewActivityStreamsCollection()
+ nameTarget := NewActivityStreamsNameProperty()
+ nameTarget.AppendString("Folder B")
+ target.SetName(nameTarget)
+ summary := NewActivityStreamsSummaryProperty()
+ summary.AppendString("Sally moved the sales figures from Folder A to Folder B")
+ example159Type.SetSummary(summary)
+ objectActor := NewActivityStreamsActorProperty()
+ objectActor.AppendIRI(sally)
+ example159Type.SetActor(objectActor)
+ object := NewActivityStreamsObjectProperty()
+ object.AppendDocument(obj)
+ example159Type.SetObject(object)
+ originProp := NewActivityStreamsOriginProperty()
+ originProp.AppendCollection(origin)
+ example159Type.SetOrigin(originProp)
+ tobj := NewActivityStreamsTargetProperty()
+ tobj.AppendCollection(target)
+ example159Type.SetTarget(tobj)
+ return example159Type
+}