diff --git a/VERSION b/VERSION index f979ade..bf057db 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v0.9.0 +v0.10.0 diff --git a/temporal/api/cloud/namespace/v1/message.proto b/temporal/api/cloud/namespace/v1/message.proto index ca5f683..c45ea1e 100644 --- a/temporal/api/cloud/namespace/v1/message.proto +++ b/temporal/api/cloud/namespace/v1/message.proto @@ -57,6 +57,11 @@ message ApiKeyAuthSpec { bool enabled = 1; } +message LifecycleSpec { + // Flag to enable delete protection for the namespace. + bool enable_delete_protection = 1; +} + message CodecServerSpec { // The codec server endpoint. string endpoint = 1; @@ -81,16 +86,78 @@ message CodecServerSpec { } } -message LifecycleSpec { - // Flag to enable delete protection for the namespace. - bool enable_delete_protection = 1; -} - message HighAvailabilitySpec { // Flag to disable managed failover for the namespace. bool disable_managed_failover = 1; } + +// temporal:versioning:min_version=v0.10.0 +message CapacitySpec { + oneof spec { + // on-demand capacity (dynamic-envelope) + OnDemand on_demand = 1; + // provisioned capacity + Provisioned provisioned = 2; + } + + message OnDemand { + } + + message Provisioned { + // the unit of the provisioned capacity (Temporal Resource Units) + double value = 1; + } +} + +// temporal:versioning:min_version=v0.10.0 +message Capacity { + + // temporal:versioning:min_version=v0.10.0 + oneof current_mode { + // the current capacity is on-demand + OnDemand on_demand = 1; + // the current capacity is provisioned + Provisioned provisioned = 2; + } + + // temporal:versioning:min_version=v0.10.0 + message OnDemand { + } + + // temporal:versioning:min_version=v0.10.0 + message Provisioned { + // the current unit of the provisioned capacity (Temporal Resource Units) + double current_value = 1; + } + + // temporal:versioning:min_version=v0.10.0 + message Request { + // the current state of the capacity request (e.g. in-progress, completed, failed) + State state = 1; + // The date and time when the capacity request was created. + google.protobuf.Timestamp start_time = 2; + // The date and time when the capacity request was completed or failed. + google.protobuf.Timestamp end_time = 3; + // The id of the async operation that is creating/updating/deleting the capacity, if any. + string async_operation_id = 4; + // The requested capacity specification. + CapacitySpec spec = 5; + + // temporal:versioning:min_version=v0.10.0 + enum State { + STATE_CAPACITY_REQUEST_UNSPECIFIED = 0; + STATE_CAPACITY_REQUEST_COMPLETED = 1; + STATE_CAPACITY_REQUEST_IN_PROGRESS = 2; + STATE_CAPACITY_REQUEST_FAILED = 3; + } + } + + // The latest capacity request, if any. + // temporal:versioning:min_version=v0.10.0 + Request latest_request = 3; +} + message NamespaceSpec { // The name to use for the namespace. // This will create a namespace that's available at '..tmprl.cloud:7233'. @@ -134,17 +201,23 @@ message NamespaceSpec { // Codec server spec used by UI to decode payloads for all users interacting with this namespace. // Optional, default is unset. CodecServerSpec codec_server = 6; + // The lifecycle configuration for the namespace. // temporal:versioning:min_version=v0.4.0 LifecycleSpec lifecycle = 9; + // The high availability configuration for the namespace. // temporal:versioning:min_version=v0.4.0 HighAvailabilitySpec high_availability = 10; + // The private connectivity configuration for the namespace. // This will apply the connectivity rules specified to the namespace. // temporal:versioning:min_version=v0.6.0 repeated string connectivity_rule_ids = 11; + // The capacity configuration for the namespace. + // temporal:versioning:min_version=v0.10.0 + CapacitySpec capacity_spec = 12; enum SearchAttributeType { SEARCH_ATTRIBUTE_TYPE_UNSPECIFIED = 0; @@ -171,6 +244,12 @@ message Limits { // The number of actions per second (APS) that is currently allowed for the namespace. // The namespace may be throttled if its APS exceeds the limit. int32 actions_per_second_limit = 1; + // The number of requests per second (RPS) that is currently allowed for the namespace. + // temporal:dev + int32 requests_per_second_limit = 2; + // The number of concurrent task pollers allowed for the namespace. + // temporal:dev + int32 concurrent_task_poller_limit = 3; } message AWSPrivateLinkInfo { @@ -226,8 +305,13 @@ message Namespace { map region_status = 12; // The connectivity rules that are set on this namespace. repeated temporal.api.cloud.connectivityrule.v1.ConnectivityRule connectivity_rules = 14; + // The tags for the namespace. map tags = 15; + + // The capacity of the namespace. + // temporal:versioning:min_version=v0.10.0 + Capacity capacity = 16; } message NamespaceRegionStatus { @@ -255,21 +339,22 @@ message NamespaceRegionStatus { } message ExportSinkSpec { - // The unique name of the export sink, it can't be changed once set. + // The unique name of the export sink, it can't be changed once set. string name = 1; // A flag indicating whether the export sink is enabled or not. bool enabled = 2; - + // The S3 configuration details when destination_type is S3. temporal.api.cloud.sink.v1.S3Spec s3 = 3; - // The GCS configuration details when destination_type is GCS. + // This is a feature under development. We will allow GCS sink support for GCP Namespaces. + // The GCS configuration details when destination_type is GCS. temporal.api.cloud.sink.v1.GCSSpec gcs = 4; } message ExportSink { - // The unique name of the export sink. + // The unique name of the export sink, once set it can't be changed string name = 1; // The version of the export sink resource.