Documentation
¶
Index ¶
- Variables
- type Article
- func (x *Article) ClearMetadata()
- func (x *Article) ClearSectionTree()
- func (x *Article) GetAuthors() []*Author
- func (x *Article) GetBodies() []*Article_Body
- func (x *Article) GetElements() []*Article_Element
- func (x *Article) GetEntities() []stringdeprecated
- func (x *Article) GetFields() map[string]string
- func (x *Article) GetId() int64
- func (x *Article) GetKeywords() []*Article_Keyword
- func (x *Article) GetMetadata() *Article_Metadata
- func (x *Article) GetOnwards() []int64deprecated
- func (x *Article) GetReferences() []*Reference
- func (x *Article) GetRelatedArticles() []*Article
- func (x *Article) GetSectionTree() *Reference
- func (x *Article) GetSubType() Article_SubType
- func (x *Article) GetType() Article_Type
- func (x *Article) GetVariants() map[string]*Article
- func (x *Article) HasMetadata() bool
- func (x *Article) HasSectionTree() bool
- func (*Article) ProtoMessage()
- func (x *Article) ProtoReflect() protoreflect.Message
- func (x *Article) Reset()
- func (x *Article) SetAuthors(v []*Author)
- func (x *Article) SetBodies(v []*Article_Body)
- func (x *Article) SetElements(v []*Article_Element)
- func (x *Article) SetEntities(v []string)deprecated
- func (x *Article) SetFields(v map[string]string)
- func (x *Article) SetId(v int64)
- func (x *Article) SetKeywords(v []*Article_Keyword)
- func (x *Article) SetMetadata(v *Article_Metadata)
- func (x *Article) SetOnwards(v []int64)deprecated
- func (x *Article) SetReferences(v []*Reference)
- func (x *Article) SetRelatedArticles(v []*Article)
- func (x *Article) SetSectionTree(v *Reference)
- func (x *Article) SetSubType(v Article_SubType)
- func (x *Article) SetType(v Article_Type)
- func (x *Article) SetVariants(v map[string]*Article)
- func (x *Article) String() string
- type Article_Body
- func (x *Article_Body) GetChildren() []*Article_Body_BodyNode
- func (x *Article_Body) GetType() Article_Body_Type
- func (*Article_Body) ProtoMessage()
- func (x *Article_Body) ProtoReflect() protoreflect.Message
- func (x *Article_Body) Reset()
- func (x *Article_Body) SetChildren(v []*Article_Body_BodyNode)
- func (x *Article_Body) SetType(v Article_Body_Type)
- func (x *Article_Body) String() string
- type Article_Body_BodyNode
- func (x *Article_Body_BodyNode) ClearReference()
- func (x *Article_Body_BodyNode) GetChildren() []*Article_Body_BodyNode
- func (x *Article_Body_BodyNode) GetElements() []*Article_Element
- func (x *Article_Body_BodyNode) GetFields() map[string]string
- func (x *Article_Body_BodyNode) GetReference() *Reference
- func (x *Article_Body_BodyNode) GetText() string
- func (x *Article_Body_BodyNode) GetType() string
- func (x *Article_Body_BodyNode) HasReference() bool
- func (*Article_Body_BodyNode) ProtoMessage()
- func (x *Article_Body_BodyNode) ProtoReflect() protoreflect.Message
- func (x *Article_Body_BodyNode) Reset()
- func (x *Article_Body_BodyNode) SetChildren(v []*Article_Body_BodyNode)
- func (x *Article_Body_BodyNode) SetElements(v []*Article_Element)
- func (x *Article_Body_BodyNode) SetFields(v map[string]string)
- func (x *Article_Body_BodyNode) SetReference(v *Reference)
- func (x *Article_Body_BodyNode) SetText(v string)
- func (x *Article_Body_BodyNode) SetType(v string)
- func (x *Article_Body_BodyNode) String() string
- type Article_Body_BodyNode_builder
- type Article_Body_Type
- type Article_Body_builder
- type Article_Element
- func (x *Article_Element) GetAssets() []*Article_Element_Asset
- func (x *Article_Element) GetChildren() []*Article_Element
- func (x *Article_Element) GetRelations() []Article_Element_Relation
- func (x *Article_Element) GetType() Article_Element_Type
- func (*Article_Element) ProtoMessage()
- func (x *Article_Element) ProtoReflect() protoreflect.Message
- func (x *Article_Element) Reset()
- func (x *Article_Element) SetAssets(v []*Article_Element_Asset)
- func (x *Article_Element) SetChildren(v []*Article_Element)
- func (x *Article_Element) SetRelations(v []Article_Element_Relation)
- func (x *Article_Element) SetType(v Article_Element_Type)
- func (x *Article_Element) String() string
- type Article_Element_Asset
- func (x *Article_Element_Asset) ClearMetadata()
- func (x *Article_Element_Asset) ClearReference()
- func (x *Article_Element_Asset) GetFields() map[string]string
- func (x *Article_Element_Asset) GetMetadata() *Article_Metadata
- func (x *Article_Element_Asset) GetReference() *Reference
- func (x *Article_Element_Asset) GetType() Article_Element_Asset_Type
- func (x *Article_Element_Asset) HasMetadata() bool
- func (x *Article_Element_Asset) HasReference() bool
- func (*Article_Element_Asset) ProtoMessage()
- func (x *Article_Element_Asset) ProtoReflect() protoreflect.Message
- func (x *Article_Element_Asset) Reset()
- func (x *Article_Element_Asset) SetFields(v map[string]string)
- func (x *Article_Element_Asset) SetMetadata(v *Article_Metadata)
- func (x *Article_Element_Asset) SetReference(v *Reference)
- func (x *Article_Element_Asset) SetType(v Article_Element_Asset_Type)
- func (x *Article_Element_Asset) String() string
- type Article_Element_Asset_Type
- func (Article_Element_Asset_Type) Descriptor() protoreflect.EnumDescriptor
- func (x Article_Element_Asset_Type) Enum() *Article_Element_Asset_Type
- func (x Article_Element_Asset_Type) Number() protoreflect.EnumNumber
- func (x Article_Element_Asset_Type) String() string
- func (Article_Element_Asset_Type) Type() protoreflect.EnumType
- type Article_Element_Asset_builder
- type Article_Element_Relation
- func (Article_Element_Relation) Descriptor() protoreflect.EnumDescriptor
- func (x Article_Element_Relation) Enum() *Article_Element_Relation
- func (x Article_Element_Relation) Number() protoreflect.EnumNumber
- func (x Article_Element_Relation) String() string
- func (Article_Element_Relation) Type() protoreflect.EnumType
- type Article_Element_Type
- type Article_Element_builder
- type Article_Keyword
- func (x *Article_Keyword) GetScore() float32
- func (x *Article_Keyword) GetType() string
- func (x *Article_Keyword) GetValue() string
- func (*Article_Keyword) ProtoMessage()
- func (x *Article_Keyword) ProtoReflect() protoreflect.Message
- func (x *Article_Keyword) Reset()
- func (x *Article_Keyword) SetScore(v float32)
- func (x *Article_Keyword) SetType(v string)
- func (x *Article_Keyword) SetValue(v string)
- func (x *Article_Keyword) String() string
- type Article_Keyword_builder
- type Article_Metadata
- func (x *Article_Metadata) ClearCurationAutomationEndTime()
- func (x *Article_Metadata) ClearCurationAutomationStartTime()
- func (x *Article_Metadata) ClearEndTime()
- func (x *Article_Metadata) ClearLastModificationTime()
- func (x *Article_Metadata) ClearPublishTime()
- func (x *Article_Metadata) ClearStartTime()
- func (x *Article_Metadata) ClearTransformationTime()
- func (x *Article_Metadata) ClearUpdateTime()
- func (x *Article_Metadata) GetCurationAutomationEndTime() *timestamppb.Timestamp
- func (x *Article_Metadata) GetCurationAutomationStartTime() *timestamppb.Timestamp
- func (x *Article_Metadata) GetEndTime() *timestamppb.Timestamp
- func (x *Article_Metadata) GetEventSource() Article_Metadata_EventSource
- func (x *Article_Metadata) GetLastModificationTime() *timestamppb.Timestamp
- func (x *Article_Metadata) GetPublicationId() int64
- func (x *Article_Metadata) GetPublishTime() *timestamppb.Timestamp
- func (x *Article_Metadata) GetRelatedArticleSource() string
- func (x *Article_Metadata) GetSeoScore() float64
- func (x *Article_Metadata) GetStartTime() *timestamppb.Timestamp
- func (x *Article_Metadata) GetState() Article_Metadata_State
- func (x *Article_Metadata) GetTenant() string
- func (x *Article_Metadata) GetTransformationErrors() int64
- func (x *Article_Metadata) GetTransformationTime() *timestamppb.Timestamp
- func (x *Article_Metadata) GetUpdateTime() *timestamppb.Timestamp
- func (x *Article_Metadata) HasCurationAutomationEndTime() bool
- func (x *Article_Metadata) HasCurationAutomationStartTime() bool
- func (x *Article_Metadata) HasEndTime() bool
- func (x *Article_Metadata) HasLastModificationTime() bool
- func (x *Article_Metadata) HasPublishTime() bool
- func (x *Article_Metadata) HasStartTime() bool
- func (x *Article_Metadata) HasTransformationTime() bool
- func (x *Article_Metadata) HasUpdateTime() bool
- func (*Article_Metadata) ProtoMessage()
- func (x *Article_Metadata) ProtoReflect() protoreflect.Message
- func (x *Article_Metadata) Reset()
- func (x *Article_Metadata) SetCurationAutomationEndTime(v *timestamppb.Timestamp)
- func (x *Article_Metadata) SetCurationAutomationStartTime(v *timestamppb.Timestamp)
- func (x *Article_Metadata) SetEndTime(v *timestamppb.Timestamp)
- func (x *Article_Metadata) SetEventSource(v Article_Metadata_EventSource)
- func (x *Article_Metadata) SetLastModificationTime(v *timestamppb.Timestamp)
- func (x *Article_Metadata) SetPublicationId(v int64)
- func (x *Article_Metadata) SetPublishTime(v *timestamppb.Timestamp)
- func (x *Article_Metadata) SetRelatedArticleSource(v string)
- func (x *Article_Metadata) SetSeoScore(v float64)
- func (x *Article_Metadata) SetStartTime(v *timestamppb.Timestamp)
- func (x *Article_Metadata) SetState(v Article_Metadata_State)
- func (x *Article_Metadata) SetTenant(v string)
- func (x *Article_Metadata) SetTransformationErrors(v int64)
- func (x *Article_Metadata) SetTransformationTime(v *timestamppb.Timestamp)
- func (x *Article_Metadata) SetUpdateTime(v *timestamppb.Timestamp)
- func (x *Article_Metadata) String() string
- type Article_Metadata_EventSource
- func (Article_Metadata_EventSource) Descriptor() protoreflect.EnumDescriptor
- func (x Article_Metadata_EventSource) Enum() *Article_Metadata_EventSource
- func (x Article_Metadata_EventSource) Number() protoreflect.EnumNumber
- func (x Article_Metadata_EventSource) String() string
- func (Article_Metadata_EventSource) Type() protoreflect.EnumType
- type Article_Metadata_State
- func (Article_Metadata_State) Descriptor() protoreflect.EnumDescriptor
- func (x Article_Metadata_State) Enum() *Article_Metadata_State
- func (x Article_Metadata_State) Number() protoreflect.EnumNumber
- func (x Article_Metadata_State) String() string
- func (Article_Metadata_State) Type() protoreflect.EnumType
- type Article_Metadata_builder
- type Article_SubType
- type Article_Type
- type Article_builder
- type Author
- func (x *Author) GetAreasOfExpertise() []string
- func (x *Author) GetEducation() []*Reference
- func (x *Author) GetElements() []*Article_Element
- func (x *Author) GetFields() map[string]string
- func (x *Author) GetId() int64
- func (x *Author) GetReferences() []*Reference
- func (x *Author) GetSocialProfiles() []*Reference
- func (x *Author) GetType() Author_Type
- func (x *Author) GetWorkHistory() []*Author_HistoryEntry
- func (*Author) ProtoMessage()
- func (x *Author) ProtoReflect() protoreflect.Message
- func (x *Author) Reset()
- func (x *Author) SetAreasOfExpertise(v []string)
- func (x *Author) SetEducation(v []*Reference)
- func (x *Author) SetElements(v []*Article_Element)
- func (x *Author) SetFields(v map[string]string)
- func (x *Author) SetId(v int64)
- func (x *Author) SetReferences(v []*Reference)
- func (x *Author) SetSocialProfiles(v []*Reference)
- func (x *Author) SetType(v Author_Type)
- func (x *Author) SetWorkHistory(v []*Author_HistoryEntry)
- func (x *Author) String() string
- type Author_HistoryEntry
- func (x *Author_HistoryEntry) GetDescription() string
- func (x *Author_HistoryEntry) GetRole() string
- func (*Author_HistoryEntry) ProtoMessage()
- func (x *Author_HistoryEntry) ProtoReflect() protoreflect.Message
- func (x *Author_HistoryEntry) Reset()
- func (x *Author_HistoryEntry) SetDescription(v string)
- func (x *Author_HistoryEntry) SetRole(v string)
- func (x *Author_HistoryEntry) String() string
- type Author_HistoryEntry_builder
- type Author_Type
- type Author_builder
- type BatchGetArticlesRequest
- func (x *BatchGetArticlesRequest) ClearRequestSettings()
- func (x *BatchGetArticlesRequest) GetIds() []int64
- func (x *BatchGetArticlesRequest) GetRequestSettings() *RequestSettings
- func (x *BatchGetArticlesRequest) HasRequestSettings() bool
- func (*BatchGetArticlesRequest) ProtoMessage()
- func (x *BatchGetArticlesRequest) ProtoReflect() protoreflect.Message
- func (x *BatchGetArticlesRequest) Reset()
- func (x *BatchGetArticlesRequest) SetIds(v []int64)
- func (x *BatchGetArticlesRequest) SetRequestSettings(v *RequestSettings)
- func (x *BatchGetArticlesRequest) String() string
- type BatchGetArticlesRequest_builder
- type BatchGetArticlesResponse
- func (x *BatchGetArticlesResponse) GetArticles() []*Article
- func (*BatchGetArticlesResponse) ProtoMessage()
- func (x *BatchGetArticlesResponse) ProtoReflect() protoreflect.Message
- func (x *BatchGetArticlesResponse) Reset()
- func (x *BatchGetArticlesResponse) SetArticles(v []*Article)
- func (x *BatchGetArticlesResponse) String() string
- type BatchGetArticlesResponse_builder
- type GetArticleRequest
- func (x *GetArticleRequest) ClearRequestSettings()
- func (x *GetArticleRequest) GetId() int64
- func (x *GetArticleRequest) GetRequestSettings() *RequestSettings
- func (x *GetArticleRequest) HasRequestSettings() bool
- func (*GetArticleRequest) ProtoMessage()
- func (x *GetArticleRequest) ProtoReflect() protoreflect.Message
- func (x *GetArticleRequest) Reset()
- func (x *GetArticleRequest) SetId(v int64)
- func (x *GetArticleRequest) SetRequestSettings(v *RequestSettings)
- func (x *GetArticleRequest) String() string
- type GetArticleRequest_builder
- type ListArticlesRequest
- func (x *ListArticlesRequest) ClearFilters()
- func (x *ListArticlesRequest) ClearQuery()
- func (x *ListArticlesRequest) ClearRequestSettings()
- func (x *ListArticlesRequest) GetFilters() *ListArticlesRequest_Filters
- func (x *ListArticlesRequest) GetPageSize() int32
- func (x *ListArticlesRequest) GetPageToken() string
- func (x *ListArticlesRequest) GetQuery() *ListArticlesRequest_Query
- func (x *ListArticlesRequest) GetRequestSettings() *RequestSettings
- func (x *ListArticlesRequest) HasFilters() bool
- func (x *ListArticlesRequest) HasQuery() bool
- func (x *ListArticlesRequest) HasRequestSettings() bool
- func (*ListArticlesRequest) ProtoMessage()
- func (x *ListArticlesRequest) ProtoReflect() protoreflect.Message
- func (x *ListArticlesRequest) Reset()
- func (x *ListArticlesRequest) SetFilters(v *ListArticlesRequest_Filters)
- func (x *ListArticlesRequest) SetPageSize(v int32)
- func (x *ListArticlesRequest) SetPageToken(v string)
- func (x *ListArticlesRequest) SetQuery(v *ListArticlesRequest_Query)
- func (x *ListArticlesRequest) SetRequestSettings(v *RequestSettings)
- func (x *ListArticlesRequest) String() string
- type ListArticlesRequest_Filters
- func (x *ListArticlesRequest_Filters) GetSubTypeExcludes() []Article_SubType
- func (x *ListArticlesRequest_Filters) GetSubTypeIncludes() []Article_SubType
- func (x *ListArticlesRequest_Filters) GetTypeExcludes() []Article_Type
- func (x *ListArticlesRequest_Filters) GetTypeIncludes() []Article_Type
- func (*ListArticlesRequest_Filters) ProtoMessage()
- func (x *ListArticlesRequest_Filters) ProtoReflect() protoreflect.Message
- func (x *ListArticlesRequest_Filters) Reset()
- func (x *ListArticlesRequest_Filters) SetSubTypeExcludes(v []Article_SubType)
- func (x *ListArticlesRequest_Filters) SetSubTypeIncludes(v []Article_SubType)
- func (x *ListArticlesRequest_Filters) SetTypeExcludes(v []Article_Type)
- func (x *ListArticlesRequest_Filters) SetTypeIncludes(v []Article_Type)
- func (x *ListArticlesRequest_Filters) String() string
- type ListArticlesRequest_Filters_builder
- type ListArticlesRequest_Query
- func (x *ListArticlesRequest_Query) ClearFromTime()
- func (x *ListArticlesRequest_Query) ClearToTime()
- func (x *ListArticlesRequest_Query) GetFromTime() *timestamppb.Timestamp
- func (x *ListArticlesRequest_Query) GetOrder() ListArticlesRequest_Query_Order
- func (x *ListArticlesRequest_Query) GetPath() string
- func (x *ListArticlesRequest_Query) GetSortBy() ListArticlesRequest_Query_SortBy
- func (x *ListArticlesRequest_Query) GetToTime() *timestamppb.Timestamp
- func (x *ListArticlesRequest_Query) GetType() ListArticlesRequest_Query_Type
- func (x *ListArticlesRequest_Query) HasFromTime() bool
- func (x *ListArticlesRequest_Query) HasToTime() bool
- func (*ListArticlesRequest_Query) ProtoMessage()
- func (x *ListArticlesRequest_Query) ProtoReflect() protoreflect.Message
- func (x *ListArticlesRequest_Query) Reset()
- func (x *ListArticlesRequest_Query) SetFromTime(v *timestamppb.Timestamp)
- func (x *ListArticlesRequest_Query) SetOrder(v ListArticlesRequest_Query_Order)
- func (x *ListArticlesRequest_Query) SetPath(v string)
- func (x *ListArticlesRequest_Query) SetSortBy(v ListArticlesRequest_Query_SortBy)
- func (x *ListArticlesRequest_Query) SetToTime(v *timestamppb.Timestamp)
- func (x *ListArticlesRequest_Query) SetType(v ListArticlesRequest_Query_Type)
- func (x *ListArticlesRequest_Query) String() string
- type ListArticlesRequest_Query_Order
- func (ListArticlesRequest_Query_Order) Descriptor() protoreflect.EnumDescriptor
- func (x ListArticlesRequest_Query_Order) Enum() *ListArticlesRequest_Query_Order
- func (x ListArticlesRequest_Query_Order) Number() protoreflect.EnumNumber
- func (x ListArticlesRequest_Query_Order) String() string
- func (ListArticlesRequest_Query_Order) Type() protoreflect.EnumType
- type ListArticlesRequest_Query_SortBy
- func (ListArticlesRequest_Query_SortBy) Descriptor() protoreflect.EnumDescriptor
- func (x ListArticlesRequest_Query_SortBy) Enum() *ListArticlesRequest_Query_SortBy
- func (x ListArticlesRequest_Query_SortBy) Number() protoreflect.EnumNumber
- func (x ListArticlesRequest_Query_SortBy) String() string
- func (ListArticlesRequest_Query_SortBy) Type() protoreflect.EnumType
- type ListArticlesRequest_Query_Type
- func (ListArticlesRequest_Query_Type) Descriptor() protoreflect.EnumDescriptor
- func (x ListArticlesRequest_Query_Type) Enum() *ListArticlesRequest_Query_Type
- func (x ListArticlesRequest_Query_Type) Number() protoreflect.EnumNumber
- func (x ListArticlesRequest_Query_Type) String() string
- func (ListArticlesRequest_Query_Type) Type() protoreflect.EnumType
- type ListArticlesRequest_Query_builder
- type ListArticlesRequest_builder
- type ListArticlesResponse
- func (x *ListArticlesResponse) GetArticles() []*Article
- func (x *ListArticlesResponse) GetNextPageToken() string
- func (*ListArticlesResponse) ProtoMessage()
- func (x *ListArticlesResponse) ProtoReflect() protoreflect.Message
- func (x *ListArticlesResponse) Reset()
- func (x *ListArticlesResponse) SetArticles(v []*Article)
- func (x *ListArticlesResponse) SetNextPageToken(v string)
- func (x *ListArticlesResponse) String() string
- type ListArticlesResponse_builder
- type ListSectionsResponse
- func (x *ListSectionsResponse) GetSections() []string
- func (*ListSectionsResponse) ProtoMessage()
- func (x *ListSectionsResponse) ProtoReflect() protoreflect.Message
- func (x *ListSectionsResponse) Reset()
- func (x *ListSectionsResponse) SetSections(v []string)
- func (x *ListSectionsResponse) String() string
- type ListSectionsResponse_builder
- type Reference
- func (x *Reference) GetChildren() []*Reference
- func (x *Reference) GetFields() map[string]string
- func (x *Reference) GetHref() string
- func (x *Reference) GetLabel() string
- func (x *Reference) GetType() string
- func (*Reference) ProtoMessage()
- func (x *Reference) ProtoReflect() protoreflect.Message
- func (x *Reference) Reset()
- func (x *Reference) SetChildren(v []*Reference)
- func (x *Reference) SetFields(v map[string]string)
- func (x *Reference) SetHref(v string)
- func (x *Reference) SetLabel(v string)
- func (x *Reference) SetType(v string)
- func (x *Reference) String() string
- type Reference_builder
- type RequestSettings
- func (x *RequestSettings) GetArticleValidity() RequestSettings_ArticleValidity
- func (x *RequestSettings) GetArticleViewMode() RequestSettings_ArticleViewMode
- func (x *RequestSettings) GetElementValidity() RequestSettings_ElementValidity
- func (*RequestSettings) ProtoMessage()
- func (x *RequestSettings) ProtoReflect() protoreflect.Message
- func (x *RequestSettings) Reset()
- func (x *RequestSettings) SetArticleValidity(v RequestSettings_ArticleValidity)
- func (x *RequestSettings) SetArticleViewMode(v RequestSettings_ArticleViewMode)
- func (x *RequestSettings) SetElementValidity(v RequestSettings_ElementValidity)
- func (x *RequestSettings) String() string
- type RequestSettings_ArticleValidity
- func (RequestSettings_ArticleValidity) Descriptor() protoreflect.EnumDescriptor
- func (x RequestSettings_ArticleValidity) Enum() *RequestSettings_ArticleValidity
- func (x RequestSettings_ArticleValidity) Number() protoreflect.EnumNumber
- func (x RequestSettings_ArticleValidity) String() string
- func (RequestSettings_ArticleValidity) Type() protoreflect.EnumType
- type RequestSettings_ArticleViewMode
- func (RequestSettings_ArticleViewMode) Descriptor() protoreflect.EnumDescriptor
- func (x RequestSettings_ArticleViewMode) Enum() *RequestSettings_ArticleViewMode
- func (x RequestSettings_ArticleViewMode) Number() protoreflect.EnumNumber
- func (x RequestSettings_ArticleViewMode) String() string
- func (RequestSettings_ArticleViewMode) Type() protoreflect.EnumType
- type RequestSettings_ElementValidity
- func (RequestSettings_ElementValidity) Descriptor() protoreflect.EnumDescriptor
- func (x RequestSettings_ElementValidity) Enum() *RequestSettings_ElementValidity
- func (x RequestSettings_ElementValidity) Number() protoreflect.EnumNumber
- func (x RequestSettings_ElementValidity) String() string
- func (RequestSettings_ElementValidity) Type() protoreflect.EnumType
- type RequestSettings_builder
Constants ¶
This section is empty.
Variables ¶
var ( Article_Type_name = map[int32]string{ 0: "TYPE_UNSPECIFIED", 1: "ARTICLE", 2: "IMAGE", 3: "VIDEO", 4: "GALLERY", 5: "EMBED", 6: "AUTHOR", 7: "AGENCY", 8: "EXTERNAL", 9: "CLUSTER", 10: "TOPIC", 11: "DEBATE", 100: "INTERNAL", } Article_Type_value = map[string]int32{ "TYPE_UNSPECIFIED": 0, "ARTICLE": 1, "IMAGE": 2, "VIDEO": 3, "GALLERY": 4, "EMBED": 5, "AUTHOR": 6, "AGENCY": 7, "EXTERNAL": 8, "CLUSTER": 9, "TOPIC": 10, "DEBATE": 11, "INTERNAL": 100, } )
Enum value maps for Article_Type.
var ( Article_SubType_name = map[int32]string{ 0: "SUB_TYPE_UNSPECIFIED", 1: "NEWS", 2: "COLUMN", 3: "COMMENTARY", 4: "INTERVIEW", 5: "CONTROVERSY", 6: "TAGESANBRUCH", 7: "EVERGREEN", 8: "AGENCY_IMPORT", 9: "ADVERTORIAL", 10: "QUIZ", 11: "GAME", 12: "COMPLIANCE", 13: "RECIPE", 14: "REPORT", 15: "ANALYSIS", 16: "GUEST_ESSAY", } Article_SubType_value = map[string]int32{ "SUB_TYPE_UNSPECIFIED": 0, "NEWS": 1, "COLUMN": 2, "COMMENTARY": 3, "INTERVIEW": 4, "CONTROVERSY": 5, "TAGESANBRUCH": 6, "EVERGREEN": 7, "AGENCY_IMPORT": 8, "ADVERTORIAL": 9, "QUIZ": 10, "GAME": 11, "COMPLIANCE": 12, "RECIPE": 13, "REPORT": 14, "ANALYSIS": 15, "GUEST_ESSAY": 16, } )
Enum value maps for Article_SubType.
var ( Article_Element_Type_name = map[int32]string{ 0: "TYPE_UNSPECIFIED", 1: "ARTICLE", 2: "IMAGE", 3: "VIDEO", 4: "GALLERY", 5: "OEMBED", 6: "AUTHOR", 7: "AGENCY", 8: "EDGE_SIDE_INCLUDE", 9: "CITATION", 10: "INTERNAL_WIDGET", 11: "AUDIO", } Article_Element_Type_value = map[string]int32{ "TYPE_UNSPECIFIED": 0, "ARTICLE": 1, "IMAGE": 2, "VIDEO": 3, "GALLERY": 4, "OEMBED": 5, "AUTHOR": 6, "AGENCY": 7, "EDGE_SIDE_INCLUDE": 8, "CITATION": 9, "INTERNAL_WIDGET": 10, "AUDIO": 11, } )
Enum value maps for Article_Element_Type.
var ( Article_Element_Relation_name = map[int32]string{ 0: "RELATION_UNSPECIFIED", 1: "OPENER", 2: "TEASER", 3: "SOCIAL", } Article_Element_Relation_value = map[string]int32{ "RELATION_UNSPECIFIED": 0, "OPENER": 1, "TEASER": 2, "SOCIAL": 3, } )
Enum value maps for Article_Element_Relation.
var ( Article_Element_Asset_Type_name = map[int32]string{ 0: "TYPE_UNSPECIFIED", 1: "IMAGE", 2: "VIDEO", 3: "EXTERNAL_VIDEO", 4: "METADATA", 5: "LINK", 6: "AUDIO", 7: "WEB_VTT", } Article_Element_Asset_Type_value = map[string]int32{ "TYPE_UNSPECIFIED": 0, "IMAGE": 1, "VIDEO": 2, "EXTERNAL_VIDEO": 3, "METADATA": 4, "LINK": 5, "AUDIO": 6, "WEB_VTT": 7, } )
Enum value maps for Article_Element_Asset_Type.
var ( Article_Body_Type_name = map[int32]string{ 0: "TYPE_UNSPECIFIED", 1: "BODY", 2: "ARTICLE_SOURCES", 3: "DISCLAIMER", 4: "TRUST_BOX", 5: "TABLE_OF_CONTENTS", 6: "ARTICLE_EXTENDER", 7: "COMPANION", 8: "OUTLINE", } Article_Body_Type_value = map[string]int32{ "TYPE_UNSPECIFIED": 0, "BODY": 1, "ARTICLE_SOURCES": 2, "DISCLAIMER": 3, "TRUST_BOX": 4, "TABLE_OF_CONTENTS": 5, "ARTICLE_EXTENDER": 6, "COMPANION": 7, "OUTLINE": 8, } )
Enum value maps for Article_Body_Type.
var ( Article_Metadata_State_name = map[int32]string{ 0: "STATE_UNSPECIFIED", 1: "PUBLISHED", 2: "DELETED", 3: "DRAFT", } Article_Metadata_State_value = map[string]int32{ "STATE_UNSPECIFIED": 0, "PUBLISHED": 1, "DELETED": 2, "DRAFT": 3, } )
Enum value maps for Article_Metadata_State.
var ( Article_Metadata_EventSource_name = map[int32]string{ 0: "EVENT_SOURCE_UNSPECIFIED", 1: "PRIMARY", 2: "SECONDARY", 3: "CONTENT_ENGINE", } Article_Metadata_EventSource_value = map[string]int32{ "EVENT_SOURCE_UNSPECIFIED": 0, "PRIMARY": 1, "SECONDARY": 2, "CONTENT_ENGINE": 3, } )
Enum value maps for Article_Metadata_EventSource.
var ( Author_Type_name = map[int32]string{ 0: "TYPE_UNSPECIFIED", 1: "AUTHOR", 2: "AGENCY", } Author_Type_value = map[string]int32{ "TYPE_UNSPECIFIED": 0, "AUTHOR": 1, "AGENCY": 2, } )
Enum value maps for Author_Type.
var ( ListArticlesRequest_Query_Type_name = map[int32]string{ 0: "TYPE_UNSPECIFIED", 1: "HOME_SECTION", 2: "ROOT_SECTION", } ListArticlesRequest_Query_Type_value = map[string]int32{ "TYPE_UNSPECIFIED": 0, "HOME_SECTION": 1, "ROOT_SECTION": 2, } )
Enum value maps for ListArticlesRequest_Query_Type.
var ( ListArticlesRequest_Query_SortBy_name = map[int32]string{ 0: "SORT_BY_UNSPECIFIED", 1: "UPDATE_TIME", 2: "PUBLISH_TIME", } ListArticlesRequest_Query_SortBy_value = map[string]int32{ "SORT_BY_UNSPECIFIED": 0, "UPDATE_TIME": 1, "PUBLISH_TIME": 2, } )
Enum value maps for ListArticlesRequest_Query_SortBy.
var ( ListArticlesRequest_Query_Order_name = map[int32]string{ 0: "ORDER_UNSPECIFIED", 1: "ASCENDING", 2: "DESCENDING", } ListArticlesRequest_Query_Order_value = map[string]int32{ "ORDER_UNSPECIFIED": 0, "ASCENDING": 1, "DESCENDING": 2, } )
Enum value maps for ListArticlesRequest_Query_Order.
var ( RequestSettings_ArticleViewMode_name = map[int32]string{ 0: "ARTICLE_VIEW_MODE_UNSPECIFIED", 1: "ARTICLE_VIEW_MODE_DEFAULT", 2: "ARTICLE_VIEW_MODE_TEASER", } RequestSettings_ArticleViewMode_value = map[string]int32{ "ARTICLE_VIEW_MODE_UNSPECIFIED": 0, "ARTICLE_VIEW_MODE_DEFAULT": 1, "ARTICLE_VIEW_MODE_TEASER": 2, } )
Enum value maps for RequestSettings_ArticleViewMode.
var ( RequestSettings_ArticleValidity_name = map[int32]string{ 0: "ARTICLE_VALIDITY_UNSPECIFIED", 1: "ARTICLE_VALIDITY_VALID", 2: "ARTICLE_VALIDITY_IGNORE", } RequestSettings_ArticleValidity_value = map[string]int32{ "ARTICLE_VALIDITY_UNSPECIFIED": 0, "ARTICLE_VALIDITY_VALID": 1, "ARTICLE_VALIDITY_IGNORE": 2, } )
Enum value maps for RequestSettings_ArticleValidity.
var ( RequestSettings_ElementValidity_name = map[int32]string{ 0: "ELEMENT_VALIDITY_UNSPECIFIED", 1: "ELEMENT_VALIDITY_VALID", 2: "ELEMENT_VALIDITY_IGNORE", } RequestSettings_ElementValidity_value = map[string]int32{ "ELEMENT_VALIDITY_UNSPECIFIED": 0, "ELEMENT_VALIDITY_VALID": 1, "ELEMENT_VALIDITY_IGNORE": 2, } )
Enum value maps for RequestSettings_ElementValidity.
var File_stroeer_core_v1_article_proto protoreflect.FileDescriptor
var File_stroeer_core_v1_core_article_service_proto protoreflect.FileDescriptor
Functions ¶
This section is empty.
Types ¶
type Article ¶
type Article struct {
// Unique ID of the article defined by the content management system (mandatory).
Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
// Main content type of the article (mandatory).
Type Article_Type `protobuf:"varint,2,opt,name=type,proto3,enum=stroeer.core.v1.Article_Type" json:"type,omitempty"`
// Sub type of the article. For `ARTICLE` this field always holds a `sub_type`,
// for others like `GALLERY` it may not.
SubType Article_SubType `protobuf:"varint,3,opt,name=sub_type,json=subType,proto3,enum=stroeer.core.v1.Article_SubType" json:"sub_type,omitempty"`
// Hierarchical section tree information of the article (mandatory).
SectionTree *Reference `protobuf:"bytes,4,opt,name=section_tree,json=sectionTree,proto3" json:"section_tree,omitempty"`
// Generic map containing general content and configuration information of the article (mandatory). See sample section for details.
Fields map[string]string `` /* 139-byte string literal not displayed */
// Body of the article to be rendered on detail pages. May be `null`/missing in **teaser** representations.
Bodies []*Article_Body `protobuf:"bytes,6,rep,name=bodies,proto3" json:"bodies,omitempty"`
// The articles metadata, containing state and various timestamps.
Metadata *Article_Metadata `protobuf:"bytes,7,opt,name=metadata,proto3" json:"metadata,omitempty"`
// `Element`s required to render the teaser, such as `IMAGE`, `VIDEO`.
// Also contains deprecated `AUTHOR` and `AGENCY` elements, which have been replaced by `authors`.
Elements []*Article_Element `protobuf:"bytes,8,rep,name=elements,proto3" json:"elements,omitempty"`
// Extracted keywords from the article body like persons, locations, organizations etc.
Keywords []*Article_Keyword `protobuf:"bytes,9,rep,name=keywords,proto3" json:"keywords,omitempty"`
// IDs of articles related to this article. Related articles are defined manually in the content management system by the editorial department.
// Deprecated in favor of `related_articles`.
//
// Deprecated: Marked as deprecated in stroeer/core/v1/article.proto.
Onwards []int64 `protobuf:"varint,10,rep,packed,name=onwards,proto3" json:"onwards,omitempty"`
// Variants of this article, e.g. for a/b-testing (headline) testing.
// merge the variants with the main article to get the full article.
Variants map[string]*Article `` /* 144-byte string literal not displayed */
// Authors and or Agencies ƒor this content
Authors []*Author `protobuf:"bytes,12,rep,name=authors,proto3" json:"authors,omitempty"`
// Editorial articles, which are related to the main article.
// May contain only a shallow article containing only its id.
// Not all grpc services will resolve return the related articles.
RelatedArticles []*Article `protobuf:"bytes,13,rep,name=related_articles,json=relatedArticles,proto3" json:"related_articles,omitempty"`
// References, e.g. URLs belonging to this article.
References []*Reference `protobuf:"bytes,14,rep,name=references,proto3" json:"references,omitempty"`
// Extracted entities from the article body like persons, locations, organizations etc. `deprecated` — use `keywords` instead.
//
// Deprecated: Marked as deprecated in stroeer/core/v1/article.proto.
Entities []string `protobuf:"bytes,100,rep,name=entities,proto3" json:"entities,omitempty"`
// contains filtered or unexported fields
}
Article ¶
An article represents a piece of content created in the content management system. Different types of content like text or video articles share the same message structure, they can be distinguished by the [`Article.Type`](#stroeer.core.v1.Article.Type) field. Text articles (`Article[@type = Article.Type.ARTICLE]`) also have [`Article.SubType`](#stroeer.core.v1.Article.SubType) to differentiate its purpose and form.
To convert content from the content management system to a tapir protobuf message, we use a software component called _el-dub-tor_ (aka _Adapter_).
## Teaser
To improve performance of database access and during network transmission tapir is using a lightweight representation of `Article` in some places.
Depending on the service used to retrieve an article, the `Article` message might only contain data required on section pages:
- `Article.body` set to `null` - `Article.elements` filtered by `Element.relations` to only contain `TEASER`, but neither `OPENER` nor `SOCIAL` - Some element types may be missing, since they are only required on detail pages, e.g. `AUDIO`
Thus, not containing any data that is only required on detail pages. This lightweight representation is sometimes referred to as `teaser`.
## Details
### `Article.fields`
The entry set is mainly defined by the content management system and will vary depending on the main type of the article.
Some fields are automatically set by the content management system without further modification, others are calculated programmatically by our adapter.
> ⚠ Clients must be resilient to unknown or missing entries. ⚠
#### For `Article[@type=Article.Type.ARTICLE`] the contents of the map are as follows:
| key | mandatory | description | |-----------------------------|-----------|--------------------------------------------------------------------------------------------------------| | `headline` | `*` | the headline for this content (german: "Überschrift" or "Titel") | | `top_line` | `*` | the top line for this content (german: "dachzeile") | | `ref_path` | `*` | URL path for this article e.g. `/${section_tree}/id_${id}/${title}.html` | | `ref_canonical` | `*` | Canonical URL of this article, may differ if external, e.g. https://www.example.com/external.html | | `social_headline` | | use-case specific `headline`: used for social markup (e.g. `og:title`), overrides `headline` | | `headline_short` | | use-case specific `headline`: used for "Schlagzeilen", overrides `headline` | | `teaser:headline` | | use-case specific `headline`: used when this content is rendered as a teaser | | `newsletter_subject_header` | | use-case specific `headline`: used when this content is sent via newsletter E-Mail (e.g. Tagesanbruch) | | `breaking_news_headline` | | use-case specific `headline`: used when content is displayed as a breaking news | | `tracking_title` | | refers to CMS `internalStorage.trackingTitle` (probably unused) | | `mzt_title` | | use-case specific `headline`: used when this content is rendered as mzt ("mehr zum Thema") | | `mzt_top_line` | | use-cass specific `top_line`: used when this content is rendered as mzt ("mehr zum Thema") | | `teaser_author_label` | | overrides the default author/agency behaviour (cms: "Autorenkennzeichnung") | | `summary` | | summary for this content, used on detail pages | | `teaser_text` | | used on teasers, overrides `summary` | | `meta_robots` | | value for the `<meta:robots>` directive | | `social_description` | | like `social_headline` used for social markup | | `meta_title` | | HTML `<meta title>` | | `meta_description` | | HTML `<meta description>` | | `reading_time_minutes` | | estimated reading time in minutes | | `vg_wort_pixel` | | link for tracking this content with VG-Wort |
##### `flags`
Some fields are prefixed with `flag:` to indicate that they are boolean flags:
| key | description | |------------------------------------|------------------------------------------------------------------------------------------------------| | `flag:hidden` | this content must be excluded from automated curations (CMS: `no auto-content`/`manuell kuratieren`) | | `flag:advertisement` | this content is an payed advertisement, e.g. an advertorial | | `flag:disable_metatag_ad` | disable metatag ads for this content | | `flag:disable_seeding_alliance_ad` | disable seeding alliance ads for this content | | `flag:show_more` | this content's body may be long and will be collapsed. A "show more" button will be shown. | | `flag:exclusive` | this content is exclusive, e.g. "exklusiv" or "exclusively" | | `flag:breaking_news` | this content is breaking news, mark as "Eilmeldung" | | `flag:disable_taboola_ad` | disable taboola ads for this content | | `flag:live` | this content covers live events, its teaser will be marked as "Live" |
#### For `Article.Type.GALLERY`
this map will contain the following data:
| key | mandatory | description | |------------|-----------|-------------------------------| | `headline` | `*` | the headline for this content |
func (*Article) GetBodies ¶
func (x *Article) GetBodies() []*Article_Body
func (*Article) GetElements ¶
func (x *Article) GetElements() []*Article_Element
func (*Article) GetKeywords ¶
func (x *Article) GetKeywords() []*Article_Keyword
func (*Article) GetMetadata ¶
func (x *Article) GetMetadata() *Article_Metadata
func (*Article) GetSubType ¶
func (x *Article) GetSubType() Article_SubType
func (*Article) GetType ¶
func (x *Article) GetType() Article_Type
func (*Article) ProtoReflect ¶
func (x *Article) ProtoReflect() protoreflect.Message
func (*Article) SetBodies ¶
func (x *Article) SetBodies(v []*Article_Body)
func (*Article) SetElements ¶
func (x *Article) SetElements(v []*Article_Element)
func (*Article) SetKeywords ¶
func (x *Article) SetKeywords(v []*Article_Keyword)
func (*Article) SetMetadata ¶
func (x *Article) SetMetadata(v *Article_Metadata)
func (*Article) SetSubType ¶
func (x *Article) SetSubType(v Article_SubType)
func (*Article) SetType ¶
func (x *Article) SetType(v Article_Type)
type Article_Body ¶
type Article_Body struct {
// Recursive/Nested structure that usually represents the textual body / Markup / HTML
Children []*Article_Body_BodyNode `protobuf:"bytes,1,rep,name=children,proto3" json:"children,omitempty"`
// Unique ID of the article defined by the content management system (required).
Type Article_Body_Type `protobuf:"varint,2,opt,name=type,proto3,enum=stroeer.core.v1.Article_Body_Type" json:"type,omitempty"`
// contains filtered or unexported fields
}
The `Body` represents a basic building block which will be translated to HTML or similar by the front end renderer.
Each `Body` is self-contained and holds all the data required for rendering within its data structures.
Common use cases for this are `Type.BODY` are: the textual article body can be found `TYPE.ARTICLE_SOURCE` where onward articles are referenced. `TYPE.DISCLAIMER` containing disclaimers `TYPE.TABLE_OF_CONTENTS` which contains a table of contents for the article
func (*Article_Body) GetChildren ¶
func (x *Article_Body) GetChildren() []*Article_Body_BodyNode
func (*Article_Body) GetType ¶
func (x *Article_Body) GetType() Article_Body_Type
func (*Article_Body) ProtoMessage ¶
func (*Article_Body) ProtoMessage()
func (*Article_Body) ProtoReflect ¶
func (x *Article_Body) ProtoReflect() protoreflect.Message
func (*Article_Body) Reset ¶
func (x *Article_Body) Reset()
func (*Article_Body) SetChildren ¶
func (x *Article_Body) SetChildren(v []*Article_Body_BodyNode)
func (*Article_Body) SetType ¶
func (x *Article_Body) SetType(v Article_Body_Type)
func (*Article_Body) String ¶
func (x *Article_Body) String() string
type Article_Body_BodyNode ¶
type Article_Body_BodyNode struct {
// type usually refers to HTML elements
Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
// if this is a leaf node, this is the text content of the node.
Text string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"`
// additional information for the node, e.g. `word_count` for paragraphs `<p>`
Fields map[string]string `` /* 139-byte string literal not displayed */
// nested `BodyNode`s, e.g. the `text` of a `<p>` or a `<a>`
// or deeply structured content like `<table><tbody><tr><td>...</td></tr></tbody></table>`
Children []*Article_Body_BodyNode `protobuf:"bytes,4,rep,name=children,proto3" json:"children,omitempty"`
// inline elements, e.g. video, image, gallery, embed, ...
Elements []*Article_Element `protobuf:"bytes,5,rep,name=elements,proto3" json:"elements,omitempty"`
// references to external resources, e.g. links to other articles or external resources for `<a>` nodes.
Reference *Reference `protobuf:"bytes,6,opt,name=reference,proto3" json:"reference,omitempty"`
// contains filtered or unexported fields
}
Recursive structure representing all types of possible nodes inside an article.
One use-case is to represent [HTML-like](#html-like) markup in tapir, but it is also used to map [custom](#custom) elements that require a strict positional placement within the textual body. Things that are not part of the textual article body are represented as individual [`Body`][b] parts so they can be rendered independently if required.
Clients must be resilient to unknown or missing nodes.
func (*Article_Body_BodyNode) ClearReference ¶
func (x *Article_Body_BodyNode) ClearReference()
func (*Article_Body_BodyNode) GetChildren ¶
func (x *Article_Body_BodyNode) GetChildren() []*Article_Body_BodyNode
func (*Article_Body_BodyNode) GetElements ¶
func (x *Article_Body_BodyNode) GetElements() []*Article_Element
func (*Article_Body_BodyNode) GetFields ¶
func (x *Article_Body_BodyNode) GetFields() map[string]string
func (*Article_Body_BodyNode) GetReference ¶
func (x *Article_Body_BodyNode) GetReference() *Reference
func (*Article_Body_BodyNode) GetText ¶
func (x *Article_Body_BodyNode) GetText() string
func (*Article_Body_BodyNode) GetType ¶
func (x *Article_Body_BodyNode) GetType() string
func (*Article_Body_BodyNode) HasReference ¶
func (x *Article_Body_BodyNode) HasReference() bool
func (*Article_Body_BodyNode) ProtoMessage ¶
func (*Article_Body_BodyNode) ProtoMessage()
func (*Article_Body_BodyNode) ProtoReflect ¶
func (x *Article_Body_BodyNode) ProtoReflect() protoreflect.Message
func (*Article_Body_BodyNode) Reset ¶
func (x *Article_Body_BodyNode) Reset()
func (*Article_Body_BodyNode) SetChildren ¶
func (x *Article_Body_BodyNode) SetChildren(v []*Article_Body_BodyNode)
func (*Article_Body_BodyNode) SetElements ¶
func (x *Article_Body_BodyNode) SetElements(v []*Article_Element)
func (*Article_Body_BodyNode) SetFields ¶
func (x *Article_Body_BodyNode) SetFields(v map[string]string)
func (*Article_Body_BodyNode) SetReference ¶
func (x *Article_Body_BodyNode) SetReference(v *Reference)
func (*Article_Body_BodyNode) SetText ¶
func (x *Article_Body_BodyNode) SetText(v string)
func (*Article_Body_BodyNode) SetType ¶
func (x *Article_Body_BodyNode) SetType(v string)
func (*Article_Body_BodyNode) String ¶
func (x *Article_Body_BodyNode) String() string
type Article_Body_BodyNode_builder ¶
type Article_Body_BodyNode_builder struct {
// type usually refers to HTML elements
Type string
// if this is a leaf node, this is the text content of the node.
Text string
// additional information for the node, e.g. `word_count` for paragraphs `<p>`
Fields map[string]string
// nested `BodyNode`s, e.g. the `text` of a `<p>` or a `<a>`
// or deeply structured content like `<table><tbody><tr><td>...</td></tr></tbody></table>`
Children []*Article_Body_BodyNode
// inline elements, e.g. video, image, gallery, embed, ...
Elements []*Article_Element
// references to external resources, e.g. links to other articles or external resources for `<a>` nodes.
Reference *Reference
// contains filtered or unexported fields
}
func (Article_Body_BodyNode_builder) Build ¶
func (b0 Article_Body_BodyNode_builder) Build() *Article_Body_BodyNode
type Article_Body_Type ¶
type Article_Body_Type int32
const ( Article_Body_TYPE_UNSPECIFIED Article_Body_Type = 0 // The textual article body including all inline elements such as `IMAGE`, `VIDEO` and `EMBED`. Article_Body_BODY Article_Body_Type = 1 // A wrapper for all article sources ("Quellenaparat"). There can only be one of these per article. Article_Body_ARTICLE_SOURCES Article_Body_Type = 2 // A article disclaimer with important notes/legal stuff. E.g. "medizinischer Hinweis" on all medical articles. Article_Body_DISCLAIMER Article_Body_Type = 3 // Table of contents for this article, consists of anchors which refer to sub headlines within the `BODY`. // // Deprecated: Marked as deprecated in stroeer/core/v1/article.proto. Article_Body_TRUST_BOX Article_Body_Type = 4 // Table of contents for this article, consists of anchors which refer to sub headlines within the `BODY`. Article_Body_TABLE_OF_CONTENTS Article_Body_Type = 5 // AI generated questions for the article for more engagement. Article_Body_ARTICLE_EXTENDER Article_Body_Type = 6 // Content that is not rendered as part of the main article, but whose content // will be shown in the companion column, e.g. tabular data or images. Article_Body_COMPANION Article_Body_Type = 7 // outline for the content, in contrast to the table of contents this is not // auto-generated. Instead, this was written by an editor. Article_Body_OUTLINE Article_Body_Type = 8 )
func (Article_Body_Type) Descriptor ¶
func (Article_Body_Type) Descriptor() protoreflect.EnumDescriptor
func (Article_Body_Type) Enum ¶
func (x Article_Body_Type) Enum() *Article_Body_Type
func (Article_Body_Type) Number ¶
func (x Article_Body_Type) Number() protoreflect.EnumNumber
func (Article_Body_Type) String ¶
func (x Article_Body_Type) String() string
func (Article_Body_Type) Type ¶
func (Article_Body_Type) Type() protoreflect.EnumType
type Article_Body_builder ¶
type Article_Body_builder struct {
// Recursive/Nested structure that usually represents the textual body / Markup / HTML
Children []*Article_Body_BodyNode
// Unique ID of the article defined by the content management system (required).
Type Article_Body_Type
// contains filtered or unexported fields
}
func (Article_Body_builder) Build ¶
func (b0 Article_Body_builder) Build() *Article_Body
type Article_Element ¶
type Article_Element struct {
// type of this element
Type Article_Element_Type `protobuf:"varint,1,opt,name=type,proto3,enum=stroeer.core.v1.Article_Element_Type" json:"type,omitempty"`
// relations of this element, e.g. `OPENER`, `TEASER`, `SOCIAL`
Relations []Article_Element_Relation `protobuf:"varint,2,rep,packed,name=relations,proto3,enum=stroeer.core.v1.Article_Element_Relation" json:"relations,omitempty"`
// assets describing this element, e.g. `IMAGE`, `VIDEO`, `METADATA`
Assets []*Article_Element_Asset `protobuf:"bytes,3,rep,name=assets,proto3" json:"assets,omitempty"`
// nested elements, e.g. for `gallery` and `video` there may be nested `Element` of type `IMAGE`
// for video posters or gallery images.
Children []*Article_Element `protobuf:"bytes,4,rep,name=children,proto3" json:"children,omitempty"`
// contains filtered or unexported fields
}
`Element`s are self-contained objects that represent structured data that is usually too complex to fit into our usual workhorse which is the [`Body`](#stroeer.core.v1.Article.Body).
`Element`s can appear in multiple places within the `Article`:
1. `Article.elements`
`Element`s of the article which are not part of the textual body, e.g. `OPENER` and `TEASER` usually of type `IMAGE`, `VIDEO` or `EMBED`. Some articles contain a `AUDIO` element, which is used to render the audio player. ("read aloud") Those elements should be used to render the article as a teaser e.g. on section pages.
2. `BodyNode.children`:
Is the place where `Element` are quite commonly used. They come in various types and will be rendered inplace, thus breaking up the textual body.
3. `Elements.children`:
Some more sophisticated `Element`s make use of nesting to make their API representation more concise and help to structure things hierarchically: `video` uses nesting to model its optional _poster image_ which itself is a normal `image` element.
`galleries` have their individual `image`s nested within.
Different types of elements like images or videos share the same message structure distinguished by the `ElementType` field.
func (*Article_Element) GetAssets ¶
func (x *Article_Element) GetAssets() []*Article_Element_Asset
func (*Article_Element) GetChildren ¶
func (x *Article_Element) GetChildren() []*Article_Element
func (*Article_Element) GetRelations ¶
func (x *Article_Element) GetRelations() []Article_Element_Relation
func (*Article_Element) GetType ¶
func (x *Article_Element) GetType() Article_Element_Type
func (*Article_Element) ProtoMessage ¶
func (*Article_Element) ProtoMessage()
func (*Article_Element) ProtoReflect ¶
func (x *Article_Element) ProtoReflect() protoreflect.Message
func (*Article_Element) Reset ¶
func (x *Article_Element) Reset()
func (*Article_Element) SetAssets ¶
func (x *Article_Element) SetAssets(v []*Article_Element_Asset)
func (*Article_Element) SetChildren ¶
func (x *Article_Element) SetChildren(v []*Article_Element)
func (*Article_Element) SetRelations ¶
func (x *Article_Element) SetRelations(v []Article_Element_Relation)
func (*Article_Element) SetType ¶
func (x *Article_Element) SetType(v Article_Element_Type)
func (*Article_Element) String ¶
func (x *Article_Element) String() string
type Article_Element_Asset ¶
type Article_Element_Asset struct {
// type of this asset
Type Article_Element_Asset_Type `protobuf:"varint,1,opt,name=type,proto3,enum=stroeer.core.v1.Article_Element_Asset_Type" json:"type,omitempty"`
// generic map containing general content and configuration information of the asset
Fields map[string]string `` /* 139-byte string literal not displayed */
// metadata, e.g. validity and timestamps. Only present for `METADATA` assets.
Metadata *Article_Metadata `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
// references (links) related to this asset, e.g. a clickable image or link asset
Reference *Reference `protobuf:"bytes,4,opt,name=reference,proto3" json:"reference,omitempty"`
// contains filtered or unexported fields
}
An asset nested within a element.
An asset configuration is dependant upon its purpose, it may alter depending on its `type` field.
func (*Article_Element_Asset) ClearMetadata ¶
func (x *Article_Element_Asset) ClearMetadata()
func (*Article_Element_Asset) ClearReference ¶
func (x *Article_Element_Asset) ClearReference()
func (*Article_Element_Asset) GetFields ¶
func (x *Article_Element_Asset) GetFields() map[string]string
func (*Article_Element_Asset) GetMetadata ¶
func (x *Article_Element_Asset) GetMetadata() *Article_Metadata
func (*Article_Element_Asset) GetReference ¶
func (x *Article_Element_Asset) GetReference() *Reference
func (*Article_Element_Asset) GetType ¶
func (x *Article_Element_Asset) GetType() Article_Element_Asset_Type
func (*Article_Element_Asset) HasMetadata ¶
func (x *Article_Element_Asset) HasMetadata() bool
func (*Article_Element_Asset) HasReference ¶
func (x *Article_Element_Asset) HasReference() bool
func (*Article_Element_Asset) ProtoMessage ¶
func (*Article_Element_Asset) ProtoMessage()
func (*Article_Element_Asset) ProtoReflect ¶
func (x *Article_Element_Asset) ProtoReflect() protoreflect.Message
func (*Article_Element_Asset) Reset ¶
func (x *Article_Element_Asset) Reset()
func (*Article_Element_Asset) SetFields ¶
func (x *Article_Element_Asset) SetFields(v map[string]string)
func (*Article_Element_Asset) SetMetadata ¶
func (x *Article_Element_Asset) SetMetadata(v *Article_Metadata)
func (*Article_Element_Asset) SetReference ¶
func (x *Article_Element_Asset) SetReference(v *Reference)
func (*Article_Element_Asset) SetType ¶
func (x *Article_Element_Asset) SetType(v Article_Element_Asset_Type)
func (*Article_Element_Asset) String ¶
func (x *Article_Element_Asset) String() string
type Article_Element_Asset_Type ¶
type Article_Element_Asset_Type int32
const ( Article_Element_Asset_TYPE_UNSPECIFIED Article_Element_Asset_Type = 0 // image asset with an resizable template URL and some image stats (`width`, `height`, `cropping`). Article_Element_Asset_IMAGE Article_Element_Asset_Type = 1 // internal video asset, expect (`m3u8`/`HLS`) URLS and some video stats (`width`, `height`, `duration`) within `fields`. Article_Element_Asset_VIDEO Article_Element_Asset_Type = 2 // holds (`m3u8`/`HLS`) URLS to external videos, such as _live streams_ and _glomex_. Article_Element_Asset_EXTERNAL_VIDEO Article_Element_Asset_Type = 3 // holds [`Metadata`][meta] for the parent element and `fields` that also depend on the parent `Element.Type`. Article_Element_Asset_METADATA Article_Element_Asset_Type = 4 // additional link (href, reference) asset for parent `Element`, e.g. an `image` with an optional link target. Article_Element_Asset_LINK Article_Element_Asset_Type = 5 // audio asset, expect (`mp3`) URLS. Article_Element_Asset_AUDIO Article_Element_Asset_Type = 6 // Web Video Text Tracks, usually used for video subtitles. Article_Element_Asset_WEB_VTT Article_Element_Asset_Type = 7 )
func (Article_Element_Asset_Type) Descriptor ¶
func (Article_Element_Asset_Type) Descriptor() protoreflect.EnumDescriptor
func (Article_Element_Asset_Type) Enum ¶
func (x Article_Element_Asset_Type) Enum() *Article_Element_Asset_Type
func (Article_Element_Asset_Type) Number ¶
func (x Article_Element_Asset_Type) Number() protoreflect.EnumNumber
func (Article_Element_Asset_Type) String ¶
func (x Article_Element_Asset_Type) String() string
func (Article_Element_Asset_Type) Type ¶
func (Article_Element_Asset_Type) Type() protoreflect.EnumType
type Article_Element_Asset_builder ¶
type Article_Element_Asset_builder struct {
// type of this asset
Type Article_Element_Asset_Type
// generic map containing general content and configuration information of the asset
Fields map[string]string
// metadata, e.g. validity and timestamps. Only present for `METADATA` assets.
Metadata *Article_Metadata
// references (links) related to this asset, e.g. a clickable image or link asset
Reference *Reference
// contains filtered or unexported fields
}
func (Article_Element_Asset_builder) Build ¶
func (b0 Article_Element_Asset_builder) Build() *Article_Element_Asset
type Article_Element_Relation ¶
type Article_Element_Relation int32
const ( Article_Element_RELATION_UNSPECIFIED Article_Element_Relation = 0 // element should be used as an opener ("Aufmacher") on detail pages Article_Element_OPENER Article_Element_Relation = 1 // element should be used as a teaser on section pages Article_Element_TEASER Article_Element_Relation = 2 // element should be used as a social media teaser, e.g. `<og:image>` or JSON-LD Article_Element_SOCIAL Article_Element_Relation = 3 )
func (Article_Element_Relation) Descriptor ¶
func (Article_Element_Relation) Descriptor() protoreflect.EnumDescriptor
func (Article_Element_Relation) Enum ¶
func (x Article_Element_Relation) Enum() *Article_Element_Relation
func (Article_Element_Relation) Number ¶
func (x Article_Element_Relation) Number() protoreflect.EnumNumber
func (Article_Element_Relation) String ¶
func (x Article_Element_Relation) String() string
func (Article_Element_Relation) Type ¶
func (Article_Element_Relation) Type() protoreflect.EnumType
type Article_Element_Type ¶
type Article_Element_Type int32
const ( Article_Element_TYPE_UNSPECIFIED Article_Element_Type = 0 // unused, deprecated Article_Element_ARTICLE Article_Element_Type = 1 // image element, containing further `Asset`s Article_Element_IMAGE Article_Element_Type = 2 // video element, containing nested `Asset`s and an optional nested image element Article_Element_VIDEO Article_Element_Type = 3 // gallery element, consists of many nested image elements Article_Element_GALLERY Article_Element_Type = 4 // oEmbed element, contains one `metadata` Asset Article_Element_OEMBED Article_Element_Type = 5 // author element, contains one `metadata` Asset and an optional image Element. // Only usage is "Pro and Contra" boxes Article_Element_AUTHOR Article_Element_Type = 6 // agency element, unused, deprecated Article_Element_AGENCY Article_Element_Type = 7 // `<esi:include>` that must be resolved server-side for SEO reasons, otherwise similar to `OEMBED` Article_Element_EDGE_SIDE_INCLUDE Article_Element_Type = 8 // a citation element Article_Element_CITATION Article_Element_Type = 9 // widget or embed that is handled directly by the front end rendering Article_Element_INTERNAL_WIDGET Article_Element_Type = 10 // audio element, containing an `Asset` of type `AUDIO` Article_Element_AUDIO Article_Element_Type = 11 )
func (Article_Element_Type) Descriptor ¶
func (Article_Element_Type) Descriptor() protoreflect.EnumDescriptor
func (Article_Element_Type) Enum ¶
func (x Article_Element_Type) Enum() *Article_Element_Type
func (Article_Element_Type) Number ¶
func (x Article_Element_Type) Number() protoreflect.EnumNumber
func (Article_Element_Type) String ¶
func (x Article_Element_Type) String() string
func (Article_Element_Type) Type ¶
func (Article_Element_Type) Type() protoreflect.EnumType
type Article_Element_builder ¶
type Article_Element_builder struct {
// type of this element
Type Article_Element_Type
// relations of this element, e.g. `OPENER`, `TEASER`, `SOCIAL`
Relations []Article_Element_Relation
// assets describing this element, e.g. `IMAGE`, `VIDEO`, `METADATA`
Assets []*Article_Element_Asset
// nested elements, e.g. for `gallery` and `video` there may be nested `Element` of type `IMAGE`
// for video posters or gallery images.
Children []*Article_Element
// contains filtered or unexported fields
}
func (Article_Element_builder) Build ¶
func (b0 Article_Element_builder) Build() *Article_Element
type Article_Keyword ¶
type Article_Keyword struct {
// Unique value of this keyword.
Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
// Type of this keyword, e.g. `location`, `organization`, `person`.
Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
// Unique value of this keyword.
Score float32 `protobuf:"fixed32,3,opt,name=score,proto3" json:"score,omitempty"`
// contains filtered or unexported fields
}
Extracted keywords from the article body like persons, locations, organizations etc.
func (*Article_Keyword) GetScore ¶
func (x *Article_Keyword) GetScore() float32
func (*Article_Keyword) GetType ¶
func (x *Article_Keyword) GetType() string
func (*Article_Keyword) GetValue ¶
func (x *Article_Keyword) GetValue() string
func (*Article_Keyword) ProtoMessage ¶
func (*Article_Keyword) ProtoMessage()
func (*Article_Keyword) ProtoReflect ¶
func (x *Article_Keyword) ProtoReflect() protoreflect.Message
func (*Article_Keyword) Reset ¶
func (x *Article_Keyword) Reset()
func (*Article_Keyword) SetScore ¶
func (x *Article_Keyword) SetScore(v float32)
func (*Article_Keyword) SetType ¶
func (x *Article_Keyword) SetType(v string)
func (*Article_Keyword) SetValue ¶
func (x *Article_Keyword) SetValue(v string)
func (*Article_Keyword) String ¶
func (x *Article_Keyword) String() string
type Article_Keyword_builder ¶
type Article_Keyword_builder struct {
// Unique value of this keyword.
Value string
// Type of this keyword, e.g. `location`, `organization`, `person`.
Type string
// Unique value of this keyword.
Score float32
// contains filtered or unexported fields
}
func (Article_Keyword_builder) Build ¶
func (b0 Article_Keyword_builder) Build() *Article_Keyword
type Article_Metadata ¶
type Article_Metadata struct {
// State of the article in the content management system.
State Article_Metadata_State `protobuf:"varint,1,opt,name=state,proto3,enum=stroeer.core.v1.Article_Metadata_State" json:"state,omitempty"`
// Manually set editorial timestamp (_Gültig von_) at which the article is valid to deliver on digital platforms in seconds of UTC time since Unix epoch.
StartTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
// Manually set editorial timestamp (_Gültig bis_) till the article is valid to deliver on digital platforms in seconds of UTC time since Unix epoch.
EndTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
// Editorial timestamp (_Publikationsdatum_) of the first publication of the article in seconds of UTC time since Unix epoch.
PublishTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=publish_time,json=publishTime,proto3" json:"publish_time,omitempty"`
// Editorial timestamp (_Aktualisierungsdatum_) at which the article was updated in seconds of UTC time since Unix epoch.
UpdateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
// Technical timestamp at which the article was transformed in the API layer in seconds of UTC time since Unix epoch.
TransformationTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=transformation_time,json=transformationTime,proto3" json:"transformation_time,omitempty"`
// Number of errors occurred while fetching and/or transforming optional article components (e.g. `embeds` or nested `documents`) to an `article` message.
TransformationErrors int64 `protobuf:"varint,7,opt,name=transformation_errors,json=transformationErrors,proto3" json:"transformation_errors,omitempty"`
// Technical timestamp at which the article was published regardless of the amount and significance of the change.
LastModificationTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=last_modification_time,json=lastModificationTime,proto3" json:"last_modification_time,omitempty"`
// Source of the event that caused this item to be transformed and to be written into the DB.
EventSource Article_Metadata_EventSource `` /* 145-byte string literal not displayed */
// The article score (originates from team data's _Content Engine_, higher scores are better)
SeoScore float64 `protobuf:"fixed64,10,opt,name=seo_score,json=seoScore,proto3" json:"seo_score,omitempty"`
// The unique publication_id provided by the CMS, can be used to correlate the state of documents in tapir with the corresponding CMS publication event.
PublicationId int64 `protobuf:"varint,11,opt,name=publication_id,json=publicationId,proto3" json:"publication_id,omitempty"`
// Source of this article, if embedded in another article as a related article.
RelatedArticleSource string `protobuf:"bytes,12,opt,name=related_article_source,json=relatedArticleSource,proto3" json:"related_article_source,omitempty"`
// The tenant this article belongs to. e.g. `www`, `berlin` or such
Tenant string `protobuf:"bytes,13,opt,name=tenant,proto3" json:"tenant,omitempty"`
// Start of the time range during which this content is eligible for automated curation
// based on queries or performance data.
CurationAutomationStartTime *timestamppb.Timestamp `` /* 147-byte string literal not displayed */
// End of the time range during which this content is eligible for automated curation
// based on queries or performance data.
CurationAutomationEndTime *timestamppb.Timestamp `` /* 141-byte string literal not displayed */
// contains filtered or unexported fields
}
func (*Article_Metadata) ClearCurationAutomationEndTime ¶
func (x *Article_Metadata) ClearCurationAutomationEndTime()
func (*Article_Metadata) ClearCurationAutomationStartTime ¶
func (x *Article_Metadata) ClearCurationAutomationStartTime()
func (*Article_Metadata) ClearEndTime ¶
func (x *Article_Metadata) ClearEndTime()
func (*Article_Metadata) ClearLastModificationTime ¶
func (x *Article_Metadata) ClearLastModificationTime()
func (*Article_Metadata) ClearPublishTime ¶
func (x *Article_Metadata) ClearPublishTime()
func (*Article_Metadata) ClearStartTime ¶
func (x *Article_Metadata) ClearStartTime()
func (*Article_Metadata) ClearTransformationTime ¶
func (x *Article_Metadata) ClearTransformationTime()
func (*Article_Metadata) ClearUpdateTime ¶
func (x *Article_Metadata) ClearUpdateTime()
func (*Article_Metadata) GetCurationAutomationEndTime ¶
func (x *Article_Metadata) GetCurationAutomationEndTime() *timestamppb.Timestamp
func (*Article_Metadata) GetCurationAutomationStartTime ¶
func (x *Article_Metadata) GetCurationAutomationStartTime() *timestamppb.Timestamp
func (*Article_Metadata) GetEndTime ¶
func (x *Article_Metadata) GetEndTime() *timestamppb.Timestamp
func (*Article_Metadata) GetEventSource ¶
func (x *Article_Metadata) GetEventSource() Article_Metadata_EventSource
func (*Article_Metadata) GetLastModificationTime ¶
func (x *Article_Metadata) GetLastModificationTime() *timestamppb.Timestamp
func (*Article_Metadata) GetPublicationId ¶
func (x *Article_Metadata) GetPublicationId() int64
func (*Article_Metadata) GetPublishTime ¶
func (x *Article_Metadata) GetPublishTime() *timestamppb.Timestamp
func (*Article_Metadata) GetRelatedArticleSource ¶
func (x *Article_Metadata) GetRelatedArticleSource() string
func (*Article_Metadata) GetSeoScore ¶
func (x *Article_Metadata) GetSeoScore() float64
func (*Article_Metadata) GetStartTime ¶
func (x *Article_Metadata) GetStartTime() *timestamppb.Timestamp
func (*Article_Metadata) GetState ¶
func (x *Article_Metadata) GetState() Article_Metadata_State
func (*Article_Metadata) GetTenant ¶
func (x *Article_Metadata) GetTenant() string
func (*Article_Metadata) GetTransformationErrors ¶
func (x *Article_Metadata) GetTransformationErrors() int64
func (*Article_Metadata) GetTransformationTime ¶
func (x *Article_Metadata) GetTransformationTime() *timestamppb.Timestamp
func (*Article_Metadata) GetUpdateTime ¶
func (x *Article_Metadata) GetUpdateTime() *timestamppb.Timestamp
func (*Article_Metadata) HasCurationAutomationEndTime ¶
func (x *Article_Metadata) HasCurationAutomationEndTime() bool
func (*Article_Metadata) HasCurationAutomationStartTime ¶
func (x *Article_Metadata) HasCurationAutomationStartTime() bool
func (*Article_Metadata) HasEndTime ¶
func (x *Article_Metadata) HasEndTime() bool
func (*Article_Metadata) HasLastModificationTime ¶
func (x *Article_Metadata) HasLastModificationTime() bool
func (*Article_Metadata) HasPublishTime ¶
func (x *Article_Metadata) HasPublishTime() bool
func (*Article_Metadata) HasStartTime ¶
func (x *Article_Metadata) HasStartTime() bool
func (*Article_Metadata) HasTransformationTime ¶
func (x *Article_Metadata) HasTransformationTime() bool
func (*Article_Metadata) HasUpdateTime ¶
func (x *Article_Metadata) HasUpdateTime() bool
func (*Article_Metadata) ProtoMessage ¶
func (*Article_Metadata) ProtoMessage()
func (*Article_Metadata) ProtoReflect ¶
func (x *Article_Metadata) ProtoReflect() protoreflect.Message
func (*Article_Metadata) Reset ¶
func (x *Article_Metadata) Reset()
func (*Article_Metadata) SetCurationAutomationEndTime ¶
func (x *Article_Metadata) SetCurationAutomationEndTime(v *timestamppb.Timestamp)
func (*Article_Metadata) SetCurationAutomationStartTime ¶
func (x *Article_Metadata) SetCurationAutomationStartTime(v *timestamppb.Timestamp)
func (*Article_Metadata) SetEndTime ¶
func (x *Article_Metadata) SetEndTime(v *timestamppb.Timestamp)
func (*Article_Metadata) SetEventSource ¶
func (x *Article_Metadata) SetEventSource(v Article_Metadata_EventSource)
func (*Article_Metadata) SetLastModificationTime ¶
func (x *Article_Metadata) SetLastModificationTime(v *timestamppb.Timestamp)
func (*Article_Metadata) SetPublicationId ¶
func (x *Article_Metadata) SetPublicationId(v int64)
func (*Article_Metadata) SetPublishTime ¶
func (x *Article_Metadata) SetPublishTime(v *timestamppb.Timestamp)
func (*Article_Metadata) SetRelatedArticleSource ¶
func (x *Article_Metadata) SetRelatedArticleSource(v string)
func (*Article_Metadata) SetSeoScore ¶
func (x *Article_Metadata) SetSeoScore(v float64)
func (*Article_Metadata) SetStartTime ¶
func (x *Article_Metadata) SetStartTime(v *timestamppb.Timestamp)
func (*Article_Metadata) SetState ¶
func (x *Article_Metadata) SetState(v Article_Metadata_State)
func (*Article_Metadata) SetTenant ¶
func (x *Article_Metadata) SetTenant(v string)
func (*Article_Metadata) SetTransformationErrors ¶
func (x *Article_Metadata) SetTransformationErrors(v int64)
func (*Article_Metadata) SetTransformationTime ¶
func (x *Article_Metadata) SetTransformationTime(v *timestamppb.Timestamp)
func (*Article_Metadata) SetUpdateTime ¶
func (x *Article_Metadata) SetUpdateTime(v *timestamppb.Timestamp)
func (*Article_Metadata) String ¶
func (x *Article_Metadata) String() string
type Article_Metadata_EventSource ¶
type Article_Metadata_EventSource int32
Even more detail about the circumstances of transformation for this article.
The `EventSource` will be of type:
- `PRIMARY` in case this article was directly _updated_ and _published_ - `SECONDARY` in case this article was indirectly updated. This can be caused by updates of _nested elements_, such as _Videos_ that may expire at some point. Another source of change may be _Scheduled Events_ like this item becomes _valid_ or _invalid_ at some point in time in the future after the item's original publication time.
const ( Article_Metadata_EVENT_SOURCE_UNSPECIFIED Article_Metadata_EventSource = 0 // this article's transformation was caused by a direct change in the CMS Article_Metadata_PRIMARY Article_Metadata_EventSource = 1 // this article's transformation was caused by a transitive update Article_Metadata_SECONDARY Article_Metadata_EventSource = 2 // this article's transformation was caused by an external system (Content Engine) Article_Metadata_CONTENT_ENGINE Article_Metadata_EventSource = 3 )
func (Article_Metadata_EventSource) Descriptor ¶
func (Article_Metadata_EventSource) Descriptor() protoreflect.EnumDescriptor
func (Article_Metadata_EventSource) Enum ¶
func (x Article_Metadata_EventSource) Enum() *Article_Metadata_EventSource
func (Article_Metadata_EventSource) Number ¶
func (x Article_Metadata_EventSource) Number() protoreflect.EnumNumber
func (Article_Metadata_EventSource) String ¶
func (x Article_Metadata_EventSource) String() string
func (Article_Metadata_EventSource) Type ¶
func (Article_Metadata_EventSource) Type() protoreflect.EnumType
type Article_Metadata_State ¶
type Article_Metadata_State int32
State of the item ([`Article`](article.html), [`Element`](article.element.html)) in the content management system. The `state` in combination with `start_time` and `end_time` determines whether or not this item should be rendered; this must be respected by all consumers especially when content is duplicated or cached.
The terms `deleted` (articles) and `archived` (media lib) are interchangeable/synonyms. This enum combines those two into `State.DELETED`. An Article is in `State.DELETED` if it was deleted in the content management system, or if it's [end_time](#end_time) has been reached.
An Article is in `State.DRAFT` if it has never been published, or if the `start_time` lies in the future.
Nowadays, the `State.PUBLISHED` is the only state that is used for articles within the database. Content can be scheduled for publication and depublication via the CMS directly. There are only a few edge cases where this is not the case, e.g. live-ticker embeds that will be programmatically activated and deactivated via `metadata.start_time` and `metadata.end_time`.
const ( Article_Metadata_STATE_UNSPECIFIED Article_Metadata_State = 0 // published content which is currently within its validity dates Article_Metadata_PUBLISHED Article_Metadata_State = 1 // this content is deleted or expired in the CMS Article_Metadata_DELETED Article_Metadata_State = 2 // this content was never published in the CMS, but may be scheduled for publication in the future. Article_Metadata_DRAFT Article_Metadata_State = 3 )
func (Article_Metadata_State) Descriptor ¶
func (Article_Metadata_State) Descriptor() protoreflect.EnumDescriptor
func (Article_Metadata_State) Enum ¶
func (x Article_Metadata_State) Enum() *Article_Metadata_State
func (Article_Metadata_State) Number ¶
func (x Article_Metadata_State) Number() protoreflect.EnumNumber
func (Article_Metadata_State) String ¶
func (x Article_Metadata_State) String() string
func (Article_Metadata_State) Type ¶
func (Article_Metadata_State) Type() protoreflect.EnumType
type Article_Metadata_builder ¶
type Article_Metadata_builder struct {
// State of the article in the content management system.
State Article_Metadata_State
// Manually set editorial timestamp (_Gültig von_) at which the article is valid to deliver on digital platforms in seconds of UTC time since Unix epoch.
StartTime *timestamppb.Timestamp
// Manually set editorial timestamp (_Gültig bis_) till the article is valid to deliver on digital platforms in seconds of UTC time since Unix epoch.
EndTime *timestamppb.Timestamp
// Editorial timestamp (_Publikationsdatum_) of the first publication of the article in seconds of UTC time since Unix epoch.
PublishTime *timestamppb.Timestamp
// Editorial timestamp (_Aktualisierungsdatum_) at which the article was updated in seconds of UTC time since Unix epoch.
UpdateTime *timestamppb.Timestamp
// Technical timestamp at which the article was transformed in the API layer in seconds of UTC time since Unix epoch.
TransformationTime *timestamppb.Timestamp
// Number of errors occurred while fetching and/or transforming optional article components (e.g. `embeds` or nested `documents`) to an `article` message.
TransformationErrors int64
// Technical timestamp at which the article was published regardless of the amount and significance of the change.
LastModificationTime *timestamppb.Timestamp
// Source of the event that caused this item to be transformed and to be written into the DB.
EventSource Article_Metadata_EventSource
// The article score (originates from team data's _Content Engine_, higher scores are better)
SeoScore float64
// The unique publication_id provided by the CMS, can be used to correlate the state of documents in tapir with the corresponding CMS publication event.
PublicationId int64
// Source of this article, if embedded in another article as a related article.
RelatedArticleSource string
// The tenant this article belongs to. e.g. `www`, `berlin` or such
Tenant string
// Start of the time range during which this content is eligible for automated curation
// based on queries or performance data.
CurationAutomationStartTime *timestamppb.Timestamp
// End of the time range during which this content is eligible for automated curation
// based on queries or performance data.
CurationAutomationEndTime *timestamppb.Timestamp
// contains filtered or unexported fields
}
func (Article_Metadata_builder) Build ¶
func (b0 Article_Metadata_builder) Build() *Article_Metadata
type Article_SubType ¶
type Article_SubType int32
const ( Article_SUB_TYPE_UNSPECIFIED Article_SubType = 0 // _Meldung/Nachricht_ — this is the default Article_NEWS Article_SubType = 1 // _Kolumne_ — a column Article_COLUMN Article_SubType = 2 // _Kommentar_ — a commentary Article_COMMENTARY Article_SubType = 3 // _Interview_ — an interview Article_INTERVIEW Article_SubType = 4 // _Pro und Kontra/Streitgespräch_ — a controversy Article_CONTROVERSY Article_SubType = 5 // _Tagesanbruch_ — a daily news article (plus newsletter and podcast) Article_TAGESANBRUCH Article_SubType = 6 // _Evergreen_ — a long-lasting article, not time sensitive Article_EVERGREEN Article_SubType = 7 // Content originally imported from agency/tickers by the CMS Article_AGENCY_IMPORT Article_SubType = 8 // _Advertorial_ — a payed advertisement, e.g. an advertorial Article_ADVERTORIAL Article_SubType = 9 // _Quiz_ — a quiz article Article_QUIZ Article_SubType = 10 // _Browser Game_ — a browser game article (/spiele) Article_GAME Article_SubType = 11 // Internal company articles like an imprint or contact forms Article_COMPLIANCE Article_SubType = 12 // _Recipe_ — a cooking recipe article Article_RECIPE Article_SubType = 13 // _Report_ — a report article Article_REPORT Article_SubType = 14 // _Analysis_ — a detailed analysis article Article_ANALYSIS Article_SubType = 15 // _Guest Essay_ — a guest article, usually written by an external author Article_GUEST_ESSAY Article_SubType = 16 )
func (Article_SubType) Descriptor ¶
func (Article_SubType) Descriptor() protoreflect.EnumDescriptor
func (Article_SubType) Enum ¶
func (x Article_SubType) Enum() *Article_SubType
func (Article_SubType) Number ¶
func (x Article_SubType) Number() protoreflect.EnumNumber
func (Article_SubType) String ¶
func (x Article_SubType) String() string
func (Article_SubType) Type ¶
func (Article_SubType) Type() protoreflect.EnumType
type Article_Type ¶
type Article_Type int32
To distinguish between different types of articles, we use the `Type` enum. This is sometimes referred to as the "article type", "content type" or "main type".
Content with `Type.ARTICLE` is usually sub typed via [`enum SubType`](#stroeer.core.v1.Article.SubType) to alter its form and purpose.
const ( Article_TYPE_UNSPECIFIED Article_Type = 0 // Most common type of article, usually sub typed to further differentiate its form and purpose. Article_ARTICLE Article_Type = 1 // `[deprecated]` An image article, unused, deprecated // // Deprecated: Marked as deprecated in stroeer/core/v1/article.proto. Article_IMAGE Article_Type = 2 // A video article, contains video, sometimes external video references ("glomex") or even live stream streams. Article_VIDEO Article_Type = 3 // A gallery article Article_GALLERY Article_Type = 4 // An embed article including an `oEmbed` or `edge_side_include` ("esi") Article_EMBED Article_Type = 5 // An author article Article_AUTHOR Article_Type = 6 // `[deprecated]` An agency article, unused, deprecated // // Deprecated: Marked as deprecated in stroeer/core/v1/article.proto. Article_AGENCY Article_Type = 7 // An external article that references externeral resources (teaser-like external article, e.g. "watson.de") Article_EXTERNAL Article_Type = 8 // An thematically grouped cluster for variable amount of articles Article_CLUSTER Article_Type = 9 // A topic page Article_TOPIC Article_Type = 10 // An article representing a debate Article_DEBATE Article_Type = 11 // Used for internal purposes only. Article_INTERNAL Article_Type = 100 )
func (Article_Type) Descriptor ¶
func (Article_Type) Descriptor() protoreflect.EnumDescriptor
func (Article_Type) Enum ¶
func (x Article_Type) Enum() *Article_Type
func (Article_Type) Number ¶
func (x Article_Type) Number() protoreflect.EnumNumber
func (Article_Type) String ¶
func (x Article_Type) String() string
func (Article_Type) Type ¶
func (Article_Type) Type() protoreflect.EnumType
type Article_builder ¶
type Article_builder struct {
// Unique ID of the article defined by the content management system (mandatory).
Id int64
// Main content type of the article (mandatory).
Type Article_Type
// Sub type of the article. For `ARTICLE` this field always holds a `sub_type`,
// for others like `GALLERY` it may not.
SubType Article_SubType
// Hierarchical section tree information of the article (mandatory).
SectionTree *Reference
// Generic map containing general content and configuration information of the article (mandatory). See sample section for details.
Fields map[string]string
// Body of the article to be rendered on detail pages. May be `null`/missing in **teaser** representations.
Bodies []*Article_Body
// The articles metadata, containing state and various timestamps.
Metadata *Article_Metadata
// `Element`s required to render the teaser, such as `IMAGE`, `VIDEO`.
// Also contains deprecated `AUTHOR` and `AGENCY` elements, which have been replaced by `authors`.
Elements []*Article_Element
// Extracted keywords from the article body like persons, locations, organizations etc.
Keywords []*Article_Keyword
// IDs of articles related to this article. Related articles are defined manually in the content management system by the editorial department.
// Deprecated in favor of `related_articles`.
//
// Deprecated: Marked as deprecated in stroeer/core/v1/article.proto.
Onwards []int64
// Variants of this article, e.g. for a/b-testing (headline) testing.
// merge the variants with the main article to get the full article.
Variants map[string]*Article
// Authors and or Agencies ƒor this content
Authors []*Author
// Editorial articles, which are related to the main article.
// May contain only a shallow article containing only its id.
// Not all grpc services will resolve return the related articles.
RelatedArticles []*Article
// References, e.g. URLs belonging to this article.
References []*Reference
// Extracted entities from the article body like persons, locations, organizations etc. `deprecated` — use `keywords` instead.
//
// Deprecated: Marked as deprecated in stroeer/core/v1/article.proto.
Entities []string
// contains filtered or unexported fields
}
func (Article_builder) Build ¶
func (b0 Article_builder) Build() *Article
type Author ¶
type Author struct {
// Unique identifier of the author, usually the CMS id.
Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
// Type of the author, e.g. `AUTHOR` or `AGENCY`.
Type Author_Type `protobuf:"varint,2,opt,name=type,proto3,enum=stroeer.core.v1.Author_Type" json:"type,omitempty"`
// Generic map containing general content and configuration information of the author.
Fields map[string]string `` /* 139-byte string literal not displayed */
// Elements of the author, e.g. the author's profile picture.
Elements []*Article_Element `protobuf:"bytes,4,rep,name=elements,proto3" json:"elements,omitempty"`
// Lists previous jobs and details about the author's career.
WorkHistory []*Author_HistoryEntry `protobuf:"bytes,5,rep,name=work_history,json=workHistory,proto3" json:"work_history,omitempty"`
// Generic references to education entries, e.g. universities or schools.
Education []*Reference `protobuf:"bytes,6,rep,name=education,proto3" json:"education,omitempty"`
// Generic references to social profiles, e.g. Twitter, Facebook, LinkedIn.
SocialProfiles []*Reference `protobuf:"bytes,7,rep,name=social_profiles,json=socialProfiles,proto3" json:"social_profiles,omitempty"`
// List of topics where the author possesses extraordinary knowledge.
AreasOfExpertise []string `protobuf:"bytes,8,rep,name=areas_of_expertise,json=areasOfExpertise,proto3" json:"areas_of_expertise,omitempty"`
// References, e.g. URLs belonging to this author page (rss, external, internal links).
References []*Reference `protobuf:"bytes,9,rep,name=references,proto3" json:"references,omitempty"`
// contains filtered or unexported fields
}
This represents an author (or agency). The entity may be the main content on author pages or simply indicate the author of an article.
func (*Author) GetElements ¶
func (x *Author) GetElements() []*Article_Element
func (*Author) GetType ¶
func (x *Author) GetType() Author_Type
func (*Author) GetWorkHistory ¶
func (x *Author) GetWorkHistory() []*Author_HistoryEntry
func (*Author) ProtoReflect ¶
func (x *Author) ProtoReflect() protoreflect.Message
func (*Author) SetElements ¶
func (x *Author) SetElements(v []*Article_Element)
func (*Author) SetType ¶
func (x *Author) SetType(v Author_Type)
func (*Author) SetWorkHistory ¶
func (x *Author) SetWorkHistory(v []*Author_HistoryEntry)
type Author_HistoryEntry ¶
type Author_HistoryEntry struct {
// The role of the author for this occupation.
Role string `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"`
// A description of the author's role.
Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
// contains filtered or unexported fields
}
func (*Author_HistoryEntry) GetDescription ¶
func (x *Author_HistoryEntry) GetDescription() string
func (*Author_HistoryEntry) GetRole ¶
func (x *Author_HistoryEntry) GetRole() string
func (*Author_HistoryEntry) ProtoMessage ¶
func (*Author_HistoryEntry) ProtoMessage()
func (*Author_HistoryEntry) ProtoReflect ¶
func (x *Author_HistoryEntry) ProtoReflect() protoreflect.Message
func (*Author_HistoryEntry) Reset ¶
func (x *Author_HistoryEntry) Reset()
func (*Author_HistoryEntry) SetDescription ¶
func (x *Author_HistoryEntry) SetDescription(v string)
func (*Author_HistoryEntry) SetRole ¶
func (x *Author_HistoryEntry) SetRole(v string)
func (*Author_HistoryEntry) String ¶
func (x *Author_HistoryEntry) String() string
type Author_HistoryEntry_builder ¶
type Author_HistoryEntry_builder struct {
// The role of the author for this occupation.
Role string
// A description of the author's role.
Description string
// contains filtered or unexported fields
}
func (Author_HistoryEntry_builder) Build ¶
func (b0 Author_HistoryEntry_builder) Build() *Author_HistoryEntry
type Author_Type ¶
type Author_Type int32
const ( Author_TYPE_UNSPECIFIED Author_Type = 0 // the autor is a person. Author_AUTHOR Author_Type = 1 // the author is an agency or company. Author_AGENCY Author_Type = 2 )
func (Author_Type) Descriptor ¶
func (Author_Type) Descriptor() protoreflect.EnumDescriptor
func (Author_Type) Enum ¶
func (x Author_Type) Enum() *Author_Type
func (Author_Type) Number ¶
func (x Author_Type) Number() protoreflect.EnumNumber
func (Author_Type) String ¶
func (x Author_Type) String() string
func (Author_Type) Type ¶
func (Author_Type) Type() protoreflect.EnumType
type Author_builder ¶
type Author_builder struct {
// Unique identifier of the author, usually the CMS id.
Id int64
// Type of the author, e.g. `AUTHOR` or `AGENCY`.
Type Author_Type
// Generic map containing general content and configuration information of the author.
Fields map[string]string
// Elements of the author, e.g. the author's profile picture.
Elements []*Article_Element
// Lists previous jobs and details about the author's career.
WorkHistory []*Author_HistoryEntry
// Generic references to education entries, e.g. universities or schools.
Education []*Reference
// Generic references to social profiles, e.g. Twitter, Facebook, LinkedIn.
SocialProfiles []*Reference
// List of topics where the author possesses extraordinary knowledge.
AreasOfExpertise []string
// References, e.g. URLs belonging to this author page (rss, external, internal links).
References []*Reference
// contains filtered or unexported fields
}
func (Author_builder) Build ¶
func (b0 Author_builder) Build() *Author
type BatchGetArticlesRequest ¶
type BatchGetArticlesRequest struct {
Ids []int64 `protobuf:"varint,1,rep,packed,name=ids,proto3" json:"ids,omitempty"`
RequestSettings *RequestSettings `protobuf:"bytes,2,opt,name=request_settings,json=requestSettings,proto3" json:"request_settings,omitempty"`
// contains filtered or unexported fields
}
* # `⚙︎ BatchGetArticle`
returns multiple [`stroeer.core.v1.Article`](Article.html) for the given `ids`. The ordering of items will the same ordering as the `ids` requested. If an `id` does not exists, it is omitted in the result (no error will be raised).
There is a maximum of 100 items that can be queried in one batch.
| Field name | Type | Description | |------------------|---------------------|-------------------------------------------------------------| | `ids` | `repeated int64` | [required] A list of ids of the articles to be fetched |
@CodeBlockStart protobuf
func (*BatchGetArticlesRequest) ClearRequestSettings ¶
func (x *BatchGetArticlesRequest) ClearRequestSettings()
func (*BatchGetArticlesRequest) GetIds ¶
func (x *BatchGetArticlesRequest) GetIds() []int64
func (*BatchGetArticlesRequest) GetRequestSettings ¶
func (x *BatchGetArticlesRequest) GetRequestSettings() *RequestSettings
func (*BatchGetArticlesRequest) HasRequestSettings ¶
func (x *BatchGetArticlesRequest) HasRequestSettings() bool
func (*BatchGetArticlesRequest) ProtoMessage ¶
func (*BatchGetArticlesRequest) ProtoMessage()
func (*BatchGetArticlesRequest) ProtoReflect ¶
func (x *BatchGetArticlesRequest) ProtoReflect() protoreflect.Message
func (*BatchGetArticlesRequest) Reset ¶
func (x *BatchGetArticlesRequest) Reset()
func (*BatchGetArticlesRequest) SetIds ¶
func (x *BatchGetArticlesRequest) SetIds(v []int64)
func (*BatchGetArticlesRequest) SetRequestSettings ¶
func (x *BatchGetArticlesRequest) SetRequestSettings(v *RequestSettings)
func (*BatchGetArticlesRequest) String ¶
func (x *BatchGetArticlesRequest) String() string
type BatchGetArticlesRequest_builder ¶
type BatchGetArticlesRequest_builder struct {
Ids []int64
RequestSettings *RequestSettings
// contains filtered or unexported fields
}
func (BatchGetArticlesRequest_builder) Build ¶
func (b0 BatchGetArticlesRequest_builder) Build() *BatchGetArticlesRequest
type BatchGetArticlesResponse ¶
type BatchGetArticlesResponse struct {
Articles []*Article `protobuf:"bytes,1,rep,name=articles,proto3" json:"articles,omitempty"`
// contains filtered or unexported fields
}
func (*BatchGetArticlesResponse) GetArticles ¶
func (x *BatchGetArticlesResponse) GetArticles() []*Article
func (*BatchGetArticlesResponse) ProtoMessage ¶
func (*BatchGetArticlesResponse) ProtoMessage()
func (*BatchGetArticlesResponse) ProtoReflect ¶
func (x *BatchGetArticlesResponse) ProtoReflect() protoreflect.Message
func (*BatchGetArticlesResponse) Reset ¶
func (x *BatchGetArticlesResponse) Reset()
func (*BatchGetArticlesResponse) SetArticles ¶
func (x *BatchGetArticlesResponse) SetArticles(v []*Article)
func (*BatchGetArticlesResponse) String ¶
func (x *BatchGetArticlesResponse) String() string
type BatchGetArticlesResponse_builder ¶
type BatchGetArticlesResponse_builder struct {
Articles []*Article
// contains filtered or unexported fields
}
func (BatchGetArticlesResponse_builder) Build ¶
func (b0 BatchGetArticlesResponse_builder) Build() *BatchGetArticlesResponse
type GetArticleRequest ¶
type GetArticleRequest struct {
Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
RequestSettings *RequestSettings `protobuf:"bytes,2,opt,name=request_settings,json=requestSettings,proto3" json:"request_settings,omitempty"`
// contains filtered or unexported fields
}
* # `⚙︎ GetArticle` ```protobuf rpc GetArticle (GetArticleRequest) returns (stroeer.core.v1.Article) {} ```
returns a single [`stroeer.core.v1.Article`](Article.html) if the given `id` exists, an `Error`, otherwise. (todo: describe errors)
| Field name | Type | Description | |------------------|---------------------|-------------------------------------------------------------| | `id` | `int64` | [required] Unique id of the article to be fetched. |
@CodeBlockStart protobuf
func (*GetArticleRequest) ClearRequestSettings ¶
func (x *GetArticleRequest) ClearRequestSettings()
func (*GetArticleRequest) GetId ¶
func (x *GetArticleRequest) GetId() int64
func (*GetArticleRequest) GetRequestSettings ¶
func (x *GetArticleRequest) GetRequestSettings() *RequestSettings
func (*GetArticleRequest) HasRequestSettings ¶
func (x *GetArticleRequest) HasRequestSettings() bool
func (*GetArticleRequest) ProtoMessage ¶
func (*GetArticleRequest) ProtoMessage()
func (*GetArticleRequest) ProtoReflect ¶
func (x *GetArticleRequest) ProtoReflect() protoreflect.Message
func (*GetArticleRequest) Reset ¶
func (x *GetArticleRequest) Reset()
func (*GetArticleRequest) SetId ¶
func (x *GetArticleRequest) SetId(v int64)
func (*GetArticleRequest) SetRequestSettings ¶
func (x *GetArticleRequest) SetRequestSettings(v *RequestSettings)
func (*GetArticleRequest) String ¶
func (x *GetArticleRequest) String() string
type GetArticleRequest_builder ¶
type GetArticleRequest_builder struct {
Id int64
RequestSettings *RequestSettings
// contains filtered or unexported fields
}
func (GetArticleRequest_builder) Build ¶
func (b0 GetArticleRequest_builder) Build() *GetArticleRequest
type ListArticlesRequest ¶
type ListArticlesRequest struct {
Query *ListArticlesRequest_Query `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"`
Filters *ListArticlesRequest_Filters `protobuf:"bytes,2,opt,name=filters,proto3" json:"filters,omitempty"`
PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
RequestSettings *RequestSettings `protobuf:"bytes,5,opt,name=request_settings,json=requestSettings,proto3" json:"request_settings,omitempty"`
// contains filtered or unexported fields
}
* returns a [`message-listarticlesresponse`](#ListArticlesResponse) with articles matching the query. If the results exceed 100 Articles or 1 MB the response can be paginated to obtain additional results.
## `ListArticlesRequest`
| Field name | Type | Description | |------------------|---------------------|-------------------------------------------------------------| | `query` | [`Query`][1] | [required] find items based on query values | | `filters` | [`Filters`][2] | [optional] A filter expression is applied after a Query finishes, but before the results are returned. | | `page_size` | `int32` | [optional] limit the results per page, default is `10`; max is `100` (or result exceeds `1 MB`). Values above 100 will be coerced to 100. If results get truncated, you can use pagination. | | `page_token` | `string` | [optional] A page token, received from a previous `ListArticles` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListArticles` must match the call that provided the page token.|
[1]: #query [2]: #filters
@CodeBlockStart protobuf
func (*ListArticlesRequest) ClearFilters ¶
func (x *ListArticlesRequest) ClearFilters()
func (*ListArticlesRequest) ClearQuery ¶
func (x *ListArticlesRequest) ClearQuery()
func (*ListArticlesRequest) ClearRequestSettings ¶
func (x *ListArticlesRequest) ClearRequestSettings()
func (*ListArticlesRequest) GetFilters ¶
func (x *ListArticlesRequest) GetFilters() *ListArticlesRequest_Filters
func (*ListArticlesRequest) GetPageSize ¶
func (x *ListArticlesRequest) GetPageSize() int32
func (*ListArticlesRequest) GetPageToken ¶
func (x *ListArticlesRequest) GetPageToken() string
func (*ListArticlesRequest) GetQuery ¶
func (x *ListArticlesRequest) GetQuery() *ListArticlesRequest_Query
func (*ListArticlesRequest) GetRequestSettings ¶
func (x *ListArticlesRequest) GetRequestSettings() *RequestSettings
func (*ListArticlesRequest) HasFilters ¶
func (x *ListArticlesRequest) HasFilters() bool
func (*ListArticlesRequest) HasQuery ¶
func (x *ListArticlesRequest) HasQuery() bool
func (*ListArticlesRequest) HasRequestSettings ¶
func (x *ListArticlesRequest) HasRequestSettings() bool
func (*ListArticlesRequest) ProtoMessage ¶
func (*ListArticlesRequest) ProtoMessage()
func (*ListArticlesRequest) ProtoReflect ¶
func (x *ListArticlesRequest) ProtoReflect() protoreflect.Message
func (*ListArticlesRequest) Reset ¶
func (x *ListArticlesRequest) Reset()
func (*ListArticlesRequest) SetFilters ¶
func (x *ListArticlesRequest) SetFilters(v *ListArticlesRequest_Filters)
func (*ListArticlesRequest) SetPageSize ¶
func (x *ListArticlesRequest) SetPageSize(v int32)
func (*ListArticlesRequest) SetPageToken ¶
func (x *ListArticlesRequest) SetPageToken(v string)
func (*ListArticlesRequest) SetQuery ¶
func (x *ListArticlesRequest) SetQuery(v *ListArticlesRequest_Query)
func (*ListArticlesRequest) SetRequestSettings ¶
func (x *ListArticlesRequest) SetRequestSettings(v *RequestSettings)
func (*ListArticlesRequest) String ¶
func (x *ListArticlesRequest) String() string
type ListArticlesRequest_Filters ¶
type ListArticlesRequest_Filters struct {
TypeIncludes []Article_Type `` /* 139-byte string literal not displayed */
TypeExcludes []Article_Type `` /* 139-byte string literal not displayed */
SubTypeIncludes []Article_SubType `` /* 153-byte string literal not displayed */
SubTypeExcludes []Article_SubType `` /* 153-byte string literal not displayed */
// contains filtered or unexported fields
}
* ## `Filters`
If you need to further refine the Query results, you can optionally provide a filter expression. A filter expression determines which items within the Query results should be returned to you. All of the other results are discarded.
A filter expression is applied after a Query finishes, but before the results are returned. Therefore, a Query consumes the same amount of read capacity, regardless of whether a filter expression is present.
| Field name | Type | Description | |----------------------|---------------------------------|---------------------------------------------| | `type_includes` | [`ContentType`][6] | `type` to include into the result set | | `type_includes` | [`ContentType`][6] | `type` to exclude from the result set | | `sub_type_includes` | [`ContentSubType`][7] | `sub_type` to include into the result set | | `sub_type_excludes` | [`ContentSubType`][7] | `sub_type` to exclude from the result set |
[6]: article.html#type [7]: article.html#sub_type
@CodeBlockStart protobuf
func (*ListArticlesRequest_Filters) GetSubTypeExcludes ¶
func (x *ListArticlesRequest_Filters) GetSubTypeExcludes() []Article_SubType
func (*ListArticlesRequest_Filters) GetSubTypeIncludes ¶
func (x *ListArticlesRequest_Filters) GetSubTypeIncludes() []Article_SubType
func (*ListArticlesRequest_Filters) GetTypeExcludes ¶
func (x *ListArticlesRequest_Filters) GetTypeExcludes() []Article_Type
func (*ListArticlesRequest_Filters) GetTypeIncludes ¶
func (x *ListArticlesRequest_Filters) GetTypeIncludes() []Article_Type
func (*ListArticlesRequest_Filters) ProtoMessage ¶
func (*ListArticlesRequest_Filters) ProtoMessage()
func (*ListArticlesRequest_Filters) ProtoReflect ¶
func (x *ListArticlesRequest_Filters) ProtoReflect() protoreflect.Message
func (*ListArticlesRequest_Filters) Reset ¶
func (x *ListArticlesRequest_Filters) Reset()
func (*ListArticlesRequest_Filters) SetSubTypeExcludes ¶
func (x *ListArticlesRequest_Filters) SetSubTypeExcludes(v []Article_SubType)
func (*ListArticlesRequest_Filters) SetSubTypeIncludes ¶
func (x *ListArticlesRequest_Filters) SetSubTypeIncludes(v []Article_SubType)
func (*ListArticlesRequest_Filters) SetTypeExcludes ¶
func (x *ListArticlesRequest_Filters) SetTypeExcludes(v []Article_Type)
func (*ListArticlesRequest_Filters) SetTypeIncludes ¶
func (x *ListArticlesRequest_Filters) SetTypeIncludes(v []Article_Type)
func (*ListArticlesRequest_Filters) String ¶
func (x *ListArticlesRequest_Filters) String() string
type ListArticlesRequest_Filters_builder ¶
type ListArticlesRequest_Filters_builder struct {
TypeIncludes []Article_Type
TypeExcludes []Article_Type
SubTypeIncludes []Article_SubType
SubTypeExcludes []Article_SubType
// contains filtered or unexported fields
}
func (ListArticlesRequest_Filters_builder) Build ¶
func (b0 ListArticlesRequest_Filters_builder) Build() *ListArticlesRequest_Filters
type ListArticlesRequest_Query ¶
type ListArticlesRequest_Query struct {
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
Type ListArticlesRequest_Query_Type `protobuf:"varint,2,opt,name=type,proto3,enum=stroeer.core.v1.ListArticlesRequest_Query_Type" json:"type,omitempty"`
SortBy ListArticlesRequest_Query_SortBy `` /* 134-byte string literal not displayed */
Order ListArticlesRequest_Query_Order `protobuf:"varint,4,opt,name=order,proto3,enum=stroeer.core.v1.ListArticlesRequest_Query_Order" json:"order,omitempty"`
FromTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=from_time,json=fromTime,proto3" json:"from_time,omitempty"`
ToTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=to_time,json=toTime,proto3" json:"to_time,omitempty"`
// contains filtered or unexported fields
}
* ## `Query`
Specify the search criteria. The list-API is build around sections which come in two flavors:
1. `home_section`: find all articles that resides within that exact section. The `home_section` is equal to the settings found in the CMS, e.g. `/nachrichten/wissen/` 2. `root_section`: this property is derived from the `home_section` path by retaining only the _root_ folder, e.g. for `/nachrichten/wissen/` the `root_section` becomes `/nachrichten/`
In most cases using the `root_section` should yield better results since it will also find content in nested sections whereas `home_section` would only return content which was curated into the exact section that was queried.
| Field name | Type | Description | |------------------|---------------------|-------------------------------------------------------------| | `path` | `string` | [required] `path`, with leading and trailing slash (e.g. `/nachrichten/`) | | `type` | [`Type`][3] | [required] query type, either `Type.HOME_SECTION` or `Type.ROOT_SECTION` | | `sort_by` | [`SortBy`][4] | [required] sorting of the result set, either `SortBy.UPDATE_TIME` or `SortBy.PUBLISH_TIME` | | `order` | [`Order`][5] | [optional] sorting direction for the results regarding the `sort_by` field, default is `Order.ASCENDING` | | `from_time` | [`Timestamp`][ts] | [optional] time constraint that refers to the `sort_by` field. | | `to_time` | [`Timestamp`][ts] | [optional] time constraint that refers to the `sort_by` field. |
[3]: #type [4]: #sortby [5]: #order [ts]: https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Timestamp
@CodeBlockStart protobuf
func (*ListArticlesRequest_Query) ClearFromTime ¶
func (x *ListArticlesRequest_Query) ClearFromTime()
func (*ListArticlesRequest_Query) ClearToTime ¶
func (x *ListArticlesRequest_Query) ClearToTime()
func (*ListArticlesRequest_Query) GetFromTime ¶
func (x *ListArticlesRequest_Query) GetFromTime() *timestamppb.Timestamp
func (*ListArticlesRequest_Query) GetOrder ¶
func (x *ListArticlesRequest_Query) GetOrder() ListArticlesRequest_Query_Order
func (*ListArticlesRequest_Query) GetPath ¶
func (x *ListArticlesRequest_Query) GetPath() string
func (*ListArticlesRequest_Query) GetSortBy ¶
func (x *ListArticlesRequest_Query) GetSortBy() ListArticlesRequest_Query_SortBy
func (*ListArticlesRequest_Query) GetToTime ¶
func (x *ListArticlesRequest_Query) GetToTime() *timestamppb.Timestamp
func (*ListArticlesRequest_Query) GetType ¶
func (x *ListArticlesRequest_Query) GetType() ListArticlesRequest_Query_Type
func (*ListArticlesRequest_Query) HasFromTime ¶
func (x *ListArticlesRequest_Query) HasFromTime() bool
func (*ListArticlesRequest_Query) HasToTime ¶
func (x *ListArticlesRequest_Query) HasToTime() bool
func (*ListArticlesRequest_Query) ProtoMessage ¶
func (*ListArticlesRequest_Query) ProtoMessage()
func (*ListArticlesRequest_Query) ProtoReflect ¶
func (x *ListArticlesRequest_Query) ProtoReflect() protoreflect.Message
func (*ListArticlesRequest_Query) Reset ¶
func (x *ListArticlesRequest_Query) Reset()
func (*ListArticlesRequest_Query) SetFromTime ¶
func (x *ListArticlesRequest_Query) SetFromTime(v *timestamppb.Timestamp)
func (*ListArticlesRequest_Query) SetOrder ¶
func (x *ListArticlesRequest_Query) SetOrder(v ListArticlesRequest_Query_Order)
func (*ListArticlesRequest_Query) SetPath ¶
func (x *ListArticlesRequest_Query) SetPath(v string)
func (*ListArticlesRequest_Query) SetSortBy ¶
func (x *ListArticlesRequest_Query) SetSortBy(v ListArticlesRequest_Query_SortBy)
func (*ListArticlesRequest_Query) SetToTime ¶
func (x *ListArticlesRequest_Query) SetToTime(v *timestamppb.Timestamp)
func (*ListArticlesRequest_Query) SetType ¶
func (x *ListArticlesRequest_Query) SetType(v ListArticlesRequest_Query_Type)
func (*ListArticlesRequest_Query) String ¶
func (x *ListArticlesRequest_Query) String() string
type ListArticlesRequest_Query_Order ¶
type ListArticlesRequest_Query_Order int32
* ## `Order`
order of index traversal, default: ascending.
| Enum value | Description | |---------------------|----------------------------------| | `ORDER_UNSPECIFIED` | unspecified | | `ASCENDING` | ascending order index traversal | | `DESCENDING` | descending order index traversal |
@CodeBlockStart protobuf
const ( ListArticlesRequest_Query_ORDER_UNSPECIFIED ListArticlesRequest_Query_Order = 0 ListArticlesRequest_Query_ASCENDING ListArticlesRequest_Query_Order = 1 ListArticlesRequest_Query_DESCENDING ListArticlesRequest_Query_Order = 2 )
func (ListArticlesRequest_Query_Order) Descriptor ¶
func (ListArticlesRequest_Query_Order) Descriptor() protoreflect.EnumDescriptor
func (ListArticlesRequest_Query_Order) Enum ¶
func (x ListArticlesRequest_Query_Order) Enum() *ListArticlesRequest_Query_Order
func (ListArticlesRequest_Query_Order) Number ¶
func (x ListArticlesRequest_Query_Order) Number() protoreflect.EnumNumber
func (ListArticlesRequest_Query_Order) String ¶
func (x ListArticlesRequest_Query_Order) String() string
func (ListArticlesRequest_Query_Order) Type ¶
func (ListArticlesRequest_Query_Order) Type() protoreflect.EnumType
type ListArticlesRequest_Query_SortBy ¶
type ListArticlesRequest_Query_SortBy int32
* ## `SortBy`
| Enum value | Description | |-----------------------|------------------------------------------------------------| | `SORT_BY_UNSPECIFIED` | unspecified | | `UPDATE_TIME` | sort by the content's [`update_time`][8] | | `PUBLISH_TIME` | sort by the content's [`publish_time`][9] |
[8]: metadata.html#update_time [9]: metadata.html#publish_time
@CodeBlockStart protobuf
const ( ListArticlesRequest_Query_SORT_BY_UNSPECIFIED ListArticlesRequest_Query_SortBy = 0 ListArticlesRequest_Query_UPDATE_TIME ListArticlesRequest_Query_SortBy = 1 ListArticlesRequest_Query_PUBLISH_TIME ListArticlesRequest_Query_SortBy = 2 )
func (ListArticlesRequest_Query_SortBy) Descriptor ¶
func (ListArticlesRequest_Query_SortBy) Descriptor() protoreflect.EnumDescriptor
func (ListArticlesRequest_Query_SortBy) Enum ¶
func (x ListArticlesRequest_Query_SortBy) Enum() *ListArticlesRequest_Query_SortBy
func (ListArticlesRequest_Query_SortBy) Number ¶
func (x ListArticlesRequest_Query_SortBy) Number() protoreflect.EnumNumber
func (ListArticlesRequest_Query_SortBy) String ¶
func (x ListArticlesRequest_Query_SortBy) String() string
func (ListArticlesRequest_Query_SortBy) Type ¶
func (ListArticlesRequest_Query_SortBy) Type() protoreflect.EnumType
type ListArticlesRequest_Query_Type ¶
type ListArticlesRequest_Query_Type int32
* ## `Type`
| Enum value | Description | |--------------------|-------------------------------------------------------------| | `TYPE_UNSPECIFIED` | unspecified | | `HOME_SECTION` | query by exact _home section_ which is configured in the CMS| | `ROOT_SECTION` | query by exact _root section_ which is derived from _home section_ when only retaining the first level of the `path` |
see the description [above](#query) why these query types exist, also see [`Reference`](article.html#section_tree) how section information are stored.
@CodeBlockStart protobuf
const ( ListArticlesRequest_Query_TYPE_UNSPECIFIED ListArticlesRequest_Query_Type = 0 ListArticlesRequest_Query_HOME_SECTION ListArticlesRequest_Query_Type = 1 ListArticlesRequest_Query_ROOT_SECTION ListArticlesRequest_Query_Type = 2 )
func (ListArticlesRequest_Query_Type) Descriptor ¶
func (ListArticlesRequest_Query_Type) Descriptor() protoreflect.EnumDescriptor
func (ListArticlesRequest_Query_Type) Enum ¶
func (x ListArticlesRequest_Query_Type) Enum() *ListArticlesRequest_Query_Type
func (ListArticlesRequest_Query_Type) Number ¶
func (x ListArticlesRequest_Query_Type) Number() protoreflect.EnumNumber
func (ListArticlesRequest_Query_Type) String ¶
func (x ListArticlesRequest_Query_Type) String() string
func (ListArticlesRequest_Query_Type) Type ¶
func (ListArticlesRequest_Query_Type) Type() protoreflect.EnumType
type ListArticlesRequest_Query_builder ¶
type ListArticlesRequest_Query_builder struct {
Path string
Type ListArticlesRequest_Query_Type
SortBy ListArticlesRequest_Query_SortBy
Order ListArticlesRequest_Query_Order
FromTime *timestamppb.Timestamp
ToTime *timestamppb.Timestamp
// contains filtered or unexported fields
}
func (ListArticlesRequest_Query_builder) Build ¶
func (b0 ListArticlesRequest_Query_builder) Build() *ListArticlesRequest_Query
type ListArticlesRequest_builder ¶
type ListArticlesRequest_builder struct {
Query *ListArticlesRequest_Query
Filters *ListArticlesRequest_Filters
PageSize int32
PageToken string
RequestSettings *RequestSettings
// contains filtered or unexported fields
}
func (ListArticlesRequest_builder) Build ¶
func (b0 ListArticlesRequest_builder) Build() *ListArticlesRequest
type ListArticlesResponse ¶
type ListArticlesResponse struct {
Articles []*Article `protobuf:"bytes,1,rep,name=articles,proto3" json:"articles,omitempty"`
NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
// contains filtered or unexported fields
}
* ## `ListArticlesResponse`
| Field name | Type | Description | |------------------|---------------------|-------------------------------------------------------------| | `articles` | [`Article`][article]| list of articles that match the `query` and also the `filter`, otherwise `empty`. | | `next_page_token`| `string` | A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages. |
[article]: article.html
@CodeBlockStart protobuf
func (*ListArticlesResponse) GetArticles ¶
func (x *ListArticlesResponse) GetArticles() []*Article
func (*ListArticlesResponse) GetNextPageToken ¶
func (x *ListArticlesResponse) GetNextPageToken() string
func (*ListArticlesResponse) ProtoMessage ¶
func (*ListArticlesResponse) ProtoMessage()
func (*ListArticlesResponse) ProtoReflect ¶
func (x *ListArticlesResponse) ProtoReflect() protoreflect.Message
func (*ListArticlesResponse) Reset ¶
func (x *ListArticlesResponse) Reset()
func (*ListArticlesResponse) SetArticles ¶
func (x *ListArticlesResponse) SetArticles(v []*Article)
func (*ListArticlesResponse) SetNextPageToken ¶
func (x *ListArticlesResponse) SetNextPageToken(v string)
func (*ListArticlesResponse) String ¶
func (x *ListArticlesResponse) String() string
type ListArticlesResponse_builder ¶
type ListArticlesResponse_builder struct {
Articles []*Article
NextPageToken string
// contains filtered or unexported fields
}
func (ListArticlesResponse_builder) Build ¶
func (b0 ListArticlesResponse_builder) Build() *ListArticlesResponse
type ListSectionsResponse ¶
type ListSectionsResponse struct {
Sections []string `protobuf:"bytes,1,rep,name=sections,proto3" json:"sections,omitempty"`
// contains filtered or unexported fields
}
* # `⚙︎ ListSections`
list the available root sections
## `ListSectionsResponse`
list all available `root_sections` that can be used in the [`query`](#query) above.
@CodeBlockStart protobuf
func (*ListSectionsResponse) GetSections ¶
func (x *ListSectionsResponse) GetSections() []string
func (*ListSectionsResponse) ProtoMessage ¶
func (*ListSectionsResponse) ProtoMessage()
func (*ListSectionsResponse) ProtoReflect ¶
func (x *ListSectionsResponse) ProtoReflect() protoreflect.Message
func (*ListSectionsResponse) Reset ¶
func (x *ListSectionsResponse) Reset()
func (*ListSectionsResponse) SetSections ¶
func (x *ListSectionsResponse) SetSections(v []string)
func (*ListSectionsResponse) String ¶
func (x *ListSectionsResponse) String() string
type ListSectionsResponse_builder ¶
type ListSectionsResponse_builder struct {
Sections []string
// contains filtered or unexported fields
}
func (ListSectionsResponse_builder) Build ¶
func (b0 ListSectionsResponse_builder) Build() *ListSectionsResponse
type Reference ¶
type Reference struct {
// the type for this reference, see examples and description above
Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
// The label of the reference.
Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"`
// The href of the reference, can be relative or absolute, also mailto: and tel: are possible.
Href string `protobuf:"bytes,3,opt,name=href,proto3" json:"href,omitempty"`
// attribute map with optional attributes of the reference, such as branding, rel, target, layout, etc.
Fields map[string]string `` /* 139-byte string literal not displayed */
// children of this reference, can be used to represent a tree structure, such as a navigation menu or breadcrumb navigation
Children []*Reference `protobuf:"bytes,5,rep,name=children,proto3" json:"children,omitempty"`
// contains filtered or unexported fields
}
A Reference represents a link to another entity, for example an `Article`, a `Section` or an external website, or a whole tree structure, for example a section tree or breadcrumb navigation.
The reference target may usually be a URL with format `https://example.com/path/to/resource`. But be prepared that it can also be a relative URL, for example `/path/to/resource`, or even an exotic stuff like `mailto:`, `tel:` or `ftp: links.
Depending on the positon within the message it serves different purposes:
## Usages
### `section_tree`
This serves as a breadcrumb navigation for an article, showing the paths and labels. This data structure makes use of nesting via the `repeated children` field.
<details>
```json { "label": "Home", "href": "/", "children": [ { "label": "Politik", "href": "/nachrichten/", "children": [ { "label": "Deutschland", "href": "/nachrichten/deutschland/", "children": [ { "label": "Innenpolitik", "href": "/nachrichten/deutschland/innenpolitik/" } ] } ] } ] } ```
</details>
### `repeated references`
In this case, all relevant references are stored in a flat list.
- References can be distinguished by their `type` attribute. - The order of the references is important, as it determines the display order in the UI.
For the **core API** expect the following references:
```mermaid graph LR ; A[content] -->|internal| C["/path/title.html"]; A[content] -->|external| B["https://www.t-online.de/path/title.html"]; A[content] -->|rss| D["https://www.t-online.de/path/feed.rss"]; A[content] -->|topic| E["https://www.t-online.de/themen/topic-1/"]; A[content] -->|topic| F["https://www.t-online.de/themen/topic-2/"]; ```
When interacting with the **page API** there may be some more "exotic" reference types.
Those types are used to distinguish different use cases for our front end. Those links have to be treated the same way as the `internal` references: It is in the responsibility of the API to ensure that the links are valid and point to the correct tenant/domain (avoiding extra redirects and such).
| Type | Description | |------------------------|-------------| | `stage_title` | | | `stage_themenbereiche` | | | `stage_header_links` | | | `stage_top_themen` | | | `stage_tag_category` | |
#### `internal`
Use to link content while preferable staying within the same domain. Usually, this will be a relative URL. In rare cases, it can also be an absolute URL, for example when linking to a different tenant/domain or for external articles (watson).
This will always be present for the main content:
- For **core** at `references[@type = "internal"]`. - For **article pages** at `articlePage.article.references[@type = "internal"]`. - For **section pages** at `sectionPage.section.references[@type = "internal"]`.
#### `external`
Use this to expose an external reference to this content, e.g. for canonical URLs or content that will be displayed externally, like RSS, Feeds or Emails. This is always an absolute URL.
This will always be present for the main content:
- For **core** at `references[@type = "external"]`. - For **article pages** at `articlePage.article.references[@type = "external"]`. - For **section pages** at `sectionPage.section.references[@type = "external"]`.
#### `rss`
This is a special type of external reference that is used to expose the RSS feed of a section, topic page or author page.
Its target is always an absolute URL, for example `https://www.t-online.de/feed.rss`.
#### `topic`
This may be present for the main content (for `articles` and `topic pages`), if the content is part of a topic page or relates to a specific topic.
These URLs are usually relative URLs, for example `/themen/spd/` — unless the sourounding article belongs to a different tenant/domain, in which case it may be an absolute URL like `https://www.t-online.de/themen/spd/`.
Topic pages are mostly linked withing the main content of an article, this happens via the automated in-text-linking feature of the CMS.
Other use cases are topic pages themselves, linking to related topics. This also originates from the CMS.
A `topic` reference consists of a `label` and an `href` attribute, which is a relative URL to the topic page.
<details>
Sample topic links:
```json [ { "type": "topic", "label": "SPD", "href": "/themen/spd/" }, { "type": "topic", "label": "Dänemark", "href": "/themen/daenemark/" } ] ```
</details>
#### `reference`s within the body
References in the main article body can be seen as HTML `<a>` tags. It is in the responsibility of the Adapter and/or API to alter the links as required by the use case.
Depending on the source and target, links can either be relative or absolute URLs.
Additionally, there is a `fields` map that provides additional attributes for the link, such as:
- `flag:published`: depending on the target, being an external URL or internal Content and internal URL, this flag may be used to indicate: - **for internal content:** Indicates the **published state** when linking to CMS content. If `false` the link may not be displayed in the UI. Some link targets currently cannot be checked for validity, e.g. links to sections (`/foo/`) or topics (`/themen/foo/`). - **for external content:** Indicates the result of the link checker, if the Adapter will follow the link and redirects. If the final http status code is `200 OK` this flag will be set to `true`, otherwise it will be `false`. Some external links will never be checked by the link checker (`mailto:` or `tel:` links). - `flag:internal`: Indicates if the link target belongs to our "network", this may be interpreted by the front end to add link attributes indicating crawlers to not follow the link. - `flag:auto_link` : Indicates that the link was automatically generated by the CMS without a user interaction. Usually these link to topic pages. - `target`: Specifies the target attribute of the link, e.g. `_blank` for opening in a new tab. This can be set in the CMS on a per-link basis. - `rel`: Specifies the rel attribute of the link, e.g. `nofollow` or `noopener`. This can be set in the CMS on a per-link basis. - `link_layout`: Special use case for **affiliate** links, which will be rendered with a special layout in the UI (shopping cart next to the link text). The only valid value is `commercial`. This can be set in the CMS on a per-link basis. - `branding`: Special use case for links pointing to our partner network (watson.de, giga.de, kino.de, etc.). This will be used to display the branding in the UI, e.g. `watson`, `giga`, `kino`.
##### Samples
<details>
External Link, not considered internal (`flag:internal` is `false`), but valid as tested by the link checker (`flag:published` is `true`):
```mermaid graph LR ; A[content] -->|" https://www.example.com "| B["external content"]; ```
```json { "label": "Example Link", "href": "https://www.example.com/?link=one", "fields": { "flag:internal": "false", "flag:published": "true" } } ```
Internal Link, same tenant (relative URL), also it is published ¶
```mermaid graph LR ; A[tenant A] -->|" /relative "| B[tenant A]; ```
```json { "href": "/digital/aktuelles/id_86241714/jupiter-seltene-aufnahmen-zeigen-meteoriten-einschlag-.html", "fields": { "flag:internal": "true", "flag:published": "true", "target": "_blank" } } ```
Internal Link, different tenant. Since we're changing the tenant/domain, the URL will be absolute. It is in the responsibility of the Adapter and/or API to ensure that the link is valid and points to the correct tenant (avoiding extra redirects and such).
The link is still recognized as internal (`flag:internal` is `true`) since it belongs to our "network". Also, the published state will be present: `flag:published` is `true`
```mermaid graph LR ; A[tenant A] -->|" https://example.com/absolute "| B[tenant B]; ```
```json { "href": "https://muenchen.t-online.de/test-playground/buzz/muenchen/id_100387018/buzz-test-regio-muenchen.html", "fields": { "flag:internal": "true", "flag:published": "true" } } ```
Branding links, e.g. pointing to our partner network (watson.de, giga.de, kino.de, etc.). Since the link is targeting an external domain, both `external` and `internal` references will be absolute URLs.
```json { "references": [ { "type": "external", "href": "https://www.watson.de/unterhaltung/stars/745939867-sofia-vergara-und-tom-brady-insider-klaert-nach-verdaechtigem-foto-auf", "fields": { "flag:internal": "true", "branding": "watson" } }, { "type": "internal", "href": "https://www.watson.de/unterhaltung/stars/745939867-sofia-vergara-und-tom-brady-insider-klaert-nach-verdaechtigem-foto-auf", "fields": { "flag:internal": "true", "branding": "watson" } } ] } ```
</details>
func (*Reference) ProtoReflect ¶
func (x *Reference) ProtoReflect() protoreflect.Message
type Reference_builder ¶
type Reference_builder struct {
// the type for this reference, see examples and description above
Type string
// The label of the reference.
Label string
// The href of the reference, can be relative or absolute, also mailto: and tel: are possible.
Href string
// attribute map with optional attributes of the reference, such as branding, rel, target, layout, etc.
Fields map[string]string
// children of this reference, can be used to represent a tree structure, such as a navigation menu or breadcrumb navigation
Children []*Reference
// contains filtered or unexported fields
}
func (Reference_builder) Build ¶
func (b0 Reference_builder) Build() *Reference
type RequestSettings ¶
type RequestSettings struct {
ArticleViewMode RequestSettings_ArticleViewMode `` /* 162-byte string literal not displayed */
ArticleValidity RequestSettings_ArticleValidity `` /* 160-byte string literal not displayed */
ElementValidity RequestSettings_ElementValidity `` /* 160-byte string literal not displayed */
// contains filtered or unexported fields
}
* ## `RequestSettings`
Alters the behavior of the request in a way that filters or alters the result or parts of the result based on validity of the article or its elements.
You can also alter the view mode of the article, selecting either the full article or a limited version of it (called `teaser` or `trail`)
### `RequestSettings.ArticleViewMode`
| Enum value | Description | |---------------------------------|------------------------------------------------------------------------------------| | `ARTICLE_VIEW_MODE_UNSPECIFIED` | unspecified, defaults to `ARTICLE_VIEW_MODE_DEFAULT` | | `ARTICLE_VIEW_MODE_DEFAULT` | full article including body and all elements. | | `ARTICLE_VIEW_MODE_TEASER` | elements that are not required when teasering the article are removed (e.g. body). |
### `RequestSettings.ArticleValidity`
| Enum value | Description | |--------------------------------|-------------------------------------------------------------------------------------------| | `ARTICLE_VALIDITY_UNSPECIFIED` | unspecified, defaults to `ARTICLE_VALIDITY_IGNORE` | | `ARTICLE_VALIDITY_VALID` | filters articles that are considered valid and allowed to be accessed publicly. | | `ARTICLE_VALIDITY_IGNORE` | Ignore the article validity and return everything as is, even deleted or expired content. |
### `RequestSettings.ElementValidity`
| Enum value | Description | |--------------------------------|-------------------------------------------------------------------------------------------| | `ELEMENT_VALIDITY_UNSPECIFIED` | unspecified, defaults to `ELEMENT_VALIDITY_IGNORE` | | `ELEMENT_VALIDITY_VALID` | Remove invalid elements from its parent article, such as expired images or videos. | | `ELEMENT_VALIDITY_IGNORE` | Ignore the element validity and return everything as is, even deleted or expired content. |
@CodeBlockStart protobuf
func (*RequestSettings) GetArticleValidity ¶
func (x *RequestSettings) GetArticleValidity() RequestSettings_ArticleValidity
func (*RequestSettings) GetArticleViewMode ¶
func (x *RequestSettings) GetArticleViewMode() RequestSettings_ArticleViewMode
func (*RequestSettings) GetElementValidity ¶
func (x *RequestSettings) GetElementValidity() RequestSettings_ElementValidity
func (*RequestSettings) ProtoMessage ¶
func (*RequestSettings) ProtoMessage()
func (*RequestSettings) ProtoReflect ¶
func (x *RequestSettings) ProtoReflect() protoreflect.Message
func (*RequestSettings) Reset ¶
func (x *RequestSettings) Reset()
func (*RequestSettings) SetArticleValidity ¶
func (x *RequestSettings) SetArticleValidity(v RequestSettings_ArticleValidity)
func (*RequestSettings) SetArticleViewMode ¶
func (x *RequestSettings) SetArticleViewMode(v RequestSettings_ArticleViewMode)
func (*RequestSettings) SetElementValidity ¶
func (x *RequestSettings) SetElementValidity(v RequestSettings_ElementValidity)
func (*RequestSettings) String ¶
func (x *RequestSettings) String() string
type RequestSettings_ArticleValidity ¶
type RequestSettings_ArticleValidity int32
const ( RequestSettings_ARTICLE_VALIDITY_UNSPECIFIED RequestSettings_ArticleValidity = 0 RequestSettings_ARTICLE_VALIDITY_VALID RequestSettings_ArticleValidity = 1 RequestSettings_ARTICLE_VALIDITY_IGNORE RequestSettings_ArticleValidity = 2 )
func (RequestSettings_ArticleValidity) Descriptor ¶
func (RequestSettings_ArticleValidity) Descriptor() protoreflect.EnumDescriptor
func (RequestSettings_ArticleValidity) Enum ¶
func (x RequestSettings_ArticleValidity) Enum() *RequestSettings_ArticleValidity
func (RequestSettings_ArticleValidity) Number ¶
func (x RequestSettings_ArticleValidity) Number() protoreflect.EnumNumber
func (RequestSettings_ArticleValidity) String ¶
func (x RequestSettings_ArticleValidity) String() string
func (RequestSettings_ArticleValidity) Type ¶
func (RequestSettings_ArticleValidity) Type() protoreflect.EnumType
type RequestSettings_ArticleViewMode ¶
type RequestSettings_ArticleViewMode int32
const ( RequestSettings_ARTICLE_VIEW_MODE_UNSPECIFIED RequestSettings_ArticleViewMode = 0 RequestSettings_ARTICLE_VIEW_MODE_DEFAULT RequestSettings_ArticleViewMode = 1 RequestSettings_ARTICLE_VIEW_MODE_TEASER RequestSettings_ArticleViewMode = 2 )
func (RequestSettings_ArticleViewMode) Descriptor ¶
func (RequestSettings_ArticleViewMode) Descriptor() protoreflect.EnumDescriptor
func (RequestSettings_ArticleViewMode) Enum ¶
func (x RequestSettings_ArticleViewMode) Enum() *RequestSettings_ArticleViewMode
func (RequestSettings_ArticleViewMode) Number ¶
func (x RequestSettings_ArticleViewMode) Number() protoreflect.EnumNumber
func (RequestSettings_ArticleViewMode) String ¶
func (x RequestSettings_ArticleViewMode) String() string
func (RequestSettings_ArticleViewMode) Type ¶
func (RequestSettings_ArticleViewMode) Type() protoreflect.EnumType
type RequestSettings_ElementValidity ¶
type RequestSettings_ElementValidity int32
const ( RequestSettings_ELEMENT_VALIDITY_UNSPECIFIED RequestSettings_ElementValidity = 0 RequestSettings_ELEMENT_VALIDITY_VALID RequestSettings_ElementValidity = 1 RequestSettings_ELEMENT_VALIDITY_IGNORE RequestSettings_ElementValidity = 2 )
func (RequestSettings_ElementValidity) Descriptor ¶
func (RequestSettings_ElementValidity) Descriptor() protoreflect.EnumDescriptor
func (RequestSettings_ElementValidity) Enum ¶
func (x RequestSettings_ElementValidity) Enum() *RequestSettings_ElementValidity
func (RequestSettings_ElementValidity) Number ¶
func (x RequestSettings_ElementValidity) Number() protoreflect.EnumNumber
func (RequestSettings_ElementValidity) String ¶
func (x RequestSettings_ElementValidity) String() string
func (RequestSettings_ElementValidity) Type ¶
func (RequestSettings_ElementValidity) Type() protoreflect.EnumType
type RequestSettings_builder ¶
type RequestSettings_builder struct {
ArticleViewMode RequestSettings_ArticleViewMode
ArticleValidity RequestSettings_ArticleValidity
ElementValidity RequestSettings_ElementValidity
// contains filtered or unexported fields
}
func (RequestSettings_builder) Build ¶
func (b0 RequestSettings_builder) Build() *RequestSettings
Source Files
¶
- article.pb.go
- core_article_service.pb.go
- shared.pb.go