@temporalio/core-bridge 1.10.2 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/Cargo.lock +563 -676
  2. package/Cargo.toml +3 -3
  3. package/lib/index.d.ts +16 -5
  4. package/lib/index.js.map +1 -1
  5. package/lib/worker-tuner.d.ts +57 -0
  6. package/lib/worker-tuner.js +3 -0
  7. package/lib/worker-tuner.js.map +1 -0
  8. package/package.json +3 -3
  9. package/releases/aarch64-apple-darwin/index.node +0 -0
  10. package/releases/aarch64-unknown-linux-gnu/index.node +0 -0
  11. package/releases/x86_64-apple-darwin/index.node +0 -0
  12. package/releases/x86_64-pc-windows-msvc/index.node +0 -0
  13. package/releases/x86_64-unknown-linux-gnu/index.node +0 -0
  14. package/sdk-core/.github/workflows/heavy.yml +6 -11
  15. package/sdk-core/.github/workflows/per-pr.yml +23 -41
  16. package/sdk-core/Cargo.toml +5 -5
  17. package/sdk-core/README.md +2 -0
  18. package/sdk-core/client/Cargo.toml +4 -2
  19. package/sdk-core/client/src/lib.rs +60 -17
  20. package/sdk-core/client/src/metrics.rs +1 -1
  21. package/sdk-core/client/src/proxy.rs +17 -12
  22. package/sdk-core/client/src/raw.rs +218 -69
  23. package/sdk-core/client/src/retry.rs +19 -9
  24. package/sdk-core/core/Cargo.toml +12 -12
  25. package/sdk-core/core/src/abstractions.rs +3 -3
  26. package/sdk-core/core/src/core_tests/activity_tasks.rs +2 -1
  27. package/sdk-core/core/src/core_tests/determinism.rs +1 -1
  28. package/sdk-core/core/src/core_tests/local_activities.rs +73 -10
  29. package/sdk-core/core/src/core_tests/queries.rs +2 -1
  30. package/sdk-core/core/src/core_tests/updates.rs +162 -4
  31. package/sdk-core/core/src/core_tests/workers.rs +38 -2
  32. package/sdk-core/core/src/core_tests/workflow_tasks.rs +158 -27
  33. package/sdk-core/core/src/internal_flags.rs +17 -7
  34. package/sdk-core/core/src/lib.rs +9 -3
  35. package/sdk-core/core/src/pollers/poll_buffer.rs +1 -10
  36. package/sdk-core/core/src/protosext/mod.rs +0 -1
  37. package/sdk-core/core/src/protosext/protocol_messages.rs +105 -16
  38. package/sdk-core/core/src/retry_logic.rs +22 -2
  39. package/sdk-core/core/src/telemetry/otel.rs +44 -12
  40. package/sdk-core/core/src/test_help/mod.rs +65 -12
  41. package/sdk-core/core/src/worker/activities/local_activities.rs +1 -4
  42. package/sdk-core/core/src/worker/activities.rs +3 -4
  43. package/sdk-core/core/src/worker/client/mocks.rs +7 -6
  44. package/sdk-core/core/src/worker/client.rs +11 -2
  45. package/sdk-core/core/src/worker/mod.rs +49 -24
  46. package/sdk-core/core/src/worker/tuner/resource_based.rs +48 -48
  47. package/sdk-core/core/src/worker/tuner.rs +124 -4
  48. package/sdk-core/core/src/worker/workflow/driven_workflow.rs +1 -1
  49. package/sdk-core/core/src/worker/workflow/history_update.rs +11 -2
  50. package/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +18 -3
  51. package/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +1 -0
  52. package/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +1 -0
  53. package/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +1 -0
  54. package/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +1 -0
  55. package/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +1 -0
  56. package/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +1 -0
  57. package/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +4 -4
  58. package/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +1 -0
  59. package/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +1 -0
  60. package/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +1 -0
  61. package/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +3 -1
  62. package/sdk-core/core/src/worker/workflow/machines/update_state_machine.rs +38 -28
  63. package/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +4 -2
  64. package/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +95 -71
  65. package/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +1 -1
  66. package/sdk-core/core/src/worker/workflow/managed_run.rs +214 -14
  67. package/sdk-core/core/src/worker/workflow/mod.rs +49 -36
  68. package/sdk-core/core/src/worker/workflow/workflow_stream.rs +1 -2
  69. package/sdk-core/core-api/src/errors.rs +13 -7
  70. package/sdk-core/core-api/src/lib.rs +9 -1
  71. package/sdk-core/sdk/Cargo.toml +1 -1
  72. package/sdk-core/sdk/src/activity_context.rs +3 -4
  73. package/sdk-core/sdk/src/lib.rs +96 -49
  74. package/sdk-core/sdk/src/workflow_context/options.rs +8 -4
  75. package/sdk-core/sdk/src/workflow_context.rs +53 -49
  76. package/sdk-core/sdk/src/workflow_future.rs +10 -4
  77. package/sdk-core/sdk-core-protos/Cargo.toml +4 -3
  78. package/sdk-core/sdk-core-protos/build.rs +2 -0
  79. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/.github/workflows/build.yaml +18 -0
  80. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/LICENSE +21 -0
  81. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/Makefile +59 -0
  82. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/README.md +25 -0
  83. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/VERSION +1 -0
  84. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/buf.gen.yaml +14 -0
  85. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/buf.lock +8 -0
  86. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/buf.yaml +9 -0
  87. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/cloudservice/v1/request_response.proto +520 -0
  88. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/cloudservice/v1/service.proto +263 -0
  89. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/identity/v1/message.proto +173 -0
  90. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/namespace/v1/message.proto +164 -0
  91. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/operation/v1/message.proto +36 -0
  92. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/region/v1/message.proto +22 -0
  93. package/sdk-core/sdk-core-protos/protos/api_upstream/.github/workflows/trigger-api-go-update.yml +50 -8
  94. package/sdk-core/sdk-core-protos/protos/api_upstream/.gitmodules +3 -0
  95. package/sdk-core/sdk-core-protos/protos/api_upstream/openapi/openapiv2.json +132 -54
  96. package/sdk-core/sdk-core-protos/protos/api_upstream/openapi/openapiv3.yaml +177 -81
  97. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/command/v1/message.proto +13 -0
  98. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +2 -0
  99. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +8 -3
  100. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/history/v1/message.proto +10 -0
  101. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/nexus/v1/message.proto +3 -3
  102. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +6 -6
  103. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/sdk/v1/enhanced_stack_trace.proto +96 -0
  104. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/sdk/v1/user_metadata.proto +49 -0
  105. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/sdk/v1/workflow_metadata.proto +6 -7
  106. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +55 -24
  107. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/workflow/v1/message.proto +7 -0
  108. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +21 -4
  109. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +64 -45
  110. package/sdk-core/sdk-core-protos/src/history_builder.rs +8 -1
  111. package/sdk-core/sdk-core-protos/src/lib.rs +40 -10
  112. package/sdk-core/test-utils/src/canned_histories.rs +1 -1
  113. package/sdk-core/tests/fuzzy_workflow.rs +4 -2
  114. package/sdk-core/tests/heavy_tests.rs +3 -3
  115. package/sdk-core/tests/integ_tests/activity_functions.rs +2 -2
  116. package/sdk-core/tests/integ_tests/client_tests.rs +234 -6
  117. package/sdk-core/tests/integ_tests/update_tests.rs +180 -47
  118. package/sdk-core/tests/integ_tests/worker_tests.rs +32 -0
  119. package/sdk-core/tests/integ_tests/workflow_tests/activities.rs +47 -3
  120. package/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +10 -10
  121. package/sdk-core/tests/main.rs +1 -0
  122. package/src/conversions.rs +84 -11
  123. package/src/runtime.rs +5 -17
  124. package/src/worker.rs +27 -6
  125. package/ts/index.ts +24 -5
  126. package/ts/worker-tuner.ts +71 -0
