From 57dad83f956676b21bc5271ce781fc940a8e8f95 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 23 Jun 2022 16:02:35 +0000 Subject: [PATCH 1/7] chore(main): release 3.4.2-SNAPSHOT (#757) :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-build-bom/pom.xml | 8 ++++---- google-cloud-build/pom.xml | 4 ++-- grpc-google-cloud-build-v1/pom.xml | 4 ++-- pom.xml | 8 ++++---- proto-google-cloud-build-v1/pom.xml | 4 ++-- versions.txt | 6 +++--- 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/google-cloud-build-bom/pom.xml b/google-cloud-build-bom/pom.xml index 81a2a906..36c05991 100644 --- a/google-cloud-build-bom/pom.xml +++ b/google-cloud-build-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-build-bom - 3.4.1 + 3.4.2-SNAPSHOT pom com.google.cloud @@ -52,17 +52,17 @@ com.google.cloud google-cloud-build - 3.4.1 + 3.4.2-SNAPSHOT com.google.api.grpc grpc-google-cloud-build-v1 - 3.4.1 + 3.4.2-SNAPSHOT com.google.api.grpc proto-google-cloud-build-v1 - 3.4.1 + 3.4.2-SNAPSHOT diff --git a/google-cloud-build/pom.xml b/google-cloud-build/pom.xml index 608a392c..b7ed3f14 100644 --- a/google-cloud-build/pom.xml +++ b/google-cloud-build/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-build - 3.4.1 + 3.4.2-SNAPSHOT jar Google Cloud Build https://github.com/googleapis/java-cloudbuild @@ -13,7 +13,7 @@ com.google.cloud google-cloud-build-parent - 3.4.1 + 3.4.2-SNAPSHOT google-cloud-build diff --git a/grpc-google-cloud-build-v1/pom.xml b/grpc-google-cloud-build-v1/pom.xml index 868e8dd3..4db2c0e3 100644 --- a/grpc-google-cloud-build-v1/pom.xml +++ b/grpc-google-cloud-build-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-build-v1 - 3.4.1 + 3.4.2-SNAPSHOT grpc-google-cloud-build-v1 GRPC library for grpc-google-cloud-build-v1 com.google.cloud google-cloud-build-parent - 3.4.1 + 3.4.2-SNAPSHOT diff --git a/pom.xml b/pom.xml index eda964e3..3d720f89 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-build-parent pom - 3.4.1 + 3.4.2-SNAPSHOT Google Cloud Build Parent https://github.com/googleapis/java-cloudbuild @@ -62,17 +62,17 @@ com.google.api.grpc proto-google-cloud-build-v1 - 3.4.1 + 3.4.2-SNAPSHOT com.google.cloud google-cloud-build - 3.4.1 + 3.4.2-SNAPSHOT com.google.api.grpc grpc-google-cloud-build-v1 - 3.4.1 + 3.4.2-SNAPSHOT diff --git a/proto-google-cloud-build-v1/pom.xml b/proto-google-cloud-build-v1/pom.xml index 1f4b8ad3..498bd379 100644 --- a/proto-google-cloud-build-v1/pom.xml +++ b/proto-google-cloud-build-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-build-v1 - 3.4.1 + 3.4.2-SNAPSHOT proto-google-cloud-build-v1 PROTO library for proto-google-cloud-build-v1 com.google.cloud google-cloud-build-parent - 3.4.1 + 3.4.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 450a2dd9..21e79300 100644 --- a/versions.txt +++ b/versions.txt @@ -1,6 +1,6 @@ # Format: # module:released-version:current-version -google-cloud-build:3.4.1:3.4.1 -grpc-google-cloud-build-v1:3.4.1:3.4.1 -proto-google-cloud-build-v1:3.4.1:3.4.1 +google-cloud-build:3.4.1:3.4.2-SNAPSHOT +grpc-google-cloud-build-v1:3.4.1:3.4.2-SNAPSHOT +proto-google-cloud-build-v1:3.4.1:3.4.2-SNAPSHOT From b99a1eecad714c461986b47725da32e858249316 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 24 Jun 2022 17:14:16 +0200 Subject: [PATCH 2/7] chore(deps): update dependency com.google.cloud:google-cloud-build to v3.4.1 (#758) 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-build](https://togithub.com/googleapis/java-cloudbuild) | `3.4.0` -> `3.4.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-build/3.4.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-build/3.4.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-build/3.4.1/compatibility-slim/3.4.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-build/3.4.1/confidence-slim/3.4.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### 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**: 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://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-cloudbuild). --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 115a5644..9e51cb7e 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-build - 3.4.0 + 3.4.1 ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-build:3.4.0' +implementation 'com.google.cloud:google-cloud-build:3.4.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-build" % "3.4.0" +libraryDependencies += "com.google.cloud" % "google-cloud-build" % "3.4.1" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 452edeab..2e0b9d9c 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -29,7 +29,7 @@ com.google.cloud google-cloud-build - 3.4.0 + 3.4.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 23cfdab2..88c6caea 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -28,7 +28,7 @@ com.google.cloud google-cloud-build - 3.4.0 + 3.4.1 From 7dc19dace565a6099074c5c003b9e88abdfe95bb 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:20:39 +0000 Subject: [PATCH 3/7] chore: update dependencies for regapic (#1467) (#759) * 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 a79f0627..f0625e4d 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 ace89f45..f8f957af 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 9a7011f1cce8dd26fd1782c0953cd2c09d3626b1 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 28 Jun 2022 16:32:11 +0000 Subject: [PATCH 4/7] fix: update gapic-generator-java with mock service generation fixes (#755) - [ ] Regenerate this pull request now. PiperOrigin-RevId: 457524730 Source-Link: https://github.com/googleapis/googleapis/commit/917e7f21cb1dc062744c6694437cdd46219f28cb Source-Link: https://github.com/googleapis/googleapis-gen/commit/2497f9a069d3f6b2d6810d5a4e239cda1e7e5a39 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiMjQ5N2Y5YTA2OWQzZjZiMmQ2ODEwZDVhNGUyMzljZGExZTdlNWEzOSJ9 feat: Enable REST transport for most of Java and Go clients 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-build/pom.xml | 16 + .../cloudbuild/v1/CloudBuildClient.java | 39 +- .../cloudbuild/v1/CloudBuildSettings.java | 23 +- .../cloudbuild/v1/stub/CloudBuildStub.java | 6 +- .../v1/stub/CloudBuildStubSettings.java | 53 +- .../HttpJsonCloudBuildCallableFactory.java | 105 ++ .../v1/stub/HttpJsonCloudBuildStub.java | 1330 +++++++++++++++ .../v1/CloudBuildClientHttpJsonTest.java | 1488 +++++++++++++++++ 8 files changed, 3049 insertions(+), 11 deletions(-) create mode 100644 google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/stub/HttpJsonCloudBuildCallableFactory.java create mode 100644 google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/stub/HttpJsonCloudBuildStub.java create mode 100644 google-cloud-build/src/test/java/com/google/cloud/devtools/cloudbuild/v1/CloudBuildClientHttpJsonTest.java diff --git a/google-cloud-build/pom.xml b/google-cloud-build/pom.xml index b7ed3f14..8d856873 100644 --- a/google-cloud-build/pom.xml +++ b/google-cloud-build/pom.xml @@ -59,6 +59,10 @@ com.google.api gax-grpc + + com.google.api + gax-httpjson + org.threeten threetenbp @@ -76,12 +80,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-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/CloudBuildClient.java b/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/CloudBuildClient.java index 69d42cc6..e138c8dc 100644 --- a/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/CloudBuildClient.java +++ b/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/CloudBuildClient.java @@ -18,7 +18,9 @@ import com.google.api.core.ApiFuture; import com.google.api.core.ApiFutures; +import com.google.api.core.BetaApi; import com.google.api.gax.core.BackgroundResource; +import com.google.api.gax.httpjson.longrunning.OperationsClient; import com.google.api.gax.longrunning.OperationFuture; import com.google.api.gax.paging.AbstractFixedSizeCollection; import com.google.api.gax.paging.AbstractPage; @@ -63,7 +65,6 @@ import com.google.cloudbuild.v1.WorkerPoolName; import com.google.common.util.concurrent.MoreExecutors; import com.google.longrunning.Operation; -import com.google.longrunning.OperationsClient; import com.google.protobuf.Empty; import com.google.protobuf.FieldMask; import java.io.IOException; @@ -142,13 +143,28 @@ * CloudBuildClient cloudBuildClient = CloudBuildClient.create(cloudBuildSettings); * } * + *

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.
+ * CloudBuildSettings cloudBuildSettings =
+ *     CloudBuildSettings.newBuilder()
+ *         .setTransportChannelProvider(
+ *             CloudBuildSettings.defaultHttpJsonTransportProviderBuilder().build())
+ *         .build();
+ * CloudBuildClient cloudBuildClient = CloudBuildClient.create(cloudBuildSettings);
+ * }
+ * *

