@@ -89,6 +89,40 @@ message CodecServerSpec {
8989message HighAvailabilitySpec {
9090 // Flag to disable managed failover for the namespace.
9191 bool disable_managed_failover = 1 ;
92+
93+ // Flag to disable passive poller forwarding for this namespace.
94+ // temporal:versioning:min_version=v0.13.0
95+ bool disable_passive_poller_forwarding = 2 ;
96+ }
97+
98+ // temporal:versioning:min_version=v0.13.0
99+ message ReplicaSpec {
100+ // The id of the region where the replica should be placed.
101+ // The GetRegions API can be used to get the list of valid region ids.
102+ // All the replicas must adhere to the region's max_in_region_replicas limit and connectable_region_ids.
103+ // Required. Immutable.
104+ // Example: "aws-us-west-2".
105+ string region = 1 ;
106+ }
107+
108+ // temporal:versioning:min_version=v0.13.0
109+ message Replica {
110+ // The id of the replica. This is generated by Temporal after a replica is created.
111+ string id = 1 ;
112+ // Whether this replica is currently the primary one.
113+ bool is_primary = 2 ;
114+ // The current state of this replica.
115+ ReplicaState state = 3 ;
116+ // The cloud provider and region of this replica.
117+ string region = 4 ;
118+
119+ enum ReplicaState {
120+ REPLICA_STATE_UNSPECIFIED = 0 ;
121+ REPLICA_STATE_ADDING = 1 ; // This replica is currently being added to the namespace.
122+ REPLICA_STATE_ACTIVE = 2 ; // This replica is healthy and active.
123+ REPLICA_STATE_REMOVING = 3 ; // This replica is currently being removed from the namespace.
124+ REPLICA_STATE_FAILED = 5 ; // This replica is in a failed state, reach out to Temporal Cloud support for remediation.
125+ }
92126}
93127
94128
@@ -152,6 +186,11 @@ message Capacity {
152186 Request latest_request = 3 ;
153187}
154188
189+ message FairnessSpec {
190+ // Flag to enable task queue fairness for the namespace (default: disabled).
191+ bool task_queue_fairness_enabled = 1 ;
192+ }
193+
155194message NamespaceSpec {
156195 // The name to use for the namespace.
157196 // This will create a namespace that's available at '<name>.<account>.tmprl.cloud:7233'.
@@ -165,7 +204,9 @@ message NamespaceSpec {
165204 // Number of supported regions is 2.
166205 // The regions is immutable. Once set, it cannot be changed.
167206 // Example: ["aws-us-west-2"].
168- repeated string regions = 2 ;
207+ // Deprecated: Use replicas field instead.
208+ // temporal:versioning:max_version=v0.15.0
209+ repeated string regions = 2 [deprecated = true ];
169210 // The number of days the workflows data will be retained for.
170211 // Changes to the retention period may impact your storage costs.
171212 // Any changes to the retention period will be applied to all new running workflows.
@@ -217,6 +258,20 @@ message NamespaceSpec {
217258 // temporal:versioning:min_version=v0.10.0
218259 CapacitySpec capacity_spec = 12 ;
219260
261+ // The replication configuration for the namespace.
262+ // At least one replica must be specified.
263+ // Only one replica can be marked to be the desired active one.
264+ // The status of each replica is available in the Namespace.replicas field.
265+ // Use HighAvailabilitySpec to set the preferred primary replica ID.
266+ // If the preferred primary replica ID is not set, the first replica in this replicas list will be the preferred primary.
267+ // temporal:versioning:min_version=v0.13.0
268+ repeated ReplicaSpec replicas = 13 ;
269+
270+ // The fairness configuration for the namespace.
271+ // If unspecified, fairness features will be disabled.
272+ // temporal:versioning:min_version=v0.14.0
273+ FairnessSpec fairness = 14 ;
274+
220275 enum SearchAttributeType {
221276 SEARCH_ATTRIBUTE_TYPE_UNSPECIFIED = 0 ;
222277 SEARCH_ATTRIBUTE_TYPE_TEXT = 1 ;
@@ -294,13 +349,18 @@ message Namespace {
294349 google.protobuf.Timestamp last_modified_time = 11 ;
295350 // The status of each region where the namespace is available.
296351 // The id of the region is the key and the status is the value of the map.
297- map <string , NamespaceRegionStatus > region_status = 12 ;
352+ // deprecated: Use replicas field instead.
353+ // temporal:versioning:max_version=v0.15.0
354+ map <string , NamespaceRegionStatus > region_status = 12 [deprecated = true ];
298355 // The connectivity rules that are set on this namespace.
299356 repeated temporal.api.cloud.connectivityrule.v1.ConnectivityRule connectivity_rules = 14 ;
300357 // The tags for the namespace.
301358 map <string , string > tags = 15 ;
302359 // The status of namespace's capacity, if any.
303360 Capacity capacity = 16 ;
361+ // The status of each replica where the namespace is available.
362+ // temporal:versioning:min_version=v0.13.0
363+ repeated Replica replicas = 18 ;
304364}
305365
306366message NamespaceRegionStatus {
0 commit comments