Class/Object

org.zalando.kanadi.api

EventType

Related Docs: object EventType | package api

Permalink

final 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, cleanupPolicy: Option[CleanupPolicy] = None, defaultStatistic: Option[EventTypeStatistics] = None, options: Option[EventTypeOptions] = None, authorization: Option[EventTypeAuthorization] = None, writeScopes: Option[List[WriteScope]] = None, readScopes: Option[List[ReadScope]] = None, audience: Option[Audience] = None, orderingKeyFields: Option[List[String]] = None, orderingInstanceIds: Option[List[String]] = 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, additionalProperties and additionalItems. When validating events, additional properties is false. - 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.

cleanupPolicy

Event Type Cleanup Policy. 'delete' will delete old events after retention time expires. 'compact' will keep only the latest event for each event key. The key that will be used as a compaction key should be specified in PartitionCompactionKey.

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.

authorization

Authorization section for an event type. This section defines three access control lists: one for producing events EventTypeAuthorization.writers, one for consuming events EventTypeAuthorization.readers, and one for administering an event type EventTypeAuthorization.admins. Regardless of the values of the authorization properties, administrator accounts will always be authorized.

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.

audience

Intended target audience of the event type.

orderingKeyFields

This is an optional field which can be useful in case the producer wants to communicate the complete order across all the events published to all the partitions.

orderingInstanceIds

Indicates which field represents the data instance identifier and scope in which ordering_key_fields provides a strict order.

createdAt

Date and time when this event type was created.

updatedAt

Date and time when this event type was last updated.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. EventType
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. 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, cleanupPolicy: Option[CleanupPolicy] = None, defaultStatistic: Option[EventTypeStatistics] = None, options: Option[EventTypeOptions] = None, authorization: Option[EventTypeAuthorization] = None, writeScopes: Option[List[WriteScope]] = None, readScopes: Option[List[ReadScope]] = None, audience: Option[Audience] = None, orderingKeyFields: Option[List[String]] = None, orderingInstanceIds: Option[List[String]] = None, createdAt: Option[OffsetDateTime] = None, updatedAt: Option[OffsetDateTime] = None)

    Permalink

    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, additionalProperties and additionalItems. When validating events, additional properties is false. - 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.

    cleanupPolicy

    Event Type Cleanup Policy. 'delete' will delete old events after retention time expires. 'compact' will keep only the latest event for each event key. The key that will be used as a compaction key should be specified in PartitionCompactionKey.

    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.

    authorization

    Authorization section for an event type. This section defines three access control lists: one for producing events EventTypeAuthorization.writers, one for consuming events EventTypeAuthorization.readers, and one for administering an event type EventTypeAuthorization.admins. Regardless of the values of the authorization properties, administrator accounts will always be authorized.

    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.

    audience

    Intended target audience of the event type.

    orderingKeyFields

    This is an optional field which can be useful in case the producer wants to communicate the complete order across all the events published to all the partitions.

    orderingInstanceIds

    Indicates which field represents the data instance identifier and scope in which ordering_key_fields provides a strict order.

    createdAt

    Date and time when this event type was created.

    updatedAt

    Date and time when this event type was last updated.

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. val audience: Option[Audience]

    Permalink

    Intended target audience of the event type.

  6. val authorization: Option[EventTypeAuthorization]

    Permalink

    Authorization section for an event type.

    Authorization section for an event type. This section defines three access control lists: one for producing events EventTypeAuthorization.writers, one for consuming events EventTypeAuthorization.readers, and one for administering an event type EventTypeAuthorization.admins. Regardless of the values of the authorization properties, administrator accounts will always be authorized.

  7. val category: Category

    Permalink

    Defines the category of this EventType.

    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.

  8. val cleanupPolicy: Option[CleanupPolicy]

    Permalink

    Event Type Cleanup Policy.

    Event Type Cleanup Policy. 'delete' will delete old events after retention time expires. 'compact' will keep only the latest event for each event key. The key that will be used as a compaction key should be specified in PartitionCompactionKey.

  9. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  10. val compatibilityMode: Option[CompatibilityMode]

    Permalink

    Compatibility mode provides a mean for event owners to evolve their schema, given changes respect the semantics defined by this field.

    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, additionalProperties and additionalItems. When validating events, additional properties is false. - 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.

  11. val createdAt: Option[OffsetDateTime]

    Permalink

    Date and time when this event type was created.

  12. val defaultStatistic: Option[EventTypeStatistics]

    Permalink

    Operational statistics for an EventType.

    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.

  13. val enrichmentStrategies: List[EnrichmentStrategy]

    Permalink

    Determines the enrichment to be performed on an Event upon reception.

    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.

  14. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  15. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  16. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  17. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  18. val name: EventTypeName

    Permalink

    Name of this EventType.

    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'.

  19. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  20. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  21. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  22. val options: Option[EventTypeOptions]

    Permalink

    Additional parameters for tuning internal behavior of Nakadi.

  23. val orderingInstanceIds: Option[List[String]]

    Permalink

    Indicates which field represents the data instance identifier and scope in which ordering_key_fields provides a strict order.

  24. val orderingKeyFields: Option[List[String]]

    Permalink

    This is an optional field which can be useful in case the producer wants to communicate the complete order across all the events published to all the partitions.

  25. val owningApplication: String

    Permalink

    Indicator of the (Stups) Application owning this EventType.

  26. val partitionKeyFields: Option[List[String]]

    Permalink

    Required when partitionStrategy is set to org.zalando.kanadi.api.PartitionStrategy.Hash.

    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.

  27. val partitionStrategy: Option[PartitionStrategy]

    Permalink

    Determines how the assignment of the event to a partition should be handled.

    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.

  28. val readScopes: Option[List[ReadScope]]

    Permalink

    This field is used for event consuming access control.

    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.

  29. val schema: EventTypeSchema

    Permalink

    The most recent schema for this EventType.

    The most recent schema for this EventType. Submitted events will be validated against it.

  30. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  31. val updatedAt: Option[OffsetDateTime]

    Permalink

    Date and time when this event type was last updated.

  32. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  33. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  34. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  35. val writeScopes: Option[List[WriteScope]]

    Permalink

    This field is used for event publishing access control.

    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.

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped