From d4eff4be4f4b1c8f631d2cd8cd0d93070cd95768 Mon Sep 17 00:00:00 2001 From: shivam-ajmera Date: Mon, 9 Dec 2024 16:11:53 -0500 Subject: [PATCH] Squashed commit of the following: commit 68fbf1df80cc815b61c0c6e64d91fd10349e0d54 Author: Shivam Ajmera <32297604+shivam-ajmera@users.noreply.github.com> Date: Mon Dec 9 15:54:02 2024 -0500 Revert temp buf change (#52) revert commit f815f03249d3b692fa40672f3bdb9f7e3a312822 Author: Shivam Ajmera <32297604+shivam-ajmera@users.noreply.github.com> Date: Mon Dec 9 15:23:41 2024 -0500 Add missing langs' support (#51) add more langs commit 084556f979afade68d6c1539a4778fe9770f2fce Author: alice-yin <124640969+alice-yin@users.noreply.github.com> Date: Fri Nov 15 14:27:34 2024 -0800 add region to gcs spec (#48) commit 75301fa72680c36255a65f8d7f4bf001f424272e Author: alice-yin <124640969+alice-yin@users.noreply.github.com> Date: Wed Nov 6 11:31:43 2024 -0800 Add Export Sink Api (#42) * add export api * add export sink api * address comments * pull in internal proto changes * move export sink spec to namespace spec * address comments commit 3bccd9912c9afb4af57b61c59ee18461d3cc3242 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Thu Oct 17 12:59:31 2024 -0400 Revert buf temporary change (#46) commit 138a2ad20c1d033859cef89adb7298c2360b6757 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Mon Oct 7 11:19:16 2024 -0700 [Breaking] Replace strings with enums where ever applicable. (#36) commit dd93c3e92eceab04b75545ced071203e1b291ecf Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Fri Oct 4 15:41:02 2024 -0700 Account get and udpate apis (#14) commit 7887a9cf05d64dd598dc0054f99b815ef46e9517 Author: Shivam Ajmera <32297604+shivam-ajmera@users.noreply.github.com> Date: Fri Sep 27 13:25:02 2024 -0400 Add Usage API (#41) * usage * proto * Update comment - for incomplete field * nit: comment * nit2: comment commit 0a01b742b0aebd1e0cea0a48914f9b517e0ec174 Author: mastermanu Date: Tue Aug 27 10:29:51 2024 -0400 Adds Nexus Endpoint (#23) * init checkin * fixes stuff * fix build break * more changes * change endpoint_id --> id * more changes * more changes * more changes * address some of comments * more changes * more changes * remove /update suffix * more changes * more changes * more changes * changes * Sync Nexus Cloud API (#40) - Update endpoint name regex - Add endpoint description - Rename CloudWorkerTargetSpec to WorkerTargetSpec - Add next_page_token to GetNexusEndpointsResponse - Group nexus related request and responses together. * Remove /api/v1 prefix for HTTP paths * Fix spacing. * Nexus enum and oneof changes --------- Co-authored-by: nikki-dag <161385222+nikki-dag@users.noreply.github.com> Co-authored-by: Nikki Dag commit ad43975957a39fb44bc20fe974926d963defbdb8 Author: beardo Date: Tue Aug 13 12:33:09 2024 -0600 feat: add owner and finance admin roles CLD-3326 (#39) commit 508379bad5b0ec0275dc5c0f4a8a884fbb6e7123 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Tue Jun 18 12:42:48 2024 -0700 [Breaking] Reorg the user-group apis with a explicit google group spec field. (#33) commit d5b163e813437ba70369acf26ebbdc020bb5c888 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Mon Jun 17 17:11:05 2024 -0700 add more comments around region ids (#34) commit 05af6e5412c84abab95cc960784aa1afd38f2828 Author: Chad Retz Date: Mon Jun 10 15:09:12 2024 -0500 Removed /api/v1 prefix for HTTP paths (#32) Fixes #39 commit 6ddaddd7febe3904082a0efb41845942e9c324b2 Author: mattkim Date: Wed May 22 15:30:53 2024 -0700 Api key crud operations (#25) commit f2e3fdeee51e8e1bf0f7626adf59732b6ec8ebbe Author: shakeelrao Date: Thu May 16 12:59:01 2024 -0400 Switch buf.yaml config to FILE (#30) commit a429e6c769e62e4fa1fc2e8729b907c680665f98 Merge: da16fe0 3850321 Author: shakeelrao Date: Tue May 14 19:28:05 2024 -0400 Merge pull request #28 from temporalio/shakeel/opt-mtls Support optional mTLS commit da16fe0e5736e8a929ad5a7ee2a48f29e2650bef Merge: 16424f6 37895ee Author: Yu Xia Date: Tue May 14 15:34:08 2024 -0700 Merge pull request #29 from temporalio/mrn-v2 Update Multi-Region Namespace APIs commit 37895ee28e780973a853d80de43c9f01acf56cd3 Author: yux0 Date: Tue May 14 15:08:29 2024 -0700 Update comment commit 24598e1f4a02bba6100631189b74154b4026c407 Author: Yu Xia Date: Tue May 14 11:53:04 2024 -0700 Update service.proto Co-authored-by: Chad Retz commit 2c7a9bf3aeb06e42566bad62913bff9bc79335ed Author: Yu Xia Date: Tue May 14 11:52:59 2024 -0700 Update service.proto Co-authored-by: Chad Retz commit cba8a02fb53d542e56acb8c167a7aabea8212eb7 Author: yux0 Date: Tue May 14 11:27:50 2024 -0700 Update Multi-Region Namespace APIs commit 385032107eb9fc9e8ce0cea2b6b4db9dcfee73f0 Author: Shakeel Rao Date: Mon May 13 17:18:10 2024 -0400 switch wire temporarily commit 24db56377d0cd772e24f467f3b2b2000d1964e15 Author: Shakeel Rao Date: Mon May 13 17:17:35 2024 -0400 wire commit c14d2059714b3c13f3877a96ad78763ba5cd4556 Author: Shakeel Rao Date: Mon May 13 16:50:37 2024 -0400 opt mtls commit 16424f6482ce6d41008b5ba440a6fa6eb3b94faa Author: Travis <1060873+tminusplus@users.noreply.github.com> Date: Mon May 13 13:20:32 2024 -0700 Add service account CRUD APIs (#26) commit 6e8267e4dfab8645230a5445c84cdd0284327a4b Merge: 89ba5e1 f7a4bd6 Author: Xinyi Chen Date: Thu May 9 16:34:34 2024 -0700 Merge pull request #22 from temporalio/xinyi/group-crud Introduce user group management APIs commit f7a4bd690d10aeb5b36e95529cc9070739ed20f2 Author: Xinyi Chen Date: Thu May 9 16:28:07 2024 -0700 update comment commit 47830503c2b3ec59eed0769d6d9363aa94e02d87 Author: Xinyi Chen Date: Thu May 9 15:49:33 2024 -0700 address comments commit 9316ca7231a4e01243a21331b5b645d729e55076 Author: Xinyi Chen Date: Fri May 3 12:21:18 2024 -0700 update comment commit 6449153f6cb1d99180e9b99667130e797bba4817 Author: Xinyi Chen Date: Wed Apr 24 14:51:07 2024 -0700 update const commit 00383b0492249d5c9ca051f47714ce9f873ee699 Author: Xinyi Chen Date: Wed Apr 24 13:18:09 2024 -0700 rename to type commit 395bd0e8f5c1c2360c8111205da9f8dbd1c2f404 Author: Xinyi Chen Date: Wed Apr 24 09:04:15 2024 -0700 change type to host_type commit f6da1b5e21c31aac956bc217964a3c19814a9c59 Author: Xinyi Chen Date: Mon Apr 22 14:54:52 2024 -0700 update comment commit a50075deaa9c0f154faf2a330c6323386523de7a Author: Xinyi Chen Date: Mon Apr 22 14:44:21 2024 -0700 Add filter and update comment commit fc2f6e18a0ea4c52c3c170a13eae3a894660f744 Author: Xinyi Chen Date: Wed Apr 17 09:48:32 2024 -0700 fix reference commit 0ceb7822c6cde6fe885fec0fdbc9a81e4a63cb51 Author: Xinyi Chen Date: Wed Apr 17 09:40:21 2024 -0700 consistency commit 1c7fa20564f3a5c502f4d5c8d3bdff9037612b87 Author: Xinyi Chen Date: Wed Apr 17 09:34:34 2024 -0700 update comments commit 0a735b1987f0a1c3cdbc1a68a7bb90e702b26436 Author: Xinyi Chen Date: Wed Apr 17 09:28:23 2024 -0700 -> user group commit 66dbd895c24b7f2484c355a30809f161e2567095 Author: Xinyi Chen Date: Tue Apr 16 14:34:14 2024 -0700 fix CreateUserGroupRequest commit 3023eed08bf417bcd0e210fbafc17247854639cc Author: Xinyi Chen Date: Tue Apr 16 14:29:02 2024 -0700 rename to user group commit d0036c92dfb9d147ac66065af2843e00f586a22e Author: Xinyi Chen Date: Tue Apr 16 14:20:40 2024 -0700 wording commit c8cb84d711a4807f449083ae99b2a6716de88d65 Author: Xinyi Chen Date: Tue Apr 16 14:20:05 2024 -0700 mutability commit ef1fa99695940fbf176fb50966731ec6bf2f8d9f Author: Xinyi Chen Date: Tue Apr 16 14:14:09 2024 -0700 add state and async op id commit 18103b8923d2f5fcdbac83edce338c92438014ca Author: Xinyi Chen Date: Tue Apr 16 14:10:06 2024 -0700 update http path commit d4d254ddd5853e52b1162b72e7677b4f0f845818 Author: Xinyi Chen Date: Tue Apr 16 13:53:47 2024 -0700 . commit a91d840374009a989a1b3dcf0561eeacf319c0e2 Author: Xinyi Chen Date: Tue Apr 16 09:02:24 2024 -0700 Introduce group management APIs commit 89ba5e1296b4c90519bd5c8c77fc42f4d38d061c Author: Chad Retz Date: Fri Apr 12 12:38:53 2024 -0500 Add lang packages and update HTTP URLs (#20) * Add lang packages and update HTTP URLs * Added cloud service warning about compatibility commit 5452de384c8ec6bc025d6a7ca039d24333495ebd Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Tue Mar 19 10:32:26 2024 -0700 Fix tabs in service proto file. (#18) commit 4fff2fd3fa9fa1b1f71aa31ff15d3715d974be5b Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Wed Mar 13 10:06:20 2024 -0700 Fix comment with the correct case for operation statuses. (#17) commit 63c607b6faee0682cda24102e134714e693bcbed Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Fri Nov 17 10:49:26 2023 -0800 Namespace Management APIs (#8) commit fd345e4033bc3b894e328870df1cf77c35fb7e0a Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Mon Oct 9 13:10:26 2023 -0700 Update readme with preview information (#9) commit 18c9e927c41a800dce5aeba97fb66a6cbcb377f3 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Wed Oct 4 15:44:47 2023 -0700 Set version in README (#7) commit 144acf180aedb131abdfd7c1f0759b0826467fd5 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Wed Oct 4 15:34:09 2023 -0700 add information about api versioning (#6) commit f80b21b494b2b51ec9d58b8ed08a4c732ee9bd97 Merge: 28a502c 5aaa1d1 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Tue Sep 26 08:05:53 2023 -0700 Merge pull request #5 from temporalio/abhinav/addReadme Add readme, license and a build ci. commit 5aaa1d1837a271850dc5cb9ca5cdb7c882c434f9 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Tue Sep 26 07:49:32 2023 -0700 updates to readme commit 68070c23022e0bd6e4bd4f27d3fda3859735ab5d Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Tue Sep 26 07:44:18 2023 -0700 add License commit a160017ac64961efa0524089c4a82de62abedd0a Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Tue Sep 26 07:37:29 2023 -0700 minor gix commit 5b98236893b8cd15beb87f9882e99c4a121c1356 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Tue Sep 26 07:34:16 2023 -0700 more fixes commit 497c2ba5a1ce208d59845177901f0a9deff618c7 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Tue Sep 26 07:23:45 2023 -0700 more fixes for buf commit 840db3a2cb7b181e45de45e099fcc81374c79088 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Tue Sep 26 07:18:43 2023 -0700 fix buf breaking commit 2533d00cc9286250e6106a4bac83c60cae66971c Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Tue Sep 26 07:16:28 2023 -0700 fix buf breaking commit 85dfd195037a01ee7beb470636eacd68af6aec46 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Mon Sep 25 11:04:02 2023 -0700 fix self-hosted flag commit 48b58fcbacd1b0668a248fb788daa45b19e04f4c Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Mon Sep 25 11:02:05 2023 -0700 remove self-hosted flag commit a682e0f53f5c9d64555c9490833d25f5b309f116 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Mon Sep 25 11:00:37 2023 -0700 add ci commit 3f929599f1ff7f8a3359325cb9be9f9ef204a0f0 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Mon Sep 25 10:50:13 2023 -0700 add a readme file commit 28a502c0b4015a1b4352cb1f9ea5ae0fa17cd017 Merge: ab9d331 f02b0d1 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Thu Sep 7 09:50:25 2023 -0700 Merge pull request #4 from temporalio/abhinav/userMgmt-minorFix fix tense of invitation create and expiry fields commit f02b0d1717ae9d722a4376ac2e6fad035dfdad33 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Wed Sep 6 19:39:00 2023 -0700 more fixes commit c425324b8ee957cbaf2bd9f8fccd8e165e08cf78 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Wed Sep 6 19:34:40 2023 -0700 fix tense of invitation create and expiry fields commit ab9d331c89544dba332c99e6504dbe5ce49c2211 Merge: bf72035 267b4b9 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Wed Sep 6 17:30:21 2023 -0700 Merge pull request #3 from temporalio/abhinav/userMgmt User mgmt commit 267b4b927663409b52b980f78170f09105f12c12 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Wed Sep 6 17:08:44 2023 -0700 fix for Makefile commit a990132566701379ade8e01d1f53129a2d19c401 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Wed Sep 6 13:54:16 2023 -0700 address review comments commit a12348c93d15dfb4f3361367bac75a849b7121ca Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Wed Sep 6 11:58:53 2023 -0700 minor updates commit 29061baaf5bee68158637057e2ef93a9321a09c1 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Wed Sep 6 11:55:08 2023 -0700 Update temporal/api/cloud/cloudservice/v1/service.proto Co-authored-by: Chad Retz commit 8b4ac137d78bda9a8b858b24812a7c0d30c0daa6 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Wed Sep 6 11:43:14 2023 -0700 minor fix commit f8bb8e5c4247cfda439656e1142f615a32206076 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Wed Sep 6 09:27:18 2023 -0700 fixed the expectation for account role commit 0a950b063d3a0b0516460e056b6deacdcdb24d39 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Tue Sep 5 14:24:16 2023 -0700 a minor fix commit e7ed5374e8e84e35f2b67718ca093f26d4030ebe Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Mon Aug 28 19:43:24 2023 -0700 more fixes commit 9621849f67ef2b5c85de612f14ffd75d6a392fad Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Mon Aug 28 12:19:28 2023 -0700 fix commit c6dda44f47959760f8657b289f3a9291ffeabf9a Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Mon Aug 28 12:17:28 2023 -0700 fix type commit 215b86ca24316af5e03007ea804af7a574692f8f Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Mon Aug 28 12:13:43 2023 -0700 some minor reorg commit 6a4ec7f0fc01870fde3921a60943c3e34dd2bb5a Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Mon Aug 28 08:56:32 2023 -0700 more fixes commit 0ba155c6381c2d365140fe06b3dee90afe00fb9e Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Mon Aug 28 08:46:34 2023 -0700 minor fixes commit 02ad80fe9217defc1e3714408ad5687fc0f901af Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Sun Aug 27 20:02:48 2023 -0700 address review comments commit 1e0e60bb067853e90136f95a3d1ebe0c24fcbfe4 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Fri Aug 25 16:50:57 2023 -0700 address review comments: rename request to operation commit 3a97696984e9c77bb97390d01ea13e055da13d7d Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Fri Aug 25 16:16:26 2023 -0700 address review comments: namespace_id to namespace commit af0a31dc581aa48c9908ff492c70205a13ce8bcf Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Fri Aug 25 16:10:01 2023 -0700 address review comments commit 9e6fbc343bb6ae7e475a1be7ec23877cc7ca5c57 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Wed Aug 23 19:14:50 2023 -0700 address review comments commit e4ca63ddf78d68b88d1ae4e17248caaa09e94c2c Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Tue Aug 22 12:34:03 2023 -0700 more fixes commit 19792ca7a6120a80682d29357371e615dad617a9 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Tue Aug 22 12:32:57 2023 -0700 more updates commit cefcf94e4deee595497afb7717dcaab2ed4c4370 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Sun Aug 20 17:55:53 2023 -0700 more fixes commit 20a4e77cf8609e49f7625eaec7130ac66fd2ba4f Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Sun Aug 20 17:54:49 2023 -0700 more fixes commit f494067d172e71f402beb4e5694a8b3e06e97903 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Sun Aug 20 15:10:17 2023 -0700 more updates commit 92e0c1d7c08e00fa46669eeacfdfd8994fe8fe0f Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Sun Aug 20 14:50:32 2023 -0700 move to using one service commit aa43d28d1d2da25d2d87202ba1a6da1ba7218d3f Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Sat Aug 19 21:48:38 2023 -0700 grpc apis for user management commit 2d02c6c17b1a442a194e658079fb60df17652a23 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Mon Aug 14 23:00:28 2023 -0700 request status apis commit bf72035221710a10036a8237a7a2ddb6dd7b3624 Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Sat Aug 5 11:28:46 2023 -0700 fixes for Makefile commit 48e649728d2c7443b48933534c5a5c7756fafd0b Author: Abhinav Nekkanti <10552725+anekkanti@users.noreply.github.com> Date: Sat Aug 5 11:25:36 2023 -0700 init commit --- .../protos/api_cloud_upstream/VERSION | 2 +- .../api/cloud/account/v1/message.proto | 46 ++++ .../cloudservice/v1/request_response.proto | 259 +++++++++++++++++- .../api/cloud/cloudservice/v1/service.proto | 110 +++++++- .../api/cloud/identity/v1/message.proto | 109 +++++++- .../api/cloud/namespace/v1/message.proto | 106 ++++++- .../temporal/api/cloud/nexus/v1/message.proto | 84 ++++++ .../api/cloud/operation/v1/message.proto | 35 ++- .../api/cloud/region/v1/message.proto | 15 +- .../api/cloud/resource/v1/message.proto | 25 ++ .../temporal/api/cloud/sink/v1/message.proto | 41 +++ .../temporal/api/cloud/usage/v1/message.proto | 59 ++++ 12 files changed, 853 insertions(+), 38 deletions(-) create mode 100644 sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/account/v1/message.proto create mode 100644 sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/nexus/v1/message.proto create mode 100644 sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/resource/v1/message.proto create mode 100644 sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/sink/v1/message.proto create mode 100644 sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/usage/v1/message.proto diff --git a/sdk-core-protos/protos/api_cloud_upstream/VERSION b/sdk-core-protos/protos/api_cloud_upstream/VERSION index b54cee095..22520b51d 100644 --- a/sdk-core-protos/protos/api_cloud_upstream/VERSION +++ b/sdk-core-protos/protos/api_cloud_upstream/VERSION @@ -1 +1 @@ -2024-05-13-00 +2024-10-01-00 diff --git a/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/account/v1/message.proto b/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/account/v1/message.proto new file mode 100644 index 000000000..3412eefe1 --- /dev/null +++ b/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/account/v1/message.proto @@ -0,0 +1,46 @@ +syntax = "proto3"; + +package temporal.api.cloud.account.v1; + +option go_package = "go.temporal.io/api/cloud/account/v1;account"; +option java_package = "io.temporal.api.cloud.account.v1"; +option java_multiple_files = true; +option java_outer_classname = "MessageProto"; +option ruby_package = "Temporalio::Api::Cloud::Account::V1"; +option csharp_namespace = "Temporalio.Api.Cloud.Account.V1"; + +import "temporal/api/cloud/resource/v1/message.proto"; + +message MetricsSpec { + // The ca cert(s) in PEM format that clients connecting to the metrics endpoint can use for authentication. + // This must only be one value, but the CA can have a chain. + bytes accepted_client_ca = 2; +} + +message AccountSpec { + // The metrics specification for this account. + // If not specified, metrics will not be enabled. + MetricsSpec metrics = 1; +} + +message Metrics { + // The prometheus metrics endpoint uri. + // This is only populated when the metrics is enabled in the metrics specification. + string uri = 1; +} + +message Account { + // The id of the account. + string id = 1; + // The account specification. + AccountSpec spec = 2; + // The current version of the account specification. + // The next update operation will have to include this version. + string resource_version = 3; + // The current state of the account. + temporal.api.cloud.resource.v1.ResourceState state = 4; + // The id of the async operation that is updating the account, if any. + string async_operation_id = 5; + // Information related to metrics. + Metrics metrics = 6; +} diff --git a/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/cloudservice/v1/request_response.proto b/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/cloudservice/v1/request_response.proto index 9149e6db4..07c024822 100644 --- a/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/cloudservice/v1/request_response.proto +++ b/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/cloudservice/v1/request_response.proto @@ -9,10 +9,15 @@ option java_outer_classname = "RequestResponseProto"; option ruby_package = "Temporalio::Api::Cloud::CloudService::V1"; option csharp_namespace = "Temporalio.Api.Cloud.CloudService.V1"; +import "google/protobuf/timestamp.proto"; + import "temporal/api/cloud/operation/v1/message.proto"; import "temporal/api/cloud/identity/v1/message.proto"; import "temporal/api/cloud/namespace/v1/message.proto"; +import "temporal/api/cloud/nexus/v1/message.proto"; import "temporal/api/cloud/region/v1/message.proto"; +import "temporal/api/cloud/account/v1/message.proto"; +import "temporal/api/cloud/usage/v1/message.proto"; message GetUsersRequest { // The requested size of the page to retrieve - optional. @@ -269,7 +274,6 @@ message GetRegionResponse { temporal.api.cloud.region.v1.Region region = 1; } - message GetApiKeysRequest { // The requested size of the page to retrieve - optional. // Cannot exceed 1000. Defaults to 100. @@ -280,12 +284,16 @@ message GetApiKeysRequest { string owner_id = 3; // Filter api keys by owner type - optional. // Possible values: user, service-account - string owner_type = 4; + string owner_type_deprecated = 4 [deprecated = true]; + // Filter api keys by owner type - optional. + // temporal:enums:replaces=owner_type_deprecated + temporal.api.cloud.identity.v1.OwnerType owner_type = 5; } message GetApiKeysResponse { // The list of api keys in ascending id order. repeated temporal.api.cloud.identity.v1.ApiKey api_keys = 1; + // The next page's token. string next_page_token = 2; } @@ -304,6 +312,7 @@ message CreateApiKeyRequest { // The spec for the api key to create. // Create api key only supports service-account owner type for now. temporal.api.cloud.identity.v1.ApiKeySpec spec = 1; + // The id to use for this async operation - optional. string async_operation_id = 2; } @@ -311,7 +320,7 @@ message CreateApiKeyRequest { message CreateApiKeyResponse { // The id of the api key created. string key_id = 1; - // The token of the api key created. + // The token of the api key created. // This is a secret and should be stored securely. // It will not be retrievable after this response. string token = 2; @@ -327,6 +336,7 @@ message UpdateApiKeyRequest { // The version of the api key for which this update is intended for. // The latest version can be found in the GetApiKey operation response. string resource_version = 3; + // The id to use for this async operation - optional. string async_operation_id = 4; } @@ -342,6 +352,7 @@ message DeleteApiKeyRequest { // The version of the api key for which this delete is intended for. // The latest version can be found in the GetApiKey operation response. string resource_version = 2; + // The id to use for this async operation - optional. string async_operation_id = 3; } @@ -351,6 +362,95 @@ message DeleteApiKeyResponse { temporal.api.cloud.operation.v1.AsyncOperation async_operation = 1; } +message GetNexusEndpointsRequest { + // The requested size of the page to retrieve - optional. + // Cannot exceed 1000. Defaults to 100. + int32 page_size = 1; + + // The page token if this is continuing from another response - optional. + string page_token = 2; + + // optional, treated as an AND if specified + string target_namespace_id = 3; + + // optional, treated as an AND if specified + string target_task_queue = 4; + + // Filter endpoints by their name - optional, treated as an AND if specified. Specifying this will result in zero or one results. + string name = 5; +} + +message GetNexusEndpointsResponse { + // The list of endpoints in ascending id order. + repeated temporal.api.cloud.nexus.v1.Endpoint endpoints = 1; + + // The next page's token. + string next_page_token = 2; +} + +message GetNexusEndpointRequest { + // The id of the nexus endpoint to get. + string endpoint_id = 1; +} + +message GetNexusEndpointResponse { + // The nexus endpoint. + temporal.api.cloud.nexus.v1.Endpoint endpoint = 1; +} + +message CreateNexusEndpointRequest { + // The spec for the nexus endpoint. + temporal.api.cloud.nexus.v1.EndpointSpec spec = 1; + + // The id to use for this async operation - optional. + string async_operation_id = 2; +} + +message CreateNexusEndpointResponse { + // The id of the endpoint that was created. + string endpoint_id = 1; + + // The async operation. + temporal.api.cloud.operation.v1.AsyncOperation async_operation = 2; +} + +message UpdateNexusEndpointRequest { + // The id of the nexus endpoint to update. + string endpoint_id = 1; + + // The updated nexus endpoint specification. + temporal.api.cloud.nexus.v1.EndpointSpec spec = 2; + + // The version of the nexus endpoint for which this update is intended for. + // The latest version can be found in the GetNexusEndpoint operation response. + string resource_version = 3; + + // The id to use for this async operation - optional. + string async_operation_id = 4; +} + +message UpdateNexusEndpointResponse { + // The async operation. + temporal.api.cloud.operation.v1.AsyncOperation async_operation = 1; +} + +message DeleteNexusEndpointRequest { + // The id of the nexus endpoint to delete. + string endpoint_id = 1; + + // The version of the endpoint for which this delete is intended for. + // The latest version can be found in the GetNexusEndpoint operation response. + string resource_version = 2; + + // The id to use for this async operation - optional. + string async_operation_id = 3; +} + +message DeleteNexusEndpointResponse { + // The async operation + temporal.api.cloud.operation.v1.AsyncOperation async_operation = 1; +} + message GetUserGroupsRequest { // The requested size of the page to retrieve - optional. // Cannot exceed 1000. Defaults to 100. @@ -359,8 +459,15 @@ message GetUserGroupsRequest { string page_token = 2; // Filter groups by the namespace they have access to - optional. string namespace = 3; - // Filter groups by their name - optional. - string group_name = 4; + // Filter groups by the display name - optional. + string display_name = 4; + // Filter groups by the google group specification - optional. + GoogleGroupFilter google_group = 5; + + message GoogleGroupFilter { + // Filter groups by the google group email - optional. + string email_address = 1; + } } message GetUserGroupsResponse { @@ -391,6 +498,7 @@ message CreateUserGroupRequest { message CreateUserGroupResponse { // The id of the group that was created. string group_id = 1; + // The async operation. temporal.api.cloud.operation.v1.AsyncOperation async_operation = 2; } @@ -518,3 +626,144 @@ message DeleteServiceAccountResponse { // The async operation. temporal.api.cloud.operation.v1.AsyncOperation async_operation = 1; } + +message GetUsageRequest { + // Filter for UTC time >= - optional. + // Defaults to: start of the current month. + // Must be: within the last 90 days from the current date. + // Must be: midnight UTC time. + google.protobuf.Timestamp start_time_inclusive = 1; + + // Filter for UTC time < - optional. + // Defaults to: start of the next UTC day. + // Must be: within the last 90 days from the current date. + // Must be: midnight UTC time. + google.protobuf.Timestamp end_time_exclusive = 2; + + // The requested size of the page to retrieve - optional. + // Each count corresponds to a single object - per day per namespace + // Cannot exceed 1000. Defaults to 100. + int32 page_size = 3; + + // The page token if this is continuing from another response - optional. + string page_token = 4; +} + +message GetUsageResponse { + // The list of data based on granularity (per Day for now) + // Ordered by: time range in ascending order + repeated temporal.api.cloud.usage.v1.Summary summaries = 1; + // The next page's token. + string next_page_token = 2; +} + +message GetAccountRequest { +} + +message GetAccountResponse { + // The account. + temporal.api.cloud.account.v1.Account account = 1; +} + +message UpdateAccountRequest { + // The updated account specification to apply. + temporal.api.cloud.account.v1.AccountSpec spec = 1; + // The version of the account for which this update is intended for. + // The latest version can be found in the GetAccount operation response. + string resource_version = 2; + // The id to use for this async operation. + // Optional, if not provided a random id will be generated. + string async_operation_id = 3; +} + +message UpdateAccountResponse { + // The async operation. + temporal.api.cloud.operation.v1.AsyncOperation async_operation = 1; +} + +message CreateNamespaceExportSinkRequest { + // The namespace under which the sink is configured. + string namespace = 1; + // The specification for the export sink. + temporal.api.cloud.namespace.v1.ExportSinkSpec spec = 2; + // Optional. The ID to use for this async operation. + string async_operation_id = 3; +} + +message CreateNamespaceExportSinkResponse { + // The async operation. + temporal.api.cloud.operation.v1.AsyncOperation async_operation = 1; +} + +message GetNamespaceExportSinkRequest { + // The namespace to which the sink belongs. + string namespace = 1; + // The name of the sink to retrieve. + string name = 2; +} + +message GetNamespaceExportSinkResponse { + // The export sink retrieved. + temporal.api.cloud.namespace.v1.ExportSink sink = 1; +} + +message GetNamespaceExportSinksRequest { + // The namespace to which the sinks belong. + string namespace = 1; + // The requested size of the page to retrieve. Cannot exceed 1000. + // Defaults to 100 if not specified. + int32 page_size = 2; + // The page token if this is continuing from another response - optional. + string page_token = 3; +} + +message GetNamespaceExportSinksResponse { + // The list of export sinks retrieved. + repeated temporal.api.cloud.namespace.v1.ExportSink sinks = 1; + // The next page token, set if there is another page. + string next_page_token = 2; +} + +message UpdateNamespaceExportSinkRequest { + // The namespace to which the sink belongs. + string namespace = 1; + // The updated export sink specification. + temporal.api.cloud.namespace.v1.ExportSinkSpec spec = 2; + // The version of the sink to update. The latest version can be + // retrieved using the GetNamespaceExportSink call. + string resource_version = 3; + // The ID to use for this async operation - optional. + string async_operation_id = 4; +} + +message UpdateNamespaceExportSinkResponse { + // The async operation. + temporal.api.cloud.operation.v1.AsyncOperation async_operation = 1; +} + +message DeleteNamespaceExportSinkRequest { + // The namespace to which the sink belongs. + string namespace = 1; + // The name of the sink to delete. + string name = 2; + // The version of the sink to delete. The latest version can be + // retrieved using the GetNamespaceExportSink call. + string resource_version = 3; + // The ID to use for this async operation - optional. + string async_operation_id = 4; +} + +message DeleteNamespaceExportSinkResponse { + // The async operation. + temporal.api.cloud.operation.v1.AsyncOperation async_operation = 1; +} + +message ValidateNamespaceExportSinkRequest { + // The namespace to which the sink belongs. + string namespace = 1; + // The export sink specification to validate. + temporal.api.cloud.namespace.v1.ExportSinkSpec spec = 2; +} + +message ValidateNamespaceExportSinkResponse { +} diff --git a/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/cloudservice/v1/service.proto b/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/cloudservice/v1/service.proto index f37e6731f..a3e86071b 100644 --- a/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/cloudservice/v1/service.proto +++ b/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/cloudservice/v1/service.proto @@ -74,7 +74,7 @@ service CloudService { body: "*" }; } - + // Get all namespaces rpc GetNamespaces (GetNamespacesRequest) returns (GetNamespacesResponse) { option (google.api.http) = { @@ -179,6 +179,43 @@ service CloudService { }; } + // Gets nexus endpoints + rpc GetNexusEndpoints(GetNexusEndpointsRequest) returns (GetNexusEndpointsResponse) { + option (google.api.http) = { + get: "/cloud/nexus/endpoints", + }; + } + + // Get a nexus endpoint + rpc GetNexusEndpoint(GetNexusEndpointRequest) returns (GetNexusEndpointResponse) { + option (google.api.http) = { + get: "/cloud/nexus/endpoints/{endpoint_id}", + }; + } + + // Create a nexus endpoint + rpc CreateNexusEndpoint(CreateNexusEndpointRequest) returns (CreateNexusEndpointResponse) { + option (google.api.http) = { + post: "/cloud/nexus/endpoints", + body: "*" + }; + } + + // Update a nexus endpoint + rpc UpdateNexusEndpoint(UpdateNexusEndpointRequest) returns (UpdateNexusEndpointResponse) { + option (google.api.http) = { + post: "/cloud/nexus/endpoints/{endpoint_id}", + body: "*" + }; + } + + // Delete a nexus endpoint + rpc DeleteNexusEndpoint(DeleteNexusEndpointRequest) returns (DeleteNexusEndpointResponse) { + option (google.api.http) = { + delete: "/cloud/nexus/endpoints/{endpoint_id}", + }; + } + // Get all user groups rpc GetUserGroups (GetUserGroupsRequest) returns (GetUserGroupsResponse) { option (google.api.http) = { @@ -260,4 +297,73 @@ service CloudService { delete: "/cloud/service-accounts/{service_account_id}", }; } -} + + // WARNING: Pre-Release Feature + // Get usage data across namespaces + rpc GetUsage(GetUsageRequest) returns (GetUsageResponse) { + option (google.api.http) = { + get: "/cloud/usage", + }; + } + + // Get account information. + rpc GetAccount (GetAccountRequest) returns (GetAccountResponse) { + option (google.api.http) = { + get: "/cloud/account", + }; + } + + // Update account information. + rpc UpdateAccount (UpdateAccountRequest) returns (UpdateAccountResponse) { + option (google.api.http) = { + post: "/cloud/account", + body: "*" + }; + } + + // Create an export sink + rpc CreateNamespaceExportSink(CreateNamespaceExportSinkRequest) returns (CreateNamespaceExportSinkResponse) { + option (google.api.http) = { + post: "/cloud/namespaces/{namespace}/export-sinks", + body: "*" + }; + } + + // Get an export sink + rpc GetNamespaceExportSink(GetNamespaceExportSinkRequest) returns (GetNamespaceExportSinkResponse) { + option (google.api.http) = { + get: "/cloud/namespaces/{namespace}/export-sinks/{name}" + }; + } + + // Get export sinks + rpc GetNamespaceExportSinks(GetNamespaceExportSinksRequest) returns (GetNamespaceExportSinksResponse) { + option (google.api.http) = { + get: "/cloud/namespaces/{namespace}/export-sinks" + }; + } + + // Update an export sink + rpc UpdateNamespaceExportSink(UpdateNamespaceExportSinkRequest) returns (UpdateNamespaceExportSinkResponse) { + option (google.api.http) = { + post: "/cloud/namespaces/{namespace}/export-sinks/{spec.name}", + body: "*" + }; + } + + // Delete an export sink + rpc DeleteNamespaceExportSink(DeleteNamespaceExportSinkRequest) returns (DeleteNamespaceExportSinkResponse) { + option (google.api.http) = { + delete: "/cloud/namespaces/{namespace}/export-sinks/{name}" + }; + } + + // Validates an export sink configuration by delivering an empty test file to the specified sink. + // This operation verifies that the sink is correctly configured, accessible, and ready for data export. + rpc ValidateNamespaceExportSink(ValidateNamespaceExportSinkRequest) returns (ValidateNamespaceExportSinkResponse) { + option (google.api.http) = { + post: "/cloud/namespaces/{namespace}/export-sinks/validate", + body: "*" + }; + } +} \ No newline at end of file diff --git a/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/identity/v1/message.proto b/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/identity/v1/message.proto index 5fb617901..dbb749016 100644 --- a/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/identity/v1/message.proto +++ b/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/identity/v1/message.proto @@ -9,14 +9,32 @@ option java_outer_classname = "MessageProto"; option ruby_package = "Temporalio::Api::Cloud::Identity::V1"; option csharp_namespace = "Temporalio.Api.Cloud.Identity.V1"; +import "temporal/api/cloud/resource/v1/message.proto"; import "google/protobuf/timestamp.proto"; message AccountAccess { - // The role on the account, should be one of [admin, developer, read] + // The role on the account, should be one of [owner, admin, developer, financeadmin, read] + // owner - gives full access to the account, including users, namespaces, and billing // admin - gives full access the account, including users and namespaces // developer - gives access to create namespaces on the account + // financeadmin - gives read only access and write access for billing // read - gives read only access to the account - string role = 1; + // Deprecated: Not supported after 2024-10-01-00 api version. Use role instead. + // temporal:versioning:max_version=2024-10-01-00 + string role_deprecated = 1 [deprecated = true]; + // The role on the account. + // temporal:versioning:min_version=2024-10-01-00 + // temporal:enums:replaces=role_deprecated + Role role = 2; + + enum Role { + ROLE_UNSPECIFIED = 0; + ROLE_OWNER = 1; // Gives full access to the account, including users, namespaces, and billing. + ROLE_ADMIN = 2; // Gives full access to the account, including users and namespaces. + ROLE_DEVELOPER = 3; // Gives access to create namespaces on the account. + ROLE_FINANCE_ADMIN = 4; // Gives read only access and write access for billing. + ROLE_READ = 5; // Gives read only access to the account. + } } message NamespaceAccess { @@ -24,7 +42,27 @@ message NamespaceAccess { // admin - gives full access to the namespace, including assigning namespace access to other users // write - gives write access to the namespace configuration and workflows within the namespace // read - gives read only access to the namespace configuration and workflows within the namespace - string permission = 1; + // Deprecated: Not supported after 2024-10-01-00 api version. Use permission instead. + // temporal:versioning:max_version=2024-10-01-00 + string permission_deprecated = 1 [deprecated = true]; + + // The permission to the namespace. + // temporal:versioning:min_version=2024-10-01-00 + // temporal:enums:replaces=permission_deprecated + Permission permission = 2; + + enum Permission { + PERMISSION_UNSPECIFIED = 0; + PERMISSION_ADMIN = 1; // Gives full access to the namespace, including assigning namespace access to other users. + PERMISSION_WRITE = 2; // Gives write access to the namespace configuration and workflows within the namespace. + PERMISSION_READ = 3; // Gives read only access to the namespace configuration and workflows within the namespace. + } +} + +enum OwnerType { + OWNER_TYPE_UNSPECIFIED = 0; + OWNER_TYPE_USER = 1; // The owner is a user. + OWNER_TYPE_SERVICE_ACCOUNT = 2; // The owner is a service account. } message Access { @@ -58,7 +96,14 @@ message User { // The user specification UserSpec spec = 3; // The current state of the user - string state = 4; + // Deprecated: Not supported after 2024-10-01-00 api version. Use state instead. + // temporal:versioning:max_version=2024-10-01-00 + string state_deprecated = 4 [deprecated = true]; + // The current state of the user. + // For any failed state, reach out to Temporal Cloud support for remediation. + // temporal:versioning:min_version=2024-10-01-00 + // temporal:enums:replaces=state_deprecated + temporal.api.cloud.resource.v1.ResourceState state = 9; // The id of the async operation that is creating/updating/deleting the user, if any string async_operation_id = 5; // The details of the open invitation sent to the user, if any @@ -70,12 +115,20 @@ message User { google.protobuf.Timestamp last_modified_time = 8; } +message GoogleGroupSpec { + // The email address of the Google group. + // The email address is immutable. Once set during creation, it cannot be changed. + string email_address = 1; +} + message UserGroupSpec { - // The name of the group as defined in the customer's IdP (e.g. Google group name in Google Workspace) - // The name is immutable. Once set, it cannot be changed - string name = 1; - // The access assigned to the group + // The display name of the group. + string display_name = 1; + // The access assigned to the group. Access access = 2; + // The specification of the google group that this group is associated with. + // For now only google groups are supported, and this field is required. + GoogleGroupSpec google_group = 3; } message UserGroup { @@ -86,8 +139,15 @@ message UserGroup { string resource_version = 2; // The group specification UserGroupSpec spec = 3; - // The current state of the group - string state = 4; + // The current state of the group. + // Deprecated: Not supported after 2024-10-01-00 api version. Use state instead. + // temporal:versioning:max_version=2024-10-01-00 + string state_deprecated = 4 [deprecated = true]; + // The current state of the group. + // For any failed state, reach out to Temporal Cloud support for remediation. + // temporal:versioning:min_version=2024-10-01-00 + // temporal:enums:replaces=state_deprecated + temporal.api.cloud.resource.v1.ResourceState state = 8; // The id of the async operation that is creating/updating/deleting the group, if any string async_operation_id = 5; // The date and time when the group was created @@ -108,7 +168,14 @@ message ServiceAccount { // The current state of the service account. // Possible values: activating, activationfailed, active, updating, updatefailed, deleting, deletefailed, deleted, suspending, suspendfailed, suspended. // For any failed state, reach out to Temporal Cloud support for remediation. - string state = 4; + // Deprecated: Not supported after 2024-10-01-00 api version. Use state instead. + // temporal:versioning:max_version=2024-10-01-00 + string state_deprecated = 4 [deprecated = true]; + // The current state of the service account. + // For any failed state, reach out to Temporal Cloud support for remediation. + // temporal:versioning:min_version=2024-10-01-00 + // temporal:enums:replaces=state_deprecated + temporal.api.cloud.resource.v1.ResourceState state = 8; // The id of the async operation that is creating/updating/deleting the service account, if any. string async_operation_id = 5; // The date and time when the service account was created. @@ -142,7 +209,13 @@ message ApiKey { // The current state of the API key. // Possible values: activating, activationfailed, active, updating, updatefailed, deleting, deletefailed, deleted, suspending, suspendfailed, suspended. // For any failed state, reach out to Temporal Cloud support for remediation. - string state = 4; + // Deprecated: Not supported after 2024-10-01-00 api version. Use state instead. + // temporal:versioning:max_version=2024-10-01-00 + string state_deprecated = 4 [deprecated = true]; + // The current state of the API key. + // temporal:versioning:min_version=2024-10-01-00 + // temporal:enums:replaces=state_deprecated + temporal.api.cloud.resource.v1.ResourceState state = 8; // The id of the async operation that is creating/updating/deleting the API key, if any. string async_operation_id = 5; // The date and time when the API key was created. @@ -155,13 +228,19 @@ message ApiKey { message ApiKeySpec { // The id of the owner to create the API key for. // The owner id is immutable. Once set during creation, it cannot be changed. - // The owner id is the id of the user when the owner type is 'user'. - // The owner id is the id of the service account when the owner type is 'service-account'. + // The owner id is the id of the user when the owner type is user. + // The owner id is the id of the service account when the owner type is service account. string owner_id = 1; // The type of the owner to create the API key for. // The owner type is immutable. Once set during creation, it cannot be changed. // Possible values: user, service-account. - string owner_type = 2; + // Deprecated: Not supported after 2024-10-01-00 api version. Use owner_type instead. + // temporal:versioning:max_version=2024-10-01-00 + string owner_type_deprecated = 2 [deprecated = true]; + // The type of the owner to create the API key for. + // temporal:versioning:min_version=2024-10-01-00 + // temporal:enums:replaces=owner_type_deprecated + OwnerType owner_type = 7; // The display name of the API key. string display_name = 3; // The description of the API key. diff --git a/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/namespace/v1/message.proto b/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/namespace/v1/message.proto index 4fec2bb56..c82ee260c 100644 --- a/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/namespace/v1/message.proto +++ b/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/namespace/v1/message.proto @@ -9,7 +9,9 @@ option java_outer_classname = "MessageProto"; option ruby_package = "Temporalio::Api::Cloud::Namespace::V1"; option csharp_namespace = "Temporalio.Api.Cloud.Namespace.V1"; +import "temporal/api/cloud/resource/v1/message.proto"; import "google/protobuf/timestamp.proto"; +import "temporal/api/cloud/sink/v1/message.proto"; message CertificateFilterSpec { // The common_name in the certificate. @@ -31,7 +33,13 @@ message MtlsAuthSpec { // This must only be one value, but the CA can have a chain. // // (-- api-linter: core::0140::base64=disabled --) - string accepted_client_ca = 1; + // Deprecated: Not supported after 2024-05-13-00 api version. Use accepted_client_ca instead. + // temporal:versioning:max_version=2024-05-13-00 + string accepted_client_ca_deprecated = 1; + // The ca cert(s) in PEM format that the clients can use for authentication and authorization. + // This must only be one value, but the CA can have a chain. + // temporal:versioning:min_version=2024-05-13-00 + bytes accepted_client_ca = 4; // Certificate filters which, if specified, only allow connections from client certificates whose distinguished name properties match at least one of the filters. // This allows limiting access to specific end-entity certificates. // Optional, default is empty. @@ -87,10 +95,30 @@ message NamespaceSpec { // Supported attribute types: text, keyword, int, double, bool, datetime, keyword_list. // NOTE: currently deleting a search attribute is not supported. // Optional, default is empty. - map custom_search_attributes = 5; + // Deprecated: Not supported after 2024-10-01-00 api version. Use search_attributes instead. + // temporal:versioning:max_version=2024-10-01-00 + map custom_search_attributes = 5 [deprecated = true]; + // The custom search attributes to use for the namespace. + // The name of the attribute is the key and the type is the value. + // Note: currently deleting a search attribute is not supported. + // Optional, default is empty. + // temporal:versioning:min_version=2024-10-01-00 + // temporal:enums:replaces=custom_search_attributes + map search_attributes = 8; // Codec server spec used by UI to decode payloads for all users interacting with this namespace. // Optional, default is unset. CodecServerSpec codec_server = 6; + + enum SearchAttributeType { + SEARCH_ATTRIBUTE_TYPE_UNSPECIFIED = 0; + SEARCH_ATTRIBUTE_TYPE_TEXT = 1; + SEARCH_ATTRIBUTE_TYPE_KEYWORD = 2; + SEARCH_ATTRIBUTE_TYPE_INT = 3; + SEARCH_ATTRIBUTE_TYPE_DOUBLE = 4; + SEARCH_ATTRIBUTE_TYPE_BOOL = 5; + SEARCH_ATTRIBUTE_TYPE_DATETIME = 6; + SEARCH_ATTRIBUTE_TYPE_KEYWORD_LIST = 7; + } } message Endpoints { @@ -133,7 +161,14 @@ message Namespace { // The namespace specification. NamespaceSpec spec = 3; // The current state of the namespace. - string state = 4; + // Deprecated: Not supported after 2024-10-01-00 api version. Use state instead. + // temporal:versioning:max_version=2024-10-01-00 + string state_deprecated = 4 [deprecated = true]; + // The current state of the namespace. + // For any failed state, reach out to Temporal Cloud support for remediation. + // temporal:versioning:min_version=2024-10-01-00 + // temporal:enums:replaces=state_deprecated + temporal.api.cloud.resource.v1.ResourceState state = 13; // The id of the async operation that is creating/updating/deleting the namespace, if any. string async_operation_id = 5; // The endpoints for the namespace. @@ -158,7 +193,70 @@ message NamespaceRegionStatus { // The current state of the namespace region. // Possible values: adding, active, passive, removing, failed. // For any failed state, reach out to Temporal Cloud support for remediation. - string state = 1; + // Deprecated: Not supported after 2024-10-01-00 api version. Use state instead. + // temporal:versioning:max_version=2024-10-01-00 + string state_deprecated = 1 [deprecated = true]; + // The current state of the namespace region. + // temporal:versioning:min_version=2024-10-01-00 + // temporal:enums:replaces=state_deprecated + State state = 3; // The id of the async operation that is making changes to where the namespace is available, if any. string async_operation_id = 2; + + enum State { + STATE_UNSPECIFIED = 0; + STATE_ADDING= 1; // The region is being added to the namespace. + STATE_ACTIVE= 2; // The namespace is active in this region. + STATE_PASSIVE = 3; // The namespace is passive in this region. + STATE_REMOVING = 4; // The region is being removed from the namespace. + STATE_FAILED = 5; // The region failed to be added/removed, check failure_reason in the last async_operation status for more details. + } +} + +message ExportSinkSpec { + // 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; + + // 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. + string name = 1; + + // The version of the export sink resource. + string resource_version = 2; + + // The current state of the export sink. + temporal.api.cloud.resource.v1.ResourceState state = 3; + + // The specification details of the export sink. + ExportSinkSpec spec = 4; + + // The health status of the export sink. + Health health = 5; + + // An error message describing any issues with the export sink, if applicable. + string error_message = 6; + + // The timestamp of the latest successful data export. + google.protobuf.Timestamp latest_data_export_time = 7; + + // The timestamp of the last health check performed on the export sink. + google.protobuf.Timestamp last_health_check_time = 8; + + enum Health { + HEALTH_UNSPECIFIED = 0; + HEALTH_OK = 1; + HEALTH_ERROR_INTERNAL = 2; + HEALTH_ERROR_USER_CONFIGURATION = 3; + } } diff --git a/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/nexus/v1/message.proto b/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/nexus/v1/message.proto new file mode 100644 index 000000000..358fb2068 --- /dev/null +++ b/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/nexus/v1/message.proto @@ -0,0 +1,84 @@ +syntax = "proto3"; + +package temporal.api.cloud.nexus.v1; + +option go_package = "go.temporal.io/api/cloud/nexus/v1;nexus"; +option java_package = "io.temporal.api.cloud.nexus.v1"; +option java_multiple_files = true; +option java_outer_classname = "MessageProto"; +option ruby_package = "Temporalio::Api::Cloud::Nexus::V1"; +option csharp_namespace = "Temporalio.Api.Cloud.Nexus.V1"; + +import "temporal/api/cloud/resource/v1/message.proto"; +import "google/protobuf/timestamp.proto"; + +message EndpointSpec { + // The name of the endpoint. Must be unique within an account. + // The name must match `^[a-zA-Z][a-zA-Z0-9\-]*[a-zA-Z0-9]$`. + // This field is mutable. + string name = 1; + + // Indicates where the endpoint should forward received nexus requests to. + EndpointTargetSpec target_spec = 2; + + // The set of policies (e.g. authorization) for the endpoint. Each request's caller + // must match with at least one of the specs to be accepted by the endpoint. + // This field is mutable. + repeated EndpointPolicySpec policy_specs = 3; + + // The markdown description of the endpoint - optional. + string description = 4; +} + +message EndpointTargetSpec { + oneof variant { + // A target spec for routing nexus requests to a specific cloud namespace worker. + WorkerTargetSpec worker_target_spec = 1; + } +} + +message WorkerTargetSpec { + // The target cloud namespace to route requests to. Namespace must be in same account as the endpoint. This field is mutable. + string namespace_id = 1; + + // The task queue on the cloud namespace to route requests to. This field is mutable. + string task_queue = 2; +} + +message EndpointPolicySpec { + oneof variant { + // A policy spec that allows one caller namespace to access the endpoint. + AllowedCloudNamespacePolicySpec allowed_cloud_namespace_policy_spec = 1; + } +} + +message AllowedCloudNamespacePolicySpec { + // The namespace that is allowed to call into this endpoint. Calling namespace must be in same account as the endpoint. + string namespace_id = 1; +} + +// An endpoint that receives and then routes Nexus requests +message Endpoint { + // The id of the endpoint. This is generated by the server and is immutable. + string id = 1; + + // The current version of the endpoint specification. + // The next update operation must include this version. + string resource_version = 2; + + // The endpoint specification. + EndpointSpec spec = 3; + + // The current state of the endpoint. + // For any failed state, reach out to Temporal Cloud support for remediation. + temporal.api.cloud.resource.v1.ResourceState state = 4; + + // The id of any ongoing async operation that is creating, updating, or deleting the endpoint, if any. + string async_operation_id = 5; + + // The date and time when the endpoint was created. + google.protobuf.Timestamp created_time = 6; + + // The date and time when the endpoint was last modified. + google.protobuf.Timestamp last_modified_time = 7; +} diff --git a/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/operation/v1/message.proto b/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/operation/v1/message.proto index 8d0e89edf..7cd79fd02 100644 --- a/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/operation/v1/message.proto +++ b/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/operation/v1/message.proto @@ -14,23 +14,38 @@ import "google/protobuf/timestamp.proto"; import "google/protobuf/any.proto"; message AsyncOperation { - // The operation id + // The operation id. string id = 1; - // The current state of this operation - // Possible values are: pending, in_progress, failed, cancelled, fulfilled - string state = 2; - // The recommended duration to check back for an update in the operation's state + // The current state of this operation. + // Possible values are: pending, in_progress, failed, cancelled, fulfilled. + // Deprecated: Not supported after 2024-10-01-00 api version. Use state instead. + // temporal:versioning:max_version=2024-10-01-00 + string state_deprecated = 2 [deprecated = true]; + // The current state of this operation. + // temporal:versioning:min_version=2024-10-01-00 + // temporal:enums:replaces=state_deprecated + State state = 9; + // The recommended duration to check back for an update in the operation's state. google.protobuf.Duration check_duration = 3; - // The type of operation being performed + // The type of operation being performed. string operation_type = 4; - // The input to the operation being performed + // The input to the operation being performed. // // (-- api-linter: core::0146::any=disabled --) google.protobuf.Any operation_input = 5; - // If the operation failed, the reason for the failure + // If the operation failed, the reason for the failure. string failure_reason = 6; - // The date and time when the operation initiated + // The date and time when the operation initiated. google.protobuf.Timestamp started_time = 7; - // The date and time when the operation completed + // The date and time when the operation completed. google.protobuf.Timestamp finished_time = 8; + + enum State { + STATE_UNSPECIFIED = 0; + STATE_PENDING = 1; // The operation is pending. + STATE_IN_PROGRESS = 2; // The operation is in progress. + STATE_FAILED = 3; // The operation failed, check failure_reason for more details. + STATE_CANCELLED = 4; // The operation was cancelled. + STATE_FULFILLED = 5; // The operation was fulfilled. + } } diff --git a/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/region/v1/message.proto b/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/region/v1/message.proto index 25c8b13ed..7a7be52fb 100644 --- a/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/region/v1/message.proto +++ b/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/region/v1/message.proto @@ -14,9 +14,22 @@ message Region { string id = 1; // The name of the cloud provider that's hosting the region. // Currently only "aws" is supported. - string cloud_provider = 2; + // Deprecated: Not supported after 2024-10-01-00 api version. Use cloud_provider instead. + // temporal:versioning:max_version=2024-10-01-00 + string cloud_provider_deprecated = 2 [deprecated = true]; + // The cloud provider that's hosting the region. + // temporal:versioning:min_version=2024-10-01-00 + // temporal:enums:replaces=cloud_provider_deprecated + CloudProvider cloud_provider = 5; // The region identifier as defined by the cloud provider. string cloud_provider_region = 3; // The human readable location of the region. string location = 4; + + // The cloud provider that's hosting the region. + enum CloudProvider { + CLOUD_PROVIDER_UNSPECIFIED = 0; + CLOUD_PROVIDER_AWS = 1; + CLOUD_PROVIDER_GCP = 2; + } } diff --git a/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/resource/v1/message.proto b/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/resource/v1/message.proto new file mode 100644 index 000000000..eb1572547 --- /dev/null +++ b/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/resource/v1/message.proto @@ -0,0 +1,25 @@ +syntax = "proto3"; + +package temporal.api.cloud.resource.v1; + +option go_package = "go.temporal.io/api/cloud/resource/v1;resource"; +option java_package = "io.temporal.api.cloud.resource.v1"; +option java_multiple_files = true; +option java_outer_classname = "MessageProto"; +option ruby_package = "Temporalio::Api::Cloud::Resource::V1"; +option csharp_namespace = "Temporalio.Api.Cloud.Resource.V1"; + + +enum ResourceState { + RESOURCE_STATE_UNSPECIFIED = 0; + RESOURCE_STATE_ACTIVATING = 1; // The resource is being activated. + RESOURCE_STATE_ACTIVATION_FAILED = 2; // The resource failed to activate. This is an error state. Reach out to support for remediation. + RESOURCE_STATE_ACTIVE = 3; // The resource is active and ready to use. + RESOURCE_STATE_UPDATING = 4; // The resource is being updated. + RESOURCE_STATE_UPDATE_FAILED = 5; // The resource failed to update. This is an error state. Reach out to support for remediation. + RESOURCE_STATE_DELETING = 6; // The resource is being deleted. + RESOURCE_STATE_DELETE_FAILED = 7; // The resource failed to delete. This is an error state. Reach out to support for remediation. + RESOURCE_STATE_DELETED = 8; // The resource has been deleted. + RESOURCE_STATE_SUSPENDED = 9; // The resource is suspended and not available for use. Reach out to support for remediation. + RESOURCE_STATE_EXPIRED = 10; // The resource has expired and is no longer available for use. +} diff --git a/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/sink/v1/message.proto b/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/sink/v1/message.proto new file mode 100644 index 000000000..d9ca7730c --- /dev/null +++ b/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/sink/v1/message.proto @@ -0,0 +1,41 @@ +syntax = "proto3"; + +package temporal.api.cloud.sink.v1; + +option go_package = "go.temporal.io/api/cloud/sink/v1;sink"; +option java_package = "io.temporal.api.cloud.sink.v1"; +option java_multiple_files = true; +option java_outer_classname = "MessageProto"; +option ruby_package = "Temporalio::Api::Cloud::Sink::V1"; +option csharp_namespace = "Temporalio.Api.Cloud.Sink.V1"; + +message S3Spec { + // The IAM role that Temporal Cloud assumes for writing records to the customer's S3 bucket. + string role_name = 1; + + // The name of the destination S3 bucket where Temporal will send data. + string bucket_name = 2; + + // The region where the S3 bucket is located. + string region = 3; + + // The AWS Key Management Service (KMS) ARN used for encryption. + string kms_arn = 4; + + // The AWS account ID associated with the S3 bucket and the assumed role. + string aws_account_id = 5; +} + +message GCSSpec { + // The customer service account ID that Temporal Cloud impersonates for writing records to the customer's GCS bucket. + string sa_id = 1; + + // The name of the destination GCS bucket where Temporal will send data. + string bucket_name = 2; + + // The GCP project ID associated with the GCS bucket and service account. + string gcp_project_id = 3; + + // The region of the gcs bucket + string region = 4; +} \ No newline at end of file diff --git a/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/usage/v1/message.proto b/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/usage/v1/message.proto new file mode 100644 index 000000000..b65b88bd6 --- /dev/null +++ b/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/usage/v1/message.proto @@ -0,0 +1,59 @@ +syntax = "proto3"; + +package temporal.api.cloud.usage.v1; + +option go_package = "go.temporal.io/api/cloud/usage/v1;usage"; +option java_package = "io.temporal.api.cloud.usage.v1"; +option java_multiple_files = true; +option java_outer_classname = "MessageProto"; +option ruby_package = "Temporalio::Api::Cloud::Usage::V1"; +option csharp_namespace = "Temporalio.Api.Cloud.Usage.V1"; + +import "google/protobuf/timestamp.proto"; + +message Summary { + // Start of UTC day for now (inclusive) + google.protobuf.Timestamp start_time = 1; + // End of UTC day for now (exclusive) + google.protobuf.Timestamp end_time = 2; + // Records grouped by namespace + repeated RecordGroup record_groups = 3; + // True if data for given time window is not fully available yet (e.g. delays) + // When true, records for the given time range could still be added/updated in the future (until false) + bool incomplete = 4; +} + +message RecordGroup { + // GroupBy keys and their values for this record group. Multiple fields are combined with logical AND. + repeated GroupBy group_bys = 1; + repeated Record records = 2; +} + +message GroupBy { + GroupByKey key = 1; + string value = 2; +} + +message Record { + RecordType type = 1; + RecordUnit unit = 2; + double value = 3; +} + +enum RecordType { + RECORD_TYPE_UNSPECIFIED = 0; + RECORD_TYPE_ACTIONS = 1; + RECORD_TYPE_ACTIVE_STORAGE = 2; + RECORD_TYPE_RETAINED_STORAGE = 3; +} + +enum RecordUnit { + RECORD_UNIT_UNSPECIFIED = 0; + RECORD_UNIT_NUMBER = 1; + RECORD_UNIT_BYTE_SECONDS = 2; +} + +enum GroupByKey { + GROUP_BY_KEY_UNSPECIFIED = 0; + GROUP_BY_KEY_NAMESPACE = 1; +} \ No newline at end of file