// Code generated by astool. DO NOT EDIT.

package vocab

// InteractionPolicy for an ActivityStreams Object.
type GoToSocialInteractionPolicy interface {
	// GetGoToSocialCanAnnounce returns the "canAnnounce" property if it
	// exists, and nil otherwise.
	GetGoToSocialCanAnnounce() GoToSocialCanAnnounceProperty
	// GetGoToSocialCanLike returns the "canLike" property if it exists, and
	// nil otherwise.
	GetGoToSocialCanLike() GoToSocialCanLikeProperty
	// GetGoToSocialCanQuote returns the "canQuote" property if it exists, and
	// nil otherwise.
	GetGoToSocialCanQuote() GoToSocialCanQuoteProperty
	// GetGoToSocialCanReply returns the "canReply" property if it exists, and
	// nil otherwise.
	GetGoToSocialCanReply() GoToSocialCanReplyProperty
	// GetJSONLDId returns the "id" property if it exists, and nil otherwise.
	GetJSONLDId() JSONLDIdProperty
	// GetTypeName returns the name of this type.
	GetTypeName() string
	// GetUnknownProperties returns the unknown properties for the
	// InteractionPolicy type. Note that this should not be used by app
	// developers. It is only used to help determine which implementation
	// is LessThan the other. Developers who are creating a different
	// implementation of this type's interface can use this method in
	// their LessThan implementation, but routine ActivityPub applications
	// should not use this to bypass the code generation tool.
	GetUnknownProperties() map[string]interface{}
	// IsExtending returns true if the InteractionPolicy type extends from the
	// other type.
	IsExtending(other Type) bool
	// JSONLDContext returns the JSONLD URIs required in the context string
	// for this type and the specific properties that are set. The value
	// in the map is the alias used to import the type and its properties.
	JSONLDContext() map[string]string
	// LessThan computes if this InteractionPolicy is lesser, with an
	// arbitrary but stable determination.
	LessThan(o GoToSocialInteractionPolicy) bool
	// Serialize converts this into an interface representation suitable for
	// marshalling into a text or binary format.
	Serialize() (map[string]interface{}, error)
	// SetGoToSocialCanAnnounce sets the "canAnnounce" property.
	SetGoToSocialCanAnnounce(i GoToSocialCanAnnounceProperty)
	// SetGoToSocialCanLike sets the "canLike" property.
	SetGoToSocialCanLike(i GoToSocialCanLikeProperty)
	// SetGoToSocialCanQuote sets the "canQuote" property.
	SetGoToSocialCanQuote(i GoToSocialCanQuoteProperty)
	// SetGoToSocialCanReply sets the "canReply" property.
	SetGoToSocialCanReply(i GoToSocialCanReplyProperty)
	// SetJSONLDId sets the "id" property.
	SetJSONLDId(i JSONLDIdProperty)
	// VocabularyURI returns the vocabulary's URI as a string.
	VocabularyURI() string
}