Please refer to the GitHub repository's samples for more quickstart code snippets. */ @Generated("by gapic-generator-java") public class CloudBuildClient implements BackgroundResource { private final CloudBuildSettings settings; private final CloudBuildStub stub; - private final OperationsClient operationsClient; + private final OperationsClient httpJsonOperationsClient; + private final com.google.longrunning.OperationsClient operationsClient; /** Constructs an instance of CloudBuildClient with default settings. */ public static final CloudBuildClient create() throws IOException { @@ -178,13 +194,17 @@ public static final CloudBuildClient create(CloudBuildStub stub) { protected CloudBuildClient(CloudBuildSettings settings) throws IOException { this.settings = settings; this.stub = ((CloudBuildStubSettings) settings.getStubSettings()).createStub(); - this.operationsClient = OperationsClient.create(this.stub.getOperationsStub()); + this.operationsClient = + com.google.longrunning.OperationsClient.create(this.stub.getOperationsStub()); + this.httpJsonOperationsClient = OperationsClient.create(this.stub.getHttpJsonOperationsStub()); } protected CloudBuildClient(CloudBuildStub stub) { this.settings = null; this.stub = stub; - this.operationsClient = OperationsClient.create(this.stub.getOperationsStub()); + this.operationsClient = + com.google.longrunning.OperationsClient.create(this.stub.getOperationsStub()); + this.httpJsonOperationsClient = OperationsClient.create(this.stub.getHttpJsonOperationsStub()); } public final CloudBuildSettings getSettings() { @@ -199,10 +219,19 @@ public CloudBuildStub getStub() { * Returns the OperationsClient that can be used to query the status of a long-running operation * returned by another API method call. */ - public final OperationsClient getOperationsClient() { + public final com.google.longrunning.OperationsClient getOperationsClient() { return operationsClient; } + /** + * Returns the OperationsClient that can be used to query the status of a long-running operation + * returned by another API method call. + */ + @BetaApi + public final OperationsClient getHttpJsonOperationsClient() { + return httpJsonOperationsClient; + } + // AUTO-GENERATED DOCUMENTATION AND METHOD. /** * Starts a build with the specified configuration. diff --git a/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/CloudBuildSettings.java b/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/CloudBuildSettings.java index d8b146ea..b7e9d24e 100644 --- a/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/CloudBuildSettings.java +++ b/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/CloudBuildSettings.java @@ -25,6 +25,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; @@ -268,11 +269,18 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde return CloudBuildStubSettings.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 CloudBuildStubSettings.defaultGrpcTransportProviderBuilder(); } + /** Returns a builder for the default REST ChannelProvider for this service. */ + @BetaApi + public static InstantiatingHttpJsonChannelProvider.Builder + defaultHttpJsonTransportProviderBuilder() { + return CloudBuildStubSettings.defaultHttpJsonTransportProviderBuilder(); + } + public static TransportChannelProvider defaultTransportChannelProvider() { return CloudBuildStubSettings.defaultTransportChannelProvider(); } @@ -282,11 +290,17 @@ public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuil return CloudBuildStubSettings.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); @@ -324,6 +338,11 @@ private static Builder createDefault() { return new Builder(CloudBuildStubSettings.newBuilder()); } + @BetaApi + private static Builder createHttpJsonDefault() { + return new Builder(CloudBuildStubSettings.newHttpJsonBuilder()); + } + public CloudBuildStubSettings.Builder getStubSettingsBuilder() { return ((CloudBuildStubSettings.Builder) getStubSettings()); } diff --git a/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/stub/CloudBuildStub.java b/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/stub/CloudBuildStub.java index 9351242f..7ceb4a8d 100644 --- a/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/stub/CloudBuildStub.java +++ b/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/stub/CloudBuildStub.java @@ -67,7 +67,11 @@ public abstract class CloudBuildStub implements BackgroundResource { public OperationsStub getOperationsStub() { - throw new UnsupportedOperationException("Not implemented: getOperationsStub()"); + return null; + } + + public com.google.api.gax.httpjson.longrunning.stub.OperationsStub getHttpJsonOperationsStub() { + return null; } public OperationCallable diff --git a/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/stub/CloudBuildStubSettings.java b/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/stub/CloudBuildStubSettings.java index 58d8bbd8..d9d92243 100644 --- a/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/stub/CloudBuildStubSettings.java +++ b/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/stub/CloudBuildStubSettings.java @@ -30,6 +30,9 @@ import com.google.api.gax.grpc.GrpcTransportChannel; import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider; import com.google.api.gax.grpc.ProtoOperationTransformers; +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.longrunning.OperationSnapshot; import com.google.api.gax.longrunning.OperationTimedPollAlgorithm; import com.google.api.gax.retrying.RetrySettings; @@ -485,6 +488,11 @@ public CloudBuildStub createStub() throws IOException { .equals(GrpcTransportChannel.getGrpcTransportName())) { return GrpcCloudBuildStub.create(this); } + if (getTransportChannelProvider() + .getTransportName() + .equals(HttpJsonTransportChannel.getHttpJsonTransportName())) { + return HttpJsonCloudBuildStub.create(this); + } throw new UnsupportedOperationException( String.format( "Transport not supported: %s", getTransportChannelProvider().getTransportName())); @@ -517,18 +525,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(CloudBuildStubSettings.class)) @@ -536,11 +551,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(CloudBuildStubSettings.class)) + .setTransportToken( + GaxHttpJsonProperties.getHttpJsonTokenName(), + GaxHttpJsonProperties.getHttpJsonVersion()); + } + + public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() { + return CloudBuildStubSettings.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); @@ -802,6 +836,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 .createBuildSettings() diff --git a/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/stub/HttpJsonCloudBuildCallableFactory.java b/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/stub/HttpJsonCloudBuildCallableFactory.java new file mode 100644 index 00000000..dbf58da0 --- /dev/null +++ b/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/stub/HttpJsonCloudBuildCallableFactory.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.cloud.devtools.cloudbuild.v1.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 CloudBuild service API. + * + *

