- **`service`**: Fully qualified name of the messaging service where this topic is hosted in. Refer to *../../type/basic.json#/definitions/fullyQualifiedEntityName*.
- **`messageSchema`**: Refer to *../../type/schema.json*.
- **`partitions`** *(integer)*: Number of partitions into which the topic is divided. Minimum: `1`.
- **`cleanupPolicies`** *(array)*: Topic clean up policy. For Kafka - `cleanup.policy` configuration.
- **Items**: Refer to *../../entity/data/topic.json#/definitions/cleanupPolicy*.
- **`replicationFactor`** *(integer)*: Replication Factor in integer (more than 1).
- **`retentionTime`** *(number)*: Retention time in milliseconds. For Kafka - `retention.ms` configuration.
- **`maximumMessageSize`** *(integer)*: Maximum message size in bytes. For Kafka - `max.message.bytes` configuration.
- **`minimumInSyncReplicas`** *(integer)*: Minimum number replicas in sync to control durability. For Kafka - `min.insync.replicas` configuration.
- **`retentionSize`** *(number)*: Maximum size of a partition in bytes before old data is discarded. For Kafka - `retention.bytes` configuration. Default: `-1`.
- **`topicConfig`**: Contains key/value pair of topic configuration. Refer to *../../entity/data/topic.json#/definitions/topicConfig*.
- **`owner`**: Owner of this topic. Refer to *../../type/entityReference.json*.
- **`tags`** *(array)*: Tags for this topic. Default: `None`.
- **`domain`** *(string)*: Fully qualified name of the domain the Topic belongs to. Refer to *../../type/basic.json#/definitions/fullyQualifiedEntityName*.
- **`dataProducts`** *(array)*: List of fully qualified names of data products this entity is part of.
- **Items**: Refer to *../../type/basic.json#/definitions/fullyQualifiedEntityName*.