@@ -57,6 +57,11 @@ message ApiKeyAuthSpec {
5757 bool enabled = 1 ;
5858}
5959
60+ message LifecycleSpec {
61+ // Flag to enable delete protection for the namespace.
62+ bool enable_delete_protection = 1 ;
63+ }
64+
6065message CodecServerSpec {
6166 // The codec server endpoint.
6267 string endpoint = 1 ;
@@ -81,16 +86,72 @@ message CodecServerSpec {
8186 }
8287}
8388
84- message LifecycleSpec {
85- // Flag to enable delete protection for the namespace.
86- bool enable_delete_protection = 1 ;
87- }
88-
8989message HighAvailabilitySpec {
9090 // Flag to disable managed failover for the namespace.
9191 bool disable_managed_failover = 1 ;
9292}
9393
94+
95+ // temporal:versioning:min_version=v0.10.0
96+ message CapacitySpec {
97+ oneof spec {
98+ // The on-demand capacity mode configuration.
99+ OnDemand on_demand = 1 ;
100+ // The provisioned capacity mode configuration.
101+ Provisioned provisioned = 2 ;
102+ }
103+
104+ message OnDemand {
105+ }
106+
107+ message Provisioned {
108+ // The units of provisioned capacity in TRU (Temporal Resource Units).
109+ // Each TRU unit assigned to the namespace will entitle it with additional APS limits as specified in the documentation.
110+ double value = 1 ;
111+ }
112+ }
113+
114+ message Capacity {
115+ oneof current_mode {
116+ // The status of on-demand capacity mode.
117+ OnDemand on_demand = 1 ;
118+ // The status of provisioned capacity mode.
119+ Provisioned provisioned = 2 ;
120+ }
121+
122+ message OnDemand {
123+ }
124+
125+ message Provisioned {
126+ // The current provisioned capacity for the namespace in Temporal Resource Units.
127+ // Can be different from the requested capacity in latest_request if the request is still in progress.
128+ double current_value = 1 ;
129+ }
130+
131+ message Request {
132+ // The current state of the capacity request (e.g. in-progress, completed, failed).
133+ State state = 1 ;
134+ // The date and time when the capacity request was created.
135+ google.protobuf.Timestamp start_time = 2 ;
136+ // The date and time when the capacity request was completed or failed.
137+ google.protobuf.Timestamp end_time = 3 ;
138+ // The id of the async operation that is creating/updating/deleting the capacity, if any.
139+ string async_operation_id = 4 ;
140+ // The requested capacity specification.
141+ CapacitySpec spec = 5 ;
142+
143+ enum State {
144+ STATE_CAPACITY_REQUEST_UNSPECIFIED = 0 ;
145+ STATE_CAPACITY_REQUEST_COMPLETED = 1 ;
146+ STATE_CAPACITY_REQUEST_IN_PROGRESS = 2 ;
147+ STATE_CAPACITY_REQUEST_FAILED = 3 ;
148+ }
149+ }
150+
151+ // The latest requested capacity for the namespace, if any.
152+ Request latest_request = 3 ;
153+ }
154+
94155message NamespaceSpec {
95156 // The name to use for the namespace.
96157 // This will create a namespace that's available at '<name>.<account>.tmprl.cloud:7233'.
@@ -134,17 +195,27 @@ message NamespaceSpec {
134195 // Codec server spec used by UI to decode payloads for all users interacting with this namespace.
135196 // Optional, default is unset.
136197 CodecServerSpec codec_server = 6 ;
198+
137199 // The lifecycle configuration for the namespace.
138200 // temporal:versioning:min_version=v0.4.0
139201 LifecycleSpec lifecycle = 9 ;
202+
140203 // The high availability configuration for the namespace.
141204 // temporal:versioning:min_version=v0.4.0
142205 HighAvailabilitySpec high_availability = 10 ;
206+
143207 // The private connectivity configuration for the namespace.
144208 // This will apply the connectivity rules specified to the namespace.
145209 // temporal:versioning:min_version=v0.6.0
146210 repeated string connectivity_rule_ids = 11 ;
147211
212+ // The capacity configuration for the namespace.
213+ // There are two capacity modes: on-demand and provisioned.
214+ // On-demand capacity mode allows the namespace to scale automatically based on usage.
215+ // Provisioned capacity mode allows the user to specify a fixed amount of capacity (in TRUs) for the namespace.
216+ // Can be changed only when the last capacity request is not in progress.
217+ // temporal:versioning:min_version=v0.10.0
218+ CapacitySpec capacity_spec = 12 ;
148219
149220 enum SearchAttributeType {
150221 SEARCH_ATTRIBUTE_TYPE_UNSPECIFIED = 0 ;
@@ -228,6 +299,8 @@ message Namespace {
228299 repeated temporal.api.cloud.connectivityrule.v1.ConnectivityRule connectivity_rules = 14 ;
229300 // The tags for the namespace.
230301 map <string , string > tags = 15 ;
302+ // The status of namespace's capacity, if any.
303+ Capacity capacity = 16 ;
231304}
232305
233306message NamespaceRegionStatus {
@@ -255,21 +328,22 @@ message NamespaceRegionStatus {
255328}
256329
257330message ExportSinkSpec {
258- // The unique name of the export sink, it can't be changed once set.
331+ // The unique name of the export sink, it can't be changed once set.
259332 string name = 1 ;
260333
261334 // A flag indicating whether the export sink is enabled or not.
262335 bool enabled = 2 ;
263-
336+
264337 // The S3 configuration details when destination_type is S3.
265338 temporal.api.cloud.sink.v1.S3Spec s3 = 3 ;
266339
267- // The GCS configuration details when destination_type is GCS.
340+ // This is a feature under development. We will allow GCS sink support for GCP Namespaces.
341+ // The GCS configuration details when destination_type is GCS.
268342 temporal.api.cloud.sink.v1.GCSSpec gcs = 4 ;
269343}
270344
271345message ExportSink {
272- // The unique name of the export sink.
346+ // The unique name of the export sink, once set it can't be changed
273347 string name = 1 ;
274348
275349 // The version of the export sink resource.
0 commit comments