This class is for advanced usage. + */ +@Generated("by gapic-generator-java") +@BetaApi +public class HttpJsonCloudBuildCallableFactory + 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-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/stub/HttpJsonCloudBuildStub.java b/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/stub/HttpJsonCloudBuildStub.java new file mode 100644 index 00000000..0fd6b501 --- /dev/null +++ b/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/stub/HttpJsonCloudBuildStub.java @@ -0,0 +1,1330 @@ +/* + * 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.cloud.devtools.cloudbuild.v1.stub; + +import static com.google.cloud.devtools.cloudbuild.v1.CloudBuildClient.ListBuildTriggersPagedResponse; +import static com.google.cloud.devtools.cloudbuild.v1.CloudBuildClient.ListBuildsPagedResponse; +import static com.google.cloud.devtools.cloudbuild.v1.CloudBuildClient.ListWorkerPoolsPagedResponse; + +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.HttpJsonOperationSnapshot; +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.httpjson.longrunning.stub.HttpJsonOperationsStub; +import com.google.api.gax.rpc.ClientContext; +import com.google.api.gax.rpc.OperationCallable; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.cloudbuild.v1.ApproveBuildRequest; +import com.google.cloudbuild.v1.Build; +import com.google.cloudbuild.v1.BuildOperationMetadata; +import com.google.cloudbuild.v1.BuildTrigger; +import com.google.cloudbuild.v1.CancelBuildRequest; +import com.google.cloudbuild.v1.CreateBuildRequest; +import com.google.cloudbuild.v1.CreateBuildTriggerRequest; +import com.google.cloudbuild.v1.CreateWorkerPoolOperationMetadata; +import com.google.cloudbuild.v1.CreateWorkerPoolRequest; +import com.google.cloudbuild.v1.DeleteBuildTriggerRequest; +import com.google.cloudbuild.v1.DeleteWorkerPoolOperationMetadata; +import com.google.cloudbuild.v1.DeleteWorkerPoolRequest; +import com.google.cloudbuild.v1.GetBuildRequest; +import com.google.cloudbuild.v1.GetBuildTriggerRequest; +import com.google.cloudbuild.v1.GetWorkerPoolRequest; +import com.google.cloudbuild.v1.ListBuildTriggersRequest; +import com.google.cloudbuild.v1.ListBuildTriggersResponse; +import com.google.cloudbuild.v1.ListBuildsRequest; +import com.google.cloudbuild.v1.ListBuildsResponse; +import com.google.cloudbuild.v1.ListWorkerPoolsRequest; +import com.google.cloudbuild.v1.ListWorkerPoolsResponse; +import com.google.cloudbuild.v1.ReceiveTriggerWebhookRequest; +import com.google.cloudbuild.v1.ReceiveTriggerWebhookResponse; +import com.google.cloudbuild.v1.RetryBuildRequest; +import com.google.cloudbuild.v1.RunBuildTriggerRequest; +import com.google.cloudbuild.v1.UpdateBuildTriggerRequest; +import com.google.cloudbuild.v1.UpdateWorkerPoolOperationMetadata; +import com.google.cloudbuild.v1.UpdateWorkerPoolRequest; +import com.google.cloudbuild.v1.WorkerPool; +import com.google.longrunning.Operation; +import com.google.protobuf.Empty; +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 CloudBuild service API. + * + *

This class is for advanced usage and reflects the underlying API directly. + */ +@Generated("by gapic-generator-java") +@BetaApi +public class HttpJsonCloudBuildStub extends CloudBuildStub { + private static final TypeRegistry typeRegistry = + TypeRegistry.newBuilder() + .add(Empty.getDescriptor()) + .add(DeleteWorkerPoolOperationMetadata.getDescriptor()) + .add(UpdateWorkerPoolOperationMetadata.getDescriptor()) + .add(Build.getDescriptor()) + .add(WorkerPool.getDescriptor()) + .add(CreateWorkerPoolOperationMetadata.getDescriptor()) + .add(BuildOperationMetadata.getDescriptor()) + .build(); + + private static final ApiMethodDescriptor + createBuildMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName("google.devtools.cloudbuild.v1.CloudBuild/CreateBuild") + .setHttpMethod("POST") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/projects/{projectId}/builds", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putPathParam(fields, "parent", request.getParent()); + serializer.putPathParam(fields, "projectId", request.getProjectId()); + return fields; + }) + .setAdditionalPaths("/v1/{parent=projects/*/locations/*}/builds") + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + return fields; + }) + .setRequestBodyExtractor( + request -> + ProtoRestSerializer.create().toBody("build", request.getBuild())) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(Operation.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .setOperationSnapshotFactory( + (CreateBuildRequest request, Operation response) -> + HttpJsonOperationSnapshot.create(response)) + .build(); + + private static final ApiMethodDescriptor getBuildMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName("google.devtools.cloudbuild.v1.CloudBuild/GetBuild") + .setHttpMethod("GET") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/projects/{projectId}/builds/{id}", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putPathParam(fields, "id", request.getId()); + serializer.putPathParam(fields, "name", request.getName()); + serializer.putPathParam(fields, "projectId", request.getProjectId()); + return fields; + }) + .setAdditionalPaths("/v1/{name=projects/*/locations/*/builds/*}") + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + return fields; + }) + .setRequestBodyExtractor(request -> null) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(Build.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .build(); + + private static final ApiMethodDescriptor + listBuildsMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName("google.devtools.cloudbuild.v1.CloudBuild/ListBuilds") + .setHttpMethod("GET") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/projects/{projectId}/builds", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putPathParam(fields, "parent", request.getParent()); + serializer.putPathParam(fields, "projectId", request.getProjectId()); + return fields; + }) + .setAdditionalPaths("/v1/{parent=projects/*/locations/*}/builds") + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putQueryParam(fields, "filter", request.getFilter()); + serializer.putQueryParam(fields, "pageSize", request.getPageSize()); + serializer.putQueryParam(fields, "pageToken", request.getPageToken()); + return fields; + }) + .setRequestBodyExtractor(request -> null) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(ListBuildsResponse.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .build(); + + private static final ApiMethodDescriptor cancelBuildMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName("google.devtools.cloudbuild.v1.CloudBuild/CancelBuild") + .setHttpMethod("POST") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/projects/{projectId}/builds/{id}:cancel", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putPathParam(fields, "id", request.getId()); + serializer.putPathParam(fields, "name", request.getName()); + serializer.putPathParam(fields, "projectId", request.getProjectId()); + return fields; + }) + .setAdditionalPaths("/v1/{name=projects/*/locations/*/builds/*}:cancel") + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + return fields; + }) + .setRequestBodyExtractor( + request -> + ProtoRestSerializer.create() + .toBody( + "*", + request + .toBuilder() + .clearId() + .clearName() + .clearProjectId() + .build())) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(Build.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .build(); + + private static final ApiMethodDescriptor + retryBuildMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName("google.devtools.cloudbuild.v1.CloudBuild/RetryBuild") + .setHttpMethod("POST") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/projects/{projectId}/builds/{id}:retry", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putPathParam(fields, "id", request.getId()); + serializer.putPathParam(fields, "name", request.getName()); + serializer.putPathParam(fields, "projectId", request.getProjectId()); + return fields; + }) + .setAdditionalPaths("/v1/{name=projects/*/locations/*/builds/*}:retry") + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + return fields; + }) + .setRequestBodyExtractor( + request -> + ProtoRestSerializer.create() + .toBody( + "*", + request + .toBuilder() + .clearId() + .clearName() + .clearProjectId() + .build())) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(Operation.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .setOperationSnapshotFactory( + (RetryBuildRequest request, Operation response) -> + HttpJsonOperationSnapshot.create(response)) + .build(); + + private static final ApiMethodDescriptor + approveBuildMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName("google.devtools.cloudbuild.v1.CloudBuild/ApproveBuild") + .setHttpMethod("POST") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/{name=projects/*/builds/*}:approve", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putPathParam(fields, "name", request.getName()); + return fields; + }) + .setAdditionalPaths("/v1/{name=projects/*/locations/*/builds/*}:approve") + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + return fields; + }) + .setRequestBodyExtractor( + request -> + ProtoRestSerializer.create() + .toBody("*", request.toBuilder().clearName().build())) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(Operation.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .setOperationSnapshotFactory( + (ApproveBuildRequest request, Operation response) -> + HttpJsonOperationSnapshot.create(response)) + .build(); + + private static final ApiMethodDescriptor + createBuildTriggerMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName("google.devtools.cloudbuild.v1.CloudBuild/CreateBuildTrigger") + .setHttpMethod("POST") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/projects/{projectId}/triggers", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putPathParam(fields, "parent", request.getParent()); + serializer.putPathParam(fields, "projectId", request.getProjectId()); + return fields; + }) + .setAdditionalPaths("/v1/{parent=projects/*/locations/*}/triggers") + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + return fields; + }) + .setRequestBodyExtractor( + request -> + ProtoRestSerializer.create().toBody("trigger", request.getTrigger())) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(BuildTrigger.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .build(); + + private static final ApiMethodDescriptor + getBuildTriggerMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName("google.devtools.cloudbuild.v1.CloudBuild/GetBuildTrigger") + .setHttpMethod("GET") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/projects/{projectId}/triggers/{triggerId}", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putPathParam(fields, "name", request.getName()); + serializer.putPathParam(fields, "projectId", request.getProjectId()); + serializer.putPathParam(fields, "triggerId", request.getTriggerId()); + return fields; + }) + .setAdditionalPaths("/v1/{name=projects/*/locations/*/triggers/*}") + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + return fields; + }) + .setRequestBodyExtractor(request -> null) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(BuildTrigger.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .build(); + + private static final ApiMethodDescriptor + listBuildTriggersMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName("google.devtools.cloudbuild.v1.CloudBuild/ListBuildTriggers") + .setHttpMethod("GET") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/projects/{projectId}/triggers", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putPathParam(fields, "parent", request.getParent()); + serializer.putPathParam(fields, "projectId", request.getProjectId()); + return fields; + }) + .setAdditionalPaths("/v1/{parent=projects/*/locations/*}/triggers") + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putQueryParam(fields, "pageSize", request.getPageSize()); + serializer.putQueryParam(fields, "pageToken", request.getPageToken()); + return fields; + }) + .setRequestBodyExtractor(request -> null) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(ListBuildTriggersResponse.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .build(); + + private static final ApiMethodDescriptor + deleteBuildTriggerMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName("google.devtools.cloudbuild.v1.CloudBuild/DeleteBuildTrigger") + .setHttpMethod("DELETE") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/projects/{projectId}/triggers/{triggerId}", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putPathParam(fields, "name", request.getName()); + serializer.putPathParam(fields, "projectId", request.getProjectId()); + serializer.putPathParam(fields, "triggerId", request.getTriggerId()); + return fields; + }) + .setAdditionalPaths("/v1/{name=projects/*/locations/*/triggers/*}") + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + return fields; + }) + .setRequestBodyExtractor(request -> null) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(Empty.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .build(); + + private static final ApiMethodDescriptor + updateBuildTriggerMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName("google.devtools.cloudbuild.v1.CloudBuild/UpdateBuildTrigger") + .setHttpMethod("PATCH") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/projects/{projectId}/triggers/{triggerId}", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putPathParam(fields, "projectId", request.getProjectId()); + serializer.putPathParam( + fields, + "trigger.resourceName", + request.getTrigger().getResourceName()); + serializer.putPathParam(fields, "triggerId", request.getTriggerId()); + return fields; + }) + .setAdditionalPaths( + "/v1/{trigger.resourceName=projects/*/locations/*/triggers/*}") + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + return fields; + }) + .setRequestBodyExtractor( + request -> + ProtoRestSerializer.create().toBody("trigger", request.getTrigger())) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(BuildTrigger.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .build(); + + private static final ApiMethodDescriptor + runBuildTriggerMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName("google.devtools.cloudbuild.v1.CloudBuild/RunBuildTrigger") + .setHttpMethod("POST") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/projects/{projectId}/triggers/{triggerId}:run", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putPathParam(fields, "name", request.getName()); + serializer.putPathParam(fields, "projectId", request.getProjectId()); + serializer.putPathParam(fields, "triggerId", request.getTriggerId()); + return fields; + }) + .setAdditionalPaths("/v1/{name=projects/*/locations/*/triggers/*}:run") + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + return fields; + }) + .setRequestBodyExtractor( + request -> + ProtoRestSerializer.create().toBody("source", request.getSource())) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(Operation.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .setOperationSnapshotFactory( + (RunBuildTriggerRequest request, Operation response) -> + HttpJsonOperationSnapshot.create(response)) + .build(); + + private static final ApiMethodDescriptor< + ReceiveTriggerWebhookRequest, ReceiveTriggerWebhookResponse> + receiveTriggerWebhookMethodDescriptor = + ApiMethodDescriptor + .newBuilder() + .setFullMethodName("google.devtools.cloudbuild.v1.CloudBuild/ReceiveTriggerWebhook") + .setHttpMethod("POST") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/projects/{projectId}/triggers/{trigger}:webhook", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putPathParam(fields, "name", request.getName()); + serializer.putPathParam(fields, "projectId", request.getProjectId()); + serializer.putPathParam(fields, "trigger", request.getTrigger()); + return fields; + }) + .setAdditionalPaths("/v1/{name=projects/*/locations/*/triggers/*}:webhook") + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putQueryParam(fields, "secret", request.getSecret()); + return fields; + }) + .setRequestBodyExtractor( + request -> ProtoRestSerializer.create().toBody("body", request.getBody())) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(ReceiveTriggerWebhookResponse.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .build(); + + private static final ApiMethodDescriptor + createWorkerPoolMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName("google.devtools.cloudbuild.v1.CloudBuild/CreateWorkerPool") + .setHttpMethod("POST") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/{parent=projects/*/locations/*}/workerPools", + 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(); + serializer.putQueryParam( + fields, "validateOnly", request.getValidateOnly()); + serializer.putQueryParam( + fields, "workerPoolId", request.getWorkerPoolId()); + return fields; + }) + .setRequestBodyExtractor( + request -> + ProtoRestSerializer.create() + .toBody("workerPool", request.getWorkerPool())) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(Operation.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .setOperationSnapshotFactory( + (CreateWorkerPoolRequest request, Operation response) -> + HttpJsonOperationSnapshot.create(response)) + .build(); + + private static final ApiMethodDescriptor + getWorkerPoolMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName("google.devtools.cloudbuild.v1.CloudBuild/GetWorkerPool") + .setHttpMethod("GET") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/{name=projects/*/locations/*/workerPools/*}", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putPathParam(fields, "name", request.getName()); + return fields; + }) + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + return fields; + }) + .setRequestBodyExtractor(request -> null) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(WorkerPool.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .build(); + + private static final ApiMethodDescriptor + deleteWorkerPoolMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName("google.devtools.cloudbuild.v1.CloudBuild/DeleteWorkerPool") + .setHttpMethod("DELETE") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/{name=projects/*/locations/*/workerPools/*}", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putPathParam(fields, "name", request.getName()); + return fields; + }) + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putQueryParam( + fields, "allowMissing", request.getAllowMissing()); + serializer.putQueryParam(fields, "etag", request.getEtag()); + serializer.putQueryParam( + fields, "validateOnly", request.getValidateOnly()); + return fields; + }) + .setRequestBodyExtractor(request -> null) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(Operation.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .setOperationSnapshotFactory( + (DeleteWorkerPoolRequest request, Operation response) -> + HttpJsonOperationSnapshot.create(response)) + .build(); + + private static final ApiMethodDescriptor + updateWorkerPoolMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName("google.devtools.cloudbuild.v1.CloudBuild/UpdateWorkerPool") + .setHttpMethod("PATCH") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/{workerPool.name=projects/*/locations/*/workerPools/*}", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putPathParam( + fields, "workerPool.name", request.getWorkerPool().getName()); + return fields; + }) + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putQueryParam(fields, "updateMask", request.getUpdateMask()); + serializer.putQueryParam( + fields, "validateOnly", request.getValidateOnly()); + return fields; + }) + .setRequestBodyExtractor( + request -> + ProtoRestSerializer.create() + .toBody("workerPool", request.getWorkerPool())) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(Operation.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .setOperationSnapshotFactory( + (UpdateWorkerPoolRequest request, Operation response) -> + HttpJsonOperationSnapshot.create(response)) + .build(); + + private static final ApiMethodDescriptor + listWorkerPoolsMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName("google.devtools.cloudbuild.v1.CloudBuild/ListWorkerPools") + .setHttpMethod("GET") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/{parent=projects/*/locations/*}/workerPools", + 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(); + serializer.putQueryParam(fields, "pageSize", request.getPageSize()); + serializer.putQueryParam(fields, "pageToken", request.getPageToken()); + return fields; + }) + .setRequestBodyExtractor(request -> null) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(ListWorkerPoolsResponse.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .build(); + + private final UnaryCallable createBuildCallable; + private final OperationCallable + createBuildOperationCallable; + private final UnaryCallable getBuildCallable; + private final UnaryCallable listBuildsCallable; + private final UnaryCallable listBuildsPagedCallable; + private final UnaryCallable cancelBuildCallable; + private final UnaryCallable retryBuildCallable; + private final OperationCallable + retryBuildOperationCallable; + private final UnaryCallable approveBuildCallable; + private final OperationCallable + approveBuildOperationCallable; + private final UnaryCallable createBuildTriggerCallable; + private final UnaryCallable getBuildTriggerCallable; + private final UnaryCallable + listBuildTriggersCallable; + private final UnaryCallable + listBuildTriggersPagedCallable; + private final UnaryCallable deleteBuildTriggerCallable; + private final UnaryCallable updateBuildTriggerCallable; + private final UnaryCallable runBuildTriggerCallable; + private final OperationCallable + runBuildTriggerOperationCallable; + private final UnaryCallable + receiveTriggerWebhookCallable; + private final UnaryCallable createWorkerPoolCallable; + private final OperationCallable< + CreateWorkerPoolRequest, WorkerPool, CreateWorkerPoolOperationMetadata> + createWorkerPoolOperationCallable; + private final UnaryCallable getWorkerPoolCallable; + private final UnaryCallable deleteWorkerPoolCallable; + private final OperationCallable + deleteWorkerPoolOperationCallable; + private final UnaryCallable updateWorkerPoolCallable; + private final OperationCallable< + UpdateWorkerPoolRequest, WorkerPool, UpdateWorkerPoolOperationMetadata> + updateWorkerPoolOperationCallable; + private final UnaryCallable + listWorkerPoolsCallable; + private final UnaryCallable + listWorkerPoolsPagedCallable; + + private final BackgroundResource backgroundResources; + private final HttpJsonOperationsStub httpJsonOperationsStub; + private final HttpJsonStubCallableFactory callableFactory; + + public static final HttpJsonCloudBuildStub create(CloudBuildStubSettings settings) + throws IOException { + return new HttpJsonCloudBuildStub(settings, ClientContext.create(settings)); + } + + public static final HttpJsonCloudBuildStub create(ClientContext clientContext) + throws IOException { + return new HttpJsonCloudBuildStub( + CloudBuildStubSettings.newHttpJsonBuilder().build(), clientContext); + } + + public static final HttpJsonCloudBuildStub create( + ClientContext clientContext, HttpJsonStubCallableFactory callableFactory) throws IOException { + return new HttpJsonCloudBuildStub( + CloudBuildStubSettings.newHttpJsonBuilder().build(), clientContext, callableFactory); + } + + /** + * Constructs an instance of HttpJsonCloudBuildStub, 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 HttpJsonCloudBuildStub(CloudBuildStubSettings settings, ClientContext clientContext) + throws IOException { + this(settings, clientContext, new HttpJsonCloudBuildCallableFactory()); + } + + /** + * Constructs an instance of HttpJsonCloudBuildStub, 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 HttpJsonCloudBuildStub( + CloudBuildStubSettings settings, + ClientContext clientContext, + HttpJsonStubCallableFactory callableFactory) + throws IOException { + this.callableFactory = callableFactory; + this.httpJsonOperationsStub = + HttpJsonOperationsStub.create(clientContext, callableFactory, typeRegistry); + + HttpJsonCallSettings createBuildTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(createBuildMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + HttpJsonCallSettings getBuildTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(getBuildMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + HttpJsonCallSettings listBuildsTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(listBuildsMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + HttpJsonCallSettings cancelBuildTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(cancelBuildMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + HttpJsonCallSettings retryBuildTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(retryBuildMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + HttpJsonCallSettings approveBuildTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(approveBuildMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + HttpJsonCallSettings + createBuildTriggerTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(createBuildTriggerMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + HttpJsonCallSettings getBuildTriggerTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(getBuildTriggerMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + HttpJsonCallSettings + listBuildTriggersTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(listBuildTriggersMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + HttpJsonCallSettings deleteBuildTriggerTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(deleteBuildTriggerMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + HttpJsonCallSettings + updateBuildTriggerTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(updateBuildTriggerMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + HttpJsonCallSettings runBuildTriggerTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(runBuildTriggerMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + HttpJsonCallSettings + receiveTriggerWebhookTransportSettings = + HttpJsonCallSettings + .newBuilder() + .setMethodDescriptor(receiveTriggerWebhookMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + HttpJsonCallSettings createWorkerPoolTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(createWorkerPoolMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + HttpJsonCallSettings getWorkerPoolTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(getWorkerPoolMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + HttpJsonCallSettings deleteWorkerPoolTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(deleteWorkerPoolMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + HttpJsonCallSettings updateWorkerPoolTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(updateWorkerPoolMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + HttpJsonCallSettings + listWorkerPoolsTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(listWorkerPoolsMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + + this.createBuildCallable = + callableFactory.createUnaryCallable( + createBuildTransportSettings, settings.createBuildSettings(), clientContext); + this.createBuildOperationCallable = + callableFactory.createOperationCallable( + createBuildTransportSettings, + settings.createBuildOperationSettings(), + clientContext, + httpJsonOperationsStub); + this.getBuildCallable = + callableFactory.createUnaryCallable( + getBuildTransportSettings, settings.getBuildSettings(), clientContext); + this.listBuildsCallable = + callableFactory.createUnaryCallable( + listBuildsTransportSettings, settings.listBuildsSettings(), clientContext); + this.listBuildsPagedCallable = + callableFactory.createPagedCallable( + listBuildsTransportSettings, settings.listBuildsSettings(), clientContext); + this.cancelBuildCallable = + callableFactory.createUnaryCallable( + cancelBuildTransportSettings, settings.cancelBuildSettings(), clientContext); + this.retryBuildCallable = + callableFactory.createUnaryCallable( + retryBuildTransportSettings, settings.retryBuildSettings(), clientContext); + this.retryBuildOperationCallable = + callableFactory.createOperationCallable( + retryBuildTransportSettings, + settings.retryBuildOperationSettings(), + clientContext, + httpJsonOperationsStub); + this.approveBuildCallable = + callableFactory.createUnaryCallable( + approveBuildTransportSettings, settings.approveBuildSettings(), clientContext); + this.approveBuildOperationCallable = + callableFactory.createOperationCallable( + approveBuildTransportSettings, + settings.approveBuildOperationSettings(), + clientContext, + httpJsonOperationsStub); + this.createBuildTriggerCallable = + callableFactory.createUnaryCallable( + createBuildTriggerTransportSettings, + settings.createBuildTriggerSettings(), + clientContext); + this.getBuildTriggerCallable = + callableFactory.createUnaryCallable( + getBuildTriggerTransportSettings, settings.getBuildTriggerSettings(), clientContext); + this.listBuildTriggersCallable = + callableFactory.createUnaryCallable( + listBuildTriggersTransportSettings, + settings.listBuildTriggersSettings(), + clientContext); + this.listBuildTriggersPagedCallable = + callableFactory.createPagedCallable( + listBuildTriggersTransportSettings, + settings.listBuildTriggersSettings(), + clientContext); + this.deleteBuildTriggerCallable = + callableFactory.createUnaryCallable( + deleteBuildTriggerTransportSettings, + settings.deleteBuildTriggerSettings(), + clientContext); + this.updateBuildTriggerCallable = + callableFactory.createUnaryCallable( + updateBuildTriggerTransportSettings, + settings.updateBuildTriggerSettings(), + clientContext); + this.runBuildTriggerCallable = + callableFactory.createUnaryCallable( + runBuildTriggerTransportSettings, settings.runBuildTriggerSettings(), clientContext); + this.runBuildTriggerOperationCallable = + callableFactory.createOperationCallable( + runBuildTriggerTransportSettings, + settings.runBuildTriggerOperationSettings(), + clientContext, + httpJsonOperationsStub); + this.receiveTriggerWebhookCallable = + callableFactory.createUnaryCallable( + receiveTriggerWebhookTransportSettings, + settings.receiveTriggerWebhookSettings(), + clientContext); + this.createWorkerPoolCallable = + callableFactory.createUnaryCallable( + createWorkerPoolTransportSettings, settings.createWorkerPoolSettings(), clientContext); + this.createWorkerPoolOperationCallable = + callableFactory.createOperationCallable( + createWorkerPoolTransportSettings, + settings.createWorkerPoolOperationSettings(), + clientContext, + httpJsonOperationsStub); + this.getWorkerPoolCallable = + callableFactory.createUnaryCallable( + getWorkerPoolTransportSettings, settings.getWorkerPoolSettings(), clientContext); + this.deleteWorkerPoolCallable = + callableFactory.createUnaryCallable( + deleteWorkerPoolTransportSettings, settings.deleteWorkerPoolSettings(), clientContext); + this.deleteWorkerPoolOperationCallable = + callableFactory.createOperationCallable( + deleteWorkerPoolTransportSettings, + settings.deleteWorkerPoolOperationSettings(), + clientContext, + httpJsonOperationsStub); + this.updateWorkerPoolCallable = + callableFactory.createUnaryCallable( + updateWorkerPoolTransportSettings, settings.updateWorkerPoolSettings(), clientContext); + this.updateWorkerPoolOperationCallable = + callableFactory.createOperationCallable( + updateWorkerPoolTransportSettings, + settings.updateWorkerPoolOperationSettings(), + clientContext, + httpJsonOperationsStub); + this.listWorkerPoolsCallable = + callableFactory.createUnaryCallable( + listWorkerPoolsTransportSettings, settings.listWorkerPoolsSettings(), clientContext); + this.listWorkerPoolsPagedCallable = + callableFactory.createPagedCallable( + listWorkerPoolsTransportSettings, settings.listWorkerPoolsSettings(), clientContext); + + this.backgroundResources = + new BackgroundResourceAggregation(clientContext.getBackgroundResources()); + } + + @InternalApi + public static List getMethodDescriptors() { + List methodDescriptors = new ArrayList<>(); + methodDescriptors.add(createBuildMethodDescriptor); + methodDescriptors.add(getBuildMethodDescriptor); + methodDescriptors.add(listBuildsMethodDescriptor); + methodDescriptors.add(cancelBuildMethodDescriptor); + methodDescriptors.add(retryBuildMethodDescriptor); + methodDescriptors.add(approveBuildMethodDescriptor); + methodDescriptors.add(createBuildTriggerMethodDescriptor); + methodDescriptors.add(getBuildTriggerMethodDescriptor); + methodDescriptors.add(listBuildTriggersMethodDescriptor); + methodDescriptors.add(deleteBuildTriggerMethodDescriptor); + methodDescriptors.add(updateBuildTriggerMethodDescriptor); + methodDescriptors.add(runBuildTriggerMethodDescriptor); + methodDescriptors.add(receiveTriggerWebhookMethodDescriptor); + methodDescriptors.add(createWorkerPoolMethodDescriptor); + methodDescriptors.add(getWorkerPoolMethodDescriptor); + methodDescriptors.add(deleteWorkerPoolMethodDescriptor); + methodDescriptors.add(updateWorkerPoolMethodDescriptor); + methodDescriptors.add(listWorkerPoolsMethodDescriptor); + return methodDescriptors; + } + + public HttpJsonOperationsStub getHttpJsonOperationsStub() { + return httpJsonOperationsStub; + } + + @Override + public UnaryCallable createBuildCallable() { + return createBuildCallable; + } + + @Override + public OperationCallable + createBuildOperationCallable() { + return createBuildOperationCallable; + } + + @Override + public UnaryCallable getBuildCallable() { + return getBuildCallable; + } + + @Override + public UnaryCallable listBuildsCallable() { + return listBuildsCallable; + } + + @Override + public UnaryCallable listBuildsPagedCallable() { + return listBuildsPagedCallable; + } + + @Override + public UnaryCallable cancelBuildCallable() { + return cancelBuildCallable; + } + + @Override + public UnaryCallable retryBuildCallable() { + return retryBuildCallable; + } + + @Override + public OperationCallable + retryBuildOperationCallable() { + return retryBuildOperationCallable; + } + + @Override + public UnaryCallable approveBuildCallable() { + return approveBuildCallable; + } + + @Override + public OperationCallable + approveBuildOperationCallable() { + return approveBuildOperationCallable; + } + + @Override + public UnaryCallable createBuildTriggerCallable() { + return createBuildTriggerCallable; + } + + @Override + public UnaryCallable getBuildTriggerCallable() { + return getBuildTriggerCallable; + } + + @Override + public UnaryCallable + listBuildTriggersCallable() { + return listBuildTriggersCallable; + } + + @Override + public UnaryCallable + listBuildTriggersPagedCallable() { + return listBuildTriggersPagedCallable; + } + + @Override + public UnaryCallable deleteBuildTriggerCallable() { + return deleteBuildTriggerCallable; + } + + @Override + public UnaryCallable updateBuildTriggerCallable() { + return updateBuildTriggerCallable; + } + + @Override + public UnaryCallable runBuildTriggerCallable() { + return runBuildTriggerCallable; + } + + @Override + public OperationCallable + runBuildTriggerOperationCallable() { + return runBuildTriggerOperationCallable; + } + + @Override + public UnaryCallable + receiveTriggerWebhookCallable() { + return receiveTriggerWebhookCallable; + } + + @Override + public UnaryCallable createWorkerPoolCallable() { + return createWorkerPoolCallable; + } + + @Override + public OperationCallable + createWorkerPoolOperationCallable() { + return createWorkerPoolOperationCallable; + } + + @Override + public UnaryCallable getWorkerPoolCallable() { + return getWorkerPoolCallable; + } + + @Override + public UnaryCallable deleteWorkerPoolCallable() { + return deleteWorkerPoolCallable; + } + + @Override + public OperationCallable + deleteWorkerPoolOperationCallable() { + return deleteWorkerPoolOperationCallable; + } + + @Override + public UnaryCallable updateWorkerPoolCallable() { + return updateWorkerPoolCallable; + } + + @Override + public OperationCallable + updateWorkerPoolOperationCallable() { + return updateWorkerPoolOperationCallable; + } + + @Override + public UnaryCallable listWorkerPoolsCallable() { + return listWorkerPoolsCallable; + } + + @Override + public UnaryCallable + listWorkerPoolsPagedCallable() { + return listWorkerPoolsPagedCallable; + } + + @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-build/src/test/java/com/google/cloud/devtools/cloudbuild/v1/CloudBuildClientHttpJsonTest.java b/google-cloud-build/src/test/java/com/google/cloud/devtools/cloudbuild/v1/CloudBuildClientHttpJsonTest.java new file mode 100644 index 00000000..099d164c --- /dev/null +++ b/google-cloud-build/src/test/java/com/google/cloud/devtools/cloudbuild/v1/CloudBuildClientHttpJsonTest.java @@ -0,0 +1,1488 @@ +/* + * 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.cloud.devtools.cloudbuild.v1; + +import static com.google.cloud.devtools.cloudbuild.v1.CloudBuildClient.ListBuildTriggersPagedResponse; +import static com.google.cloud.devtools.cloudbuild.v1.CloudBuildClient.ListBuildsPagedResponse; +import static com.google.cloud.devtools.cloudbuild.v1.CloudBuildClient.ListWorkerPoolsPagedResponse; + +import com.google.api.HttpBody; +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.cloud.devtools.cloudbuild.v1.stub.HttpJsonCloudBuildStub; +import com.google.cloudbuild.v1.ApprovalResult; +import com.google.cloudbuild.v1.Artifacts; +import com.google.cloudbuild.v1.Build; +import com.google.cloudbuild.v1.BuildApproval; +import com.google.cloudbuild.v1.BuildName; +import com.google.cloudbuild.v1.BuildOptions; +import com.google.cloudbuild.v1.BuildStep; +import com.google.cloudbuild.v1.BuildTrigger; +import com.google.cloudbuild.v1.BuildTriggerName; +import com.google.cloudbuild.v1.GitHubEventsConfig; +import com.google.cloudbuild.v1.ListBuildTriggersResponse; +import com.google.cloudbuild.v1.ListBuildsResponse; +import com.google.cloudbuild.v1.ListWorkerPoolsResponse; +import com.google.cloudbuild.v1.LocationName; +import com.google.cloudbuild.v1.PubsubConfig; +import com.google.cloudbuild.v1.ReceiveTriggerWebhookRequest; +import com.google.cloudbuild.v1.ReceiveTriggerWebhookResponse; +import com.google.cloudbuild.v1.RepoSource; +import com.google.cloudbuild.v1.Results; +import com.google.cloudbuild.v1.Secret; +import com.google.cloudbuild.v1.Secrets; +import com.google.cloudbuild.v1.Source; +import com.google.cloudbuild.v1.SourceProvenance; +import com.google.cloudbuild.v1.TimeSpan; +import com.google.cloudbuild.v1.WebhookConfig; +import com.google.cloudbuild.v1.WorkerPool; +import com.google.cloudbuild.v1.WorkerPoolName; +import com.google.common.collect.Lists; +import com.google.longrunning.Operation; +import com.google.protobuf.Any; +import com.google.protobuf.Duration; +import com.google.protobuf.Empty; +import com.google.protobuf.FieldMask; +import com.google.protobuf.Timestamp; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.concurrent.ExecutionException; +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 CloudBuildClientHttpJsonTest { + private static MockHttpService mockService; + private static CloudBuildClient client; + + @BeforeClass + public static void startStaticServer() throws IOException { + mockService = + new MockHttpService( + HttpJsonCloudBuildStub.getMethodDescriptors(), CloudBuildSettings.getDefaultEndpoint()); + CloudBuildSettings settings = + CloudBuildSettings.newHttpJsonBuilder() + .setTransportChannelProvider( + CloudBuildSettings.defaultHttpJsonTransportProviderBuilder() + .setHttpTransport(mockService) + .build()) + .setCredentialsProvider(NoCredentialsProvider.create()) + .build(); + client = CloudBuildClient.create(settings); + } + + @AfterClass + public static void stopServer() { + client.close(); + } + + @Before + public void setUp() {} + + @After + public void tearDown() throws Exception { + mockService.reset(); + } + + @Test + public void createBuildTest() throws Exception { + Build expectedResponse = + Build.newBuilder() + .setName(BuildName.ofProjectBuildName("[PROJECT]", "[BUILD]").toString()) + .setId("id3355") + .setProjectId("projectId-894832108") + .setStatusDetail("statusDetail1651087075") + .setSource(Source.newBuilder().build()) + .addAllSteps(new ArrayList()) + .setResults(Results.newBuilder().build()) + .setCreateTime(Timestamp.newBuilder().build()) + .setStartTime(Timestamp.newBuilder().build()) + .setFinishTime(Timestamp.newBuilder().build()) + .setTimeout(Duration.newBuilder().build()) + .addAllImages(new ArrayList()) + .setQueueTtl(Duration.newBuilder().build()) + .setArtifacts(Artifacts.newBuilder().build()) + .setLogsBucket("logsBucket1592573049") + .setSourceProvenance(SourceProvenance.newBuilder().build()) + .setBuildTriggerId("buildTriggerId781747749") + .setOptions(BuildOptions.newBuilder().build()) + .setLogUrl("logUrl-1097354357") + .putAllSubstitutions(new HashMap()) + .addAllTags(new ArrayList()) + .addAllSecrets(new ArrayList()) + .putAllTiming(new HashMap()) + .setApproval(BuildApproval.newBuilder().build()) + .setServiceAccount("serviceAccount1079137720") + .setAvailableSecrets(Secrets.newBuilder().build()) + .addAllWarnings(new ArrayList()) + .setFailureInfo(Build.FailureInfo.newBuilder().build()) + .build(); + Operation resultOperation = + Operation.newBuilder() + .setName("createBuildTest") + .setDone(true) + .setResponse(Any.pack(expectedResponse)) + .build(); + mockService.addResponse(resultOperation); + + String projectId = "projectId-1530"; + Build build = Build.newBuilder().build(); + + Build actualResponse = client.createBuildAsync(projectId, build).get(); + 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 createBuildExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + String projectId = "projectId-1530"; + Build build = Build.newBuilder().build(); + client.createBuildAsync(projectId, build).get(); + Assert.fail("No exception raised"); + } catch (ExecutionException e) { + } + } + + @Test + public void getBuildTest() throws Exception { + Build expectedResponse = + Build.newBuilder() + .setName(BuildName.ofProjectBuildName("[PROJECT]", "[BUILD]").toString()) + .setId("id3355") + .setProjectId("projectId-894832108") + .setStatusDetail("statusDetail1651087075") + .setSource(Source.newBuilder().build()) + .addAllSteps(new ArrayList()) + .setResults(Results.newBuilder().build()) + .setCreateTime(Timestamp.newBuilder().build()) + .setStartTime(Timestamp.newBuilder().build()) + .setFinishTime(Timestamp.newBuilder().build()) + .setTimeout(Duration.newBuilder().build()) + .addAllImages(new ArrayList()) + .setQueueTtl(Duration.newBuilder().build()) + .setArtifacts(Artifacts.newBuilder().build()) + .setLogsBucket("logsBucket1592573049") + .setSourceProvenance(SourceProvenance.newBuilder().build()) + .setBuildTriggerId("buildTriggerId781747749") + .setOptions(BuildOptions.newBuilder().build()) + .setLogUrl("logUrl-1097354357") + .putAllSubstitutions(new HashMap()) + .addAllTags(new ArrayList()) + .addAllSecrets(new ArrayList()) + .putAllTiming(new HashMap()) + .setApproval(BuildApproval.newBuilder().build()) + .setServiceAccount("serviceAccount1079137720") + .setAvailableSecrets(Secrets.newBuilder().build()) + .addAllWarnings(new ArrayList()) + .setFailureInfo(Build.FailureInfo.newBuilder().build()) + .build(); + mockService.addResponse(expectedResponse); + + String projectId = "projectId-1530"; + String id = "id-4047"; + + Build actualResponse = client.getBuild(projectId, id); + 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 getBuildExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + String projectId = "projectId-1530"; + String id = "id-4047"; + client.getBuild(projectId, id); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void listBuildsTest() throws Exception { + Build responsesElement = Build.newBuilder().build(); + ListBuildsResponse expectedResponse = + ListBuildsResponse.newBuilder() + .setNextPageToken("") + .addAllBuilds(Arrays.asList(responsesElement)) + .build(); + mockService.addResponse(expectedResponse); + + String projectId = "projectId-1530"; + String filter = "filter-1274492040"; + + ListBuildsPagedResponse pagedListResponse = client.listBuilds(projectId, filter); + + List resources = Lists.newArrayList(pagedListResponse.iterateAll()); + + Assert.assertEquals(1, resources.size()); + Assert.assertEquals(expectedResponse.getBuildsList().get(0), resources.get(0)); + + 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 listBuildsExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + String projectId = "projectId-1530"; + String filter = "filter-1274492040"; + client.listBuilds(projectId, filter); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void cancelBuildTest() throws Exception { + Build expectedResponse = + Build.newBuilder() + .setName(BuildName.ofProjectBuildName("[PROJECT]", "[BUILD]").toString()) + .setId("id3355") + .setProjectId("projectId-894832108") + .setStatusDetail("statusDetail1651087075") + .setSource(Source.newBuilder().build()) + .addAllSteps(new ArrayList()) + .setResults(Results.newBuilder().build()) + .setCreateTime(Timestamp.newBuilder().build()) + .setStartTime(Timestamp.newBuilder().build()) + .setFinishTime(Timestamp.newBuilder().build()) + .setTimeout(Duration.newBuilder().build()) + .addAllImages(new ArrayList()) + .setQueueTtl(Duration.newBuilder().build()) + .setArtifacts(Artifacts.newBuilder().build()) + .setLogsBucket("logsBucket1592573049") + .setSourceProvenance(SourceProvenance.newBuilder().build()) + .setBuildTriggerId("buildTriggerId781747749") + .setOptions(BuildOptions.newBuilder().build()) + .setLogUrl("logUrl-1097354357") + .putAllSubstitutions(new HashMap()) + .addAllTags(new ArrayList()) + .addAllSecrets(new ArrayList()) + .putAllTiming(new HashMap()) + .setApproval(BuildApproval.newBuilder().build()) + .setServiceAccount("serviceAccount1079137720") + .setAvailableSecrets(Secrets.newBuilder().build()) + .addAllWarnings(new ArrayList()) + .setFailureInfo(Build.FailureInfo.newBuilder().build()) + .build(); + mockService.addResponse(expectedResponse); + + String projectId = "projectId-1530"; + String id = "id-4047"; + + Build actualResponse = client.cancelBuild(projectId, id); + 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 cancelBuildExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + String projectId = "projectId-1530"; + String id = "id-4047"; + client.cancelBuild(projectId, id); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void retryBuildTest() throws Exception { + Build expectedResponse = + Build.newBuilder() + .setName(BuildName.ofProjectBuildName("[PROJECT]", "[BUILD]").toString()) + .setId("id3355") + .setProjectId("projectId-894832108") + .setStatusDetail("statusDetail1651087075") + .setSource(Source.newBuilder().build()) + .addAllSteps(new ArrayList()) + .setResults(Results.newBuilder().build()) + .setCreateTime(Timestamp.newBuilder().build()) + .setStartTime(Timestamp.newBuilder().build()) + .setFinishTime(Timestamp.newBuilder().build()) + .setTimeout(Duration.newBuilder().build()) + .addAllImages(new ArrayList()) + .setQueueTtl(Duration.newBuilder().build()) + .setArtifacts(Artifacts.newBuilder().build()) + .setLogsBucket("logsBucket1592573049") + .setSourceProvenance(SourceProvenance.newBuilder().build()) + .setBuildTriggerId("buildTriggerId781747749") + .setOptions(BuildOptions.newBuilder().build()) + .setLogUrl("logUrl-1097354357") + .putAllSubstitutions(new HashMap()) + .addAllTags(new ArrayList()) + .addAllSecrets(new ArrayList()) + .putAllTiming(new HashMap()) + .setApproval(BuildApproval.newBuilder().build()) + .setServiceAccount("serviceAccount1079137720") + .setAvailableSecrets(Secrets.newBuilder().build()) + .addAllWarnings(new ArrayList()) + .setFailureInfo(Build.FailureInfo.newBuilder().build()) + .build(); + Operation resultOperation = + Operation.newBuilder() + .setName("retryBuildTest") + .setDone(true) + .setResponse(Any.pack(expectedResponse)) + .build(); + mockService.addResponse(resultOperation); + + String projectId = "projectId-1530"; + String id = "id-4047"; + + Build actualResponse = client.retryBuildAsync(projectId, id).get(); + 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 retryBuildExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + String projectId = "projectId-1530"; + String id = "id-4047"; + client.retryBuildAsync(projectId, id).get(); + Assert.fail("No exception raised"); + } catch (ExecutionException e) { + } + } + + @Test + public void approveBuildTest() throws Exception { + Build expectedResponse = + Build.newBuilder() + .setName(BuildName.ofProjectBuildName("[PROJECT]", "[BUILD]").toString()) + .setId("id3355") + .setProjectId("projectId-894832108") + .setStatusDetail("statusDetail1651087075") + .setSource(Source.newBuilder().build()) + .addAllSteps(new ArrayList()) + .setResults(Results.newBuilder().build()) + .setCreateTime(Timestamp.newBuilder().build()) + .setStartTime(Timestamp.newBuilder().build()) + .setFinishTime(Timestamp.newBuilder().build()) + .setTimeout(Duration.newBuilder().build()) + .addAllImages(new ArrayList()) + .setQueueTtl(Duration.newBuilder().build()) + .setArtifacts(Artifacts.newBuilder().build()) + .setLogsBucket("logsBucket1592573049") + .setSourceProvenance(SourceProvenance.newBuilder().build()) + .setBuildTriggerId("buildTriggerId781747749") + .setOptions(BuildOptions.newBuilder().build()) + .setLogUrl("logUrl-1097354357") + .putAllSubstitutions(new HashMap()) + .addAllTags(new ArrayList()) + .addAllSecrets(new ArrayList()) + .putAllTiming(new HashMap()) + .setApproval(BuildApproval.newBuilder().build()) + .setServiceAccount("serviceAccount1079137720") + .setAvailableSecrets(Secrets.newBuilder().build()) + .addAllWarnings(new ArrayList()) + .setFailureInfo(Build.FailureInfo.newBuilder().build()) + .build(); + Operation resultOperation = + Operation.newBuilder() + .setName("approveBuildTest") + .setDone(true) + .setResponse(Any.pack(expectedResponse)) + .build(); + mockService.addResponse(resultOperation); + + String name = "projects/project-3679/builds/build-3679"; + ApprovalResult approvalResult = ApprovalResult.newBuilder().build(); + + Build actualResponse = client.approveBuildAsync(name, approvalResult).get(); + 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 approveBuildExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + String name = "projects/project-3679/builds/build-3679"; + ApprovalResult approvalResult = ApprovalResult.newBuilder().build(); + client.approveBuildAsync(name, approvalResult).get(); + Assert.fail("No exception raised"); + } catch (ExecutionException e) { + } + } + + @Test + public void createBuildTriggerTest() throws Exception { + BuildTrigger expectedResponse = + BuildTrigger.newBuilder() + .setResourceName("resourceName-384566343") + .setId("id3355") + .setDescription("description-1724546052") + .setName(BuildTriggerName.ofProjectTriggerName("[PROJECT]", "[TRIGGER]").toString()) + .addAllTags(new ArrayList()) + .setTriggerTemplate(RepoSource.newBuilder().build()) + .setGithub(GitHubEventsConfig.newBuilder().build()) + .setPubsubConfig(PubsubConfig.newBuilder().build()) + .setWebhookConfig(WebhookConfig.newBuilder().build()) + .setCreateTime(Timestamp.newBuilder().build()) + .setDisabled(true) + .putAllSubstitutions(new HashMap()) + .addAllIgnoredFiles(new ArrayList()) + .addAllIncludedFiles(new ArrayList()) + .setFilter("filter-1274492040") + .setServiceAccount("serviceAccount1079137720") + .build(); + mockService.addResponse(expectedResponse); + + String projectId = "projectId-1530"; + BuildTrigger trigger = BuildTrigger.newBuilder().build(); + + BuildTrigger actualResponse = client.createBuildTrigger(projectId, trigger); + 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 createBuildTriggerExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + String projectId = "projectId-1530"; + BuildTrigger trigger = BuildTrigger.newBuilder().build(); + client.createBuildTrigger(projectId, trigger); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void getBuildTriggerTest() throws Exception { + BuildTrigger expectedResponse = + BuildTrigger.newBuilder() + .setResourceName("resourceName-384566343") + .setId("id3355") + .setDescription("description-1724546052") + .setName(BuildTriggerName.ofProjectTriggerName("[PROJECT]", "[TRIGGER]").toString()) + .addAllTags(new ArrayList()) + .setTriggerTemplate(RepoSource.newBuilder().build()) + .setGithub(GitHubEventsConfig.newBuilder().build()) + .setPubsubConfig(PubsubConfig.newBuilder().build()) + .setWebhookConfig(WebhookConfig.newBuilder().build()) + .setCreateTime(Timestamp.newBuilder().build()) + .setDisabled(true) + .putAllSubstitutions(new HashMap()) + .addAllIgnoredFiles(new ArrayList()) + .addAllIncludedFiles(new ArrayList()) + .setFilter("filter-1274492040") + .setServiceAccount("serviceAccount1079137720") + .build(); + mockService.addResponse(expectedResponse); + + String projectId = "projectId-1530"; + String triggerId = "triggerId-6343"; + + BuildTrigger actualResponse = client.getBuildTrigger(projectId, triggerId); + 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 getBuildTriggerExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + String projectId = "projectId-1530"; + String triggerId = "triggerId-6343"; + client.getBuildTrigger(projectId, triggerId); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void listBuildTriggersTest() throws Exception { + BuildTrigger responsesElement = BuildTrigger.newBuilder().build(); + ListBuildTriggersResponse expectedResponse = + ListBuildTriggersResponse.newBuilder() + .setNextPageToken("") + .addAllTriggers(Arrays.asList(responsesElement)) + .build(); + mockService.addResponse(expectedResponse); + + String projectId = "projectId-1530"; + + ListBuildTriggersPagedResponse pagedListResponse = client.listBuildTriggers(projectId); + + List resources = Lists.newArrayList(pagedListResponse.iterateAll()); + + Assert.assertEquals(1, resources.size()); + Assert.assertEquals(expectedResponse.getTriggersList().get(0), resources.get(0)); + + 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 listBuildTriggersExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + String projectId = "projectId-1530"; + client.listBuildTriggers(projectId); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void deleteBuildTriggerTest() throws Exception { + Empty expectedResponse = Empty.newBuilder().build(); + mockService.addResponse(expectedResponse); + + String projectId = "projectId-1530"; + String triggerId = "triggerId-6343"; + + client.deleteBuildTrigger(projectId, triggerId); + + 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 deleteBuildTriggerExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + String projectId = "projectId-1530"; + String triggerId = "triggerId-6343"; + client.deleteBuildTrigger(projectId, triggerId); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void updateBuildTriggerTest() throws Exception { + BuildTrigger expectedResponse = + BuildTrigger.newBuilder() + .setResourceName("resourceName-384566343") + .setId("id3355") + .setDescription("description-1724546052") + .setName(BuildTriggerName.ofProjectTriggerName("[PROJECT]", "[TRIGGER]").toString()) + .addAllTags(new ArrayList()) + .setTriggerTemplate(RepoSource.newBuilder().build()) + .setGithub(GitHubEventsConfig.newBuilder().build()) + .setPubsubConfig(PubsubConfig.newBuilder().build()) + .setWebhookConfig(WebhookConfig.newBuilder().build()) + .setCreateTime(Timestamp.newBuilder().build()) + .setDisabled(true) + .putAllSubstitutions(new HashMap()) + .addAllIgnoredFiles(new ArrayList()) + .addAllIncludedFiles(new ArrayList()) + .setFilter("filter-1274492040") + .setServiceAccount("serviceAccount1079137720") + .build(); + mockService.addResponse(expectedResponse); + + String projectId = "projectId-1530"; + String triggerId = "triggerId-6343"; + BuildTrigger trigger = + BuildTrigger.newBuilder() + .setResourceName("resourceName-384566343") + .setId("id3355") + .setDescription("description-1724546052") + .setName(BuildTriggerName.ofProjectTriggerName("[PROJECT]", "[TRIGGER]").toString()) + .addAllTags(new ArrayList()) + .setTriggerTemplate(RepoSource.newBuilder().build()) + .setGithub(GitHubEventsConfig.newBuilder().build()) + .setPubsubConfig(PubsubConfig.newBuilder().build()) + .setWebhookConfig(WebhookConfig.newBuilder().build()) + .setCreateTime(Timestamp.newBuilder().build()) + .setDisabled(true) + .putAllSubstitutions(new HashMap()) + .addAllIgnoredFiles(new ArrayList()) + .addAllIncludedFiles(new ArrayList()) + .setFilter("filter-1274492040") + .setServiceAccount("serviceAccount1079137720") + .build(); + + BuildTrigger actualResponse = client.updateBuildTrigger(projectId, triggerId, trigger); + 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 updateBuildTriggerExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + String projectId = "projectId-1530"; + String triggerId = "triggerId-6343"; + BuildTrigger trigger = + BuildTrigger.newBuilder() + .setResourceName("resourceName-384566343") + .setId("id3355") + .setDescription("description-1724546052") + .setName(BuildTriggerName.ofProjectTriggerName("[PROJECT]", "[TRIGGER]").toString()) + .addAllTags(new ArrayList()) + .setTriggerTemplate(RepoSource.newBuilder().build()) + .setGithub(GitHubEventsConfig.newBuilder().build()) + .setPubsubConfig(PubsubConfig.newBuilder().build()) + .setWebhookConfig(WebhookConfig.newBuilder().build()) + .setCreateTime(Timestamp.newBuilder().build()) + .setDisabled(true) + .putAllSubstitutions(new HashMap()) + .addAllIgnoredFiles(new ArrayList()) + .addAllIncludedFiles(new ArrayList()) + .setFilter("filter-1274492040") + .setServiceAccount("serviceAccount1079137720") + .build(); + client.updateBuildTrigger(projectId, triggerId, trigger); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void runBuildTriggerTest() throws Exception { + Build expectedResponse = + Build.newBuilder() + .setName(BuildName.ofProjectBuildName("[PROJECT]", "[BUILD]").toString()) + .setId("id3355") + .setProjectId("projectId-894832108") + .setStatusDetail("statusDetail1651087075") + .setSource(Source.newBuilder().build()) + .addAllSteps(new ArrayList()) + .setResults(Results.newBuilder().build()) + .setCreateTime(Timestamp.newBuilder().build()) + .setStartTime(Timestamp.newBuilder().build()) + .setFinishTime(Timestamp.newBuilder().build()) + .setTimeout(Duration.newBuilder().build()) + .addAllImages(new ArrayList()) + .setQueueTtl(Duration.newBuilder().build()) + .setArtifacts(Artifacts.newBuilder().build()) + .setLogsBucket("logsBucket1592573049") + .setSourceProvenance(SourceProvenance.newBuilder().build()) + .setBuildTriggerId("buildTriggerId781747749") + .setOptions(BuildOptions.newBuilder().build()) + .setLogUrl("logUrl-1097354357") + .putAllSubstitutions(new HashMap()) + .addAllTags(new ArrayList()) + .addAllSecrets(new ArrayList()) + .putAllTiming(new HashMap()) + .setApproval(BuildApproval.newBuilder().build()) + .setServiceAccount("serviceAccount1079137720") + .setAvailableSecrets(Secrets.newBuilder().build()) + .addAllWarnings(new ArrayList()) + .setFailureInfo(Build.FailureInfo.newBuilder().build()) + .build(); + Operation resultOperation = + Operation.newBuilder() + .setName("runBuildTriggerTest") + .setDone(true) + .setResponse(Any.pack(expectedResponse)) + .build(); + mockService.addResponse(resultOperation); + + String projectId = "projectId-1530"; + String triggerId = "triggerId-6343"; + RepoSource source = RepoSource.newBuilder().build(); + + Build actualResponse = client.runBuildTriggerAsync(projectId, triggerId, source).get(); + 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 runBuildTriggerExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + String projectId = "projectId-1530"; + String triggerId = "triggerId-6343"; + RepoSource source = RepoSource.newBuilder().build(); + client.runBuildTriggerAsync(projectId, triggerId, source).get(); + Assert.fail("No exception raised"); + } catch (ExecutionException e) { + } + } + + @Test + public void receiveTriggerWebhookTest() throws Exception { + ReceiveTriggerWebhookResponse expectedResponse = + ReceiveTriggerWebhookResponse.newBuilder().build(); + mockService.addResponse(expectedResponse); + + ReceiveTriggerWebhookRequest request = + ReceiveTriggerWebhookRequest.newBuilder() + .setName("name3373707") + .setBody(HttpBody.newBuilder().build()) + .setProjectId("projectId-1530") + .setTrigger("trigger-3106") + .setSecret("secret-906277200") + .build(); + + ReceiveTriggerWebhookResponse actualResponse = client.receiveTriggerWebhook(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 receiveTriggerWebhookExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + ReceiveTriggerWebhookRequest request = + ReceiveTriggerWebhookRequest.newBuilder() + .setName("name3373707") + .setBody(HttpBody.newBuilder().build()) + .setProjectId("projectId-1530") + .setTrigger("trigger-3106") + .setSecret("secret-906277200") + .build(); + client.receiveTriggerWebhook(request); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void createWorkerPoolTest() throws Exception { + WorkerPool expectedResponse = + WorkerPool.newBuilder() + .setName(WorkerPoolName.of("[PROJECT]", "[LOCATION]", "[WORKER_POOL]").toString()) + .setDisplayName("displayName1714148973") + .setUid("uid115792") + .putAllAnnotations(new HashMap()) + .setCreateTime(Timestamp.newBuilder().build()) + .setUpdateTime(Timestamp.newBuilder().build()) + .setDeleteTime(Timestamp.newBuilder().build()) + .setEtag("etag3123477") + .build(); + Operation resultOperation = + Operation.newBuilder() + .setName("createWorkerPoolTest") + .setDone(true) + .setResponse(Any.pack(expectedResponse)) + .build(); + mockService.addResponse(resultOperation); + + LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]"); + WorkerPool workerPool = WorkerPool.newBuilder().build(); + String workerPoolId = "workerPoolId-46320779"; + + WorkerPool actualResponse = + client.createWorkerPoolAsync(parent, workerPool, workerPoolId).get(); + 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 createWorkerPoolExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]"); + WorkerPool workerPool = WorkerPool.newBuilder().build(); + String workerPoolId = "workerPoolId-46320779"; + client.createWorkerPoolAsync(parent, workerPool, workerPoolId).get(); + Assert.fail("No exception raised"); + } catch (ExecutionException e) { + } + } + + @Test + public void createWorkerPoolTest2() throws Exception { + WorkerPool expectedResponse = + WorkerPool.newBuilder() + .setName(WorkerPoolName.of("[PROJECT]", "[LOCATION]", "[WORKER_POOL]").toString()) + .setDisplayName("displayName1714148973") + .setUid("uid115792") + .putAllAnnotations(new HashMap()) + .setCreateTime(Timestamp.newBuilder().build()) + .setUpdateTime(Timestamp.newBuilder().build()) + .setDeleteTime(Timestamp.newBuilder().build()) + .setEtag("etag3123477") + .build(); + Operation resultOperation = + Operation.newBuilder() + .setName("createWorkerPoolTest") + .setDone(true) + .setResponse(Any.pack(expectedResponse)) + .build(); + mockService.addResponse(resultOperation); + + String parent = "projects/project-5833/locations/location-5833"; + WorkerPool workerPool = WorkerPool.newBuilder().build(); + String workerPoolId = "workerPoolId-46320779"; + + WorkerPool actualResponse = + client.createWorkerPoolAsync(parent, workerPool, workerPoolId).get(); + 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 createWorkerPoolExceptionTest2() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + String parent = "projects/project-5833/locations/location-5833"; + WorkerPool workerPool = WorkerPool.newBuilder().build(); + String workerPoolId = "workerPoolId-46320779"; + client.createWorkerPoolAsync(parent, workerPool, workerPoolId).get(); + Assert.fail("No exception raised"); + } catch (ExecutionException e) { + } + } + + @Test + public void getWorkerPoolTest() throws Exception { + WorkerPool expectedResponse = + WorkerPool.newBuilder() + .setName(WorkerPoolName.of("[PROJECT]", "[LOCATION]", "[WORKER_POOL]").toString()) + .setDisplayName("displayName1714148973") + .setUid("uid115792") + .putAllAnnotations(new HashMap()) + .setCreateTime(Timestamp.newBuilder().build()) + .setUpdateTime(Timestamp.newBuilder().build()) + .setDeleteTime(Timestamp.newBuilder().build()) + .setEtag("etag3123477") + .build(); + mockService.addResponse(expectedResponse); + + WorkerPoolName name = WorkerPoolName.of("[PROJECT]", "[LOCATION]", "[WORKER_POOL]"); + + WorkerPool actualResponse = client.getWorkerPool(name); + 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 getWorkerPoolExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + WorkerPoolName name = WorkerPoolName.of("[PROJECT]", "[LOCATION]", "[WORKER_POOL]"); + client.getWorkerPool(name); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void getWorkerPoolTest2() throws Exception { + WorkerPool expectedResponse = + WorkerPool.newBuilder() + .setName(WorkerPoolName.of("[PROJECT]", "[LOCATION]", "[WORKER_POOL]").toString()) + .setDisplayName("displayName1714148973") + .setUid("uid115792") + .putAllAnnotations(new HashMap()) + .setCreateTime(Timestamp.newBuilder().build()) + .setUpdateTime(Timestamp.newBuilder().build()) + .setDeleteTime(Timestamp.newBuilder().build()) + .setEtag("etag3123477") + .build(); + mockService.addResponse(expectedResponse); + + String name = "projects/project-9807/locations/location-9807/workerPools/workerPool-9807"; + + WorkerPool actualResponse = client.getWorkerPool(name); + 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 getWorkerPoolExceptionTest2() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + String name = "projects/project-9807/locations/location-9807/workerPools/workerPool-9807"; + client.getWorkerPool(name); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void deleteWorkerPoolTest() throws Exception { + Empty expectedResponse = Empty.newBuilder().build(); + Operation resultOperation = + Operation.newBuilder() + .setName("deleteWorkerPoolTest") + .setDone(true) + .setResponse(Any.pack(expectedResponse)) + .build(); + mockService.addResponse(resultOperation); + + WorkerPoolName name = WorkerPoolName.of("[PROJECT]", "[LOCATION]", "[WORKER_POOL]"); + + client.deleteWorkerPoolAsync(name).get(); + + 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 deleteWorkerPoolExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + WorkerPoolName name = WorkerPoolName.of("[PROJECT]", "[LOCATION]", "[WORKER_POOL]"); + client.deleteWorkerPoolAsync(name).get(); + Assert.fail("No exception raised"); + } catch (ExecutionException e) { + } + } + + @Test + public void deleteWorkerPoolTest2() throws Exception { + Empty expectedResponse = Empty.newBuilder().build(); + Operation resultOperation = + Operation.newBuilder() + .setName("deleteWorkerPoolTest") + .setDone(true) + .setResponse(Any.pack(expectedResponse)) + .build(); + mockService.addResponse(resultOperation); + + String name = "projects/project-9807/locations/location-9807/workerPools/workerPool-9807"; + + client.deleteWorkerPoolAsync(name).get(); + + 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 deleteWorkerPoolExceptionTest2() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + String name = "projects/project-9807/locations/location-9807/workerPools/workerPool-9807"; + client.deleteWorkerPoolAsync(name).get(); + Assert.fail("No exception raised"); + } catch (ExecutionException e) { + } + } + + @Test + public void updateWorkerPoolTest() throws Exception { + WorkerPool expectedResponse = + WorkerPool.newBuilder() + .setName(WorkerPoolName.of("[PROJECT]", "[LOCATION]", "[WORKER_POOL]").toString()) + .setDisplayName("displayName1714148973") + .setUid("uid115792") + .putAllAnnotations(new HashMap()) + .setCreateTime(Timestamp.newBuilder().build()) + .setUpdateTime(Timestamp.newBuilder().build()) + .setDeleteTime(Timestamp.newBuilder().build()) + .setEtag("etag3123477") + .build(); + Operation resultOperation = + Operation.newBuilder() + .setName("updateWorkerPoolTest") + .setDone(true) + .setResponse(Any.pack(expectedResponse)) + .build(); + mockService.addResponse(resultOperation); + + WorkerPool workerPool = + WorkerPool.newBuilder() + .setName(WorkerPoolName.of("[PROJECT]", "[LOCATION]", "[WORKER_POOL]").toString()) + .setDisplayName("displayName1714148973") + .setUid("uid115792") + .putAllAnnotations(new HashMap()) + .setCreateTime(Timestamp.newBuilder().build()) + .setUpdateTime(Timestamp.newBuilder().build()) + .setDeleteTime(Timestamp.newBuilder().build()) + .setEtag("etag3123477") + .build(); + FieldMask updateMask = FieldMask.newBuilder().build(); + + WorkerPool actualResponse = client.updateWorkerPoolAsync(workerPool, updateMask).get(); + 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 updateWorkerPoolExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + WorkerPool workerPool = + WorkerPool.newBuilder() + .setName(WorkerPoolName.of("[PROJECT]", "[LOCATION]", "[WORKER_POOL]").toString()) + .setDisplayName("displayName1714148973") + .setUid("uid115792") + .putAllAnnotations(new HashMap()) + .setCreateTime(Timestamp.newBuilder().build()) + .setUpdateTime(Timestamp.newBuilder().build()) + .setDeleteTime(Timestamp.newBuilder().build()) + .setEtag("etag3123477") + .build(); + FieldMask updateMask = FieldMask.newBuilder().build(); + client.updateWorkerPoolAsync(workerPool, updateMask).get(); + Assert.fail("No exception raised"); + } catch (ExecutionException e) { + } + } + + @Test + public void listWorkerPoolsTest() throws Exception { + WorkerPool responsesElement = WorkerPool.newBuilder().build(); + ListWorkerPoolsResponse expectedResponse = + ListWorkerPoolsResponse.newBuilder() + .setNextPageToken("") + .addAllWorkerPools(Arrays.asList(responsesElement)) + .build(); + mockService.addResponse(expectedResponse); + + LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]"); + + ListWorkerPoolsPagedResponse pagedListResponse = client.listWorkerPools(parent); + + List resources = Lists.newArrayList(pagedListResponse.iterateAll()); + + Assert.assertEquals(1, resources.size()); + Assert.assertEquals(expectedResponse.getWorkerPoolsList().get(0), resources.get(0)); + + 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 listWorkerPoolsExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]"); + client.listWorkerPools(parent); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void listWorkerPoolsTest2() throws Exception { + WorkerPool responsesElement = WorkerPool.newBuilder().build(); + ListWorkerPoolsResponse expectedResponse = + ListWorkerPoolsResponse.newBuilder() + .setNextPageToken("") + .addAllWorkerPools(Arrays.asList(responsesElement)) + .build(); + mockService.addResponse(expectedResponse); + + String parent = "projects/project-5833/locations/location-5833"; + + ListWorkerPoolsPagedResponse pagedListResponse = client.listWorkerPools(parent); + + List resources = Lists.newArrayList(pagedListResponse.iterateAll()); + + Assert.assertEquals(1, resources.size()); + Assert.assertEquals(expectedResponse.getWorkerPoolsList().get(0), resources.get(0)); + + 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 listWorkerPoolsExceptionTest2() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + String parent = "projects/project-5833/locations/location-5833"; + client.listWorkerPools(parent); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } +} From 40caa0756031e7a73724ed8ac747d4aeb073e7d8 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:20:10 +0000 Subject: [PATCH 5/7] chore: Disable CLIRR checks on releas (#1474) (#763) 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 f0625e4d..a454a61e 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 77dc4e8f..1dba8de1 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 8ec964e4d0580a8b6d011996a4ad695243b4b43f Mon Sep 17 00:00:00 2001 From: Tomo Suzuki Date: Fri, 1 Jul 2022 10:24:20 -0400 Subject: [PATCH 6/7] ci: removing clirr from required checks (#762) 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 6f09d695..dd5626f3 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 2579aa0417de4ce28da0f39c9658166e1c30ab51 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 1 Jul 2022 17:40:12 +0000 Subject: [PATCH 7/7] chore(main): release 3.5.0 (#761) :robot: I have created a release *beep* *boop* --- ## [3.5.0](https://github.com/googleapis/java-cloudbuild/compare/v3.4.1...v3.5.0) (2022-07-01) ### Features * Enable REST transport for most of Java and Go clients ([9a7011f](https://github.com/googleapis/java-cloudbuild/commit/9a7011f1cce8dd26fd1782c0953cd2c09d3626b1)) ### Bug Fixes * update gapic-generator-java with mock service generation fixes ([#755](https://github.com/googleapis/java-cloudbuild/issues/755)) ([9a7011f](https://github.com/googleapis/java-cloudbuild/commit/9a7011f1cce8dd26fd1782c0953cd2c09d3626b1)) --- 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-build-bom/pom.xml | 8 ++++---- google-cloud-build/pom.xml | 4 ++-- grpc-google-cloud-build-v1/pom.xml | 4 ++-- pom.xml | 8 ++++---- proto-google-cloud-build-v1/pom.xml | 4 ++-- versions.txt | 6 +++--- 7 files changed, 29 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c9075be..7a47e943 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [3.5.0](https://github.com/googleapis/java-cloudbuild/compare/v3.4.1...v3.5.0) (2022-07-01) + + +### Features + +* Enable REST transport for most of Java and Go clients ([9a7011f](https://github.com/googleapis/java-cloudbuild/commit/9a7011f1cce8dd26fd1782c0953cd2c09d3626b1)) + + +### Bug Fixes + +* update gapic-generator-java with mock service generation fixes ([#755](https://github.com/googleapis/java-cloudbuild/issues/755)) ([9a7011f](https://github.com/googleapis/java-cloudbuild/commit/9a7011f1cce8dd26fd1782c0953cd2c09d3626b1)) + ## [3.4.1](https://github.com/googleapis/java-cloudbuild/compare/v3.4.0...v3.4.1) (2022-06-23) diff --git a/google-cloud-build-bom/pom.xml b/google-cloud-build-bom/pom.xml index 36c05991..ddeb1d4f 100644 --- a/google-cloud-build-bom/pom.xml +++ b/google-cloud-build-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-build-bom - 3.4.2-SNAPSHOT + 3.5.0 pom com.google.cloud @@ -52,17 +52,17 @@ com.google.cloud google-cloud-build - 3.4.2-SNAPSHOT + 3.5.0 com.google.api.grpc grpc-google-cloud-build-v1 - 3.4.2-SNAPSHOT + 3.5.0 com.google.api.grpc proto-google-cloud-build-v1 - 3.4.2-SNAPSHOT + 3.5.0 diff --git a/google-cloud-build/pom.xml b/google-cloud-build/pom.xml index 8d856873..e8cca204 100644 --- a/google-cloud-build/pom.xml +++ b/google-cloud-build/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-build - 3.4.2-SNAPSHOT + 3.5.0 jar Google Cloud Build https://github.com/googleapis/java-cloudbuild @@ -13,7 +13,7 @@ com.google.cloud google-cloud-build-parent - 3.4.2-SNAPSHOT + 3.5.0 google-cloud-build diff --git a/grpc-google-cloud-build-v1/pom.xml b/grpc-google-cloud-build-v1/pom.xml index 4db2c0e3..517e041c 100644 --- a/grpc-google-cloud-build-v1/pom.xml +++ b/grpc-google-cloud-build-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-build-v1 - 3.4.2-SNAPSHOT + 3.5.0 grpc-google-cloud-build-v1 GRPC library for grpc-google-cloud-build-v1 com.google.cloud google-cloud-build-parent - 3.4.2-SNAPSHOT + 3.5.0 diff --git a/pom.xml b/pom.xml index 3d720f89..a4d35fcd 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-build-parent pom - 3.4.2-SNAPSHOT + 3.5.0 Google Cloud Build Parent https://github.com/googleapis/java-cloudbuild @@ -62,17 +62,17 @@ com.google.api.grpc proto-google-cloud-build-v1 - 3.4.2-SNAPSHOT + 3.5.0 com.google.cloud google-cloud-build - 3.4.2-SNAPSHOT + 3.5.0 com.google.api.grpc grpc-google-cloud-build-v1 - 3.4.2-SNAPSHOT + 3.5.0 diff --git a/proto-google-cloud-build-v1/pom.xml b/proto-google-cloud-build-v1/pom.xml index 498bd379..9b1349bc 100644 --- a/proto-google-cloud-build-v1/pom.xml +++ b/proto-google-cloud-build-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-build-v1 - 3.4.2-SNAPSHOT + 3.5.0 proto-google-cloud-build-v1 PROTO library for proto-google-cloud-build-v1 com.google.cloud google-cloud-build-parent - 3.4.2-SNAPSHOT + 3.5.0 diff --git a/versions.txt b/versions.txt index 21e79300..213cec58 100644 --- a/versions.txt +++ b/versions.txt @@ -1,6 +1,6 @@ # Format: # module:released-version:current-version -google-cloud-build:3.4.1:3.4.2-SNAPSHOT -grpc-google-cloud-build-v1:3.4.1:3.4.2-SNAPSHOT -proto-google-cloud-build-v1:3.4.1:3.4.2-SNAPSHOT +google-cloud-build:3.5.0:3.5.0 +grpc-google-cloud-build-v1:3.5.0:3.5.0 +proto-google-cloud-build-v1:3.5.0:3.5.0