{ "$schema": "https://json-structure.org/meta/extended/v0/#", "$id": "https://api-evangelist.github.io/weaviate/json-structure/weaviate-replication-scale-plan-structure.json", "title": "ReplicationScalePlan", "description": "Defines a complete plan for scaling replication within a collection. Each shard entry specifies nodes to remove and nodes to add. Added nodes may either be initialized empty (null) or created by replicating data from a source node specified as a string. If a source node is also marked for removal in the same shard, it represents a move operation and can only be used once as a source for that shard. If a source node is not marked for removal, it represents a copy operation and can be used as the source for multiple additions in that shard. Nodes listed in 'removeNodes' cannot also appear as targets in 'addNodes' for the same shard, and the same node cannot be specified for both addition and removal in a single shard.", "type": "object", "properties": { "planId": { "type": "uuid", "description": "A unique identifier for this replication scaling plan, useful for tracking and auditing purposes." }, "collection": { "type": "str", "description": "The name of the collection to which this replication scaling plan applies." }, "shardScaleActions": { "type": "map", "description": "A mapping of shard names to their corresponding scaling actions. Each key corresponds to a shard name, and its value defines which nodes should be removed and which should be added for that shard. If a source node listed for an addition is also in 'removeNodes' for the same shard, that addition is treated as a move operation. Such a node can appear only once as a source in that shard. Otherwise, if the source node is not being removed, it represents a copy operation and can be referenced multiple times as a source for additions." } } }