corev1

package
v1.36.11-2026022309590... Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: unknown License: Apache-2.0 Imports: 6 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

View Source
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.

View Source
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.

View Source
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.

View Source
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.

View Source
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.

View Source
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.

View Source
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.

View Source
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.

View Source
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.

View Source
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.

View Source
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.

View Source
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.

View Source
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.

View Source
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.

View Source
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.

View Source
var File_stroeer_core_v1_article_proto protoreflect.FileDescriptor
View Source
var File_stroeer_core_v1_core_article_service_proto protoreflect.FileDescriptor
View Source
var File_stroeer_core_v1_shared_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) ClearMetadata

func (x *Article) ClearMetadata()

func (*Article) ClearSectionTree

func (x *Article) ClearSectionTree()

func (*Article) GetAuthors

func (x *Article) GetAuthors() []*Author

func (*Article) GetBodies

func (x *Article) GetBodies() []*Article_Body

func (*Article) GetElements

func (x *Article) GetElements() []*Article_Element

func (*Article) GetEntities deprecated

func (x *Article) GetEntities() []string

Deprecated: Marked as deprecated in stroeer/core/v1/article.proto.

func (*Article) GetFields

func (x *Article) GetFields() map[string]string

func (*Article) GetId

func (x *Article) GetId() int64

func (*Article) GetKeywords

func (x *Article) GetKeywords() []*Article_Keyword

func (*Article) GetMetadata

func (x *Article) GetMetadata() *Article_Metadata

func (*Article) GetOnwards deprecated

func (x *Article) GetOnwards() []int64

Deprecated: Marked as deprecated in stroeer/core/v1/article.proto.

func (*Article) GetReferences

func (x *Article) GetReferences() []*Reference

func (*Article) GetRelatedArticles

func (x *Article) GetRelatedArticles() []*Article

func (*Article) GetSectionTree

func (x *Article) GetSectionTree() *Reference

func (*Article) GetSubType

func (x *Article) GetSubType() Article_SubType

func (*Article) GetType

func (x *Article) GetType() Article_Type

func (*Article) GetVariants

func (x *Article) GetVariants() map[string]*Article

func (*Article) HasMetadata

func (x *Article) HasMetadata() bool

func (*Article) HasSectionTree

func (x *Article) HasSectionTree() bool

func (*Article) ProtoMessage

func (*Article) ProtoMessage()

func (*Article) ProtoReflect

func (x *Article) ProtoReflect() protoreflect.Message

func (*Article) Reset

func (x *Article) Reset()

func (*Article) SetAuthors

func (x *Article) SetAuthors(v []*Author)

func (*Article) SetBodies

func (x *Article) SetBodies(v []*Article_Body)

func (*Article) SetElements

func (x *Article) SetElements(v []*Article_Element)

func (*Article) SetEntities deprecated

func (x *Article) SetEntities(v []string)

Deprecated: Marked as deprecated in stroeer/core/v1/article.proto.

func (*Article) SetFields

func (x *Article) SetFields(v map[string]string)

func (*Article) SetId

func (x *Article) SetId(v int64)

func (*Article) SetKeywords

func (x *Article) SetKeywords(v []*Article_Keyword)

func (*Article) SetMetadata

func (x *Article) SetMetadata(v *Article_Metadata)

func (*Article) SetOnwards deprecated

func (x *Article) SetOnwards(v []int64)

Deprecated: Marked as deprecated in stroeer/core/v1/article.proto.

func (*Article) SetReferences

func (x *Article) SetReferences(v []*Reference)

func (*Article) SetRelatedArticles

func (x *Article) SetRelatedArticles(v []*Article)

func (*Article) SetSectionTree

func (x *Article) SetSectionTree(v *Reference)

func (*Article) SetSubType

func (x *Article) SetSubType(v Article_SubType)

func (*Article) SetType

func (x *Article) SetType(v Article_Type)

func (*Article) SetVariants

func (x *Article) SetVariants(v map[string]*Article)

func (*Article) String

func (x *Article) String() string

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

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) Enum

func (Article_Body_Type) Number

func (Article_Body_Type) String

func (x Article_Body_Type) String() string

func (Article_Body_Type) Type

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 (*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 (*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 (*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) Enum

func (Article_Element_Asset_Type) Number

func (Article_Element_Asset_Type) String

func (Article_Element_Asset_Type) Type

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

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) Enum

func (Article_Element_Relation) Number

func (Article_Element_Relation) String

func (x Article_Element_Relation) String() string

func (Article_Element_Relation) Type

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) Enum

func (Article_Element_Type) Number

func (Article_Element_Type) String

func (x Article_Element_Type) String() string

func (Article_Element_Type) Type

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

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

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 (*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 (*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) Enum

func (Article_Metadata_EventSource) Number

func (Article_Metadata_EventSource) String

func (Article_Metadata_EventSource) Type

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) Enum

func (Article_Metadata_State) Number

func (Article_Metadata_State) String

func (x Article_Metadata_State) String() string

func (Article_Metadata_State) Type

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

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) Enum

func (x Article_SubType) Enum() *Article_SubType

func (Article_SubType) Number

func (Article_SubType) String

func (x Article_SubType) String() string

func (Article_SubType) Type

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) Enum

func (x Article_Type) Enum() *Article_Type

func (Article_Type) Number

