From 3bb8556c18a4a8bf103403232d46bb8491fbdd01 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 26 May 2022 00:28:28 +0200 Subject: [PATCH 01/10] chore(deps): update dependency com.google.cloud:google-cloud-profiler to v2.2.0 (#273) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-profiler](https://togithub.com/googleapis/java-profiler) | `2.1.11` -> `2.2.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-profiler/2.2.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-profiler/2.2.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-profiler/2.2.0/compatibility-slim/2.1.11)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-profiler/2.2.0/confidence-slim/2.1.11)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-profiler). --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index e086b45..335e4a9 100644 --- a/README.md +++ b/README.md @@ -19,20 +19,20 @@ If you are using Maven, add this to your pom.xml file: com.google.cloud google-cloud-profiler - 2.1.11 + 2.2.0 ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-profiler:2.1.11' +implementation 'com.google.cloud:google-cloud-profiler:2.2.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-profiler" % "2.1.11" +libraryDependencies += "com.google.cloud" % "google-cloud-profiler" % "2.2.0" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index ec366cb..4572989 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -29,7 +29,7 @@ com.google.cloud google-cloud-profiler - 2.1.11 + 2.2.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 887b3b0..945fb90 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -28,7 +28,7 @@ com.google.cloud google-cloud-profiler - 2.1.11 + 2.2.0 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 04fa054..a2f8bf7 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -28,7 +28,7 @@ com.google.cloud google-cloud-profiler - 2.1.11 + 2.2.0 From 6053c61670fe37cd92f450591eba9eecf552e74e Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 27 May 2022 04:08:28 +0000 Subject: [PATCH 02/10] chore(deps): upgrade gapic-generator-java to 2.8.0 and update gax-java to 2.18.1 (#270) - [ ] Regenerate this pull request now. PiperOrigin-RevId: 450543911 Source-Link: https://github.com/googleapis/googleapis/commit/55283447ab72f10b6c2571d770af0498b593e84f Source-Link: https://github.com/googleapis/googleapis-gen/commit/9f6775cab1958982b88967a43e5e806af0f135db Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiOWY2Nzc1Y2FiMTk1ODk4MmI4ODk2N2E0M2U1ZTgwNmFmMGYxMzVkYiJ9 --- .../devtools/cloudprofiler/v2/ProfilerServiceClient.java | 4 ---- .../cloudprofiler/v2/stub/ProfilerServiceStubSettings.java | 1 - 2 files changed, 5 deletions(-) diff --git a/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/ProfilerServiceClient.java b/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/ProfilerServiceClient.java index 6da4faf..7146138 100644 --- a/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/ProfilerServiceClient.java +++ b/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/ProfilerServiceClient.java @@ -16,7 +16,6 @@ package com.google.devtools.cloudprofiler.v2; -import com.google.api.core.BetaApi; import com.google.api.gax.core.BackgroundResource; import com.google.api.gax.rpc.UnaryCallable; import com.google.devtools.cloudprofiler.v2.stub.ProfilerServiceStub; @@ -130,7 +129,6 @@ public static final ProfilerServiceClient create(ProfilerServiceSettings setting * Constructs an instance of ProfilerServiceClient, using the given stub for making calls. This is * for advanced usage - prefer using create(ProfilerServiceSettings). */ - @BetaApi("A restructuring of stub classes is planned, so this may break in the future") public static final ProfilerServiceClient create(ProfilerServiceStub stub) { return new ProfilerServiceClient(stub); } @@ -145,7 +143,6 @@ protected ProfilerServiceClient(ProfilerServiceSettings settings) throws IOExcep this.stub = ((ProfilerServiceStubSettings) settings.getStubSettings()).createStub(); } - @BetaApi("A restructuring of stub classes is planned, so this may break in the future") protected ProfilerServiceClient(ProfilerServiceStub stub) { this.settings = null; this.stub = stub; @@ -155,7 +152,6 @@ public final ProfilerServiceSettings getSettings() { return settings; } - @BetaApi("A restructuring of stub classes is planned, so this may break in the future") public ProfilerServiceStub getStub() { return stub; } diff --git a/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/stub/ProfilerServiceStubSettings.java b/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/stub/ProfilerServiceStubSettings.java index d643c26..f05c293 100644 --- a/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/stub/ProfilerServiceStubSettings.java +++ b/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/stub/ProfilerServiceStubSettings.java @@ -108,7 +108,6 @@ public UnaryCallSettings updateProfileSettings() return updateProfileSettings; } - @BetaApi("A restructuring of stub classes is planned, so this may break in the future") public ProfilerServiceStub createStub() throws IOException { if (getTransportChannelProvider() .getTransportName() From c9c04c0fbebfa6a342d68d8517ef4d848f4a9f3a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 13 Jun 2022 18:58:10 +0200 Subject: [PATCH 03/10] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.5.0 (#274) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-config](https://togithub.com/googleapis/java-shared-config) | `1.4.0` -> `1.5.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.5.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.5.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.5.0/compatibility-slim/1.4.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.5.0/confidence-slim/1.4.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
googleapis/java-shared-config ### [`v1.5.0`](https://togithub.com/googleapis/java-shared-config/blob/HEAD/CHANGELOG.md#​150-httpsgithubcomgoogleapisjava-shared-configcomparev140v150-2022-06-10) [Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v1.4.0...v1.5.0) ##### Features - add build scripts for native image testing in Java 17 ([#​1440](https://togithub.com/googleapis/java-shared-config/issues/1440)) ([#​475](https://togithub.com/googleapis/java-shared-config/issues/475)) ([e4dfc1b](https://togithub.com/googleapis/java-shared-config/commit/e4dfc1ba29295158c78c8fcf94467d2a6a33538a)) - to produce Java 8 compatible bytecode when using JDK 9+ ([2468276](https://togithub.com/googleapis/java-shared-config/commit/2468276145cdfe1ca911b52f765e026e77661a09)) ##### Dependencies - update surefire.version to v3.0.0-m7 ([bbfe663](https://togithub.com/googleapis/java-shared-config/commit/bbfe66393af3e49612c9c1e4334ba39c133ea1d0))
--- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-profiler). --- google-cloud-profiler-bom/pom.xml | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-profiler-bom/pom.xml b/google-cloud-profiler-bom/pom.xml index dd52f7e..10f7779 100644 --- a/google-cloud-profiler-bom/pom.xml +++ b/google-cloud-profiler-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud google-cloud-shared-config - 1.4.0 + 1.5.0 Google Cloud Profiler BOM diff --git a/pom.xml b/pom.xml index 49811f7..12941a3 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.4.0 + 1.5.0 From d1a166f0404a6d5afd34546fbb7152825ed87d3f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 23 Jun 2022 17:26:31 +0200 Subject: [PATCH 04/10] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v2.13.0 (#275) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | `2.12.0` -> `2.13.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.13.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.13.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.13.0/compatibility-slim/2.12.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.13.0/confidence-slim/2.12.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
googleapis/java-shared-dependencies ### [`v2.13.0`](https://togithub.com/googleapis/java-shared-dependencies/blob/HEAD/CHANGELOG.md#​2130-httpsgithubcomgoogleapisjava-shared-dependenciescomparev2120v2130-2022-06-22) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v2.12.0...v2.13.0) ##### Dependencies - update dependency com.google.api-client:google-api-client-bom to v1.35.0 ([#​709](https://togithub.com/googleapis/java-shared-dependencies/issues/709)) ([239f8c3](https://togithub.com/googleapis/java-shared-dependencies/commit/239f8c33a11e233e6af79aee8c7e68cd156a0554)) - update dependency com.google.api-client:google-api-client-bom to v1.35.1 ([#​713](https://togithub.com/googleapis/java-shared-dependencies/issues/713)) ([6559b45](https://togithub.com/googleapis/java-shared-dependencies/commit/6559b45b027dba783a9525d35e32183d78773cbe)) - update dependency com.google.api:api-common to v2.2.1 ([#​710](https://togithub.com/googleapis/java-shared-dependencies/issues/710)) ([650d4c5](https://togithub.com/googleapis/java-shared-dependencies/commit/650d4c5f8c3cfce711257d47280ad773cd2e2414)) - update dependency com.google.errorprone:error_prone_annotations to v2.14.0 ([#​701](https://togithub.com/googleapis/java-shared-dependencies/issues/701)) ([d24730f](https://togithub.com/googleapis/java-shared-dependencies/commit/d24730f78669f80b109e590b903446e5552e3e36)) - update dependency com.google.http-client:google-http-client-bom to v1.42.0 ([#​711](https://togithub.com/googleapis/java-shared-dependencies/issues/711)) ([5168a18](https://togithub.com/googleapis/java-shared-dependencies/commit/5168a181722128d434a0d0d2ab5cc485686bbc78)) - update dependency com.google.oauth-client:google-oauth-client-bom to v1.34.0 ([#​708](https://togithub.com/googleapis/java-shared-dependencies/issues/708)) ([620336e](https://togithub.com/googleapis/java-shared-dependencies/commit/620336e6733e2017116e5e8a7b403b183a728bc1)) - update dependency com.google.oauth-client:google-oauth-client-bom to v1.34.1 ([#​712](https://togithub.com/googleapis/java-shared-dependencies/issues/712)) ([a2c18a5](https://togithub.com/googleapis/java-shared-dependencies/commit/a2c18a5bc4152cc9034cec691a29f54a35c38a51)) - update dependency com.google.protobuf:protobuf-bom to v3.21.0 ([#​703](https://togithub.com/googleapis/java-shared-dependencies/issues/703)) ([5f9fe12](https://togithub.com/googleapis/java-shared-dependencies/commit/5f9fe1200b4bdf4c54bf947c21bd3ed02f26f990)) - update dependency com.google.protobuf:protobuf-bom to v3.21.1 ([#​705](https://togithub.com/googleapis/java-shared-dependencies/issues/705)) ([c68edfb](https://togithub.com/googleapis/java-shared-dependencies/commit/c68edfbe7e1993e1112640b867b29aa2fbcf7579)) - update dependency io.grpc:grpc-bom to v1.47.0 ([#​707](https://togithub.com/googleapis/java-shared-dependencies/issues/707)) ([d02918a](https://togithub.com/googleapis/java-shared-dependencies/commit/d02918a0418cd65d1d247f27afb0637f1f8f5666)) - update dependency org.checkerframework:checker-qual to v3.22.1 ([#​706](https://togithub.com/googleapis/java-shared-dependencies/issues/706)) ([545843b](https://togithub.com/googleapis/java-shared-dependencies/commit/545843b492cead230b8cc72a1dae7d4922f33b39)) - update dependency org.checkerframework:checker-qual to v3.22.2 ([#​717](https://togithub.com/googleapis/java-shared-dependencies/issues/717)) ([142852a](https://togithub.com/googleapis/java-shared-dependencies/commit/142852a37140f221197f5c71aed451def353b1e0)) - update gax.version to v2.18.2 ([#​718](https://togithub.com/googleapis/java-shared-dependencies/issues/718)) ([5f8156e](https://togithub.com/googleapis/java-shared-dependencies/commit/5f8156e55c6a07b018a8c5efafa68be781b4288b)) - update google.common-protos.version to v2.9.0 ([#​714](https://togithub.com/googleapis/java-shared-dependencies/issues/714)) ([9e5591e](https://togithub.com/googleapis/java-shared-dependencies/commit/9e5591ec3035350450ecbfebd00e08216433b06c)) - update google.core.version to v2.8.0 ([#​719](https://togithub.com/googleapis/java-shared-dependencies/issues/719)) ([4023c60](https://togithub.com/googleapis/java-shared-dependencies/commit/4023c6063a2c5b5308da531df1a08c90c491965d)) - update iam.version to v1.4.0 ([#​700](https://togithub.com/googleapis/java-shared-dependencies/issues/700)) ([c1097a4](https://togithub.com/googleapis/java-shared-dependencies/commit/c1097a46ab0739b0b7234bc510e4c3d9ce2c2861)) - update iam.version to v1.4.1 ([#​716](https://togithub.com/googleapis/java-shared-dependencies/issues/716)) ([e2dc7c2](https://togithub.com/googleapis/java-shared-dependencies/commit/e2dc7c21c39e007878841e2664d548ec44a72d54))
--- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-profiler). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 12941a3..592c802 100644 --- a/pom.xml +++ b/pom.xml @@ -77,7 +77,7 @@ com.google.cloud google-cloud-shared-dependencies - 2.12.0 + 2.13.0 pom import From 68493894d7d80336882c34b95356eaa1daeab1d2 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 23 Jun 2022 21:22:15 +0000 Subject: [PATCH 05/10] feat: Enable REST transport for most of Java and Go clients (#276) - [ ] Regenerate this pull request now. PiperOrigin-RevId: 456641589 Source-Link: https://github.com/googleapis/googleapis/commit/8a251f5225b789b2383207ffd978f6aa3d77fcf7 Source-Link: https://github.com/googleapis/googleapis-gen/commit/4ca52a529cf01308d9714950edffbea3560cfbdb Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNGNhNTJhNTI5Y2YwMTMwOGQ5NzE0OTUwZWRmZmJlYTM1NjBjZmJkYiJ9 --- google-cloud-profiler/pom.xml | 16 + .../v2/ProfilerServiceClient.java | 15 + .../v2/ProfilerServiceSettings.java | 23 +- ...ttpJsonProfilerServiceCallableFactory.java | 105 ++++++ .../v2/stub/HttpJsonProfilerServiceStub.java | 302 ++++++++++++++++++ .../v2/stub/ProfilerServiceStubSettings.java | 53 ++- .../v2/ProfilerServiceClientHttpJsonTest.java | 267 ++++++++++++++++ 7 files changed, 776 insertions(+), 5 deletions(-) create mode 100644 google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/stub/HttpJsonProfilerServiceCallableFactory.java create mode 100644 google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/stub/HttpJsonProfilerServiceStub.java create mode 100644 google-cloud-profiler/src/test/java/com/google/devtools/cloudprofiler/v2/ProfilerServiceClientHttpJsonTest.java diff --git a/google-cloud-profiler/pom.xml b/google-cloud-profiler/pom.xml index 25f4912..b10e4f3 100644 --- a/google-cloud-profiler/pom.xml +++ b/google-cloud-profiler/pom.xml @@ -58,6 +58,10 @@ com.google.api gax-grpc
+ + com.google.api + gax-httpjson + org.threeten threetenbp @@ -77,12 +81,24 @@ test + + com.google.api + gax + testlib + test + com.google.api gax-grpc testlib test + + com.google.api + gax-httpjson + testlib + test + diff --git a/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/ProfilerServiceClient.java b/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/ProfilerServiceClient.java index 7146138..fb07f73 100644 --- a/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/ProfilerServiceClient.java +++ b/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/ProfilerServiceClient.java @@ -104,6 +104,21 @@ * ProfilerServiceClient.create(profilerServiceSettings); * } * + *

To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over + * the wire: + * + *

{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * ProfilerServiceSettings profilerServiceSettings =
+ *     ProfilerServiceSettings.newBuilder()
+ *         .setTransportChannelProvider(
+ *             ProfilerServiceSettings.defaultHttpJsonTransportProviderBuilder().build())
+ *         .build();
+ * ProfilerServiceClient profilerServiceClient =
+ *     ProfilerServiceClient.create(profilerServiceSettings);
+ * }
+ * *

Please refer to the GitHub repository's samples for more quickstart code snippets. */ @Generated("by gapic-generator-java") diff --git a/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/ProfilerServiceSettings.java b/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/ProfilerServiceSettings.java index a72117e..33f1b1e 100644 --- a/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/ProfilerServiceSettings.java +++ b/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/ProfilerServiceSettings.java @@ -21,6 +21,7 @@ import com.google.api.gax.core.GoogleCredentialsProvider; import com.google.api.gax.core.InstantiatingExecutorProvider; import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider; +import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider; import com.google.api.gax.rpc.ApiClientHeaderProvider; import com.google.api.gax.rpc.ClientContext; import com.google.api.gax.rpc.ClientSettings; @@ -108,11 +109,18 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde return ProfilerServiceStubSettings.defaultCredentialsProviderBuilder(); } - /** Returns a builder for the default ChannelProvider for this service. */ + /** Returns a builder for the default gRPC ChannelProvider for this service. */ public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() { return ProfilerServiceStubSettings.defaultGrpcTransportProviderBuilder(); } + /** Returns a builder for the default REST ChannelProvider for this service. */ + @BetaApi + public static InstantiatingHttpJsonChannelProvider.Builder + defaultHttpJsonTransportProviderBuilder() { + return ProfilerServiceStubSettings.defaultHttpJsonTransportProviderBuilder(); + } + public static TransportChannelProvider defaultTransportChannelProvider() { return ProfilerServiceStubSettings.defaultTransportChannelProvider(); } @@ -122,11 +130,17 @@ public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuil return ProfilerServiceStubSettings.defaultApiClientHeaderProviderBuilder(); } - /** Returns a new builder for this class. */ + /** Returns a new gRPC builder for this class. */ public static Builder newBuilder() { return Builder.createDefault(); } + /** Returns a new REST builder for this class. */ + @BetaApi + public static Builder newHttpJsonBuilder() { + return Builder.createHttpJsonDefault(); + } + /** Returns a new builder for this class. */ public static Builder newBuilder(ClientContext clientContext) { return new Builder(clientContext); @@ -164,6 +178,11 @@ private static Builder createDefault() { return new Builder(ProfilerServiceStubSettings.newBuilder()); } + @BetaApi + private static Builder createHttpJsonDefault() { + return new Builder(ProfilerServiceStubSettings.newHttpJsonBuilder()); + } + public ProfilerServiceStubSettings.Builder getStubSettingsBuilder() { return ((ProfilerServiceStubSettings.Builder) getStubSettings()); } diff --git a/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/stub/HttpJsonProfilerServiceCallableFactory.java b/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/stub/HttpJsonProfilerServiceCallableFactory.java new file mode 100644 index 0000000..389fa62 --- /dev/null +++ b/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/stub/HttpJsonProfilerServiceCallableFactory.java @@ -0,0 +1,105 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.devtools.cloudprofiler.v2.stub; + +import com.google.api.core.BetaApi; +import com.google.api.gax.httpjson.HttpJsonCallSettings; +import com.google.api.gax.httpjson.HttpJsonCallableFactory; +import com.google.api.gax.httpjson.HttpJsonOperationSnapshotCallable; +import com.google.api.gax.httpjson.HttpJsonStubCallableFactory; +import com.google.api.gax.httpjson.longrunning.stub.OperationsStub; +import com.google.api.gax.rpc.BatchingCallSettings; +import com.google.api.gax.rpc.ClientContext; +import com.google.api.gax.rpc.OperationCallSettings; +import com.google.api.gax.rpc.OperationCallable; +import com.google.api.gax.rpc.PagedCallSettings; +import com.google.api.gax.rpc.ServerStreamingCallSettings; +import com.google.api.gax.rpc.ServerStreamingCallable; +import com.google.api.gax.rpc.UnaryCallSettings; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.longrunning.Operation; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** + * REST callable factory implementation for the ProfilerService service API. + * + *

This class is for advanced usage. + */ +@Generated("by gapic-generator-java") +@BetaApi +public class HttpJsonProfilerServiceCallableFactory + implements HttpJsonStubCallableFactory { + + @Override + public UnaryCallable createUnaryCallable( + HttpJsonCallSettings httpJsonCallSettings, + UnaryCallSettings callSettings, + ClientContext clientContext) { + return HttpJsonCallableFactory.createUnaryCallable( + httpJsonCallSettings, callSettings, clientContext); + } + + @Override + public + UnaryCallable createPagedCallable( + HttpJsonCallSettings httpJsonCallSettings, + PagedCallSettings callSettings, + ClientContext clientContext) { + return HttpJsonCallableFactory.createPagedCallable( + httpJsonCallSettings, callSettings, clientContext); + } + + @Override + public UnaryCallable createBatchingCallable( + HttpJsonCallSettings httpJsonCallSettings, + BatchingCallSettings callSettings, + ClientContext clientContext) { + return HttpJsonCallableFactory.createBatchingCallable( + httpJsonCallSettings, callSettings, clientContext); + } + + @BetaApi( + "The surface for long-running operations is not stable yet and may change in the future.") + @Override + public + OperationCallable createOperationCallable( + HttpJsonCallSettings httpJsonCallSettings, + OperationCallSettings callSettings, + ClientContext clientContext, + OperationsStub operationsStub) { + UnaryCallable innerCallable = + HttpJsonCallableFactory.createBaseUnaryCallable( + httpJsonCallSettings, callSettings.getInitialCallSettings(), clientContext); + HttpJsonOperationSnapshotCallable initialCallable = + new HttpJsonOperationSnapshotCallable( + innerCallable, + httpJsonCallSettings.getMethodDescriptor().getOperationSnapshotFactory()); + return HttpJsonCallableFactory.createOperationCallable( + callSettings, clientContext, operationsStub.longRunningClient(), initialCallable); + } + + @Override + public + ServerStreamingCallable createServerStreamingCallable( + HttpJsonCallSettings httpJsonCallSettings, + ServerStreamingCallSettings callSettings, + ClientContext clientContext) { + return HttpJsonCallableFactory.createServerStreamingCallable( + httpJsonCallSettings, callSettings, clientContext); + } +} diff --git a/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/stub/HttpJsonProfilerServiceStub.java b/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/stub/HttpJsonProfilerServiceStub.java new file mode 100644 index 0000000..2ba41df --- /dev/null +++ b/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/stub/HttpJsonProfilerServiceStub.java @@ -0,0 +1,302 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.devtools.cloudprofiler.v2.stub; + +import com.google.api.core.BetaApi; +import com.google.api.core.InternalApi; +import com.google.api.gax.core.BackgroundResource; +import com.google.api.gax.core.BackgroundResourceAggregation; +import com.google.api.gax.httpjson.ApiMethodDescriptor; +import com.google.api.gax.httpjson.HttpJsonCallSettings; +import com.google.api.gax.httpjson.HttpJsonStubCallableFactory; +import com.google.api.gax.httpjson.ProtoMessageRequestFormatter; +import com.google.api.gax.httpjson.ProtoMessageResponseParser; +import com.google.api.gax.httpjson.ProtoRestSerializer; +import com.google.api.gax.rpc.ClientContext; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.devtools.cloudprofiler.v2.CreateOfflineProfileRequest; +import com.google.devtools.cloudprofiler.v2.CreateProfileRequest; +import com.google.devtools.cloudprofiler.v2.Profile; +import com.google.devtools.cloudprofiler.v2.UpdateProfileRequest; +import com.google.protobuf.TypeRegistry; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** + * REST stub implementation for the ProfilerService service API. + * + *