@@ -0,0 +1,263 @@
1
+ syntax = "proto3";
2
+
3
+ package temporal.api.cloud.cloudservice.v1;
4
+
5
+ option go_package = "go.temporal.io/api/cloud/cloudservice/v1;cloudservice";
6
+ option java_package = "io.temporal.api.cloud.cloudservice.v1";
7
+ option java_multiple_files = true;
8
+ option java_outer_classname = "ServiceProto";
9
+ option ruby_package = "Temporalio::Api::Cloud::CloudService::V1";
10
+ option csharp_namespace = "Temporalio.Api.Cloud.CloudService.V1";
11
+
12
+ import "temporal/api/cloud/cloudservice/v1/request_response.proto";
13
+ import "google/api/annotations.proto";
14
+
15
+ // WARNING: This service is currently experimental and may change in
16
+ // incompatible ways.
17
+ service CloudService {
18
+ // Gets all known users
19
+ rpc GetUsers(GetUsersRequest) returns (GetUsersResponse) {
20
+ option (google.api.http) = {
21
+ get: "/cloud/users",
22
+ };
23
+ }
24
+
25
+ // Get a user
26
+ rpc GetUser(GetUserRequest) returns (GetUserResponse) {
27
+ option (google.api.http) = {
28
+ get: "/cloud/users/{user_id}",
29
+ };
30
+ }
31
+
32
+ // Create a user
33
+ rpc CreateUser(CreateUserRequest) returns (CreateUserResponse) {
34
+ option (google.api.http) = {
35
+ post: "/cloud/users",
36
+ body: "*"
37
+ };
38
+ }
39
+
40
+ // Update a user
41
+ rpc UpdateUser(UpdateUserRequest) returns (UpdateUserResponse) {
42
+ option (google.api.http) = {
43
+ post: "/cloud/users/{user_id}",
44
+ body: "*"
45
+ };
46
+ }
47
+
48
+ // Delete a user
49
+ rpc DeleteUser(DeleteUserRequest) returns (DeleteUserResponse) {
50
+ option (google.api.http) = {
51
+ delete: "/cloud/users/{user_id}",
52
+ };
53
+ }
54
+
55
+ // Set a user's access to a namespace
56
+ rpc SetUserNamespaceAccess(SetUserNamespaceAccessRequest) returns (SetUserNamespaceAccessResponse) {
57
+ option (google.api.http) = {
58
+ post: "/cloud/namespaces/{namespace}/users/{user_id}/access",
59
+ body: "*"
60
+ };
61
+ }
62
+
63
+ // Get the latest information on an async operation
64
+ rpc GetAsyncOperation(GetAsyncOperationRequest) returns (GetAsyncOperationResponse) {
65
+ option (google.api.http) = {
66
+ get: "/cloud/operations/{async_operation_id}",
67
+ };
68
+ }
69
+
70
+ // Create a new namespace
71
+ rpc CreateNamespace (CreateNamespaceRequest) returns (CreateNamespaceResponse) {
72
+ option (google.api.http) = {
73
+ post: "/cloud/namespaces",
74
+ body: "*"
75
+ };
76
+ }
77
+
78
+ // Get all namespaces
79
+ rpc GetNamespaces (GetNamespacesRequest) returns (GetNamespacesResponse) {
80
+ option (google.api.http) = {
81
+ get: "/cloud/namespaces",
82
+ };
83
+ }
84
+
85
+ // Get a namespace
86
+ rpc GetNamespace (GetNamespaceRequest) returns (GetNamespaceResponse) {
87
+ option (google.api.http) = {
88
+ get: "/cloud/namespaces/{namespace}",
89
+ };
90
+ }
91
+
92
+ // Update a namespace
93
+ rpc UpdateNamespace (UpdateNamespaceRequest) returns (UpdateNamespaceResponse) {
94
+ option (google.api.http) = {
95
+ post: "/cloud/namespaces/{namespace}",
96
+ body: "*"
97
+ };
98
+ }
99
+
100
+ // Rename an existing customer search attribute
101
+ rpc RenameCustomSearchAttribute (RenameCustomSearchAttributeRequest) returns (RenameCustomSearchAttributeResponse) {
102
+ option (google.api.http) = {
103
+ post: "/cloud/namespaces/{namespace}/rename-custom-search-attribute",
104
+ body: "*"
105
+ };
106
+ }
107
+
108
+ // Delete a namespace
109
+ rpc DeleteNamespace (DeleteNamespaceRequest) returns (DeleteNamespaceResponse) {
110
+ option (google.api.http) = {
111
+ delete: "/cloud/namespaces/{namespace}",
112
+ };
113
+ }
114
+
115
+ // Failover a multi-region namespace
116
+ rpc FailoverNamespaceRegion (FailoverNamespaceRegionRequest) returns (FailoverNamespaceRegionResponse) {
117
+ option (google.api.http) = {
118
+ post: "/cloud/namespaces/{namespace}/failover-region",
119
+ body: "*"
120
+ };
121
+ }
122
+
123
+ // Add a new region to a namespace
124
+ rpc AddNamespaceRegion (AddNamespaceRegionRequest) returns (AddNamespaceRegionResponse) {
125
+ option (google.api.http) = {
126
+ post: "/cloud/namespaces/{namespace}/add-region",
127
+ body: "*"
128
+ };
129
+ }
130
+
131
+ // Get all regions
132
+ rpc GetRegions (GetRegionsRequest) returns (GetRegionsResponse) {
133
+ option (google.api.http) = {
134
+ get: "/cloud/regions",
135
+ };
136
+ }
137
+
138
+ // Get a region
139
+ rpc GetRegion (GetRegionRequest) returns (GetRegionResponse) {
140
+ option (google.api.http) = {
141
+ get: "/cloud/regions/{region}",
142
+ };
143
+ }
144
+
145
+ // Get all known API keys
146
+ rpc GetApiKeys (GetApiKeysRequest) returns (GetApiKeysResponse) {
147
+ option (google.api.http) = {
148
+ get: "/cloud/api-keys",
149
+ };
150
+ }
151
+
152
+ // Get an API key
153
+ rpc GetApiKey (GetApiKeyRequest) returns (GetApiKeyResponse) {
154
+ option (google.api.http) = {
155
+ get: "/cloud/api-keys/{key_id}",
156
+ };
157
+ }
158
+
159
+ // Create an API key
160
+ rpc CreateApiKey (CreateApiKeyRequest) returns (CreateApiKeyResponse) {
161
+ option (google.api.http) = {
162
+ post: "/cloud/api-keys",
163
+ body: "*"
164
+ };
165
+ }
166
+
167
+ // Update an API key
168
+ rpc UpdateApiKey (UpdateApiKeyRequest) returns (UpdateApiKeyResponse) {
169
+ option (google.api.http) = {
170
+ post: "/cloud/api-keys/{key_id}",
171
+ body: "*"
172
+ };
173
+ }
174
+
175
+ // Delete an API key
176
+ rpc DeleteApiKey (DeleteApiKeyRequest) returns (DeleteApiKeyResponse) {
177
+ option (google.api.http) = {
178
+ delete: "/cloud/api-keys/{key_id}",
179
+ };
180
+ }
181
+
182
+ // Get all user groups
183
+ rpc GetUserGroups (GetUserGroupsRequest) returns (GetUserGroupsResponse) {
184
+ option (google.api.http) = {
185
+ get: "/cloud/user-groups",
186
+ };
187
+ }
188
+
189
+ // Get a user group
190
+ rpc GetUserGroup (GetUserGroupRequest) returns (GetUserGroupResponse) {
191
+ option (google.api.http) = {
192
+ get: "/cloud/user-groups/{group_id}",
193
+ };
194
+ }
195
+
196
+ // Create new a user group
197
+ rpc CreateUserGroup (CreateUserGroupRequest) returns (CreateUserGroupResponse) {
198
+ option (google.api.http) = {
199
+ post: "/cloud/user-groups",
200
+ body: "*"
201
+ };
202
+ }
203
+
204
+ // Update a user group
205
+ rpc UpdateUserGroup (UpdateUserGroupRequest) returns (UpdateUserGroupResponse) {
206
+ option (google.api.http) = {
207
+ post: "/cloud/user-groups/{group_id}",
208
+ body: "*"
209
+ };
210
+ }
211
+
212
+ // Delete a user group
213
+ rpc DeleteUserGroup (DeleteUserGroupRequest) returns (DeleteUserGroupResponse) {
214
+ option (google.api.http) = {
215
+ delete: "/cloud/user-groups/{group_id}",
216
+ };
217
+ }
218
+
219
+ // Set a user group's access to a namespace
220
+ rpc SetUserGroupNamespaceAccess (SetUserGroupNamespaceAccessRequest) returns (SetUserGroupNamespaceAccessResponse) {
221
+ option (google.api.http) = {
222
+ post: "/cloud/namespaces/{namespace}/user-groups/{group_id}/access",
223
+ body: "*"
224
+ };
225
+ }
226
+
227
+ // Create a service account.
228
+ rpc CreateServiceAccount(CreateServiceAccountRequest) returns (CreateServiceAccountResponse) {
229
+ option (google.api.http) = {
230
+ post: "/cloud/service-accounts",
231
+ body: "*"
232
+ };
233
+ }
234
+
235
+ // Get a service account.
236
+ rpc GetServiceAccount(GetServiceAccountRequest) returns (GetServiceAccountResponse) {
237
+ option (google.api.http) = {
238
+ get: "/cloud/service-accounts/{service_account_id}",
239
+ };
240
+ }
241
+
242
+ // Get service accounts.
243
+ rpc GetServiceAccounts(GetServiceAccountsRequest) returns (GetServiceAccountsResponse) {
244
+ option (google.api.http) = {
245
+ get: "/cloud/service-accounts",
246
+ };
247
+ }
248
+
249
+ // Update a service account.
250
+ rpc UpdateServiceAccount(UpdateServiceAccountRequest) returns (UpdateServiceAccountResponse) {
251
+ option (google.api.http) = {
252
+ post: "/cloud/service-accounts/{service_account_id}",
253
+ body: "*"
254
+ };
255
+ }
256
+
257
+ // Delete a service account.
258
+ rpc DeleteServiceAccount(DeleteServiceAccountRequest) returns (DeleteServiceAccountResponse) {
259
+ option (google.api.http) = {
260
+ delete: "/cloud/service-accounts/{service_account_id}",
261
+ };
262
+ }
263
+ }
@@ -0,0 +1,173 @@
1
+ syntax = "proto3";
2
+
3
+ package temporal.api.cloud.identity.v1;
4
+
5
+ option go_package = "go.temporal.io/api/cloud/identity/v1;identity";
6
+ option java_package = "io.temporal.api.cloud.identity.v1";
7
+ option java_multiple_files = true;
8
+ option java_outer_classname = "MessageProto";
9
+ option ruby_package = "Temporalio::Api::Cloud::Identity::V1";
10
+ option csharp_namespace = "Temporalio.Api.Cloud.Identity.V1";
11
+
12
+ import "google/protobuf/timestamp.proto";
13
+
14
+ message AccountAccess {
15
+ // The role on the account, should be one of [admin, developer, read]
16
+ // admin - gives full access the account, including users and namespaces
17
+ // developer - gives access to create namespaces on the account
18
+ // read - gives read only access to the account
19
+ string role = 1;
20
+ }
21
+
22
+ message NamespaceAccess {
23
+ // The permission to the namespace, should be one of [admin, write, read]
24
+ // admin - gives full access to the namespace, including assigning namespace access to other users
25
+ // write - gives write access to the namespace configuration and workflows within the namespace
26
+ // read - gives read only access to the namespace configuration and workflows within the namespace
27
+ string permission = 1;
28
+ }
29
+
30
+ message Access {
31
+ // The account access
32
+ AccountAccess account_access = 1;
33
+ // The map of namespace accesses
34
+ // The key is the namespace name and the value is the access to the namespace
35
+ map<string, NamespaceAccess> namespace_accesses = 2;
36
+ }
37
+
38
+ message UserSpec {
39
+ // The email address associated to the user
40
+ string email = 1;
41
+ // The access to assigned to the user
42
+ Access access = 2;
43
+ }
44
+
45
+ message Invitation {
46
+ // The date and time when the user was created
47
+ google.protobuf.Timestamp created_time = 1;
48
+ // The date and time when the invitation expires or has expired
49
+ google.protobuf.Timestamp expired_time = 2;
50
+ }
51
+
52
+ message User {
53
+ // The id of the user
54
+ string id = 1;
55
+ // The current version of the user specification
56
+ // The next update operation will have to include this version
57
+ string resource_version = 2;
58
+ // The user specification
59
+ UserSpec spec = 3;
60
+ // The current state of the user
61
+ string state = 4;
62
+ // The id of the async operation that is creating/updating/deleting the user, if any
63
+ string async_operation_id = 5;
64
+ // The details of the open invitation sent to the user, if any
65
+ Invitation invitation = 6;
66
+ // The date and time when the user was created
67
+ google.protobuf.Timestamp created_time = 7;
68
+ // The date and time when the user was last modified
69
+ // Will not be set if the user has never been modified
70
+ google.protobuf.Timestamp last_modified_time = 8;
71
+ }
72
+
73
+ message UserGroupSpec {
74
+ // The name of the group as defined in the customer's IdP (e.g. Google group name in Google Workspace)
75
+ // The name is immutable. Once set, it cannot be changed
76
+ string name = 1;
77
+ // The access assigned to the group
78
+ Access access = 2;
79
+ }
80
+
81
+ message UserGroup {
82
+ // The id of the group
83
+ string id = 1;
84
+ // The current version of the group specification
85
+ // The next update operation will have to include this version
86
+ string resource_version = 2;
87
+ // The group specification
88
+ UserGroupSpec spec = 3;
89
+ // The current state of the group
90
+ string state = 4;
91
+ // The id of the async operation that is creating/updating/deleting the group, if any
92
+ string async_operation_id = 5;
93
+ // The date and time when the group was created
94
+ google.protobuf.Timestamp created_time = 6;
95
+ // The date and time when the group was last modified
96
+ // Will not be set if the group has never been modified
97
+ google.protobuf.Timestamp last_modified_time = 7;
98
+ }
99
+
100
+ message ServiceAccount {
101
+ // The id of the service account.
102
+ string id = 1;
103
+ // The current version of the service account specification.
104
+ // The next update operation will have to include this version.
105
+ string resource_version = 2;
106
+ // The service account specification.
107
+ ServiceAccountSpec spec = 3;
108
+ // The current state of the service account.
109
+ // Possible values: activating, activationfailed, active, updating, updatefailed, deleting, deletefailed, deleted, suspending, suspendfailed, suspended.
110
+ // For any failed state, reach out to Temporal Cloud support for remediation.
111
+ string state = 4;
112
+ // The id of the async operation that is creating/updating/deleting the service account, if any.
113
+ string async_operation_id = 5;
114
+ // The date and time when the service account was created.
115
+ google.protobuf.Timestamp created_time = 6;
116
+ // The date and time when the service account was last modified
117
+ // Will not be set if the service account has never been modified.
118
+ google.protobuf.Timestamp last_modified_time = 7;
119
+ }
120
+
121
+ message ServiceAccountSpec {
122
+ // The name associated with the service account.
123
+ // The name is mutable, but must be unique across all your active service accounts.
124
+ string name = 1;
125
+ // The access assigned to the service account.
126
+ // The access is mutable.
127
+ Access access = 2;
128
+ // The description associated with the service account - optional.
129
+ // The description is mutable.
130
+ string description = 3;
131
+ }
132
+
133
+
134
+ message ApiKey {
135
+ // The id of the API Key.
136
+ string id = 1;
137
+ // The current version of the API key specification.
138
+ // The next update operation will have to include this version.
139
+ string resource_version = 2;
140
+ // The API key specification.
141
+ ApiKeySpec spec = 3;
142
+ // The current state of the API key.
143
+ // Possible values: activating, activationfailed, active, updating, updatefailed, deleting, deletefailed, deleted, suspending, suspendfailed, suspended.
144
+ // For any failed state, reach out to Temporal Cloud support for remediation.
145
+ string state = 4;
146
+ // The id of the async operation that is creating/updating/deleting the API key, if any.
147
+ string async_operation_id = 5;
148
+ // The date and time when the API key was created.
149
+ google.protobuf.Timestamp created_time = 6;
150
+ // The date and time when the API key was last modified.
151
+ // Will not be set if the API key has never been modified.
152
+ google.protobuf.Timestamp last_modified_time = 7;
153
+ }
154
+
155
+ message ApiKeySpec {
156
+ // The id of the owner to create the API key for.
157
+ // The owner id is immutable. Once set during creation, it cannot be changed.
158
+ // The owner id is the id of the user when the owner type is 'user'.
159
+ // The owner id is the id of the service account when the owner type is 'service-account'.
160
+ string owner_id = 1;
161
+ // The type of the owner to create the API key for.
162
+ // The owner type is immutable. Once set during creation, it cannot be changed.
163
+ // Possible values: user, service-account.
164
+ string owner_type = 2;
165
+ // The display name of the API key.
166
+ string display_name = 3;
167
+ // The description of the API key.
168
+ string description = 4;
169
+ // The expiry time of the API key.
170
+ google.protobuf.Timestamp expiry_time = 5;
171
+ // True if the API key is disabled.
172
+ bool disabled = 6;
173
+ }
@@ -0,0 +1,164 @@
1
+ syntax = "proto3";
2
+
3
+ package temporal.api.cloud.namespace.v1;
4
+
5
+ option go_package = "go.temporal.io/api/cloud/namespace/v1;namespace";
6
+ option java_package = "io.temporal.api.cloud.namespace.v1";
7
+ option java_multiple_files = true;
8
+ option java_outer_classname = "MessageProto";
9
+ option ruby_package = "Temporalio::Api::Cloud::Namespace::V1";
10
+ option csharp_namespace = "Temporalio.Api.Cloud.Namespace.V1";
11
+
12
+ import "google/protobuf/timestamp.proto";
13
+
14
+ message CertificateFilterSpec {
15
+ // The common_name in the certificate.
16
+ // Optional, default is empty.
17
+ string common_name = 1;
18
+ // The organization in the certificate.
19
+ // Optional, default is empty.
20
+ string organization = 2;
21
+ // The organizational_unit in the certificate.
22
+ // Optional, default is empty.
23
+ string organizational_unit = 3;
24
+ // The subject_alternative_name in the certificate.
25
+ // Optional, default is empty.
26
+ string subject_alternative_name = 4;
27
+ }
28
+
29
+ message MtlsAuthSpec {
30
+ // The base64 encoded ca cert(s) in PEM format that the clients can use for authentication and authorization.
31
+ // This must only be one value, but the CA can have a chain.
32
+ //
33
+ // (-- api-linter: core::0140::base64=disabled --)
34
+ string accepted_client_ca = 1;
35
+ // Certificate filters which, if specified, only allow connections from client certificates whose distinguished name properties match at least one of the filters.
36
+ // This allows limiting access to specific end-entity certificates.
37
+ // Optional, default is empty.
38
+ repeated CertificateFilterSpec certificate_filters = 2;
39
+ // Flag to enable mTLS auth (default: disabled).
40
+ // Note: disabling mTLS auth will cause existing mTLS connections to fail.
41
+ // temporal:versioning:min_version=2024-05-13-00
42
+ bool enabled = 3;
43
+ }
44
+
45
+ message ApiKeyAuthSpec {
46
+ // Flag to enable API key auth (default: disabled).
47
+ // Note: disabling API key auth will cause existing API key connections to fail.
48
+ bool enabled = 1;
49
+ }
50
+
51
+ message CodecServerSpec {
52
+ // The codec server endpoint.
53
+ string endpoint = 1;
54
+ // Whether to pass the user access token with your endpoint.
55
+ bool pass_access_token = 2;
56
+ // Whether to include cross-origin credentials.
57
+ bool include_cross_origin_credentials = 3;
58
+ }
59
+
60
+ message NamespaceSpec {
61
+ // The name to use for the namespace.
62
+ // This will create a namespace that's available at '<name>.<account>.tmprl.cloud:7233'.
63
+ // The name is immutable. Once set, it cannot be changed.
64
+ string name = 1;
65
+ // The ids of the regions where the namespace should be available.
66
+ // The GetRegions API can be used to get the list of valid region ids.
67
+ // Specifying more than one region makes the namespace "global", which is currently a preview only feature with restricted access.
68
+ // Please reach out to Temporal support for more information on global namespaces.
69
+ // When provisioned the global namespace will be active on the first region in the list and passive on the rest.
70
+ // Number of supported regions is 2.
71
+ // The regions is immutable. Once set, it cannot be changed.
72
+ // Example: ["aws-us-west-2"].
73
+ repeated string regions = 2;
74
+ // The number of days the workflows data will be retained for.
75
+ // Changes to the retention period may impact your storage costs.
76
+ // Any changes to the retention period will be applied to all new running workflows.
77
+ int32 retention_days = 3;
78
+ // The mTLS auth configuration for the namespace.
79
+ // If unspecified, mTLS will be disabled.
80
+ MtlsAuthSpec mtls_auth = 4;
81
+ // The API key auth configuration for the namespace.
82
+ // If unspecified, API keys will be disabled.
83
+ // temporal:versioning:min_version=2024-05-13-00
84
+ ApiKeyAuthSpec api_key_auth = 7;
85
+ // The custom search attributes to use for the namespace.
86
+ // The name of the attribute is the key and the type is the value.
87
+ // Supported attribute types: text, keyword, int, double, bool, datetime, keyword_list.
88
+ // NOTE: currently deleting a search attribute is not supported.
89
+ // Optional, default is empty.
90
+ map<string, string> custom_search_attributes = 5;
91
+ // Codec server spec used by UI to decode payloads for all users interacting with this namespace.
92
+ // Optional, default is unset.
93
+ CodecServerSpec codec_server = 6;
94
+ }
95
+
96
+ message Endpoints {
97
+ // The web UI address.
98
+ string web_address = 1;
99
+ // The gRPC address for mTLS client connections (may be empty if mTLS is disabled).
100
+ string mtls_grpc_address = 2;
101
+ // The gRPC address for API key client connections (may be empty if API keys are disabled).
102
+ string grpc_address = 3;
103
+ }
104
+
105
+ message Limits {
106
+ // The number of actions per second (APS) that is currently allowed for the namespace.
107
+ // The namespace may be throttled if its APS exceeds the limit.
108
+ int32 actions_per_second_limit = 1;
109
+ }
110
+
111
+ message AWSPrivateLinkInfo {
112
+ // The list of principal arns that are allowed to access the namespace on the private link.
113
+ repeated string allowed_principal_arns = 1;
114
+ // The list of vpc endpoint service names that are associated with the namespace.
115
+ repeated string vpc_endpoint_service_names = 2;
116
+ }
117
+
118
+
119
+ message PrivateConnectivity {
120
+ // The id of the region where the private connectivity applies.
121
+ string region = 1;
122
+ // The AWS PrivateLink info.
123
+ // This will only be set for an aws region.
124
+ AWSPrivateLinkInfo aws_private_link = 2;
125
+ }
126
+
127
+ message Namespace {
128
+ // The namespace identifier.
129
+ string namespace = 1;
130
+ // The current version of the namespace specification.
131
+ // The next update operation will have to include this version.
132
+ string resource_version = 2;
133
+ // The namespace specification.
134
+ NamespaceSpec spec = 3;
135
+ // The current state of the namespace.
136
+ string state = 4;
137
+ // The id of the async operation that is creating/updating/deleting the namespace, if any.
138
+ string async_operation_id = 5;
139
+ // The endpoints for the namespace.
140
+ Endpoints endpoints = 6;
141
+ // The currently active region for the namespace.
142
+ string active_region = 7;
143
+ // The limits set on the namespace currently.
144
+ Limits limits = 8;
145
+ // The private connectivities for the namespace, if any.
146
+ repeated PrivateConnectivity private_connectivities = 9;
147
+ // The date and time when the namespace was created.
148
+ google.protobuf.Timestamp created_time = 10;
149
+ // The date and time when the namespace was last modified.
150
+ // Will not be set if the namespace has never been modified.
151
+ google.protobuf.Timestamp last_modified_time = 11;
152
+ // The status of each region where the namespace is available.
153
+ // The id of the region is the key and the status is the value of the map.
154
+ map<string, NamespaceRegionStatus> region_status = 12;
155
+ }
156
+
157
+ message NamespaceRegionStatus {
158
+ // The current state of the namespace region.
159
+ // Possible values: adding, active, passive, removing, failed.
160
+ // For any failed state, reach out to Temporal Cloud support for remediation.
161
+ string state = 1;
162
+ // The id of the async operation that is making changes to where the namespace is available, if any.
163
+ string async_operation_id = 2;
164
+ }
@@ -0,0 +1,36 @@
1
+ syntax = "proto3";
2
+
3
+ package temporal.api.cloud.operation.v1;
4
+
5
+ option go_package = "go.temporal.io/api/cloud/operation/v1;operation";
6
+ option java_package = "io.temporal.api.cloud.operation.v1";
7
+ option java_multiple_files = true;
8
+ option java_outer_classname = "MessageProto";
9
+ option ruby_package = "Temporalio::Api::Cloud::Operation::V1";
10
+ option csharp_namespace = "Temporalio.Api.Cloud.Operation.V1";
11
+
12
+ import "google/protobuf/duration.proto";
13
+ import "google/protobuf/timestamp.proto";
14
+ import "google/protobuf/any.proto";
15
+
16
+ message AsyncOperation {
17
+ // The operation id
18
+ string id = 1;
19
+ // The current state of this operation
20
+ // Possible values are: pending, in_progress, failed, cancelled, fulfilled
21
+ string state = 2;
22
+ // The recommended duration to check back for an update in the operation's state
23
+ google.protobuf.Duration check_duration = 3;
24
+ // The type of operation being performed
25
+ string operation_type = 4;
26
+ // The input to the operation being performed
27
+ //
28
+ // (-- api-linter: core::0146::any=disabled --)
29
+ google.protobuf.Any operation_input = 5;
30
+ // If the operation failed, the reason for the failure
31
+ string failure_reason = 6;
32
+ // The date and time when the operation initiated
33
+ google.protobuf.Timestamp started_time = 7;
34
+ // The date and time when the operation completed
35
+ google.protobuf.Timestamp finished_time = 8;
36
+ }
@@ -0,0 +1,22 @@
1
+ syntax = "proto3";
2
+
3
+ package temporal.api.cloud.region.v1;
4
+
5
+ option go_package = "go.temporal.io/api/cloud/region/v1;region";
6
+ option java_package = "io.temporal.api.cloud.region.v1";
7
+ option java_multiple_files = true;
8
+ option java_outer_classname = "MessageProto";
9
+ option ruby_package = "Temporalio::Api::Cloud::Region::V1";
10
+ option csharp_namespace = "Temporalio.Api.Cloud.Region.V1";
11
+
12
+ message Region {
13
+ // The id of the temporal cloud region.
14
+ string id = 1;
15
+ // The name of the cloud provider that's hosting the region.
16
+ // Currently only "aws" is supported.
17
+ string cloud_provider = 2;
18
+ // The region identifier as defined by the cloud provider.
19
+ string cloud_provider_region = 3;
20
+ // The human readable location of the region.
21
+ string location = 4;
22
+ }