func (Article_Type) String

func (x Article_Type) String() string

func (Article_Type) Type

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) GetAreasOfExpertise

func (x *Author) GetAreasOfExpertise() []string

func (*Author) GetEducation

func (x *Author) GetEducation() []*Reference

func (*Author) GetElements

func (x *Author) GetElements() []*Article_Element

func (*Author) GetFields

func (x *Author) GetFields() map[string]string

func (*Author) GetId

func (x *Author) GetId() int64

func (*Author) GetReferences

func (x *Author) GetReferences() []*Reference

func (*Author) GetSocialProfiles

func (x *Author) GetSocialProfiles() []*Reference

func (*Author) GetType

func (x *Author) GetType() Author_Type

func (*Author) GetWorkHistory

func (x *Author) GetWorkHistory() []*Author_HistoryEntry

func (*Author) ProtoMessage

func (*Author) ProtoMessage()

func (*Author) ProtoReflect

func (x *Author) ProtoReflect() protoreflect.Message

func (*Author) Reset

func (x *Author) Reset()

func (*Author) SetAreasOfExpertise

func (x *Author) SetAreasOfExpertise(v []string)

func (*Author) SetEducation

func (x *Author) SetEducation(v []*Reference)

func (*Author) SetElements

func (x *Author) SetElements(v []*Article_Element)

func (*Author) SetFields

func (x *Author) SetFields(v map[string]string)

func (*Author) SetId

func (x *Author) SetId(v int64)

func (*Author) SetReferences

func (x *Author) SetReferences(v []*Reference)

func (*Author) SetSocialProfiles

func (x *Author) SetSocialProfiles(v []*Reference)

func (*Author) SetType

func (x *Author) SetType(v Author_Type)

func (*Author) SetWorkHistory

func (x *Author) SetWorkHistory(v []*Author_HistoryEntry)

func (*Author) String

func (x *Author) String() string

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

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) 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

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

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

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

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 (*ListArticlesRequest) GetPageSize

func (x *ListArticlesRequest) GetPageSize() int32

func (*ListArticlesRequest) GetPageToken

func (x *ListArticlesRequest) GetPageToken() string

func (*ListArticlesRequest) GetQuery

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 (*ListArticlesRequest) SetPageSize

func (x *ListArticlesRequest) SetPageSize(v int32)

func (*ListArticlesRequest) SetPageToken

func (x *ListArticlesRequest) SetPageToken(v string)

func (*ListArticlesRequest) SetQuery

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 (*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

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 (*ListArticlesRequest_Query) GetOrder

func (*ListArticlesRequest_Query) GetPath

func (x *ListArticlesRequest_Query) GetPath() string

func (*ListArticlesRequest_Query) GetSortBy

func (*ListArticlesRequest_Query) GetToTime

func (*ListArticlesRequest_Query) GetType

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 (*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 (*ListArticlesRequest_Query) SetPath

func (x *ListArticlesRequest_Query) SetPath(v string)

func (*ListArticlesRequest_Query) SetSortBy

func (*ListArticlesRequest_Query) SetToTime

func (*ListArticlesRequest_Query) SetType

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) Enum

func (ListArticlesRequest_Query_Order) Number

func (ListArticlesRequest_Query_Order) String

func (ListArticlesRequest_Query_Order) Type

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) Enum

func (ListArticlesRequest_Query_SortBy) Number

func (ListArticlesRequest_Query_SortBy) String

func (ListArticlesRequest_Query_SortBy) Type

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) Enum

func (ListArticlesRequest_Query_Type) Number

func (ListArticlesRequest_Query_Type) String

func (ListArticlesRequest_Query_Type) Type

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

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

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

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

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" } } ```

```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) GetChildren

func (x *Reference) GetChildren() []*Reference

func (*Reference) GetFields

func (x *Reference) GetFields() map[string]string

func (*Reference) GetHref

func (x *Reference) GetHref() string

func (*Reference) GetLabel

func (x *Reference) GetLabel() string

func (*Reference) GetType

func (x *Reference) GetType() string

func (*Reference) ProtoMessage

func (*Reference) ProtoMessage()

func (*Reference) ProtoReflect

func (x *Reference) ProtoReflect() protoreflect.Message

func (*Reference) Reset

func (x *Reference) Reset()

func (*Reference) SetChildren

func (x *Reference) SetChildren(v []*Reference)

func (*Reference) SetFields

func (x *Reference) SetFields(v map[string]string)

func (*Reference) SetHref

func (x *Reference) SetHref(v string)

func (*Reference) SetLabel

func (x *Reference) SetLabel(v string)

func (*Reference) SetType

func (x *Reference) SetType(v string)

func (*Reference) String

func (x *Reference) String() string

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) Enum

func (RequestSettings_ArticleValidity) Number

func (RequestSettings_ArticleValidity) String

func (RequestSettings_ArticleValidity) Type

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) Enum

func (RequestSettings_ArticleViewMode) Number

func (RequestSettings_ArticleViewMode) String

func (RequestSettings_ArticleViewMode) Type

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) Enum

func (RequestSettings_ElementValidity) Number

func (RequestSettings_ElementValidity) String

func (RequestSettings_ElementValidity) Type

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

Source Files

  • article.pb.go
  • core_article_service.pb.go
  • shared.pb.go

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL