case class EventType(name: EventTypeName, owningApplication: String, category: Category, enrichmentStrategies: List[EnrichmentStrategy] = ..., partitionStrategy: Option[PartitionStrategy] = None, compatibilityMode: Option[CompatibilityMode] = None, schema: EventTypeSchema = EventTypeSchema.anyJsonObject, partitionKeyFields: Option[List[String]] = None, defaultStatistic: Option[EventTypeStatistics] = None, options: Option[EventTypeOptions] = None, writeScopes: Option[List[WriteScope]] = None, readScopes: Option[List[ReadScope]] = None, createdAt: Option[OffsetDateTime] = None, updatedAt: Option[OffsetDateTime] = None) extends Product with Serializable
- name
Name of this EventType. The name is constrained by a regular expression. Note: the name can encode the owner/responsible for this EventType and ideally should follow a common pattern that makes it easy to read and understand, but this level of structure is not enforced. For example a team name and data type can be used such as 'acme-team.price-change'.
- owningApplication
Indicator of the (Stups) Application owning this EventType.
- category
Defines the category of this EventType. The value set will influence, if not set otherwise, the default set of validations, enrichmentStrategies, and the effective schema for validation in the following way: - Category.Undefined: No predefined changes apply. The effective schema for the validation is exactly the same as the EventTypeSchema. -
data: Events of this category will be org.zalando.kanadi.api.Event.DataChange. The effective schema during the validation contains org.zalando.kanadi.api.Metadata, and adds fields org.zalando.kanadi.api.Event.DataChange.data and org.zalando.kanadi.api.Event.DataChange.dataType. The passed EventTypeSchema defines the schema of org.zalando.kanadi.api.Event.DataChange.data. - Category.Business: Events of this category will be org.zalando.kanadi.api.Event.Business. The effective schema for validation contains org.zalando.kanadi.api.Metadata and any additionally defined properties passed in the EventTypeSchema directly on top level of the org.zalando.kanadi.api.Event. If name conflicts arise, creation of this EventType will be rejected.- enrichmentStrategies
Determines the enrichment to be performed on an Event upon reception. Enrichment is performed once upon reception (and after validation) of an Event and is only possible on fields that are not defined on the incoming Event. For event types in categories 'business' or 'data' it's mandatory to use metadata_enrichment strategy. For 'undefined' event types it's not possible to use this strategy, since metadata field is not required. See documentation for the write operation for details on behaviour in case of unsuccessful enrichment.
- partitionStrategy
Determines how the assignment of the event to a partition should be handled. For details of possible values, see org.zalando.kanadi.api.Registry.partitionStrategies.
- compatibilityMode
Compatibility mode provides a mean for event owners to evolve their schema, given changes respect the semantics defined by this field. It's designed to be flexible enough so that producers can evolve their schemas while not inadvertently breaking existent consumers. Once defined, the compatibility mode is fixed, since otherwise it would break a predefined contract, declared by the producer. List of compatibility modes: - CompatibilityMode.Compatible: Consumers can reliably parse events produced under different versions. Every event published since the first version is still valid based on the newest schema. When in compatible mode, it's allowed to add new optional properties and definitions to an existing schema, but no other changes are allowed. Under this mode, the following org.zalando.kanadi.api.EventTypeSchema.Type.JsonSchema attributes are not supported:
not,patternProperties,additionalPropertiesandadditionalItems. When validating events, additional properties isfalse. - CompatibilityMode.Forward: Compatible schema changes are allowed. It's possible to use the full json schema specification for defining schemas. Consumers of forward compatible event types can safely read events tagged with the latest schema version as long as they follow the robustness principle. - CompatibilityMode.None: Any schema modification is accepted, even if it might break existing producers or consumers. When validating events, no additional properties are accepted unless explicitly stated in the schema.- schema
The most recent schema for this EventType. Submitted events will be validated against it.
- partitionKeyFields
Required when partitionStrategy is set to org.zalando.kanadi.api.PartitionStrategy.Hash. Must be absent otherwise. Indicates the fields used for evaluation the partition of Events of this type. If set it MUST be a valid required field as defined in the schema.
- defaultStatistic
Operational statistics for an EventType. This data MUST be provided by users on Event Type creation. Nakadi uses this object in order to provide an optimal number of partitions from a throughput perspective.
- options
Additional parameters for tuning internal behavior of Nakadi.
- writeScopes
This field is used for event publishing access control. Nakadi only authorises publishers whose session contains at least one of the scopes in this list. If no scopes provided then anyone can publish to this event type.
- readScopes
This field is used for event consuming access control. Nakadi only authorises consumers whose session contains at least one of the scopes in this list. If no scopes provided then anyone can consume from this event type.
- createdAt
Date and time when this event type was created.
- updatedAt
Date and time when this event type was last updated.
- Alphabetic
- By Inheritance
- EventType
- Serializable
- Serializable
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
EventType(name: EventTypeName, owningApplication: String, category: Category, enrichmentStrategies: List[EnrichmentStrategy] = ..., partitionStrategy: Option[PartitionStrategy] = None, compatibilityMode: Option[CompatibilityMode] = None, schema: EventTypeSchema = EventTypeSchema.anyJsonObject, partitionKeyFields: Option[List[String]] = None, defaultStatistic: Option[EventTypeStatistics] = None, options: Option[EventTypeOptions] = None, writeScopes: Option[List[WriteScope]] = None, readScopes: Option[List[ReadScope]] = None, createdAt: Option[OffsetDateTime] = None, updatedAt: Option[OffsetDateTime] = None)
- name
Name of this EventType. The name is constrained by a regular expression. Note: the name can encode the owner/responsible for this EventType and ideally should follow a common pattern that makes it easy to read and understand, but this level of structure is not enforced. For example a team name and data type can be used such as 'acme-team.price-change'.
- owningApplication
Indicator of the (Stups) Application owning this EventType.
- category
Defines the category of this EventType. The value set will influence, if not set otherwise, the default set of validations, enrichmentStrategies, and the effective schema for validation in the following way: - Category.Undefined: No predefined changes apply. The effective schema for the validation is exactly the same as the EventTypeSchema. -
data: Events of this category will be org.zalando.kanadi.api.Event.DataChange. The effective schema during the validation contains org.zalando.kanadi.api.Metadata, and adds fields org.zalando.kanadi.api.Event.DataChange.data and org.zalando.kanadi.api.Event.DataChange.dataType. The passed EventTypeSchema defines the schema of org.zalando.kanadi.api.Event.DataChange.data. - Category.Business: Events of this category will be org.zalando.kanadi.api.Event.Business. The effective schema for validation contains org.zalando.kanadi.api.Metadata and any additionally defined properties passed in the EventTypeSchema directly on top level of the org.zalando.kanadi.api.Event. If name conflicts arise, creation of this EventType will be rejected.- enrichmentStrategies
Determines the enrichment to be performed on an Event upon reception. Enrichment is performed once upon reception (and after validation) of an Event and is only possible on fields that are not defined on the incoming Event. For event types in categories 'business' or 'data' it's mandatory to use metadata_enrichment strategy. For 'undefined' event types it's not possible to use this strategy, since metadata field is not required. See documentation for the write operation for details on behaviour in case of unsuccessful enrichment.
- partitionStrategy
Determines how the assignment of the event to a partition should be handled. For details of possible values, see org.zalando.kanadi.api.Registry.partitionStrategies.
- compatibilityMode
Compatibility mode provides a mean for event owners to evolve their schema, given changes respect the semantics defined by this field. It's designed to be flexible enough so that producers can evolve their schemas while not inadvertently breaking existent consumers. Once defined, the compatibility mode is fixed, since otherwise it would break a predefined contract, declared by the producer. List of compatibility modes: - CompatibilityMode.Compatible: Consumers can reliably parse events produced under different versions. Every event published since the first version is still valid based on the newest schema. When in compatible mode, it's allowed to add new optional properties and definitions to an existing schema, but no other changes are allowed. Under this mode, the following org.zalando.kanadi.api.EventTypeSchema.Type.JsonSchema attributes are not supported:
not,patternProperties,additionalPropertiesandadditionalItems. When validating events, additional properties isfalse. - CompatibilityMode.Forward: Compatible schema changes are allowed. It's possible to use the full json schema specification for defining schemas. Consumers of forward compatible event types can safely read events tagged with the latest schema version as long as they follow the robustness principle. - CompatibilityMode.None: Any schema modification is accepted, even if it might break existing producers or consumers. When validating events, no additional properties are accepted unless explicitly stated in the schema.- schema
The most recent schema for this EventType. Submitted events will be validated against it.
- partitionKeyFields
Required when partitionStrategy is set to org.zalando.kanadi.api.PartitionStrategy.Hash. Must be absent otherwise. Indicates the fields used for evaluation the partition of Events of this type. If set it MUST be a valid required field as defined in the schema.
- defaultStatistic
Operational statistics for an EventType. This data MUST be provided by users on Event Type creation. Nakadi uses this object in order to provide an optimal number of partitions from a throughput perspective.
- options
Additional parameters for tuning internal behavior of Nakadi.
- writeScopes
This field is used for event publishing access control. Nakadi only authorises publishers whose session contains at least one of the scopes in this list. If no scopes provided then anyone can publish to this event type.
- readScopes
This field is used for event consuming access control. Nakadi only authorises consumers whose session contains at least one of the scopes in this list. If no scopes provided then anyone can consume from this event type.
- createdAt
Date and time when this event type was created.
- updatedAt
Date and time when this event type was last updated.
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
- val category: Category
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
- val compatibilityMode: Option[CompatibilityMode]
- val createdAt: Option[OffsetDateTime]
- val defaultStatistic: Option[EventTypeStatistics]
- val enrichmentStrategies: List[EnrichmentStrategy]
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val name: EventTypeName
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- val options: Option[EventTypeOptions]
- val owningApplication: String
- val partitionKeyFields: Option[List[String]]
- val partitionStrategy: Option[PartitionStrategy]
- val readScopes: Option[List[ReadScope]]
- val schema: EventTypeSchema
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
- val updatedAt: Option[OffsetDateTime]
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
- val writeScopes: Option[List[WriteScope]]