This class is for advanced usage and reflects the underlying API directly. + */ +@Generated("by gapic-generator-java") +@BetaApi +public class HttpJsonProfilerServiceStub extends ProfilerServiceStub { + private static final TypeRegistry typeRegistry = TypeRegistry.newBuilder().build(); + + private static final ApiMethodDescriptor + createProfileMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName("google.devtools.cloudprofiler.v2.ProfilerService/CreateProfile") + .setHttpMethod("POST") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v2/{parent=projects/*}/profiles", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putPathParam(fields, "parent", request.getParent()); + return fields; + }) + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + return fields; + }) + .setRequestBodyExtractor( + request -> + ProtoRestSerializer.create() + .toBody("*", request.toBuilder().clearParent().build())) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(Profile.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .build(); + + private static final ApiMethodDescriptor + createOfflineProfileMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName( + "google.devtools.cloudprofiler.v2.ProfilerService/CreateOfflineProfile") + .setHttpMethod("POST") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v2/{parent=projects/*}/profiles:createOffline", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putPathParam(fields, "parent", request.getParent()); + return fields; + }) + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + return fields; + }) + .setRequestBodyExtractor( + request -> + ProtoRestSerializer.create().toBody("profile", request.getProfile())) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(Profile.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .build(); + + private static final ApiMethodDescriptor + updateProfileMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName("google.devtools.cloudprofiler.v2.ProfilerService/UpdateProfile") + .setHttpMethod("PATCH") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v2/{profile.name=projects/*/profiles/*}", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putPathParam( + fields, "profile.name", request.getProfile().getName()); + return fields; + }) + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putQueryParam(fields, "updateMask", request.getUpdateMask()); + return fields; + }) + .setRequestBodyExtractor( + request -> + ProtoRestSerializer.create().toBody("profile", request.getProfile())) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(Profile.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .build(); + + private final UnaryCallable createProfileCallable; + private final UnaryCallable createOfflineProfileCallable; + private final UnaryCallable updateProfileCallable; + + private final BackgroundResource backgroundResources; + private final HttpJsonStubCallableFactory callableFactory; + + public static final HttpJsonProfilerServiceStub create(ProfilerServiceStubSettings settings) + throws IOException { + return new HttpJsonProfilerServiceStub(settings, ClientContext.create(settings)); + } + + public static final HttpJsonProfilerServiceStub create(ClientContext clientContext) + throws IOException { + return new HttpJsonProfilerServiceStub( + ProfilerServiceStubSettings.newHttpJsonBuilder().build(), clientContext); + } + + public static final HttpJsonProfilerServiceStub create( + ClientContext clientContext, HttpJsonStubCallableFactory callableFactory) throws IOException { + return new HttpJsonProfilerServiceStub( + ProfilerServiceStubSettings.newHttpJsonBuilder().build(), clientContext, callableFactory); + } + + /** + * Constructs an instance of HttpJsonProfilerServiceStub, using the given settings. This is + * protected so that it is easy to make a subclass, but otherwise, the static factory methods + * should be preferred. + */ + protected HttpJsonProfilerServiceStub( + ProfilerServiceStubSettings settings, ClientContext clientContext) throws IOException { + this(settings, clientContext, new HttpJsonProfilerServiceCallableFactory()); + } + + /** + * Constructs an instance of HttpJsonProfilerServiceStub, using the given settings. This is + * protected so that it is easy to make a subclass, but otherwise, the static factory methods + * should be preferred. + */ + protected HttpJsonProfilerServiceStub( + ProfilerServiceStubSettings settings, + ClientContext clientContext, + HttpJsonStubCallableFactory callableFactory) + throws IOException { + this.callableFactory = callableFactory; + + HttpJsonCallSettings createProfileTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(createProfileMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + HttpJsonCallSettings + createOfflineProfileTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(createOfflineProfileMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + HttpJsonCallSettings updateProfileTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(updateProfileMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + + this.createProfileCallable = + callableFactory.createUnaryCallable( + createProfileTransportSettings, settings.createProfileSettings(), clientContext); + this.createOfflineProfileCallable = + callableFactory.createUnaryCallable( + createOfflineProfileTransportSettings, + settings.createOfflineProfileSettings(), + clientContext); + this.updateProfileCallable = + callableFactory.createUnaryCallable( + updateProfileTransportSettings, settings.updateProfileSettings(), clientContext); + + this.backgroundResources = + new BackgroundResourceAggregation(clientContext.getBackgroundResources()); + } + + @InternalApi + public static List getMethodDescriptors() { + List methodDescriptors = new ArrayList<>(); + methodDescriptors.add(createProfileMethodDescriptor); + methodDescriptors.add(createOfflineProfileMethodDescriptor); + methodDescriptors.add(updateProfileMethodDescriptor); + return methodDescriptors; + } + + @Override + public UnaryCallable createProfileCallable() { + return createProfileCallable; + } + + @Override + public UnaryCallable createOfflineProfileCallable() { + return createOfflineProfileCallable; + } + + @Override + public UnaryCallable updateProfileCallable() { + return updateProfileCallable; + } + + @Override + public final void close() { + try { + backgroundResources.close(); + } catch (RuntimeException e) { + throw e; + } catch (Exception e) { + throw new IllegalStateException("Failed to close resource", e); + } + } + + @Override + public void shutdown() { + backgroundResources.shutdown(); + } + + @Override + public boolean isShutdown() { + return backgroundResources.isShutdown(); + } + + @Override + public boolean isTerminated() { + return backgroundResources.isTerminated(); + } + + @Override + public void shutdownNow() { + backgroundResources.shutdownNow(); + } + + @Override + public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException { + return backgroundResources.awaitTermination(duration, unit); + } +} diff --git a/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/stub/ProfilerServiceStubSettings.java b/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/stub/ProfilerServiceStubSettings.java index f05c293..f2ed96c 100644 --- a/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/stub/ProfilerServiceStubSettings.java +++ b/google-cloud-profiler/src/main/java/com/google/devtools/cloudprofiler/v2/stub/ProfilerServiceStubSettings.java @@ -24,6 +24,9 @@ import com.google.api.gax.grpc.GaxGrpcProperties; import com.google.api.gax.grpc.GrpcTransportChannel; import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider; +import com.google.api.gax.httpjson.GaxHttpJsonProperties; +import com.google.api.gax.httpjson.HttpJsonTransportChannel; +import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider; import com.google.api.gax.retrying.RetrySettings; import com.google.api.gax.rpc.ApiClientHeaderProvider; import com.google.api.gax.rpc.ClientContext; @@ -114,6 +117,11 @@ public ProfilerServiceStub createStub() throws IOException { .equals(GrpcTransportChannel.getGrpcTransportName())) { return GrpcProfilerServiceStub.create(this); } + if (getTransportChannelProvider() + .getTransportName() + .equals(HttpJsonTransportChannel.getHttpJsonTransportName())) { + return HttpJsonProfilerServiceStub.create(this); + } throw new UnsupportedOperationException( String.format( "Transport not supported: %s", getTransportChannelProvider().getTransportName())); @@ -146,18 +154,25 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde .setUseJwtAccessWithScope(true); } - /** Returns a builder for the default ChannelProvider for this service. */ + /** Returns a builder for the default gRPC ChannelProvider for this service. */ public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() { return InstantiatingGrpcChannelProvider.newBuilder() .setMaxInboundMessageSize(Integer.MAX_VALUE); } + /** Returns a builder for the default REST ChannelProvider for this service. */ + @BetaApi + public static InstantiatingHttpJsonChannelProvider.Builder + defaultHttpJsonTransportProviderBuilder() { + return InstantiatingHttpJsonChannelProvider.newBuilder(); + } + public static TransportChannelProvider defaultTransportChannelProvider() { return defaultGrpcTransportProviderBuilder().build(); } @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") - public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() { + public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() { return ApiClientHeaderProvider.newBuilder() .setGeneratedLibToken( "gapic", GaxProperties.getLibraryVersion(ProfilerServiceStubSettings.class)) @@ -165,11 +180,30 @@ public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuil GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion()); } - /** Returns a new builder for this class. */ + @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") + public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() { + return ApiClientHeaderProvider.newBuilder() + .setGeneratedLibToken( + "gapic", GaxProperties.getLibraryVersion(ProfilerServiceStubSettings.class)) + .setTransportToken( + GaxHttpJsonProperties.getHttpJsonTokenName(), + GaxHttpJsonProperties.getHttpJsonVersion()); + } + + public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() { + return ProfilerServiceStubSettings.defaultGrpcApiClientHeaderProviderBuilder(); + } + + /** Returns a new gRPC builder for this class. */ public static Builder newBuilder() { return Builder.createDefault(); } + /** Returns a new REST builder for this class. */ + public static Builder newHttpJsonBuilder() { + return Builder.createHttpJsonDefault(); + } + /** Returns a new builder for this class. */ public static Builder newBuilder(ClientContext clientContext) { return new Builder(clientContext); @@ -274,6 +308,19 @@ private static Builder createDefault() { return initDefaults(builder); } + private static Builder createHttpJsonDefault() { + Builder builder = new Builder(((ClientContext) null)); + + builder.setTransportChannelProvider(defaultHttpJsonTransportProviderBuilder().build()); + builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build()); + builder.setInternalHeaderProvider(defaultHttpJsonApiClientHeaderProviderBuilder().build()); + builder.setEndpoint(getDefaultEndpoint()); + builder.setMtlsEndpoint(getDefaultMtlsEndpoint()); + builder.setSwitchToMtlsEndpointAllowed(true); + + return initDefaults(builder); + } + private static Builder initDefaults(Builder builder) { builder .createProfileSettings() diff --git a/google-cloud-profiler/src/test/java/com/google/devtools/cloudprofiler/v2/ProfilerServiceClientHttpJsonTest.java b/google-cloud-profiler/src/test/java/com/google/devtools/cloudprofiler/v2/ProfilerServiceClientHttpJsonTest.java new file mode 100644 index 0000000..a8a14a9 --- /dev/null +++ b/google-cloud-profiler/src/test/java/com/google/devtools/cloudprofiler/v2/ProfilerServiceClientHttpJsonTest.java @@ -0,0 +1,267 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.devtools.cloudprofiler.v2; + +import com.google.api.gax.core.NoCredentialsProvider; +import com.google.api.gax.httpjson.GaxHttpJsonProperties; +import com.google.api.gax.httpjson.testing.MockHttpService; +import com.google.api.gax.rpc.ApiClientHeaderProvider; +import com.google.api.gax.rpc.ApiException; +import com.google.api.gax.rpc.ApiExceptionFactory; +import com.google.api.gax.rpc.InvalidArgumentException; +import com.google.api.gax.rpc.StatusCode; +import com.google.api.gax.rpc.testing.FakeStatusCode; +import com.google.devtools.cloudprofiler.v2.stub.HttpJsonProfilerServiceStub; +import com.google.protobuf.ByteString; +import com.google.protobuf.Duration; +import com.google.protobuf.FieldMask; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import javax.annotation.Generated; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +@Generated("by gapic-generator-java") +public class ProfilerServiceClientHttpJsonTest { + private static MockHttpService mockService; + private static ProfilerServiceClient client; + + @BeforeClass + public static void startStaticServer() throws IOException { + mockService = + new MockHttpService( + HttpJsonProfilerServiceStub.getMethodDescriptors(), + ProfilerServiceSettings.getDefaultEndpoint()); + ProfilerServiceSettings settings = + ProfilerServiceSettings.newHttpJsonBuilder() + .setTransportChannelProvider( + ProfilerServiceSettings.defaultHttpJsonTransportProviderBuilder() + .setHttpTransport(mockService) + .build()) + .setCredentialsProvider(NoCredentialsProvider.create()) + .build(); + client = ProfilerServiceClient.create(settings); + } + + @AfterClass + public static void stopServer() { + client.close(); + } + + @Before + public void setUp() {} + + @After + public void tearDown() throws Exception { + mockService.reset(); + } + + @Test + public void createProfileTest() throws Exception { + Profile expectedResponse = + Profile.newBuilder() + .setName("name3373707") + .setProfileType(ProfileType.forNumber(0)) + .setDeployment(Deployment.newBuilder().build()) + .setDuration(Duration.newBuilder().build()) + .setProfileBytes(ByteString.EMPTY) + .putAllLabels(new HashMap()) + .build(); + mockService.addResponse(expectedResponse); + + CreateProfileRequest request = + CreateProfileRequest.newBuilder() + .setParent("projects/project-2353") + .setDeployment(Deployment.newBuilder().build()) + .addAllProfileType(new ArrayList()) + .build(); + + Profile actualResponse = client.createProfile(request); + Assert.assertEquals(expectedResponse, actualResponse); + + List actualRequests = mockService.getRequestPaths(); + Assert.assertEquals(1, actualRequests.size()); + + String apiClientHeaderKey = + mockService + .getRequestHeaders() + .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) + .iterator() + .next(); + Assert.assertTrue( + GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() + .matcher(apiClientHeaderKey) + .matches()); + } + + @Test + public void createProfileExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + CreateProfileRequest request = + CreateProfileRequest.newBuilder() + .setParent("projects/project-2353") + .setDeployment(Deployment.newBuilder().build()) + .addAllProfileType(new ArrayList()) + .build(); + client.createProfile(request); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void createOfflineProfileTest() throws Exception { + Profile expectedResponse = + Profile.newBuilder() + .setName("name3373707") + .setProfileType(ProfileType.forNumber(0)) + .setDeployment(Deployment.newBuilder().build()) + .setDuration(Duration.newBuilder().build()) + .setProfileBytes(ByteString.EMPTY) + .putAllLabels(new HashMap()) + .build(); + mockService.addResponse(expectedResponse); + + CreateOfflineProfileRequest request = + CreateOfflineProfileRequest.newBuilder() + .setParent("projects/project-2353") + .setProfile(Profile.newBuilder().build()) + .build(); + + Profile actualResponse = client.createOfflineProfile(request); + Assert.assertEquals(expectedResponse, actualResponse); + + List actualRequests = mockService.getRequestPaths(); + Assert.assertEquals(1, actualRequests.size()); + + String apiClientHeaderKey = + mockService + .getRequestHeaders() + .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) + .iterator() + .next(); + Assert.assertTrue( + GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() + .matcher(apiClientHeaderKey) + .matches()); + } + + @Test + public void createOfflineProfileExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + CreateOfflineProfileRequest request = + CreateOfflineProfileRequest.newBuilder() + .setParent("projects/project-2353") + .setProfile(Profile.newBuilder().build()) + .build(); + client.createOfflineProfile(request); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void updateProfileTest() throws Exception { + Profile expectedResponse = + Profile.newBuilder() + .setName("name3373707") + .setProfileType(ProfileType.forNumber(0)) + .setDeployment(Deployment.newBuilder().build()) + .setDuration(Duration.newBuilder().build()) + .setProfileBytes(ByteString.EMPTY) + .putAllLabels(new HashMap()) + .build(); + mockService.addResponse(expectedResponse); + + UpdateProfileRequest request = + UpdateProfileRequest.newBuilder() + .setProfile( + Profile.newBuilder() + .setName("projects/project-4284/profiles/profile-4284") + .setProfileType(ProfileType.forNumber(0)) + .setDeployment(Deployment.newBuilder().build()) + .setDuration(Duration.newBuilder().build()) + .setProfileBytes(ByteString.EMPTY) + .putAllLabels(new HashMap()) + .build()) + .setUpdateMask(FieldMask.newBuilder().build()) + .build(); + + Profile actualResponse = client.updateProfile(request); + Assert.assertEquals(expectedResponse, actualResponse); + + List actualRequests = mockService.getRequestPaths(); + Assert.assertEquals(1, actualRequests.size()); + + String apiClientHeaderKey = + mockService + .getRequestHeaders() + .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) + .iterator() + .next(); + Assert.assertTrue( + GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() + .matcher(apiClientHeaderKey) + .matches()); + } + + @Test + public void updateProfileExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + UpdateProfileRequest request = + UpdateProfileRequest.newBuilder() + .setProfile( + Profile.newBuilder() + .setName("projects/project-4284/profiles/profile-4284") + .setProfileType(ProfileType.forNumber(0)) + .setDeployment(Deployment.newBuilder().build()) + .setDuration(Duration.newBuilder().build()) + .setProfileBytes(ByteString.EMPTY) + .putAllLabels(new HashMap()) + .build()) + .setUpdateMask(FieldMask.newBuilder().build()) + .build(); + client.updateProfile(request); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } +} From aa1d194d41a80eebf1176f46bcb6d79c1b5af6b7 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 27 Jun 2022 19:22:32 +0000 Subject: [PATCH 06/10] chore: update dependencies for regapic (#1467) (#277) * chore: update dependencies for regapic * add more dependencies and trigger comment * update goldens * fix indentation * remove duplicate gax-httpjson dependency * remove duplicated dependencies Source-Link: https://github.com/googleapis/synthtool/commit/fa54eb2a78c6ee48613fd33152e2130e949dcbd9 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:1ec28a46062b19135b11178ceee60231e5f5a92dab454e23ae0aab72cd875906 --- .github/.OwlBot.lock.yaml | 4 ++-- .kokoro/common.sh | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index a79f062..f0625e4 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:2567a120ce90fadb6201999b87d649d9f67459de28815ad239bce9ebfaa18a74 -# created: 2022-05-19T15:12:45.278246753Z + digest: sha256:1ec28a46062b19135b11178ceee60231e5f5a92dab454e23ae0aab72cd875906 +# created: 2022-06-27T15:01:06.405564326Z diff --git a/.kokoro/common.sh b/.kokoro/common.sh index ace89f4..f8f957a 100644 --- a/.kokoro/common.sh +++ b/.kokoro/common.sh @@ -55,4 +55,6 @@ function retry_with_backoff { ## Helper functionss function now() { date +"%Y-%m-%d %H:%M:%S" | tr -d '\n'; } function msg() { println "$*" >&2; } -function println() { printf '%s\n' "$(now) $*"; } \ No newline at end of file +function println() { printf '%s\n' "$(now) $*"; } + +## Helper comment to trigger updated repo dependency release \ No newline at end of file From 012dbd3de9dfbfcaca7e6a9fe194d35e735caea6 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 30 Jun 2022 02:24:27 +0000 Subject: [PATCH 07/10] chore: Disable CLIRR checks on releas (#1474) (#280) Source-Link: https://github.com/googleapis/synthtool/commit/7a220e27993a25ab3cda26510d5619d97b6952a9 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:6d4e3a15c62cfdcb823d60e16da7521e7c6fc00eba07c8ff12e4de9924a57d28 --- .github/.OwlBot.lock.yaml | 4 ++-- .kokoro/release/stage.sh | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index f0625e4..a454a61 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:1ec28a46062b19135b11178ceee60231e5f5a92dab454e23ae0aab72cd875906 -# created: 2022-06-27T15:01:06.405564326Z + digest: sha256:6d4e3a15c62cfdcb823d60e16da7521e7c6fc00eba07c8ff12e4de9924a57d28 +# created: 2022-06-29T23:17:33.110417661Z diff --git a/.kokoro/release/stage.sh b/.kokoro/release/stage.sh index 77dc4e8..1dba8de 100755 --- a/.kokoro/release/stage.sh +++ b/.kokoro/release/stage.sh @@ -32,6 +32,7 @@ retry_with_backoff 3 10 \ mvn clean deploy -B \ --settings ${MAVEN_SETTINGS_FILE} \ -DskipTests=true \ + -Dclirr.skip=true \ -DperformRelease=true \ -Dgpg.executable=gpg \ -Dgpg.passphrase=${GPG_PASSPHRASE} \ @@ -42,4 +43,4 @@ then mvn nexus-staging:release -B \ -DperformRelease=true \ --settings=settings.xml -fi \ No newline at end of file +fi From 1d1a98ade5fcc94f6e962b136536da293ccedb8a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 1 Jul 2022 03:53:01 +0000 Subject: [PATCH 08/10] chore(main): release 2.2.1-SNAPSHOT (#271) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- google-cloud-profiler-bom/pom.xml | 8 ++++---- google-cloud-profiler/pom.xml | 4 ++-- grpc-google-cloud-profiler-v2/pom.xml | 4 ++-- pom.xml | 8 ++++---- proto-google-cloud-profiler-v2/pom.xml | 4 ++-- versions.txt | 6 +++--- 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/google-cloud-profiler-bom/pom.xml b/google-cloud-profiler-bom/pom.xml index 10f7779..0c5fe1c 100644 --- a/google-cloud-profiler-bom/pom.xml +++ b/google-cloud-profiler-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-profiler-bom - 2.2.0 + 2.2.1-SNAPSHOT pom com.google.cloud @@ -56,17 +56,17 @@ com.google.cloud google-cloud-profiler - 2.2.0 + 2.2.1-SNAPSHOT com.google.api.grpc grpc-google-cloud-profiler-v2 - 2.2.0 + 2.2.1-SNAPSHOT com.google.api.grpc proto-google-cloud-profiler-v2 - 2.2.0 + 2.2.1-SNAPSHOT diff --git a/google-cloud-profiler/pom.xml b/google-cloud-profiler/pom.xml index b10e4f3..1644a63 100644 --- a/google-cloud-profiler/pom.xml +++ b/google-cloud-profiler/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-profiler - 2.2.0 + 2.2.1-SNAPSHOT jar Google Cloud Profiler https://github.com/googleapis/java-profiler @@ -11,7 +11,7 @@ com.google.cloud google-cloud-profiler-parent - 2.2.0 + 2.2.1-SNAPSHOT google-cloud-profiler diff --git a/grpc-google-cloud-profiler-v2/pom.xml b/grpc-google-cloud-profiler-v2/pom.xml index 858f884..30bbec5 100644 --- a/grpc-google-cloud-profiler-v2/pom.xml +++ b/grpc-google-cloud-profiler-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-profiler-v2 - 2.2.0 + 2.2.1-SNAPSHOT grpc-google-cloud-profiler-v2 GRPC library for google-cloud-profiler com.google.cloud google-cloud-profiler-parent - 2.2.0 + 2.2.1-SNAPSHOT diff --git a/pom.xml b/pom.xml index 592c802..4afbd8e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-profiler-parent pom - 2.2.0 + 2.2.1-SNAPSHOT Google Cloud Profiler Parent https://github.com/googleapis/java-profiler @@ -61,17 +61,17 @@ com.google.cloud google-cloud-profiler - 2.2.0 + 2.2.1-SNAPSHOT com.google.api.grpc proto-google-cloud-profiler-v2 - 2.2.0 + 2.2.1-SNAPSHOT com.google.api.grpc grpc-google-cloud-profiler-v2 - 2.2.0 + 2.2.1-SNAPSHOT diff --git a/proto-google-cloud-profiler-v2/pom.xml b/proto-google-cloud-profiler-v2/pom.xml index ff6d105..11f5673 100644 --- a/proto-google-cloud-profiler-v2/pom.xml +++ b/proto-google-cloud-profiler-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-profiler-v2 - 2.2.0 + 2.2.1-SNAPSHOT proto-google-cloud-profiler-v2 Proto library for google-cloud-profiler com.google.cloud google-cloud-profiler-parent - 2.2.0 + 2.2.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index bca601c..1ffc418 100644 --- a/versions.txt +++ b/versions.txt @@ -1,6 +1,6 @@ # Format: # module:released-version:current-version -google-cloud-profiler:2.2.0:2.2.0 -grpc-google-cloud-profiler-v2:2.2.0:2.2.0 -proto-google-cloud-profiler-v2:2.2.0:2.2.0 +google-cloud-profiler:2.2.0:2.2.1-SNAPSHOT +grpc-google-cloud-profiler-v2:2.2.0:2.2.1-SNAPSHOT +proto-google-cloud-profiler-v2:2.2.0:2.2.1-SNAPSHOT From 020e91c1fac9dad6276b4f97550c10a3cb13c773 Mon Sep 17 00:00:00 2001 From: Tomo Suzuki Date: Fri, 1 Jul 2022 10:28:22 -0400 Subject: [PATCH 09/10] ci: removing clirr from required checks (#278) Making CLIRR not required. The version bumps are now controlled by the Release Please and OwlBot. The CL authors create appropriate change description to control major version bumps. --- .github/sync-repo-settings.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index 6f09d69..dd5626f 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -11,7 +11,6 @@ branchProtectionRules: - dependencies (8) - dependencies (11) - lint - - clirr - units (8) - units (11) - 'Kokoro - Test: Integration' @@ -26,7 +25,6 @@ branchProtectionRules: - dependencies (8) - dependencies (11) - lint - - clirr - units (7) - units (8) - units (11) From 8376d63a669161f2bd2874966384b973a3f2d549 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 1 Jul 2022 16:24:21 +0000 Subject: [PATCH 10/10] chore(main): release 2.3.0 (#281) :robot: I have created a release *beep* *boop* --- ## [2.3.0](https://github.com/googleapis/java-profiler/compare/v2.2.0...v2.3.0) (2022-07-01) ### Features * Enable REST transport for most of Java and Go clients ([#276](https://github.com/googleapis/java-profiler/issues/276)) ([6849389](https://github.com/googleapis/java-profiler/commit/68493894d7d80336882c34b95356eaa1daeab1d2)) ### Dependencies * update dependency com.google.cloud:google-cloud-shared-dependencies to v2.13.0 ([#275](https://github.com/googleapis/java-profiler/issues/275)) ([d1a166f](https://github.com/googleapis/java-profiler/commit/d1a166f0404a6d5afd34546fbb7152825ed87d3f)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 12 ++++++++++++ google-cloud-profiler-bom/pom.xml | 8 ++++---- google-cloud-profiler/pom.xml | 4 ++-- grpc-google-cloud-profiler-v2/pom.xml | 4 ++-- pom.xml | 8 ++++---- proto-google-cloud-profiler-v2/pom.xml | 4 ++-- versions.txt | 6 +++--- 7 files changed, 29 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f4cc27..57046bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [2.3.0](https://github.com/googleapis/java-profiler/compare/v2.2.0...v2.3.0) (2022-07-01) + + +### Features + +* Enable REST transport for most of Java and Go clients ([#276](https://github.com/googleapis/java-profiler/issues/276)) ([6849389](https://github.com/googleapis/java-profiler/commit/68493894d7d80336882c34b95356eaa1daeab1d2)) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.13.0 ([#275](https://github.com/googleapis/java-profiler/issues/275)) ([d1a166f](https://github.com/googleapis/java-profiler/commit/d1a166f0404a6d5afd34546fbb7152825ed87d3f)) + ## [2.2.0](https://github.com/googleapis/java-profiler/compare/v2.1.11...v2.2.0) (2022-05-19) diff --git a/google-cloud-profiler-bom/pom.xml b/google-cloud-profiler-bom/pom.xml index 0c5fe1c..70ae7ca 100644 --- a/google-cloud-profiler-bom/pom.xml +++ b/google-cloud-profiler-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-profiler-bom - 2.2.1-SNAPSHOT + 2.3.0 pom com.google.cloud @@ -56,17 +56,17 @@ com.google.cloud google-cloud-profiler - 2.2.1-SNAPSHOT + 2.3.0 com.google.api.grpc grpc-google-cloud-profiler-v2 - 2.2.1-SNAPSHOT + 2.3.0 com.google.api.grpc proto-google-cloud-profiler-v2 - 2.2.1-SNAPSHOT + 2.3.0 diff --git a/google-cloud-profiler/pom.xml b/google-cloud-profiler/pom.xml index 1644a63..4f83cd2 100644 --- a/google-cloud-profiler/pom.xml +++ b/google-cloud-profiler/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-profiler - 2.2.1-SNAPSHOT + 2.3.0 jar Google Cloud Profiler https://github.com/googleapis/java-profiler @@ -11,7 +11,7 @@ com.google.cloud google-cloud-profiler-parent - 2.2.1-SNAPSHOT + 2.3.0 google-cloud-profiler diff --git a/grpc-google-cloud-profiler-v2/pom.xml b/grpc-google-cloud-profiler-v2/pom.xml index 30bbec5..6ccf9a8 100644 --- a/grpc-google-cloud-profiler-v2/pom.xml +++ b/grpc-google-cloud-profiler-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-profiler-v2 - 2.2.1-SNAPSHOT + 2.3.0 grpc-google-cloud-profiler-v2 GRPC library for google-cloud-profiler com.google.cloud google-cloud-profiler-parent - 2.2.1-SNAPSHOT + 2.3.0 diff --git a/pom.xml b/pom.xml index 4afbd8e..3b28d31 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-profiler-parent pom - 2.2.1-SNAPSHOT + 2.3.0 Google Cloud Profiler Parent https://github.com/googleapis/java-profiler @@ -61,17 +61,17 @@ com.google.cloud google-cloud-profiler - 2.2.1-SNAPSHOT + 2.3.0 com.google.api.grpc proto-google-cloud-profiler-v2 - 2.2.1-SNAPSHOT + 2.3.0 com.google.api.grpc grpc-google-cloud-profiler-v2 - 2.2.1-SNAPSHOT + 2.3.0 diff --git a/proto-google-cloud-profiler-v2/pom.xml b/proto-google-cloud-profiler-v2/pom.xml index 11f5673..6e43e06 100644 --- a/proto-google-cloud-profiler-v2/pom.xml +++ b/proto-google-cloud-profiler-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-profiler-v2 - 2.2.1-SNAPSHOT + 2.3.0 proto-google-cloud-profiler-v2 Proto library for google-cloud-profiler com.google.cloud google-cloud-profiler-parent - 2.2.1-SNAPSHOT + 2.3.0 diff --git a/versions.txt b/versions.txt index 1ffc418..ffef7d7 100644 --- a/versions.txt +++ b/versions.txt @@ -1,6 +1,6 @@ # Format: # module:released-version:current-version -google-cloud-profiler:2.2.0:2.2.1-SNAPSHOT -grpc-google-cloud-profiler-v2:2.2.0:2.2.1-SNAPSHOT -proto-google-cloud-profiler-v2:2.2.0:2.2.1-SNAPSHOT +google-cloud-profiler:2.3.0:2.3.0 +grpc-google-cloud-profiler-v2:2.3.0:2.3.0 +proto-google-cloud-profiler-v2:2.3.0:2.3.0