diff --git a/google-cloud-build-bom/pom.xml b/google-cloud-build-bom/pom.xml index f4e4f9d8..0d755626 100644 --- a/google-cloud-build-bom/pom.xml +++ b/google-cloud-build-bom/pom.xml @@ -11,7 +11,7 @@ 0.5.0 - Google Cloud Auto ML BOM + Google Cloud Build BOM https://github.com/googleapis/java-cloudbuild BOM for Google CloudBuild diff --git a/google-cloud-build/clirr-ignored-differences.xml b/google-cloud-build/clirr-ignored-differences.xml new file mode 100644 index 00000000..2c3b4ec5 --- /dev/null +++ b/google-cloud-build/clirr-ignored-differences.xml @@ -0,0 +1,38 @@ + + + + + + 7002 + com/google/cloud/devtools/cloudbuild/v1/CloudBuildClient + com.google.longrunning.Operation createBuild(*) + + + 7002 + com/google/cloud/devtools/cloudbuild/v1/CloudBuildClient + com.google.longrunning.Operation retryBuild(*) + + + 7002 + com/google/cloud/devtools/cloudbuild/v1/CloudBuildClient + com.google.longrunning.Operation runBuildTrigger(*) + + + 7006 + com/google/cloud/devtools/cloudbuild/v1/CloudBuildClient + com.google.cloudbuild.v1.ListBuildTriggersResponse listBuildTriggers(*) + com.google.cloud.devtools.cloudbuild.v1.CloudBuildClient$ListBuildTriggersPagedResponse + + + 7006 + com/google/cloud/devtools/cloudbuild/v1/CloudBuildSettings* + com.google.api.gax.rpc.UnaryCallSettings* listBuildTriggersSettings() + com.google.api.gax.rpc.PagedCallSettings* + + + 7006 + com/google/cloud/devtools/cloudbuild/v1/stub/CloudBuildStubSettings* + com.google.api.gax.rpc.UnaryCallSettings* listBuildTriggersSettings() + com.google.api.gax.rpc.PagedCallSettings* + + \ No newline at end of file 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 2b576b2f..02f871be 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 @@ -20,14 +20,17 @@ import com.google.api.core.ApiFutures; import com.google.api.core.BetaApi; import com.google.api.gax.core.BackgroundResource; +import com.google.api.gax.longrunning.OperationFuture; import com.google.api.gax.paging.AbstractFixedSizeCollection; import com.google.api.gax.paging.AbstractPage; import com.google.api.gax.paging.AbstractPagedListResponse; +import com.google.api.gax.rpc.OperationCallable; import com.google.api.gax.rpc.PageContext; import com.google.api.gax.rpc.UnaryCallable; import com.google.cloud.devtools.cloudbuild.v1.stub.CloudBuildStub; import com.google.cloud.devtools.cloudbuild.v1.stub.CloudBuildStubSettings; 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; @@ -52,6 +55,7 @@ import com.google.cloudbuild.v1.WorkerPool; import com.google.common.util.concurrent.MoreExecutors; import com.google.longrunning.Operation; +import com.google.longrunning.OperationsClient; import com.google.protobuf.Empty; import java.io.IOException; import java.util.List; @@ -75,8 +79,8 @@ * * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) { * String projectId = ""; - * Build build = Build.newBuilder().build(); - * Operation response = cloudBuildClient.createBuild(projectId, build); + * String triggerId = ""; + * cloudBuildClient.deleteBuildTrigger(projectId, triggerId); * } * * @@ -136,6 +140,7 @@ public class CloudBuildClient implements BackgroundResource { private final CloudBuildSettings settings; private final CloudBuildStub stub; + private final OperationsClient operationsClient; /** Constructs an instance of CloudBuildClient with default settings. */ public static final CloudBuildClient create() throws IOException { @@ -166,12 +171,14 @@ 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()); } @BetaApi("A restructuring of stub classes is planned, so this may break in the future") protected CloudBuildClient(CloudBuildStub stub) { this.settings = null; this.stub = stub; + this.operationsClient = OperationsClient.create(this.stub.getOperationsStub()); } public final CloudBuildSettings getSettings() { @@ -183,6 +190,216 @@ public CloudBuildStub getStub() { return stub; } + /** + * Returns the OperationsClient that can be used to query the status of a long-running operation + * returned by another API method call. + */ + @BetaApi( + "The surface for long-running operations is not stable yet and may change in the future.") + public final OperationsClient getOperationsClient() { + return operationsClient; + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD + /** + * Lists previously requested builds. + * + *

Previously requested builds may still be in-progress, or may have finished successfully or + * unsuccessfully. + * + *

Sample code: + * + *


+   * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) {
+   *   String projectId = "";
+   *   String filter = "";
+   *   for (Build element : cloudBuildClient.listBuilds(projectId, filter).iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
+   * }
+   * 
+ * + * @param projectId Required. ID of the project. + * @param filter The raw filter text to constrain the results. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final ListBuildsPagedResponse listBuilds(String projectId, String filter) { + ListBuildsRequest request = + ListBuildsRequest.newBuilder().setProjectId(projectId).setFilter(filter).build(); + return listBuilds(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD + /** + * Lists previously requested builds. + * + *

Previously requested builds may still be in-progress, or may have finished successfully or + * unsuccessfully. + * + *

Sample code: + * + *


+   * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) {
+   *   String projectId = "";
+   *   ListBuildsRequest request = ListBuildsRequest.newBuilder()
+   *     .setProjectId(projectId)
+   *     .build();
+   *   for (Build element : cloudBuildClient.listBuilds(request).iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
+   * }
+   * 
+ * + * @param request The request object containing all of the parameters for the API call. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final ListBuildsPagedResponse listBuilds(ListBuildsRequest request) { + return listBuildsPagedCallable().call(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD + /** + * Lists previously requested builds. + * + *

Previously requested builds may still be in-progress, or may have finished successfully or + * unsuccessfully. + * + *

Sample code: + * + *


+   * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) {
+   *   String projectId = "";
+   *   ListBuildsRequest request = ListBuildsRequest.newBuilder()
+   *     .setProjectId(projectId)
+   *     .build();
+   *   ApiFuture<ListBuildsPagedResponse> future = cloudBuildClient.listBuildsPagedCallable().futureCall(request);
+   *   // Do something
+   *   for (Build element : future.get().iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
+   * }
+   * 
+ */ + public final UnaryCallable listBuildsPagedCallable() { + return stub.listBuildsPagedCallable(); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD + /** + * Lists previously requested builds. + * + *

Previously requested builds may still be in-progress, or may have finished successfully or + * unsuccessfully. + * + *

Sample code: + * + *


+   * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) {
+   *   String projectId = "";
+   *   ListBuildsRequest request = ListBuildsRequest.newBuilder()
+   *     .setProjectId(projectId)
+   *     .build();
+   *   while (true) {
+   *     ListBuildsResponse response = cloudBuildClient.listBuildsCallable().call(request);
+   *     for (Build element : response.getBuildsList()) {
+   *       // doThingsWith(element);
+   *     }
+   *     String nextPageToken = response.getNextPageToken();
+   *     if (!Strings.isNullOrEmpty(nextPageToken)) {
+   *       request = request.toBuilder().setPageToken(nextPageToken).build();
+   *     } else {
+   *       break;
+   *     }
+   *   }
+   * }
+   * 
+ */ + public final UnaryCallable listBuildsCallable() { + return stub.listBuildsCallable(); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD + /** + * Deletes a `BuildTrigger` by its project ID and trigger ID. + * + *

This API is experimental. + * + *

Sample code: + * + *


+   * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) {
+   *   String projectId = "";
+   *   String triggerId = "";
+   *   cloudBuildClient.deleteBuildTrigger(projectId, triggerId);
+   * }
+   * 
+ * + * @param projectId Required. ID of the project that owns the trigger. + * @param triggerId Required. ID of the `BuildTrigger` to delete. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final void deleteBuildTrigger(String projectId, String triggerId) { + DeleteBuildTriggerRequest request = + DeleteBuildTriggerRequest.newBuilder() + .setProjectId(projectId) + .setTriggerId(triggerId) + .build(); + deleteBuildTrigger(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD + /** + * Deletes a `BuildTrigger` by its project ID and trigger ID. + * + *

This API is experimental. + * + *

Sample code: + * + *


+   * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) {
+   *   String projectId = "";
+   *   String triggerId = "";
+   *   DeleteBuildTriggerRequest request = DeleteBuildTriggerRequest.newBuilder()
+   *     .setProjectId(projectId)
+   *     .setTriggerId(triggerId)
+   *     .build();
+   *   cloudBuildClient.deleteBuildTrigger(request);
+   * }
+   * 
+ * + * @param request The request object containing all of the parameters for the API call. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final void deleteBuildTrigger(DeleteBuildTriggerRequest request) { + deleteBuildTriggerCallable().call(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD + /** + * Deletes a `BuildTrigger` by its project ID and trigger ID. + * + *

This API is experimental. + * + *

Sample code: + * + *


+   * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) {
+   *   String projectId = "";
+   *   String triggerId = "";
+   *   DeleteBuildTriggerRequest request = DeleteBuildTriggerRequest.newBuilder()
+   *     .setProjectId(projectId)
+   *     .setTriggerId(triggerId)
+   *     .build();
+   *   ApiFuture<Void> future = cloudBuildClient.deleteBuildTriggerCallable().futureCall(request);
+   *   // Do something
+   *   future.get();
+   * }
+   * 
+ */ + public final UnaryCallable deleteBuildTriggerCallable() { + return stub.deleteBuildTriggerCallable(); + } + // AUTO-GENERATED DOCUMENTATION AND METHOD /** * Starts a build with the specified configuration. @@ -196,7 +413,7 @@ public CloudBuildStub getStub() { * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) { * String projectId = ""; * Build build = Build.newBuilder().build(); - * Operation response = cloudBuildClient.createBuild(projectId, build); + * Build response = cloudBuildClient.createBuildAsync(projectId, build).get(); * } * * @@ -204,10 +421,13 @@ public CloudBuildStub getStub() { * @param build Required. Build resource to create. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ - public final Operation createBuild(String projectId, Build build) { + @BetaApi( + "The surface for long-running operations is not stable yet and may change in the future.") + public final OperationFuture createBuildAsync( + String projectId, Build build) { CreateBuildRequest request = CreateBuildRequest.newBuilder().setProjectId(projectId).setBuild(build).build(); - return createBuild(request); + return createBuildAsync(request); } // AUTO-GENERATED DOCUMENTATION AND METHOD @@ -227,15 +447,47 @@ public final Operation createBuild(String projectId, Build build) { * .setProjectId(projectId) * .setBuild(build) * .build(); - * Operation response = cloudBuildClient.createBuild(request); + * Build response = cloudBuildClient.createBuildAsync(request).get(); * } * * * @param request The request object containing all of the parameters for the API call. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ - public final Operation createBuild(CreateBuildRequest request) { - return createBuildCallable().call(request); + @BetaApi( + "The surface for long-running operations is not stable yet and may change in the future.") + public final OperationFuture createBuildAsync( + CreateBuildRequest request) { + return createBuildOperationCallable().futureCall(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD + /** + * Starts a build with the specified configuration. + * + *

This method returns a long-running `Operation`, which includes the build ID. Pass the build + * ID to `GetBuild` to determine the build status (such as `SUCCESS` or `FAILURE`). + * + *

Sample code: + * + *


+   * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) {
+   *   String projectId = "";
+   *   Build build = Build.newBuilder().build();
+   *   CreateBuildRequest request = CreateBuildRequest.newBuilder()
+   *     .setProjectId(projectId)
+   *     .setBuild(build)
+   *     .build();
+   *   OperationFuture<Build, BuildOperationMetadata> future = cloudBuildClient.createBuildOperationCallable().futureCall(request);
+   *   // Do something
+   *   Build response = future.get();
+   * }
+   * 
+ */ + @BetaApi("The surface for use by generated code is not stable yet and may change in the future.") + public final OperationCallable + createBuildOperationCallable() { + return stub.createBuildOperationCallable(); } // AUTO-GENERATED DOCUMENTATION AND METHOD @@ -349,125 +601,153 @@ public final UnaryCallable getBuildCallable() { // AUTO-GENERATED DOCUMENTATION AND METHOD /** - * Lists previously requested builds. - * - *

Previously requested builds may still be in-progress, or may have finished successfully or - * unsuccessfully. + * Cancels a build in progress. * *

Sample code: * *


    * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) {
    *   String projectId = "";
-   *   String filter = "";
-   *   for (Build element : cloudBuildClient.listBuilds(projectId, filter).iterateAll()) {
-   *     // doThingsWith(element);
-   *   }
+   *   String id = "";
+   *   Build response = cloudBuildClient.cancelBuild(projectId, id);
    * }
    * 
* * @param projectId Required. ID of the project. - * @param filter The raw filter text to constrain the results. + * @param id Required. ID of the build. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ - public final ListBuildsPagedResponse listBuilds(String projectId, String filter) { - ListBuildsRequest request = - ListBuildsRequest.newBuilder().setProjectId(projectId).setFilter(filter).build(); - return listBuilds(request); + public final Build cancelBuild(String projectId, String id) { + CancelBuildRequest request = + CancelBuildRequest.newBuilder().setProjectId(projectId).setId(id).build(); + return cancelBuild(request); } // AUTO-GENERATED DOCUMENTATION AND METHOD /** - * Lists previously requested builds. - * - *

Previously requested builds may still be in-progress, or may have finished successfully or - * unsuccessfully. + * Cancels a build in progress. * *

Sample code: * *


    * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) {
    *   String projectId = "";
-   *   ListBuildsRequest request = ListBuildsRequest.newBuilder()
+   *   String id = "";
+   *   CancelBuildRequest request = CancelBuildRequest.newBuilder()
    *     .setProjectId(projectId)
+   *     .setId(id)
    *     .build();
-   *   for (Build element : cloudBuildClient.listBuilds(request).iterateAll()) {
-   *     // doThingsWith(element);
-   *   }
+   *   Build response = cloudBuildClient.cancelBuild(request);
    * }
    * 
* * @param request The request object containing all of the parameters for the API call. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ - public final ListBuildsPagedResponse listBuilds(ListBuildsRequest request) { - return listBuildsPagedCallable().call(request); + public final Build cancelBuild(CancelBuildRequest request) { + return cancelBuildCallable().call(request); } // AUTO-GENERATED DOCUMENTATION AND METHOD /** - * Lists previously requested builds. - * - *

Previously requested builds may still be in-progress, or may have finished successfully or - * unsuccessfully. + * Cancels a build in progress. * *

Sample code: * *


    * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) {
    *   String projectId = "";
-   *   ListBuildsRequest request = ListBuildsRequest.newBuilder()
+   *   String id = "";
+   *   CancelBuildRequest request = CancelBuildRequest.newBuilder()
    *     .setProjectId(projectId)
+   *     .setId(id)
    *     .build();
-   *   ApiFuture<ListBuildsPagedResponse> future = cloudBuildClient.listBuildsPagedCallable().futureCall(request);
+   *   ApiFuture<Build> future = cloudBuildClient.cancelBuildCallable().futureCall(request);
    *   // Do something
-   *   for (Build element : future.get().iterateAll()) {
-   *     // doThingsWith(element);
-   *   }
+   *   Build response = future.get();
    * }
    * 
*/ - public final UnaryCallable listBuildsPagedCallable() { - return stub.listBuildsPagedCallable(); + public final UnaryCallable cancelBuildCallable() { + return stub.cancelBuildCallable(); } // AUTO-GENERATED DOCUMENTATION AND METHOD /** - * Lists previously requested builds. + * Creates a new build based on the specified build. * - *

Previously requested builds may still be in-progress, or may have finished successfully or - * unsuccessfully. + *

This method creates a new build using the original build request, which may or may not + * result in an identical build. + * + *

For triggered builds: + * + *

* Triggered builds resolve to a precise revision; therefore a retry of a triggered build + * will result in a build that uses the same revision. + * + *

For non-triggered builds that specify `RepoSource`: + * + *

* If the original build built from the tip of a branch, the retried build will build + * from the tip of that branch, which may not be the same revision as the original build. * If + * the original build specified a commit sha or revision ID, the retried build will use the + * identical source. + * + *

For builds that specify `StorageSource`: + * + *

* If the original build pulled source from Google Cloud Storage without specifying the + * generation of the object, the new build will use the current object, which may be different + * from the original build source. * If the original build pulled source from Cloud Storage + * and specified the generation of the object, the new build will attempt to use the same object, + * which may or may not be available depending on the bucket's lifecycle management settings. * *

Sample code: * *


    * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) {
    *   String projectId = "";
-   *   ListBuildsRequest request = ListBuildsRequest.newBuilder()
-   *     .setProjectId(projectId)
-   *     .build();
-   *   while (true) {
-   *     ListBuildsResponse response = cloudBuildClient.listBuildsCallable().call(request);
-   *     for (Build element : response.getBuildsList()) {
-   *       // doThingsWith(element);
-   *     }
-   *     String nextPageToken = response.getNextPageToken();
-   *     if (!Strings.isNullOrEmpty(nextPageToken)) {
-   *       request = request.toBuilder().setPageToken(nextPageToken).build();
-   *     } else {
-   *       break;
-   *     }
-   *   }
+   *   String id = "";
+   *   Build response = cloudBuildClient.retryBuildAsync(projectId, id).get();
    * }
    * 
+ * + * @param projectId Required. ID of the project. + * @param id Required. Build ID of the original build. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ - public final UnaryCallable listBuildsCallable() { - return stub.listBuildsCallable(); + @BetaApi( + "The surface for long-running operations is not stable yet and may change in the future.") + public final OperationFuture retryBuildAsync( + String projectId, String id) { + RetryBuildRequest request = + RetryBuildRequest.newBuilder().setProjectId(projectId).setId(id).build(); + return retryBuildAsync(request); } // AUTO-GENERATED DOCUMENTATION AND METHOD /** - * Cancels a build in progress. + * Creates a new build based on the specified build. + * + *

This method creates a new build using the original build request, which may or may not + * result in an identical build. + * + *

For triggered builds: + * + *

* Triggered builds resolve to a precise revision; therefore a retry of a triggered build + * will result in a build that uses the same revision. + * + *

For non-triggered builds that specify `RepoSource`: + * + *

* If the original build built from the tip of a branch, the retried build will build + * from the tip of that branch, which may not be the same revision as the original build. * If + * the original build specified a commit sha or revision ID, the retried build will use the + * identical source. + * + *

For builds that specify `StorageSource`: + * + *

* If the original build pulled source from Google Cloud Storage without specifying the + * generation of the object, the new build will use the current object, which may be different + * from the original build source. * If the original build pulled source from Cloud Storage + * and specified the generation of the object, the new build will attempt to use the same object, + * which may or may not be available depending on the bucket's lifecycle management settings. * *

Sample code: * @@ -475,23 +755,50 @@ public final UnaryCallable listBuildsCall * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) { * String projectId = ""; * String id = ""; - * Build response = cloudBuildClient.cancelBuild(projectId, id); + * RetryBuildRequest request = RetryBuildRequest.newBuilder() + * .setProjectId(projectId) + * .setId(id) + * .build(); + * Build response = cloudBuildClient.retryBuildAsync(request).get(); * } * * - * @param projectId Required. ID of the project. - * @param id Required. ID of the build. + * @param request The request object containing all of the parameters for the API call. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ - public final Build cancelBuild(String projectId, String id) { - CancelBuildRequest request = - CancelBuildRequest.newBuilder().setProjectId(projectId).setId(id).build(); - return cancelBuild(request); + @BetaApi( + "The surface for long-running operations is not stable yet and may change in the future.") + public final OperationFuture retryBuildAsync( + RetryBuildRequest request) { + return retryBuildOperationCallable().futureCall(request); } // AUTO-GENERATED DOCUMENTATION AND METHOD /** - * Cancels a build in progress. + * Creates a new build based on the specified build. + * + *

This method creates a new build using the original build request, which may or may not + * result in an identical build. + * + *

For triggered builds: + * + *

* Triggered builds resolve to a precise revision; therefore a retry of a triggered build + * will result in a build that uses the same revision. + * + *

For non-triggered builds that specify `RepoSource`: + * + *

* If the original build built from the tip of a branch, the retried build will build + * from the tip of that branch, which may not be the same revision as the original build. * If + * the original build specified a commit sha or revision ID, the retried build will use the + * identical source. + * + *

For builds that specify `StorageSource`: + * + *

* If the original build pulled source from Google Cloud Storage without specifying the + * generation of the object, the new build will use the current object, which may be different + * from the original build source. * If the original build pulled source from Cloud Storage + * and specified the generation of the object, the new build will attempt to use the same object, + * which may or may not be available depending on the bucket's lifecycle management settings. * *

Sample code: * @@ -499,24 +806,48 @@ public final Build cancelBuild(String projectId, String id) { * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) { * String projectId = ""; * String id = ""; - * CancelBuildRequest request = CancelBuildRequest.newBuilder() + * RetryBuildRequest request = RetryBuildRequest.newBuilder() * .setProjectId(projectId) * .setId(id) * .build(); - * Build response = cloudBuildClient.cancelBuild(request); + * OperationFuture<Build, BuildOperationMetadata> future = cloudBuildClient.retryBuildOperationCallable().futureCall(request); + * // Do something + * Build response = future.get(); * } * - * - * @param request The request object containing all of the parameters for the API call. - * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ - public final Build cancelBuild(CancelBuildRequest request) { - return cancelBuildCallable().call(request); + @BetaApi("The surface for use by generated code is not stable yet and may change in the future.") + public final OperationCallable + retryBuildOperationCallable() { + return stub.retryBuildOperationCallable(); } // AUTO-GENERATED DOCUMENTATION AND METHOD /** - * Cancels a build in progress. + * Creates a new build based on the specified build. + * + *

This method creates a new build using the original build request, which may or may not + * result in an identical build. + * + *

For triggered builds: + * + *

* Triggered builds resolve to a precise revision; therefore a retry of a triggered build + * will result in a build that uses the same revision. + * + *

For non-triggered builds that specify `RepoSource`: + * + *

* If the original build built from the tip of a branch, the retried build will build + * from the tip of that branch, which may not be the same revision as the original build. * If + * the original build specified a commit sha or revision ID, the retried build will use the + * identical source. + * + *

For builds that specify `StorageSource`: + * + *

* If the original build pulled source from Google Cloud Storage without specifying the + * generation of the object, the new build will use the current object, which may be different + * from the original build source. * If the original build pulled source from Cloud Storage + * and specified the generation of the object, the new build will attempt to use the same object, + * which may or may not be available depending on the bucket's lifecycle management settings. * *

Sample code: * @@ -524,18 +855,18 @@ public final Build cancelBuild(CancelBuildRequest request) { * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) { * String projectId = ""; * String id = ""; - * CancelBuildRequest request = CancelBuildRequest.newBuilder() + * RetryBuildRequest request = RetryBuildRequest.newBuilder() * .setProjectId(projectId) * .setId(id) * .build(); - * ApiFuture<Build> future = cloudBuildClient.cancelBuildCallable().futureCall(request); + * ApiFuture<Operation> future = cloudBuildClient.retryBuildCallable().futureCall(request); * // Do something - * Build response = future.get(); + * Operation response = future.get(); * } * */ - public final UnaryCallable cancelBuildCallable() { - return stub.cancelBuildCallable(); + public final UnaryCallable retryBuildCallable() { + return stub.retryBuildCallable(); } // AUTO-GENERATED DOCUMENTATION AND METHOD @@ -672,57 +1003,7 @@ public final BuildTrigger getBuildTrigger(GetBuildTriggerRequest request) { // AUTO-GENERATED DOCUMENTATION AND METHOD /** - * Returns information about a `BuildTrigger`. - * - *

This API is experimental. - * - *

Sample code: - * - *


-   * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) {
-   *   String projectId = "";
-   *   String triggerId = "";
-   *   GetBuildTriggerRequest request = GetBuildTriggerRequest.newBuilder()
-   *     .setProjectId(projectId)
-   *     .setTriggerId(triggerId)
-   *     .build();
-   *   ApiFuture<BuildTrigger> future = cloudBuildClient.getBuildTriggerCallable().futureCall(request);
-   *   // Do something
-   *   BuildTrigger response = future.get();
-   * }
-   * 
- */ - public final UnaryCallable getBuildTriggerCallable() { - return stub.getBuildTriggerCallable(); - } - - // AUTO-GENERATED DOCUMENTATION AND METHOD - /** - * Lists existing `BuildTrigger`s. - * - *

This API is experimental. - * - *

Sample code: - * - *


-   * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) {
-   *   String projectId = "";
-   *   ListBuildTriggersResponse response = cloudBuildClient.listBuildTriggers(projectId);
-   * }
-   * 
- * - * @param projectId Required. ID of the project for which to list BuildTriggers. - * @throws com.google.api.gax.rpc.ApiException if the remote call fails - */ - public final ListBuildTriggersResponse listBuildTriggers(String projectId) { - ListBuildTriggersRequest request = - ListBuildTriggersRequest.newBuilder().setProjectId(projectId).build(); - return listBuildTriggers(request); - } - - // AUTO-GENERATED DOCUMENTATION AND METHOD - /** - * Lists existing `BuildTrigger`s. + * Returns information about a `BuildTrigger`. * *

This API is experimental. * @@ -731,18 +1012,19 @@ public final ListBuildTriggersResponse listBuildTriggers(String projectId) { *


    * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) {
    *   String projectId = "";
-   *   ListBuildTriggersRequest request = ListBuildTriggersRequest.newBuilder()
+   *   String triggerId = "";
+   *   GetBuildTriggerRequest request = GetBuildTriggerRequest.newBuilder()
    *     .setProjectId(projectId)
+   *     .setTriggerId(triggerId)
    *     .build();
-   *   ListBuildTriggersResponse response = cloudBuildClient.listBuildTriggers(request);
+   *   ApiFuture<BuildTrigger> future = cloudBuildClient.getBuildTriggerCallable().futureCall(request);
+   *   // Do something
+   *   BuildTrigger response = future.get();
    * }
    * 
- * - * @param request The request object containing all of the parameters for the API call. - * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ - public final ListBuildTriggersResponse listBuildTriggers(ListBuildTriggersRequest request) { - return listBuildTriggersCallable().call(request); + public final UnaryCallable getBuildTriggerCallable() { + return stub.getBuildTriggerCallable(); } // AUTO-GENERATED DOCUMENTATION AND METHOD @@ -756,23 +1038,24 @@ public final ListBuildTriggersResponse listBuildTriggers(ListBuildTriggersReques *

    * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) {
    *   String projectId = "";
-   *   ListBuildTriggersRequest request = ListBuildTriggersRequest.newBuilder()
-   *     .setProjectId(projectId)
-   *     .build();
-   *   ApiFuture<ListBuildTriggersResponse> future = cloudBuildClient.listBuildTriggersCallable().futureCall(request);
-   *   // Do something
-   *   ListBuildTriggersResponse response = future.get();
+   *   for (BuildTrigger element : cloudBuildClient.listBuildTriggers(projectId).iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
    * }
    * 
+ * + * @param projectId Required. ID of the project for which to list BuildTriggers. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ - public final UnaryCallable - listBuildTriggersCallable() { - return stub.listBuildTriggersCallable(); + public final ListBuildTriggersPagedResponse listBuildTriggers(String projectId) { + ListBuildTriggersRequest request = + ListBuildTriggersRequest.newBuilder().setProjectId(projectId).build(); + return listBuildTriggers(request); } // AUTO-GENERATED DOCUMENTATION AND METHOD /** - * Deletes a `BuildTrigger` by its project ID and trigger ID. + * Lists existing `BuildTrigger`s. * *

This API is experimental. * @@ -781,27 +1064,25 @@ public final ListBuildTriggersResponse listBuildTriggers(ListBuildTriggersReques *


    * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) {
    *   String projectId = "";
-   *   String triggerId = "";
-   *   cloudBuildClient.deleteBuildTrigger(projectId, triggerId);
+   *   ListBuildTriggersRequest request = ListBuildTriggersRequest.newBuilder()
+   *     .setProjectId(projectId)
+   *     .build();
+   *   for (BuildTrigger element : cloudBuildClient.listBuildTriggers(request).iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
    * }
    * 
* - * @param projectId Required. ID of the project that owns the trigger. - * @param triggerId Required. ID of the `BuildTrigger` to delete. + * @param request The request object containing all of the parameters for the API call. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ - public final void deleteBuildTrigger(String projectId, String triggerId) { - DeleteBuildTriggerRequest request = - DeleteBuildTriggerRequest.newBuilder() - .setProjectId(projectId) - .setTriggerId(triggerId) - .build(); - deleteBuildTrigger(request); + public final ListBuildTriggersPagedResponse listBuildTriggers(ListBuildTriggersRequest request) { + return listBuildTriggersPagedCallable().call(request); } // AUTO-GENERATED DOCUMENTATION AND METHOD /** - * Deletes a `BuildTrigger` by its project ID and trigger ID. + * Lists existing `BuildTrigger`s. * *

This API is experimental. * @@ -810,25 +1091,25 @@ public final void deleteBuildTrigger(String projectId, String triggerId) { *


    * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) {
    *   String projectId = "";
-   *   String triggerId = "";
-   *   DeleteBuildTriggerRequest request = DeleteBuildTriggerRequest.newBuilder()
+   *   ListBuildTriggersRequest request = ListBuildTriggersRequest.newBuilder()
    *     .setProjectId(projectId)
-   *     .setTriggerId(triggerId)
    *     .build();
-   *   cloudBuildClient.deleteBuildTrigger(request);
+   *   ApiFuture<ListBuildTriggersPagedResponse> future = cloudBuildClient.listBuildTriggersPagedCallable().futureCall(request);
+   *   // Do something
+   *   for (BuildTrigger element : future.get().iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
    * }
    * 
- * - * @param request The request object containing all of the parameters for the API call. - * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ - public final void deleteBuildTrigger(DeleteBuildTriggerRequest request) { - deleteBuildTriggerCallable().call(request); + public final UnaryCallable + listBuildTriggersPagedCallable() { + return stub.listBuildTriggersPagedCallable(); } // AUTO-GENERATED DOCUMENTATION AND METHOD /** - * Deletes a `BuildTrigger` by its project ID and trigger ID. + * Lists existing `BuildTrigger`s. * *

This API is experimental. * @@ -837,19 +1118,27 @@ public final void deleteBuildTrigger(DeleteBuildTriggerRequest request) { *


    * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) {
    *   String projectId = "";
-   *   String triggerId = "";
-   *   DeleteBuildTriggerRequest request = DeleteBuildTriggerRequest.newBuilder()
+   *   ListBuildTriggersRequest request = ListBuildTriggersRequest.newBuilder()
    *     .setProjectId(projectId)
-   *     .setTriggerId(triggerId)
    *     .build();
-   *   ApiFuture<Void> future = cloudBuildClient.deleteBuildTriggerCallable().futureCall(request);
-   *   // Do something
-   *   future.get();
+   *   while (true) {
+   *     ListBuildTriggersResponse response = cloudBuildClient.listBuildTriggersCallable().call(request);
+   *     for (BuildTrigger element : response.getTriggersList()) {
+   *       // doThingsWith(element);
+   *     }
+   *     String nextPageToken = response.getNextPageToken();
+   *     if (!Strings.isNullOrEmpty(nextPageToken)) {
+   *       request = request.toBuilder().setPageToken(nextPageToken).build();
+   *     } else {
+   *       break;
+   *     }
+   *   }
    * }
    * 
*/ - public final UnaryCallable deleteBuildTriggerCallable() { - return stub.deleteBuildTriggerCallable(); + public final UnaryCallable + listBuildTriggersCallable() { + return stub.listBuildTriggersCallable(); } // AUTO-GENERATED DOCUMENTATION AND METHOD @@ -953,7 +1242,7 @@ public final UnaryCallable updateBuildT * String projectId = ""; * String triggerId = ""; * RepoSource source = RepoSource.newBuilder().build(); - * Operation response = cloudBuildClient.runBuildTrigger(projectId, triggerId, source); + * Build response = cloudBuildClient.runBuildTriggerAsync(projectId, triggerId, source).get(); * } * * @@ -962,14 +1251,17 @@ public final UnaryCallable updateBuildT * @param source Required. Source to build against this trigger. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ - public final Operation runBuildTrigger(String projectId, String triggerId, RepoSource source) { + @BetaApi( + "The surface for long-running operations is not stable yet and may change in the future.") + public final OperationFuture runBuildTriggerAsync( + String projectId, String triggerId, RepoSource source) { RunBuildTriggerRequest request = RunBuildTriggerRequest.newBuilder() .setProjectId(projectId) .setTriggerId(triggerId) .setSource(source) .build(); - return runBuildTrigger(request); + return runBuildTriggerAsync(request); } // AUTO-GENERATED DOCUMENTATION AND METHOD @@ -988,15 +1280,18 @@ public final Operation runBuildTrigger(String projectId, String triggerId, RepoS * .setTriggerId(triggerId) * .setSource(source) * .build(); - * Operation response = cloudBuildClient.runBuildTrigger(request); + * Build response = cloudBuildClient.runBuildTriggerAsync(request).get(); * } * * * @param request The request object containing all of the parameters for the API call. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ - public final Operation runBuildTrigger(RunBuildTriggerRequest request) { - return runBuildTriggerCallable().call(request); + @BetaApi( + "The surface for long-running operations is not stable yet and may change in the future.") + public final OperationFuture runBuildTriggerAsync( + RunBuildTriggerRequest request) { + return runBuildTriggerOperationCallable().futureCall(request); } // AUTO-GENERATED DOCUMENTATION AND METHOD @@ -1015,156 +1310,42 @@ public final Operation runBuildTrigger(RunBuildTriggerRequest request) { * .setTriggerId(triggerId) * .setSource(source) * .build(); - * ApiFuture<Operation> future = cloudBuildClient.runBuildTriggerCallable().futureCall(request); + * OperationFuture<Build, BuildOperationMetadata> future = cloudBuildClient.runBuildTriggerOperationCallable().futureCall(request); * // Do something - * Operation response = future.get(); - * } - * - */ - public final UnaryCallable runBuildTriggerCallable() { - return stub.runBuildTriggerCallable(); - } - - // AUTO-GENERATED DOCUMENTATION AND METHOD - /** - * Creates a new build based on the specified build. - * - *

This method creates a new build using the original build request, which may or may not - * result in an identical build. - * - *

For triggered builds: - * - *

* Triggered builds resolve to a precise revision; therefore a retry of a triggered build - * will result in a build that uses the same revision. - * - *

For non-triggered builds that specify `RepoSource`: - * - *

* If the original build built from the tip of a branch, the retried build will build - * from the tip of that branch, which may not be the same revision as the original build. * If - * the original build specified a commit sha or revision ID, the retried build will use the - * identical source. - * - *

For builds that specify `StorageSource`: - * - *

* If the original build pulled source from Google Cloud Storage without specifying the - * generation of the object, the new build will use the current object, which may be different - * from the original build source. * If the original build pulled source from Cloud Storage - * and specified the generation of the object, the new build will attempt to use the same object, - * which may or may not be available depending on the bucket's lifecycle management settings. - * - *

Sample code: - * - *


-   * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) {
-   *   String projectId = "";
-   *   String id = "";
-   *   Operation response = cloudBuildClient.retryBuild(projectId, id);
-   * }
-   * 
- * - * @param projectId Required. ID of the project. - * @param id Required. Build ID of the original build. - * @throws com.google.api.gax.rpc.ApiException if the remote call fails - */ - public final Operation retryBuild(String projectId, String id) { - RetryBuildRequest request = - RetryBuildRequest.newBuilder().setProjectId(projectId).setId(id).build(); - return retryBuild(request); - } - - // AUTO-GENERATED DOCUMENTATION AND METHOD - /** - * Creates a new build based on the specified build. - * - *

This method creates a new build using the original build request, which may or may not - * result in an identical build. - * - *

For triggered builds: - * - *

* Triggered builds resolve to a precise revision; therefore a retry of a triggered build - * will result in a build that uses the same revision. - * - *

For non-triggered builds that specify `RepoSource`: - * - *

* If the original build built from the tip of a branch, the retried build will build - * from the tip of that branch, which may not be the same revision as the original build. * If - * the original build specified a commit sha or revision ID, the retried build will use the - * identical source. - * - *

For builds that specify `StorageSource`: - * - *

* If the original build pulled source from Google Cloud Storage without specifying the - * generation of the object, the new build will use the current object, which may be different - * from the original build source. * If the original build pulled source from Cloud Storage - * and specified the generation of the object, the new build will attempt to use the same object, - * which may or may not be available depending on the bucket's lifecycle management settings. - * - *

Sample code: - * - *


-   * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) {
-   *   String projectId = "";
-   *   String id = "";
-   *   RetryBuildRequest request = RetryBuildRequest.newBuilder()
-   *     .setProjectId(projectId)
-   *     .setId(id)
-   *     .build();
-   *   Operation response = cloudBuildClient.retryBuild(request);
+   *   Build response = future.get();
    * }
    * 
- * - * @param request The request object containing all of the parameters for the API call. - * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ - public final Operation retryBuild(RetryBuildRequest request) { - return retryBuildCallable().call(request); + @BetaApi("The surface for use by generated code is not stable yet and may change in the future.") + public final OperationCallable + runBuildTriggerOperationCallable() { + return stub.runBuildTriggerOperationCallable(); } // AUTO-GENERATED DOCUMENTATION AND METHOD /** - * Creates a new build based on the specified build. - * - *

This method creates a new build using the original build request, which may or may not - * result in an identical build. - * - *

For triggered builds: - * - *

* Triggered builds resolve to a precise revision; therefore a retry of a triggered build - * will result in a build that uses the same revision. - * - *

For non-triggered builds that specify `RepoSource`: - * - *

* If the original build built from the tip of a branch, the retried build will build - * from the tip of that branch, which may not be the same revision as the original build. * If - * the original build specified a commit sha or revision ID, the retried build will use the - * identical source. - * - *

For builds that specify `StorageSource`: - * - *

* If the original build pulled source from Google Cloud Storage without specifying the - * generation of the object, the new build will use the current object, which may be different - * from the original build source. * If the original build pulled source from Cloud Storage - * and specified the generation of the object, the new build will attempt to use the same object, - * which may or may not be available depending on the bucket's lifecycle management settings. + * Runs a `BuildTrigger` at a particular source revision. * *

Sample code: * *


    * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) {
    *   String projectId = "";
-   *   String id = "";
-   *   RetryBuildRequest request = RetryBuildRequest.newBuilder()
+   *   String triggerId = "";
+   *   RepoSource source = RepoSource.newBuilder().build();
+   *   RunBuildTriggerRequest request = RunBuildTriggerRequest.newBuilder()
    *     .setProjectId(projectId)
-   *     .setId(id)
+   *     .setTriggerId(triggerId)
+   *     .setSource(source)
    *     .build();
-   *   ApiFuture<Operation> future = cloudBuildClient.retryBuildCallable().futureCall(request);
+   *   ApiFuture<Operation> future = cloudBuildClient.runBuildTriggerCallable().futureCall(request);
    *   // Do something
    *   Operation response = future.get();
    * }
    * 
*/ - public final UnaryCallable retryBuildCallable() { - return stub.retryBuildCallable(); + public final UnaryCallable runBuildTriggerCallable() { + return stub.runBuildTriggerCallable(); } // AUTO-GENERATED DOCUMENTATION AND METHOD @@ -1492,4 +1673,89 @@ protected ListBuildsFixedSizeCollection createCollection( return new ListBuildsFixedSizeCollection(pages, collectionSize); } } + + public static class ListBuildTriggersPagedResponse + extends AbstractPagedListResponse< + ListBuildTriggersRequest, + ListBuildTriggersResponse, + BuildTrigger, + ListBuildTriggersPage, + ListBuildTriggersFixedSizeCollection> { + + public static ApiFuture createAsync( + PageContext context, + ApiFuture futureResponse) { + ApiFuture futurePage = + ListBuildTriggersPage.createEmptyPage().createPageAsync(context, futureResponse); + return ApiFutures.transform( + futurePage, + new ApiFunction() { + @Override + public ListBuildTriggersPagedResponse apply(ListBuildTriggersPage input) { + return new ListBuildTriggersPagedResponse(input); + } + }, + MoreExecutors.directExecutor()); + } + + private ListBuildTriggersPagedResponse(ListBuildTriggersPage page) { + super(page, ListBuildTriggersFixedSizeCollection.createEmptyCollection()); + } + } + + public static class ListBuildTriggersPage + extends AbstractPage< + ListBuildTriggersRequest, + ListBuildTriggersResponse, + BuildTrigger, + ListBuildTriggersPage> { + + private ListBuildTriggersPage( + PageContext context, + ListBuildTriggersResponse response) { + super(context, response); + } + + private static ListBuildTriggersPage createEmptyPage() { + return new ListBuildTriggersPage(null, null); + } + + @Override + protected ListBuildTriggersPage createPage( + PageContext context, + ListBuildTriggersResponse response) { + return new ListBuildTriggersPage(context, response); + } + + @Override + public ApiFuture createPageAsync( + PageContext context, + ApiFuture futureResponse) { + return super.createPageAsync(context, futureResponse); + } + } + + public static class ListBuildTriggersFixedSizeCollection + extends AbstractFixedSizeCollection< + ListBuildTriggersRequest, + ListBuildTriggersResponse, + BuildTrigger, + ListBuildTriggersPage, + ListBuildTriggersFixedSizeCollection> { + + private ListBuildTriggersFixedSizeCollection( + List pages, int collectionSize) { + super(pages, collectionSize); + } + + private static ListBuildTriggersFixedSizeCollection createEmptyCollection() { + return new ListBuildTriggersFixedSizeCollection(null, 0); + } + + @Override + protected ListBuildTriggersFixedSizeCollection createCollection( + List pages, int collectionSize) { + return new ListBuildTriggersFixedSizeCollection(pages, collectionSize); + } + } } 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 9b757607..9db0d8a1 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 @@ -15,6 +15,7 @@ */ 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 com.google.api.core.ApiFunction; @@ -25,11 +26,13 @@ import com.google.api.gax.rpc.ApiClientHeaderProvider; import com.google.api.gax.rpc.ClientContext; import com.google.api.gax.rpc.ClientSettings; +import com.google.api.gax.rpc.OperationCallSettings; import com.google.api.gax.rpc.PagedCallSettings; import com.google.api.gax.rpc.TransportChannelProvider; import com.google.api.gax.rpc.UnaryCallSettings; import com.google.cloud.devtools.cloudbuild.v1.stub.CloudBuildStubSettings; 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; @@ -72,16 +75,16 @@ *

The builder of this class is recursive, so contained classes are themselves builders. When * build() is called, the tree of builders is called to create the complete settings object. * - *

For example, to set the total timeout of createBuild to 30 seconds: + *

For example, to set the total timeout of deleteBuildTrigger to 30 seconds: * *

  * 
  * CloudBuildSettings.Builder cloudBuildSettingsBuilder =
  *     CloudBuildSettings.newBuilder();
  * cloudBuildSettingsBuilder
- *     .createBuildSettings()
+ *     .deleteBuildTriggerSettings()
  *     .setRetrySettings(
- *         cloudBuildSettingsBuilder.createBuildSettings().getRetrySettings().toBuilder()
+ *         cloudBuildSettingsBuilder.deleteBuildTriggerSettings().getRetrySettings().toBuilder()
  *             .setTotalTimeout(Duration.ofSeconds(30))
  *             .build());
  * CloudBuildSettings cloudBuildSettings = cloudBuildSettingsBuilder.build();
@@ -91,27 +94,53 @@
 @Generated("by gapic-generator")
 @BetaApi
 public class CloudBuildSettings extends ClientSettings {
+  /** Returns the object with the settings used for calls to listBuilds. */
+  public PagedCallSettings
+      listBuildsSettings() {
+    return ((CloudBuildStubSettings) getStubSettings()).listBuildsSettings();
+  }
+
+  /** Returns the object with the settings used for calls to deleteBuildTrigger. */
+  public UnaryCallSettings deleteBuildTriggerSettings() {
+    return ((CloudBuildStubSettings) getStubSettings()).deleteBuildTriggerSettings();
+  }
+
   /** Returns the object with the settings used for calls to createBuild. */
   public UnaryCallSettings createBuildSettings() {
     return ((CloudBuildStubSettings) getStubSettings()).createBuildSettings();
   }
 
+  /** Returns the object with the settings used for calls to createBuild. */
+  @BetaApi(
+      "The surface for long-running operations is not stable yet and may change in the future.")
+  public OperationCallSettings
+      createBuildOperationSettings() {
+    return ((CloudBuildStubSettings) getStubSettings()).createBuildOperationSettings();
+  }
+
   /** Returns the object with the settings used for calls to getBuild. */
   public UnaryCallSettings getBuildSettings() {
     return ((CloudBuildStubSettings) getStubSettings()).getBuildSettings();
   }
 
-  /** Returns the object with the settings used for calls to listBuilds. */
-  public PagedCallSettings
-      listBuildsSettings() {
-    return ((CloudBuildStubSettings) getStubSettings()).listBuildsSettings();
-  }
-
   /** Returns the object with the settings used for calls to cancelBuild. */
   public UnaryCallSettings cancelBuildSettings() {
     return ((CloudBuildStubSettings) getStubSettings()).cancelBuildSettings();
   }
 
+  /** Returns the object with the settings used for calls to retryBuild. */
+  public UnaryCallSettings retryBuildSettings() {
+    return ((CloudBuildStubSettings) getStubSettings()).retryBuildSettings();
+  }
+
+  /** Returns the object with the settings used for calls to retryBuild. */
+  @BetaApi(
+      "The surface for long-running operations is not stable yet and may change in the future.")
+  public OperationCallSettings
+      retryBuildOperationSettings() {
+    return ((CloudBuildStubSettings) getStubSettings()).retryBuildOperationSettings();
+  }
+
   /** Returns the object with the settings used for calls to createBuildTrigger. */
   public UnaryCallSettings createBuildTriggerSettings() {
     return ((CloudBuildStubSettings) getStubSettings()).createBuildTriggerSettings();
@@ -123,16 +152,12 @@ public UnaryCallSettings getBuildTriggerSe
   }
 
   /** Returns the object with the settings used for calls to listBuildTriggers. */
-  public UnaryCallSettings
+  public PagedCallSettings<
+          ListBuildTriggersRequest, ListBuildTriggersResponse, ListBuildTriggersPagedResponse>
       listBuildTriggersSettings() {
     return ((CloudBuildStubSettings) getStubSettings()).listBuildTriggersSettings();
   }
 
-  /** Returns the object with the settings used for calls to deleteBuildTrigger. */
-  public UnaryCallSettings deleteBuildTriggerSettings() {
-    return ((CloudBuildStubSettings) getStubSettings()).deleteBuildTriggerSettings();
-  }
-
   /** Returns the object with the settings used for calls to updateBuildTrigger. */
   public UnaryCallSettings updateBuildTriggerSettings() {
     return ((CloudBuildStubSettings) getStubSettings()).updateBuildTriggerSettings();
@@ -143,9 +168,12 @@ public UnaryCallSettings runBuildTriggerSetti
     return ((CloudBuildStubSettings) getStubSettings()).runBuildTriggerSettings();
   }
 
-  /** Returns the object with the settings used for calls to retryBuild. */
-  public UnaryCallSettings retryBuildSettings() {
-    return ((CloudBuildStubSettings) getStubSettings()).retryBuildSettings();
+  /** Returns the object with the settings used for calls to runBuildTrigger. */
+  @BetaApi(
+      "The surface for long-running operations is not stable yet and may change in the future.")
+  public OperationCallSettings
+      runBuildTriggerOperationSettings() {
+    return ((CloudBuildStubSettings) getStubSettings()).runBuildTriggerOperationSettings();
   }
 
   /** Returns the object with the settings used for calls to createWorkerPool. */
@@ -270,27 +298,54 @@ public Builder applyToAllUnaryMethods(
       return this;
     }
 
+    /** Returns the builder for the settings used for calls to listBuilds. */
+    public PagedCallSettings.Builder
+        listBuildsSettings() {
+      return getStubSettingsBuilder().listBuildsSettings();
+    }
+
+    /** Returns the builder for the settings used for calls to deleteBuildTrigger. */
+    public UnaryCallSettings.Builder
+        deleteBuildTriggerSettings() {
+      return getStubSettingsBuilder().deleteBuildTriggerSettings();
+    }
+
     /** Returns the builder for the settings used for calls to createBuild. */
     public UnaryCallSettings.Builder createBuildSettings() {
       return getStubSettingsBuilder().createBuildSettings();
     }
 
+    /** Returns the builder for the settings used for calls to createBuild. */
+    @BetaApi(
+        "The surface for long-running operations is not stable yet and may change in the future.")
+    public OperationCallSettings.Builder
+        createBuildOperationSettings() {
+      return getStubSettingsBuilder().createBuildOperationSettings();
+    }
+
     /** Returns the builder for the settings used for calls to getBuild. */
     public UnaryCallSettings.Builder getBuildSettings() {
       return getStubSettingsBuilder().getBuildSettings();
     }
 
-    /** Returns the builder for the settings used for calls to listBuilds. */
-    public PagedCallSettings.Builder
-        listBuildsSettings() {
-      return getStubSettingsBuilder().listBuildsSettings();
-    }
-
     /** Returns the builder for the settings used for calls to cancelBuild. */
     public UnaryCallSettings.Builder cancelBuildSettings() {
       return getStubSettingsBuilder().cancelBuildSettings();
     }
 
+    /** Returns the builder for the settings used for calls to retryBuild. */
+    public UnaryCallSettings.Builder retryBuildSettings() {
+      return getStubSettingsBuilder().retryBuildSettings();
+    }
+
+    /** Returns the builder for the settings used for calls to retryBuild. */
+    @BetaApi(
+        "The surface for long-running operations is not stable yet and may change in the future.")
+    public OperationCallSettings.Builder
+        retryBuildOperationSettings() {
+      return getStubSettingsBuilder().retryBuildOperationSettings();
+    }
+
     /** Returns the builder for the settings used for calls to createBuildTrigger. */
     public UnaryCallSettings.Builder
         createBuildTriggerSettings() {
@@ -304,17 +359,12 @@ public UnaryCallSettings.Builder cancelBuildSettings(
     }
 
     /** Returns the builder for the settings used for calls to listBuildTriggers. */
-    public UnaryCallSettings.Builder
+    public PagedCallSettings.Builder<
+            ListBuildTriggersRequest, ListBuildTriggersResponse, ListBuildTriggersPagedResponse>
         listBuildTriggersSettings() {
       return getStubSettingsBuilder().listBuildTriggersSettings();
     }
 
-    /** Returns the builder for the settings used for calls to deleteBuildTrigger. */
-    public UnaryCallSettings.Builder
-        deleteBuildTriggerSettings() {
-      return getStubSettingsBuilder().deleteBuildTriggerSettings();
-    }
-
     /** Returns the builder for the settings used for calls to updateBuildTrigger. */
     public UnaryCallSettings.Builder
         updateBuildTriggerSettings() {
@@ -326,9 +376,12 @@ public UnaryCallSettings.Builder runBuildTrig
       return getStubSettingsBuilder().runBuildTriggerSettings();
     }
 
-    /** Returns the builder for the settings used for calls to retryBuild. */
-    public UnaryCallSettings.Builder retryBuildSettings() {
-      return getStubSettingsBuilder().retryBuildSettings();
+    /** Returns the builder for the settings used for calls to runBuildTrigger. */
+    @BetaApi(
+        "The surface for long-running operations is not stable yet and may change in the future.")
+    public OperationCallSettings.Builder
+        runBuildTriggerOperationSettings() {
+      return getStubSettingsBuilder().runBuildTriggerOperationSettings();
     }
 
     /** Returns the builder for the settings used for calls to createWorkerPool. */
diff --git a/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/package-info.java b/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/package-info.java
index 1f148ffa..10879727 100644
--- a/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/package-info.java
+++ b/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/package-info.java
@@ -35,8 +35,8 @@
  * 
  * try (CloudBuildClient cloudBuildClient = CloudBuildClient.create()) {
  *   String projectId = "";
- *   Build build = Build.newBuilder().build();
- *   Operation response = cloudBuildClient.createBuild(projectId, build);
+ *   String triggerId = "";
+ *   cloudBuildClient.deleteBuildTrigger(projectId, triggerId);
  * }
  * 
  * 
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 1b717d26..64d7a9de 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 @@ -15,12 +15,15 @@ */ 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 com.google.api.core.BetaApi; import com.google.api.gax.core.BackgroundResource; +import com.google.api.gax.rpc.OperationCallable; import com.google.api.gax.rpc.UnaryCallable; 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; @@ -43,6 +46,7 @@ import com.google.cloudbuild.v1.UpdateWorkerPoolRequest; import com.google.cloudbuild.v1.WorkerPool; import com.google.longrunning.Operation; +import com.google.longrunning.stub.OperationsStub; import com.google.protobuf.Empty; import javax.annotation.Generated; @@ -56,12 +60,9 @@ @BetaApi("A restructuring of stub classes is planned, so this may break in the future") public abstract class CloudBuildStub implements BackgroundResource { - public UnaryCallable createBuildCallable() { - throw new UnsupportedOperationException("Not implemented: createBuildCallable()"); - } - - public UnaryCallable getBuildCallable() { - throw new UnsupportedOperationException("Not implemented: getBuildCallable()"); + @BetaApi("The surface for use by generated code is not stable yet and may change in the future.") + public OperationsStub getOperationsStub() { + throw new UnsupportedOperationException("Not implemented: getOperationsStub()"); } public UnaryCallable listBuildsPagedCallable() { @@ -72,10 +73,38 @@ public UnaryCallable listBuildsCallable() throw new UnsupportedOperationException("Not implemented: listBuildsCallable()"); } + public UnaryCallable deleteBuildTriggerCallable() { + throw new UnsupportedOperationException("Not implemented: deleteBuildTriggerCallable()"); + } + + @BetaApi("The surface for use by generated code is not stable yet and may change in the future.") + public OperationCallable + createBuildOperationCallable() { + throw new UnsupportedOperationException("Not implemented: createBuildOperationCallable()"); + } + + public UnaryCallable createBuildCallable() { + throw new UnsupportedOperationException("Not implemented: createBuildCallable()"); + } + + public UnaryCallable getBuildCallable() { + throw new UnsupportedOperationException("Not implemented: getBuildCallable()"); + } + public UnaryCallable cancelBuildCallable() { throw new UnsupportedOperationException("Not implemented: cancelBuildCallable()"); } + @BetaApi("The surface for use by generated code is not stable yet and may change in the future.") + public OperationCallable + retryBuildOperationCallable() { + throw new UnsupportedOperationException("Not implemented: retryBuildOperationCallable()"); + } + + public UnaryCallable retryBuildCallable() { + throw new UnsupportedOperationException("Not implemented: retryBuildCallable()"); + } + public UnaryCallable createBuildTriggerCallable() { throw new UnsupportedOperationException("Not implemented: createBuildTriggerCallable()"); } @@ -84,25 +113,28 @@ public UnaryCallable getBuildTriggerCallab throw new UnsupportedOperationException("Not implemented: getBuildTriggerCallable()"); } + public UnaryCallable + listBuildTriggersPagedCallable() { + throw new UnsupportedOperationException("Not implemented: listBuildTriggersPagedCallable()"); + } + public UnaryCallable listBuildTriggersCallable() { throw new UnsupportedOperationException("Not implemented: listBuildTriggersCallable()"); } - public UnaryCallable deleteBuildTriggerCallable() { - throw new UnsupportedOperationException("Not implemented: deleteBuildTriggerCallable()"); - } - public UnaryCallable updateBuildTriggerCallable() { throw new UnsupportedOperationException("Not implemented: updateBuildTriggerCallable()"); } - public UnaryCallable runBuildTriggerCallable() { - throw new UnsupportedOperationException("Not implemented: runBuildTriggerCallable()"); + @BetaApi("The surface for use by generated code is not stable yet and may change in the future.") + public OperationCallable + runBuildTriggerOperationCallable() { + throw new UnsupportedOperationException("Not implemented: runBuildTriggerOperationCallable()"); } - public UnaryCallable retryBuildCallable() { - throw new UnsupportedOperationException("Not implemented: retryBuildCallable()"); + public UnaryCallable runBuildTriggerCallable() { + throw new UnsupportedOperationException("Not implemented: runBuildTriggerCallable()"); } public UnaryCallable createWorkerPoolCallable() { 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 021c5139..aa67113a 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 @@ -15,6 +15,7 @@ */ 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 com.google.api.core.ApiFunction; @@ -26,10 +27,14 @@ import com.google.api.gax.grpc.GaxGrpcProperties; import com.google.api.gax.grpc.GrpcTransportChannel; import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider; +import com.google.api.gax.grpc.ProtoOperationTransformers; +import com.google.api.gax.longrunning.OperationSnapshot; +import com.google.api.gax.longrunning.OperationTimedPollAlgorithm; import com.google.api.gax.retrying.RetrySettings; import com.google.api.gax.rpc.ApiCallContext; import com.google.api.gax.rpc.ApiClientHeaderProvider; import com.google.api.gax.rpc.ClientContext; +import com.google.api.gax.rpc.OperationCallSettings; import com.google.api.gax.rpc.PageContext; import com.google.api.gax.rpc.PagedCallSettings; import com.google.api.gax.rpc.PagedListDescriptor; @@ -40,6 +45,7 @@ import com.google.api.gax.rpc.UnaryCallSettings; import com.google.api.gax.rpc.UnaryCallable; 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; @@ -87,16 +93,16 @@ *

The builder of this class is recursive, so contained classes are themselves builders. When * build() is called, the tree of builders is called to create the complete settings object. * - *

For example, to set the total timeout of createBuild to 30 seconds: + *

For example, to set the total timeout of deleteBuildTrigger to 30 seconds: * *

  * 
  * CloudBuildStubSettings.Builder cloudBuildSettingsBuilder =
  *     CloudBuildStubSettings.newBuilder();
  * cloudBuildSettingsBuilder
- *     .createBuildSettings()
+ *     .deleteBuildTriggerSettings()
  *     .setRetrySettings(
- *         cloudBuildSettingsBuilder.createBuildSettings().getRetrySettings().toBuilder()
+ *         cloudBuildSettingsBuilder.deleteBuildTriggerSettings().getRetrySettings().toBuilder()
  *             .setTotalTimeout(Duration.ofSeconds(30))
  *             .build());
  * CloudBuildStubSettings cloudBuildSettings = cloudBuildSettingsBuilder.build();
@@ -110,21 +116,28 @@ public class CloudBuildStubSettings extends StubSettings
   private static final ImmutableList DEFAULT_SERVICE_SCOPES =
       ImmutableList.builder().add("https://www.googleapis.com/auth/cloud-platform").build();
 
-  private final UnaryCallSettings createBuildSettings;
-  private final UnaryCallSettings getBuildSettings;
   private final PagedCallSettings
       listBuildsSettings;
+  private final UnaryCallSettings deleteBuildTriggerSettings;
+  private final UnaryCallSettings createBuildSettings;
+  private final OperationCallSettings
+      createBuildOperationSettings;
+  private final UnaryCallSettings getBuildSettings;
   private final UnaryCallSettings cancelBuildSettings;
+  private final UnaryCallSettings retryBuildSettings;
+  private final OperationCallSettings
+      retryBuildOperationSettings;
   private final UnaryCallSettings
       createBuildTriggerSettings;
   private final UnaryCallSettings getBuildTriggerSettings;
-  private final UnaryCallSettings
+  private final PagedCallSettings<
+          ListBuildTriggersRequest, ListBuildTriggersResponse, ListBuildTriggersPagedResponse>
       listBuildTriggersSettings;
-  private final UnaryCallSettings deleteBuildTriggerSettings;
   private final UnaryCallSettings
       updateBuildTriggerSettings;
   private final UnaryCallSettings runBuildTriggerSettings;
-  private final UnaryCallSettings retryBuildSettings;
+  private final OperationCallSettings
+      runBuildTriggerOperationSettings;
   private final UnaryCallSettings createWorkerPoolSettings;
   private final UnaryCallSettings getWorkerPoolSettings;
   private final UnaryCallSettings deleteWorkerPoolSettings;
@@ -132,27 +145,51 @@ public class CloudBuildStubSettings extends StubSettings
   private final UnaryCallSettings
       listWorkerPoolsSettings;
 
+  /** Returns the object with the settings used for calls to listBuilds. */
+  public PagedCallSettings
+      listBuildsSettings() {
+    return listBuildsSettings;
+  }
+
+  /** Returns the object with the settings used for calls to deleteBuildTrigger. */
+  public UnaryCallSettings deleteBuildTriggerSettings() {
+    return deleteBuildTriggerSettings;
+  }
+
   /** Returns the object with the settings used for calls to createBuild. */
   public UnaryCallSettings createBuildSettings() {
     return createBuildSettings;
   }
 
+  /** Returns the object with the settings used for calls to createBuild. */
+  @BetaApi("The surface for use by generated code is not stable yet and may change in the future.")
+  public OperationCallSettings
+      createBuildOperationSettings() {
+    return createBuildOperationSettings;
+  }
+
   /** Returns the object with the settings used for calls to getBuild. */
   public UnaryCallSettings getBuildSettings() {
     return getBuildSettings;
   }
 
-  /** Returns the object with the settings used for calls to listBuilds. */
-  public PagedCallSettings
-      listBuildsSettings() {
-    return listBuildsSettings;
-  }
-
   /** Returns the object with the settings used for calls to cancelBuild. */
   public UnaryCallSettings cancelBuildSettings() {
     return cancelBuildSettings;
   }
 
+  /** Returns the object with the settings used for calls to retryBuild. */
+  public UnaryCallSettings retryBuildSettings() {
+    return retryBuildSettings;
+  }
+
+  /** Returns the object with the settings used for calls to retryBuild. */
+  @BetaApi("The surface for use by generated code is not stable yet and may change in the future.")
+  public OperationCallSettings
+      retryBuildOperationSettings() {
+    return retryBuildOperationSettings;
+  }
+
   /** Returns the object with the settings used for calls to createBuildTrigger. */
   public UnaryCallSettings createBuildTriggerSettings() {
     return createBuildTriggerSettings;
@@ -164,16 +201,12 @@ public UnaryCallSettings getBuildTriggerSe
   }
 
   /** Returns the object with the settings used for calls to listBuildTriggers. */
-  public UnaryCallSettings
+  public PagedCallSettings<
+          ListBuildTriggersRequest, ListBuildTriggersResponse, ListBuildTriggersPagedResponse>
       listBuildTriggersSettings() {
     return listBuildTriggersSettings;
   }
 
-  /** Returns the object with the settings used for calls to deleteBuildTrigger. */
-  public UnaryCallSettings deleteBuildTriggerSettings() {
-    return deleteBuildTriggerSettings;
-  }
-
   /** Returns the object with the settings used for calls to updateBuildTrigger. */
   public UnaryCallSettings updateBuildTriggerSettings() {
     return updateBuildTriggerSettings;
@@ -184,9 +217,11 @@ public UnaryCallSettings runBuildTriggerSetti
     return runBuildTriggerSettings;
   }
 
-  /** Returns the object with the settings used for calls to retryBuild. */
-  public UnaryCallSettings retryBuildSettings() {
-    return retryBuildSettings;
+  /** Returns the object with the settings used for calls to runBuildTrigger. */
+  @BetaApi("The surface for use by generated code is not stable yet and may change in the future.")
+  public OperationCallSettings
+      runBuildTriggerOperationSettings() {
+    return runBuildTriggerOperationSettings;
   }
 
   /** Returns the object with the settings used for calls to createWorkerPool. */
@@ -284,17 +319,20 @@ public Builder toBuilder() {
   protected CloudBuildStubSettings(Builder settingsBuilder) throws IOException {
     super(settingsBuilder);
 
+    listBuildsSettings = settingsBuilder.listBuildsSettings().build();
+    deleteBuildTriggerSettings = settingsBuilder.deleteBuildTriggerSettings().build();
     createBuildSettings = settingsBuilder.createBuildSettings().build();
+    createBuildOperationSettings = settingsBuilder.createBuildOperationSettings().build();
     getBuildSettings = settingsBuilder.getBuildSettings().build();
-    listBuildsSettings = settingsBuilder.listBuildsSettings().build();
     cancelBuildSettings = settingsBuilder.cancelBuildSettings().build();
+    retryBuildSettings = settingsBuilder.retryBuildSettings().build();
+    retryBuildOperationSettings = settingsBuilder.retryBuildOperationSettings().build();
     createBuildTriggerSettings = settingsBuilder.createBuildTriggerSettings().build();
     getBuildTriggerSettings = settingsBuilder.getBuildTriggerSettings().build();
     listBuildTriggersSettings = settingsBuilder.listBuildTriggersSettings().build();
-    deleteBuildTriggerSettings = settingsBuilder.deleteBuildTriggerSettings().build();
     updateBuildTriggerSettings = settingsBuilder.updateBuildTriggerSettings().build();
     runBuildTriggerSettings = settingsBuilder.runBuildTriggerSettings().build();
-    retryBuildSettings = settingsBuilder.retryBuildSettings().build();
+    runBuildTriggerOperationSettings = settingsBuilder.runBuildTriggerOperationSettings().build();
     createWorkerPoolSettings = settingsBuilder.createWorkerPoolSettings().build();
     getWorkerPoolSettings = settingsBuilder.getWorkerPoolSettings().build();
     deleteWorkerPoolSettings = settingsBuilder.deleteWorkerPoolSettings().build();
@@ -338,6 +376,46 @@ public Iterable extractResources(ListBuildsResponse payload) {
             }
           };
 
+  private static final PagedListDescriptor<
+          ListBuildTriggersRequest, ListBuildTriggersResponse, BuildTrigger>
+      LIST_BUILD_TRIGGERS_PAGE_STR_DESC =
+          new PagedListDescriptor<
+              ListBuildTriggersRequest, ListBuildTriggersResponse, BuildTrigger>() {
+            @Override
+            public String emptyToken() {
+              return "";
+            }
+
+            @Override
+            public ListBuildTriggersRequest injectToken(
+                ListBuildTriggersRequest payload, String token) {
+              return ListBuildTriggersRequest.newBuilder(payload).setPageToken(token).build();
+            }
+
+            @Override
+            public ListBuildTriggersRequest injectPageSize(
+                ListBuildTriggersRequest payload, int pageSize) {
+              return ListBuildTriggersRequest.newBuilder(payload).setPageSize(pageSize).build();
+            }
+
+            @Override
+            public Integer extractPageSize(ListBuildTriggersRequest payload) {
+              return payload.getPageSize();
+            }
+
+            @Override
+            public String extractNextToken(ListBuildTriggersResponse payload) {
+              return payload.getNextPageToken();
+            }
+
+            @Override
+            public Iterable extractResources(ListBuildTriggersResponse payload) {
+              return payload.getTriggersList() != null
+                  ? payload.getTriggersList()
+                  : ImmutableList.of();
+            }
+          };
+
   private static final PagedListResponseFactory<
           ListBuildsRequest, ListBuildsResponse, ListBuildsPagedResponse>
       LIST_BUILDS_PAGE_STR_FACT =
@@ -355,29 +433,58 @@ public ApiFuture getFuturePagedResponse(
             }
           };
 
+  private static final PagedListResponseFactory<
+          ListBuildTriggersRequest, ListBuildTriggersResponse, ListBuildTriggersPagedResponse>
+      LIST_BUILD_TRIGGERS_PAGE_STR_FACT =
+          new PagedListResponseFactory<
+              ListBuildTriggersRequest,
+              ListBuildTriggersResponse,
+              ListBuildTriggersPagedResponse>() {
+            @Override
+            public ApiFuture getFuturePagedResponse(
+                UnaryCallable callable,
+                ListBuildTriggersRequest request,
+                ApiCallContext context,
+                ApiFuture futureResponse) {
+              PageContext
+                  pageContext =
+                      PageContext.create(
+                          callable, LIST_BUILD_TRIGGERS_PAGE_STR_DESC, request, context);
+              return ListBuildTriggersPagedResponse.createAsync(pageContext, futureResponse);
+            }
+          };
+
   /** Builder for CloudBuildStubSettings. */
   public static class Builder extends StubSettings.Builder {
     private final ImmutableList> unaryMethodSettingsBuilders;
 
-    private final UnaryCallSettings.Builder createBuildSettings;
-    private final UnaryCallSettings.Builder getBuildSettings;
     private final PagedCallSettings.Builder<
             ListBuildsRequest, ListBuildsResponse, ListBuildsPagedResponse>
         listBuildsSettings;
+    private final UnaryCallSettings.Builder
+        deleteBuildTriggerSettings;
+    private final UnaryCallSettings.Builder createBuildSettings;
+    private final OperationCallSettings.Builder
+        createBuildOperationSettings;
+    private final UnaryCallSettings.Builder getBuildSettings;
     private final UnaryCallSettings.Builder cancelBuildSettings;
+    private final UnaryCallSettings.Builder retryBuildSettings;
+    private final OperationCallSettings.Builder
+        retryBuildOperationSettings;
     private final UnaryCallSettings.Builder
         createBuildTriggerSettings;
     private final UnaryCallSettings.Builder
         getBuildTriggerSettings;
-    private final UnaryCallSettings.Builder
+    private final PagedCallSettings.Builder<
+            ListBuildTriggersRequest, ListBuildTriggersResponse, ListBuildTriggersPagedResponse>
         listBuildTriggersSettings;
-    private final UnaryCallSettings.Builder
-        deleteBuildTriggerSettings;
     private final UnaryCallSettings.Builder
         updateBuildTriggerSettings;
     private final UnaryCallSettings.Builder
         runBuildTriggerSettings;
-    private final UnaryCallSettings.Builder retryBuildSettings;
+    private final OperationCallSettings.Builder<
+            RunBuildTriggerRequest, Build, BuildOperationMetadata>
+        runBuildTriggerOperationSettings;
     private final UnaryCallSettings.Builder
         createWorkerPoolSettings;
     private final UnaryCallSettings.Builder getWorkerPoolSettings;
@@ -429,27 +536,33 @@ protected Builder() {
     protected Builder(ClientContext clientContext) {
       super(clientContext);
 
+      listBuildsSettings = PagedCallSettings.newBuilder(LIST_BUILDS_PAGE_STR_FACT);
+
+      deleteBuildTriggerSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
+
       createBuildSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
 
-      getBuildSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
+      createBuildOperationSettings = OperationCallSettings.newBuilder();
 
-      listBuildsSettings = PagedCallSettings.newBuilder(LIST_BUILDS_PAGE_STR_FACT);
+      getBuildSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
 
       cancelBuildSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
 
+      retryBuildSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
+
+      retryBuildOperationSettings = OperationCallSettings.newBuilder();
+
       createBuildTriggerSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
 
       getBuildTriggerSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
 
-      listBuildTriggersSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
-
-      deleteBuildTriggerSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
+      listBuildTriggersSettings = PagedCallSettings.newBuilder(LIST_BUILD_TRIGGERS_PAGE_STR_FACT);
 
       updateBuildTriggerSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
 
       runBuildTriggerSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
 
-      retryBuildSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
+      runBuildTriggerOperationSettings = OperationCallSettings.newBuilder();
 
       createWorkerPoolSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
 
@@ -463,17 +576,17 @@ protected Builder(ClientContext clientContext) {
 
       unaryMethodSettingsBuilders =
           ImmutableList.>of(
+              listBuildsSettings,
+              deleteBuildTriggerSettings,
               createBuildSettings,
               getBuildSettings,
-              listBuildsSettings,
               cancelBuildSettings,
+              retryBuildSettings,
               createBuildTriggerSettings,
               getBuildTriggerSettings,
               listBuildTriggersSettings,
-              deleteBuildTriggerSettings,
               updateBuildTriggerSettings,
               runBuildTriggerSettings,
-              retryBuildSettings,
               createWorkerPoolSettings,
               getWorkerPoolSettings,
               deleteWorkerPoolSettings,
@@ -494,6 +607,16 @@ private static Builder createDefault() {
 
     private static Builder initDefaults(Builder builder) {
 
+      builder
+          .listBuildsSettings()
+          .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
+          .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
+
+      builder
+          .deleteBuildTriggerSettings()
+          .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
+          .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
+
       builder
           .createBuildSettings()
           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
@@ -505,12 +628,12 @@ private static Builder initDefaults(Builder builder) {
           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
 
       builder
-          .listBuildsSettings()
-          .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
+          .cancelBuildSettings()
+          .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
 
       builder
-          .cancelBuildSettings()
+          .retryBuildSettings()
           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
 
@@ -529,11 +652,6 @@ private static Builder initDefaults(Builder builder) {
           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
 
-      builder
-          .deleteBuildTriggerSettings()
-          .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
-          .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
-
       builder
           .updateBuildTriggerSettings()
           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
@@ -544,11 +662,6 @@ private static Builder initDefaults(Builder builder) {
           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
 
-      builder
-          .retryBuildSettings()
-          .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
-          .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
-
       builder
           .createWorkerPoolSettings()
           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
@@ -573,6 +686,73 @@ private static Builder initDefaults(Builder builder) {
           .listWorkerPoolsSettings()
           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
+      builder
+          .createBuildOperationSettings()
+          .setInitialCallSettings(
+              UnaryCallSettings.newUnaryCallSettingsBuilder()
+                  .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
+                  .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"))
+                  .build())
+          .setResponseTransformer(
+              ProtoOperationTransformers.ResponseTransformer.create(Build.class))
+          .setMetadataTransformer(
+              ProtoOperationTransformers.MetadataTransformer.create(BuildOperationMetadata.class))
+          .setPollingAlgorithm(
+              OperationTimedPollAlgorithm.create(
+                  RetrySettings.newBuilder()
+                      .setInitialRetryDelay(Duration.ofMillis(500L))
+                      .setRetryDelayMultiplier(1.5)
+                      .setMaxRetryDelay(Duration.ofMillis(5000L))
+                      .setInitialRpcTimeout(Duration.ZERO) // ignored
+                      .setRpcTimeoutMultiplier(1.0) // ignored
+                      .setMaxRpcTimeout(Duration.ZERO) // ignored
+                      .setTotalTimeout(Duration.ofMillis(300000L))
+                      .build()));
+      builder
+          .retryBuildOperationSettings()
+          .setInitialCallSettings(
+              UnaryCallSettings.newUnaryCallSettingsBuilder()
+                  .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
+                  .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"))
+                  .build())
+          .setResponseTransformer(
+              ProtoOperationTransformers.ResponseTransformer.create(Build.class))
+          .setMetadataTransformer(
+              ProtoOperationTransformers.MetadataTransformer.create(BuildOperationMetadata.class))
+          .setPollingAlgorithm(
+              OperationTimedPollAlgorithm.create(
+                  RetrySettings.newBuilder()
+                      .setInitialRetryDelay(Duration.ofMillis(500L))
+                      .setRetryDelayMultiplier(1.5)
+                      .setMaxRetryDelay(Duration.ofMillis(5000L))
+                      .setInitialRpcTimeout(Duration.ZERO) // ignored
+                      .setRpcTimeoutMultiplier(1.0) // ignored
+                      .setMaxRpcTimeout(Duration.ZERO) // ignored
+                      .setTotalTimeout(Duration.ofMillis(300000L))
+                      .build()));
+      builder
+          .runBuildTriggerOperationSettings()
+          .setInitialCallSettings(
+              UnaryCallSettings
+                  .newUnaryCallSettingsBuilder()
+                  .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
+                  .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"))
+                  .build())
+          .setResponseTransformer(
+              ProtoOperationTransformers.ResponseTransformer.create(Build.class))
+          .setMetadataTransformer(
+              ProtoOperationTransformers.MetadataTransformer.create(BuildOperationMetadata.class))
+          .setPollingAlgorithm(
+              OperationTimedPollAlgorithm.create(
+                  RetrySettings.newBuilder()
+                      .setInitialRetryDelay(Duration.ofMillis(500L))
+                      .setRetryDelayMultiplier(1.5)
+                      .setMaxRetryDelay(Duration.ofMillis(5000L))
+                      .setInitialRpcTimeout(Duration.ZERO) // ignored
+                      .setRpcTimeoutMultiplier(1.0) // ignored
+                      .setMaxRpcTimeout(Duration.ZERO) // ignored
+                      .setTotalTimeout(Duration.ofMillis(300000L))
+                      .build()));
 
       return builder;
     }
@@ -580,17 +760,20 @@ private static Builder initDefaults(Builder builder) {
     protected Builder(CloudBuildStubSettings settings) {
       super(settings);
 
+      listBuildsSettings = settings.listBuildsSettings.toBuilder();
+      deleteBuildTriggerSettings = settings.deleteBuildTriggerSettings.toBuilder();
       createBuildSettings = settings.createBuildSettings.toBuilder();
+      createBuildOperationSettings = settings.createBuildOperationSettings.toBuilder();
       getBuildSettings = settings.getBuildSettings.toBuilder();
-      listBuildsSettings = settings.listBuildsSettings.toBuilder();
       cancelBuildSettings = settings.cancelBuildSettings.toBuilder();
+      retryBuildSettings = settings.retryBuildSettings.toBuilder();
+      retryBuildOperationSettings = settings.retryBuildOperationSettings.toBuilder();
       createBuildTriggerSettings = settings.createBuildTriggerSettings.toBuilder();
       getBuildTriggerSettings = settings.getBuildTriggerSettings.toBuilder();
       listBuildTriggersSettings = settings.listBuildTriggersSettings.toBuilder();
-      deleteBuildTriggerSettings = settings.deleteBuildTriggerSettings.toBuilder();
       updateBuildTriggerSettings = settings.updateBuildTriggerSettings.toBuilder();
       runBuildTriggerSettings = settings.runBuildTriggerSettings.toBuilder();
-      retryBuildSettings = settings.retryBuildSettings.toBuilder();
+      runBuildTriggerOperationSettings = settings.runBuildTriggerOperationSettings.toBuilder();
       createWorkerPoolSettings = settings.createWorkerPoolSettings.toBuilder();
       getWorkerPoolSettings = settings.getWorkerPoolSettings.toBuilder();
       deleteWorkerPoolSettings = settings.deleteWorkerPoolSettings.toBuilder();
@@ -599,17 +782,17 @@ protected Builder(CloudBuildStubSettings settings) {
 
       unaryMethodSettingsBuilders =
           ImmutableList.>of(
+              listBuildsSettings,
+              deleteBuildTriggerSettings,
               createBuildSettings,
               getBuildSettings,
-              listBuildsSettings,
               cancelBuildSettings,
+              retryBuildSettings,
               createBuildTriggerSettings,
               getBuildTriggerSettings,
               listBuildTriggersSettings,
-              deleteBuildTriggerSettings,
               updateBuildTriggerSettings,
               runBuildTriggerSettings,
-              retryBuildSettings,
               createWorkerPoolSettings,
               getWorkerPoolSettings,
               deleteWorkerPoolSettings,
@@ -633,27 +816,54 @@ public Builder applyToAllUnaryMethods(
       return unaryMethodSettingsBuilders;
     }
 
+    /** Returns the builder for the settings used for calls to listBuilds. */
+    public PagedCallSettings.Builder
+        listBuildsSettings() {
+      return listBuildsSettings;
+    }
+
+    /** Returns the builder for the settings used for calls to deleteBuildTrigger. */
+    public UnaryCallSettings.Builder
+        deleteBuildTriggerSettings() {
+      return deleteBuildTriggerSettings;
+    }
+
     /** Returns the builder for the settings used for calls to createBuild. */
     public UnaryCallSettings.Builder createBuildSettings() {
       return createBuildSettings;
     }
 
+    /** Returns the builder for the settings used for calls to createBuild. */
+    @BetaApi(
+        "The surface for use by generated code is not stable yet and may change in the future.")
+    public OperationCallSettings.Builder
+        createBuildOperationSettings() {
+      return createBuildOperationSettings;
+    }
+
     /** Returns the builder for the settings used for calls to getBuild. */
     public UnaryCallSettings.Builder getBuildSettings() {
       return getBuildSettings;
     }
 
-    /** Returns the builder for the settings used for calls to listBuilds. */
-    public PagedCallSettings.Builder
-        listBuildsSettings() {
-      return listBuildsSettings;
-    }
-
     /** Returns the builder for the settings used for calls to cancelBuild. */
     public UnaryCallSettings.Builder cancelBuildSettings() {
       return cancelBuildSettings;
     }
 
+    /** Returns the builder for the settings used for calls to retryBuild. */
+    public UnaryCallSettings.Builder retryBuildSettings() {
+      return retryBuildSettings;
+    }
+
+    /** Returns the builder for the settings used for calls to retryBuild. */
+    @BetaApi(
+        "The surface for use by generated code is not stable yet and may change in the future.")
+    public OperationCallSettings.Builder
+        retryBuildOperationSettings() {
+      return retryBuildOperationSettings;
+    }
+
     /** Returns the builder for the settings used for calls to createBuildTrigger. */
     public UnaryCallSettings.Builder
         createBuildTriggerSettings() {
@@ -667,17 +877,12 @@ public UnaryCallSettings.Builder cancelBuildSettings(
     }
 
     /** Returns the builder for the settings used for calls to listBuildTriggers. */
-    public UnaryCallSettings.Builder
+    public PagedCallSettings.Builder<
+            ListBuildTriggersRequest, ListBuildTriggersResponse, ListBuildTriggersPagedResponse>
         listBuildTriggersSettings() {
       return listBuildTriggersSettings;
     }
 
-    /** Returns the builder for the settings used for calls to deleteBuildTrigger. */
-    public UnaryCallSettings.Builder
-        deleteBuildTriggerSettings() {
-      return deleteBuildTriggerSettings;
-    }
-
     /** Returns the builder for the settings used for calls to updateBuildTrigger. */
     public UnaryCallSettings.Builder
         updateBuildTriggerSettings() {
@@ -689,9 +894,12 @@ public UnaryCallSettings.Builder runBuildTrig
       return runBuildTriggerSettings;
     }
 
-    /** Returns the builder for the settings used for calls to retryBuild. */
-    public UnaryCallSettings.Builder retryBuildSettings() {
-      return retryBuildSettings;
+    /** Returns the builder for the settings used for calls to runBuildTrigger. */
+    @BetaApi(
+        "The surface for use by generated code is not stable yet and may change in the future.")
+    public OperationCallSettings.Builder
+        runBuildTriggerOperationSettings() {
+      return runBuildTriggerOperationSettings;
     }
 
     /** Returns the builder for the settings used for calls to createWorkerPool. */
diff --git a/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/stub/GrpcCloudBuildStub.java b/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/stub/GrpcCloudBuildStub.java
index 08f5bf0d..45889923 100644
--- a/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/stub/GrpcCloudBuildStub.java
+++ b/google-cloud-build/src/main/java/com/google/cloud/devtools/cloudbuild/v1/stub/GrpcCloudBuildStub.java
@@ -15,6 +15,7 @@
  */
 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 com.google.api.core.BetaApi;
@@ -23,9 +24,11 @@
 import com.google.api.gax.grpc.GrpcCallSettings;
 import com.google.api.gax.grpc.GrpcStubCallableFactory;
 import com.google.api.gax.rpc.ClientContext;
+import com.google.api.gax.rpc.OperationCallable;
 import com.google.api.gax.rpc.RequestParamsExtractor;
 import com.google.api.gax.rpc.UnaryCallable;
 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;
@@ -49,6 +52,7 @@
 import com.google.cloudbuild.v1.WorkerPool;
 import com.google.common.collect.ImmutableMap;
 import com.google.longrunning.Operation;
+import com.google.longrunning.stub.GrpcOperationsStub;
 import com.google.protobuf.Empty;
 import io.grpc.MethodDescriptor;
 import io.grpc.protobuf.ProtoUtils;
@@ -67,6 +71,23 @@
 @BetaApi("A restructuring of stub classes is planned, so this may break in the future")
 public class GrpcCloudBuildStub extends CloudBuildStub {
 
+  private static final MethodDescriptor
+      listBuildsMethodDescriptor =
+          MethodDescriptor.newBuilder()
+              .setType(MethodDescriptor.MethodType.UNARY)
+              .setFullMethodName("google.devtools.cloudbuild.v1.CloudBuild/ListBuilds")
+              .setRequestMarshaller(ProtoUtils.marshaller(ListBuildsRequest.getDefaultInstance()))
+              .setResponseMarshaller(ProtoUtils.marshaller(ListBuildsResponse.getDefaultInstance()))
+              .build();
+  private static final MethodDescriptor
+      deleteBuildTriggerMethodDescriptor =
+          MethodDescriptor.newBuilder()
+              .setType(MethodDescriptor.MethodType.UNARY)
+              .setFullMethodName("google.devtools.cloudbuild.v1.CloudBuild/DeleteBuildTrigger")
+              .setRequestMarshaller(
+                  ProtoUtils.marshaller(DeleteBuildTriggerRequest.getDefaultInstance()))
+              .setResponseMarshaller(ProtoUtils.marshaller(Empty.getDefaultInstance()))
+              .build();
   private static final MethodDescriptor createBuildMethodDescriptor =
       MethodDescriptor.newBuilder()
           .setType(MethodDescriptor.MethodType.UNARY)
@@ -81,14 +102,6 @@ public class GrpcCloudBuildStub extends CloudBuildStub {
           .setRequestMarshaller(ProtoUtils.marshaller(GetBuildRequest.getDefaultInstance()))
           .setResponseMarshaller(ProtoUtils.marshaller(Build.getDefaultInstance()))
           .build();
-  private static final MethodDescriptor
-      listBuildsMethodDescriptor =
-          MethodDescriptor.newBuilder()
-              .setType(MethodDescriptor.MethodType.UNARY)
-              .setFullMethodName("google.devtools.cloudbuild.v1.CloudBuild/ListBuilds")
-              .setRequestMarshaller(ProtoUtils.marshaller(ListBuildsRequest.getDefaultInstance()))
-              .setResponseMarshaller(ProtoUtils.marshaller(ListBuildsResponse.getDefaultInstance()))
-              .build();
   private static final MethodDescriptor cancelBuildMethodDescriptor =
       MethodDescriptor.newBuilder()
           .setType(MethodDescriptor.MethodType.UNARY)
@@ -96,6 +109,13 @@ public class GrpcCloudBuildStub extends CloudBuildStub {
           .setRequestMarshaller(ProtoUtils.marshaller(CancelBuildRequest.getDefaultInstance()))
           .setResponseMarshaller(ProtoUtils.marshaller(Build.getDefaultInstance()))
           .build();
+  private static final MethodDescriptor retryBuildMethodDescriptor =
+      MethodDescriptor.newBuilder()
+          .setType(MethodDescriptor.MethodType.UNARY)
+          .setFullMethodName("google.devtools.cloudbuild.v1.CloudBuild/RetryBuild")
+          .setRequestMarshaller(ProtoUtils.marshaller(RetryBuildRequest.getDefaultInstance()))
+          .setResponseMarshaller(ProtoUtils.marshaller(Operation.getDefaultInstance()))
+          .build();
   private static final MethodDescriptor
       createBuildTriggerMethodDescriptor =
           MethodDescriptor.newBuilder()
@@ -124,15 +144,6 @@ public class GrpcCloudBuildStub extends CloudBuildStub {
               .setResponseMarshaller(
                   ProtoUtils.marshaller(ListBuildTriggersResponse.getDefaultInstance()))
               .build();
-  private static final MethodDescriptor
-      deleteBuildTriggerMethodDescriptor =
-          MethodDescriptor.newBuilder()
-              .setType(MethodDescriptor.MethodType.UNARY)
-              .setFullMethodName("google.devtools.cloudbuild.v1.CloudBuild/DeleteBuildTrigger")
-              .setRequestMarshaller(
-                  ProtoUtils.marshaller(DeleteBuildTriggerRequest.getDefaultInstance()))
-              .setResponseMarshaller(ProtoUtils.marshaller(Empty.getDefaultInstance()))
-              .build();
   private static final MethodDescriptor
       updateBuildTriggerMethodDescriptor =
           MethodDescriptor.newBuilder()
@@ -151,13 +162,6 @@ public class GrpcCloudBuildStub extends CloudBuildStub {
                   ProtoUtils.marshaller(RunBuildTriggerRequest.getDefaultInstance()))
               .setResponseMarshaller(ProtoUtils.marshaller(Operation.getDefaultInstance()))
               .build();
-  private static final MethodDescriptor retryBuildMethodDescriptor =
-      MethodDescriptor.newBuilder()
-          .setType(MethodDescriptor.MethodType.UNARY)
-          .setFullMethodName("google.devtools.cloudbuild.v1.CloudBuild/RetryBuild")
-          .setRequestMarshaller(ProtoUtils.marshaller(RetryBuildRequest.getDefaultInstance()))
-          .setResponseMarshaller(ProtoUtils.marshaller(Operation.getDefaultInstance()))
-          .build();
   private static final MethodDescriptor
       createWorkerPoolMethodDescriptor =
           MethodDescriptor.newBuilder()
@@ -206,20 +210,29 @@ public class GrpcCloudBuildStub extends CloudBuildStub {
               .build();
 
   private final BackgroundResource backgroundResources;
+  private final GrpcOperationsStub operationsStub;
 
-  private final UnaryCallable createBuildCallable;
-  private final UnaryCallable getBuildCallable;
   private final UnaryCallable listBuildsCallable;
   private final UnaryCallable listBuildsPagedCallable;
+  private final UnaryCallable deleteBuildTriggerCallable;
+  private final UnaryCallable createBuildCallable;
+  private final OperationCallable
+      createBuildOperationCallable;
+  private final UnaryCallable getBuildCallable;
   private final UnaryCallable cancelBuildCallable;
+  private final UnaryCallable retryBuildCallable;
+  private final OperationCallable
+      retryBuildOperationCallable;
   private final UnaryCallable createBuildTriggerCallable;
   private final UnaryCallable getBuildTriggerCallable;
   private final UnaryCallable
       listBuildTriggersCallable;
-  private final UnaryCallable deleteBuildTriggerCallable;
+  private final UnaryCallable
+      listBuildTriggersPagedCallable;
   private final UnaryCallable updateBuildTriggerCallable;
   private final UnaryCallable runBuildTriggerCallable;
-  private final UnaryCallable retryBuildCallable;
+  private final OperationCallable
+      runBuildTriggerOperationCallable;
   private final UnaryCallable createWorkerPoolCallable;
   private final UnaryCallable getWorkerPoolCallable;
   private final UnaryCallable deleteWorkerPoolCallable;
@@ -265,41 +278,50 @@ protected GrpcCloudBuildStub(
       GrpcStubCallableFactory callableFactory)
       throws IOException {
     this.callableFactory = callableFactory;
+    this.operationsStub = GrpcOperationsStub.create(clientContext, callableFactory);
 
-    GrpcCallSettings createBuildTransportSettings =
-        GrpcCallSettings.newBuilder()
-            .setMethodDescriptor(createBuildMethodDescriptor)
+    GrpcCallSettings listBuildsTransportSettings =
+        GrpcCallSettings.newBuilder()
+            .setMethodDescriptor(listBuildsMethodDescriptor)
             .setParamsExtractor(
-                new RequestParamsExtractor() {
+                new RequestParamsExtractor() {
                   @Override
-                  public Map extract(CreateBuildRequest request) {
+                  public Map extract(ListBuildsRequest request) {
                     ImmutableMap.Builder params = ImmutableMap.builder();
                     params.put("project_id", String.valueOf(request.getProjectId()));
                     return params.build();
                   }
                 })
             .build();
-    GrpcCallSettings getBuildTransportSettings =
-        GrpcCallSettings.newBuilder()
-            .setMethodDescriptor(getBuildMethodDescriptor)
+    GrpcCallSettings deleteBuildTriggerTransportSettings =
+        GrpcCallSettings.newBuilder()
+            .setMethodDescriptor(deleteBuildTriggerMethodDescriptor)
             .build();
-    GrpcCallSettings listBuildsTransportSettings =
-        GrpcCallSettings.newBuilder()
-            .setMethodDescriptor(listBuildsMethodDescriptor)
+    GrpcCallSettings createBuildTransportSettings =
+        GrpcCallSettings.newBuilder()
+            .setMethodDescriptor(createBuildMethodDescriptor)
             .setParamsExtractor(
-                new RequestParamsExtractor() {
+                new RequestParamsExtractor() {
                   @Override
-                  public Map extract(ListBuildsRequest request) {
+                  public Map extract(CreateBuildRequest request) {
                     ImmutableMap.Builder params = ImmutableMap.builder();
                     params.put("project_id", String.valueOf(request.getProjectId()));
                     return params.build();
                   }
                 })
             .build();
+    GrpcCallSettings getBuildTransportSettings =
+        GrpcCallSettings.newBuilder()
+            .setMethodDescriptor(getBuildMethodDescriptor)
+            .build();
     GrpcCallSettings cancelBuildTransportSettings =
         GrpcCallSettings.newBuilder()
             .setMethodDescriptor(cancelBuildMethodDescriptor)
             .build();
+    GrpcCallSettings retryBuildTransportSettings =
+        GrpcCallSettings.newBuilder()
+            .setMethodDescriptor(retryBuildMethodDescriptor)
+            .build();
     GrpcCallSettings createBuildTriggerTransportSettings =
         GrpcCallSettings.newBuilder()
             .setMethodDescriptor(createBuildTriggerMethodDescriptor)
@@ -331,10 +353,6 @@ public Map extract(ListBuildTriggersRequest request) {
                       }
                     })
                 .build();
-    GrpcCallSettings deleteBuildTriggerTransportSettings =
-        GrpcCallSettings.newBuilder()
-            .setMethodDescriptor(deleteBuildTriggerMethodDescriptor)
-            .build();
     GrpcCallSettings updateBuildTriggerTransportSettings =
         GrpcCallSettings.newBuilder()
             .setMethodDescriptor(updateBuildTriggerMethodDescriptor)
@@ -343,10 +361,6 @@ public Map extract(ListBuildTriggersRequest request) {
         GrpcCallSettings.newBuilder()
             .setMethodDescriptor(runBuildTriggerMethodDescriptor)
             .build();
-    GrpcCallSettings retryBuildTransportSettings =
-        GrpcCallSettings.newBuilder()
-            .setMethodDescriptor(retryBuildMethodDescriptor)
-            .build();
     GrpcCallSettings createWorkerPoolTransportSettings =
         GrpcCallSettings.newBuilder()
             .setMethodDescriptor(createWorkerPoolMethodDescriptor)
@@ -369,21 +383,41 @@ public Map extract(ListBuildTriggersRequest request) {
                 .setMethodDescriptor(listWorkerPoolsMethodDescriptor)
                 .build();
 
-    this.createBuildCallable =
-        callableFactory.createUnaryCallable(
-            createBuildTransportSettings, settings.createBuildSettings(), clientContext);
-    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.deleteBuildTriggerCallable =
+        callableFactory.createUnaryCallable(
+            deleteBuildTriggerTransportSettings,
+            settings.deleteBuildTriggerSettings(),
+            clientContext);
+    this.createBuildCallable =
+        callableFactory.createUnaryCallable(
+            createBuildTransportSettings, settings.createBuildSettings(), clientContext);
+    this.createBuildOperationCallable =
+        callableFactory.createOperationCallable(
+            createBuildTransportSettings,
+            settings.createBuildOperationSettings(),
+            clientContext,
+            this.operationsStub);
+    this.getBuildCallable =
+        callableFactory.createUnaryCallable(
+            getBuildTransportSettings, settings.getBuildSettings(), 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,
+            this.operationsStub);
     this.createBuildTriggerCallable =
         callableFactory.createUnaryCallable(
             createBuildTriggerTransportSettings,
@@ -397,10 +431,10 @@ public Map extract(ListBuildTriggersRequest request) {
             listBuildTriggersTransportSettings,
             settings.listBuildTriggersSettings(),
             clientContext);
-    this.deleteBuildTriggerCallable =
-        callableFactory.createUnaryCallable(
-            deleteBuildTriggerTransportSettings,
-            settings.deleteBuildTriggerSettings(),
+    this.listBuildTriggersPagedCallable =
+        callableFactory.createPagedCallable(
+            listBuildTriggersTransportSettings,
+            settings.listBuildTriggersSettings(),
             clientContext);
     this.updateBuildTriggerCallable =
         callableFactory.createUnaryCallable(
@@ -410,9 +444,12 @@ public Map extract(ListBuildTriggersRequest request) {
     this.runBuildTriggerCallable =
         callableFactory.createUnaryCallable(
             runBuildTriggerTransportSettings, settings.runBuildTriggerSettings(), clientContext);
-    this.retryBuildCallable =
-        callableFactory.createUnaryCallable(
-            retryBuildTransportSettings, settings.retryBuildSettings(), clientContext);
+    this.runBuildTriggerOperationCallable =
+        callableFactory.createOperationCallable(
+            runBuildTriggerTransportSettings,
+            settings.runBuildTriggerOperationSettings(),
+            clientContext,
+            this.operationsStub);
     this.createWorkerPoolCallable =
         callableFactory.createUnaryCallable(
             createWorkerPoolTransportSettings, settings.createWorkerPoolSettings(), clientContext);
@@ -432,12 +469,9 @@ public Map extract(ListBuildTriggersRequest request) {
     backgroundResources = new BackgroundResourceAggregation(clientContext.getBackgroundResources());
   }
 
-  public UnaryCallable createBuildCallable() {
-    return createBuildCallable;
-  }
-
-  public UnaryCallable getBuildCallable() {
-    return getBuildCallable;
+  @BetaApi("The surface for use by generated code is not stable yet and may change in the future.")
+  public GrpcOperationsStub getOperationsStub() {
+    return operationsStub;
   }
 
   public UnaryCallable listBuildsPagedCallable() {
@@ -448,10 +482,38 @@ public UnaryCallable listBuildsCallable()
     return listBuildsCallable;
   }
 
+  public UnaryCallable deleteBuildTriggerCallable() {
+    return deleteBuildTriggerCallable;
+  }
+
+  @BetaApi("The surface for use by generated code is not stable yet and may change in the future.")
+  public OperationCallable
+      createBuildOperationCallable() {
+    return createBuildOperationCallable;
+  }
+
+  public UnaryCallable createBuildCallable() {
+    return createBuildCallable;
+  }
+
+  public UnaryCallable getBuildCallable() {
+    return getBuildCallable;
+  }
+
   public UnaryCallable cancelBuildCallable() {
     return cancelBuildCallable;
   }
 
+  @BetaApi("The surface for use by generated code is not stable yet and may change in the future.")
+  public OperationCallable
+      retryBuildOperationCallable() {
+    return retryBuildOperationCallable;
+  }
+
+  public UnaryCallable retryBuildCallable() {
+    return retryBuildCallable;
+  }
+
   public UnaryCallable createBuildTriggerCallable() {
     return createBuildTriggerCallable;
   }
@@ -460,25 +522,28 @@ public UnaryCallable getBuildTriggerCallab
     return getBuildTriggerCallable;
   }
 
+  public UnaryCallable
+      listBuildTriggersPagedCallable() {
+    return listBuildTriggersPagedCallable;
+  }
+
   public UnaryCallable
       listBuildTriggersCallable() {
     return listBuildTriggersCallable;
   }
 
-  public UnaryCallable deleteBuildTriggerCallable() {
-    return deleteBuildTriggerCallable;
-  }
-
   public UnaryCallable updateBuildTriggerCallable() {
     return updateBuildTriggerCallable;
   }
 
-  public UnaryCallable runBuildTriggerCallable() {
-    return runBuildTriggerCallable;
+  @BetaApi("The surface for use by generated code is not stable yet and may change in the future.")
+  public OperationCallable
+      runBuildTriggerOperationCallable() {
+    return runBuildTriggerOperationCallable;
   }
 
-  public UnaryCallable retryBuildCallable() {
-    return retryBuildCallable;
+  public UnaryCallable runBuildTriggerCallable() {
+    return runBuildTriggerCallable;
   }
 
   public UnaryCallable createWorkerPoolCallable() {
diff --git a/google-cloud-build/src/test/java/com/google/cloud/devtools/cloudbuild/v1/CloudBuildClientTest.java b/google-cloud-build/src/test/java/com/google/cloud/devtools/cloudbuild/v1/CloudBuildClientTest.java
index 7bec6f80..b06b95f0 100644
--- a/google-cloud-build/src/test/java/com/google/cloud/devtools/cloudbuild/v1/CloudBuildClientTest.java
+++ b/google-cloud-build/src/test/java/com/google/cloud/devtools/cloudbuild/v1/CloudBuildClientTest.java
@@ -15,6 +15,7 @@
  */
 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 com.google.api.gax.core.NoCredentialsProvider;
@@ -24,6 +25,7 @@
 import com.google.api.gax.grpc.testing.MockServiceHelper;
 import com.google.api.gax.rpc.ApiClientHeaderProvider;
 import com.google.api.gax.rpc.InvalidArgumentException;
+import com.google.api.gax.rpc.StatusCode;
 import com.google.cloudbuild.v1.Build;
 import com.google.cloudbuild.v1.BuildTrigger;
 import com.google.cloudbuild.v1.CancelBuildRequest;
@@ -50,6 +52,7 @@
 import com.google.common.collect.Lists;
 import com.google.longrunning.Operation;
 import com.google.protobuf.AbstractMessage;
+import com.google.protobuf.Any;
 import com.google.protobuf.Empty;
 import io.grpc.Status;
 import io.grpc.StatusRuntimeException;
@@ -57,6 +60,7 @@
 import java.util.Arrays;
 import java.util.List;
 import java.util.UUID;
+import java.util.concurrent.ExecutionException;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Assert;
@@ -104,16 +108,125 @@ public void tearDown() throws Exception {
 
   @Test
   @SuppressWarnings("all")
-  public void createBuildTest() {
-    String name = "name3373707";
-    boolean done = true;
-    Operation expectedResponse = Operation.newBuilder().setName(name).setDone(done).build();
+  public void listBuildsTest() {
+    String nextPageToken = "";
+    Build buildsElement = Build.newBuilder().build();
+    List builds = Arrays.asList(buildsElement);
+    ListBuildsResponse expectedResponse =
+        ListBuildsResponse.newBuilder()
+            .setNextPageToken(nextPageToken)
+            .addAllBuilds(builds)
+            .build();
     mockCloudBuild.addResponse(expectedResponse);
 
+    String projectId = "projectId-1969970175";
+    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 = mockCloudBuild.getRequests();
+    Assert.assertEquals(1, actualRequests.size());
+    ListBuildsRequest actualRequest = (ListBuildsRequest) actualRequests.get(0);
+
+    Assert.assertEquals(projectId, actualRequest.getProjectId());
+    Assert.assertEquals(filter, actualRequest.getFilter());
+    Assert.assertTrue(
+        channelProvider.isHeaderSent(
+            ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
+            GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
+  }
+
+  @Test
+  @SuppressWarnings("all")
+  public void listBuildsExceptionTest() throws Exception {
+    StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT);
+    mockCloudBuild.addException(exception);
+
+    try {
+      String projectId = "projectId-1969970175";
+      String filter = "filter-1274492040";
+
+      client.listBuilds(projectId, filter);
+      Assert.fail("No exception raised");
+    } catch (InvalidArgumentException e) {
+      // Expected exception
+    }
+  }
+
+  @Test
+  @SuppressWarnings("all")
+  public void deleteBuildTriggerTest() {
+    Empty expectedResponse = Empty.newBuilder().build();
+    mockCloudBuild.addResponse(expectedResponse);
+
+    String projectId = "projectId-1969970175";
+    String triggerId = "triggerId1363517698";
+
+    client.deleteBuildTrigger(projectId, triggerId);
+
+    List actualRequests = mockCloudBuild.getRequests();
+    Assert.assertEquals(1, actualRequests.size());
+    DeleteBuildTriggerRequest actualRequest = (DeleteBuildTriggerRequest) actualRequests.get(0);
+
+    Assert.assertEquals(projectId, actualRequest.getProjectId());
+    Assert.assertEquals(triggerId, actualRequest.getTriggerId());
+    Assert.assertTrue(
+        channelProvider.isHeaderSent(
+            ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
+            GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
+  }
+
+  @Test
+  @SuppressWarnings("all")
+  public void deleteBuildTriggerExceptionTest() throws Exception {
+    StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT);
+    mockCloudBuild.addException(exception);
+
+    try {
+      String projectId = "projectId-1969970175";
+      String triggerId = "triggerId1363517698";
+
+      client.deleteBuildTrigger(projectId, triggerId);
+      Assert.fail("No exception raised");
+    } catch (InvalidArgumentException e) {
+      // Expected exception
+    }
+  }
+
+  @Test
+  @SuppressWarnings("all")
+  public void createBuildTest() throws Exception {
+    String id = "id3355";
+    String projectId2 = "projectId2939242356";
+    String statusDetail = "statusDetail2089931070";
+    String logsBucket = "logsBucket1565363834";
+    String buildTriggerId = "buildTriggerId1105559411";
+    String logUrl = "logUrl342054388";
+    Build expectedResponse =
+        Build.newBuilder()
+            .setId(id)
+            .setProjectId(projectId2)
+            .setStatusDetail(statusDetail)
+            .setLogsBucket(logsBucket)
+            .setBuildTriggerId(buildTriggerId)
+            .setLogUrl(logUrl)
+            .build();
+    Operation resultOperation =
+        Operation.newBuilder()
+            .setName("createBuildTest")
+            .setDone(true)
+            .setResponse(Any.pack(expectedResponse))
+            .build();
+    mockCloudBuild.addResponse(resultOperation);
+
     String projectId = "projectId-1969970175";
     Build build = Build.newBuilder().build();
 
-    Operation actualResponse = client.createBuild(projectId, build);
+    Build actualResponse = client.createBuildAsync(projectId, build).get();
     Assert.assertEquals(expectedResponse, actualResponse);
 
     List actualRequests = mockCloudBuild.getRequests();
@@ -138,10 +251,12 @@ public void createBuildExceptionTest() throws Exception {
       String projectId = "projectId-1969970175";
       Build build = Build.newBuilder().build();
 
-      client.createBuild(projectId, build);
+      client.createBuildAsync(projectId, build).get();
       Assert.fail("No exception raised");
-    } catch (InvalidArgumentException e) {
-      // Expected exception
+    } catch (ExecutionException e) {
+      Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
+      InvalidArgumentException apiException = (InvalidArgumentException) e.getCause();
+      Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
     }
   }
 
@@ -202,32 +317,36 @@ public void getBuildExceptionTest() throws Exception {
 
   @Test
   @SuppressWarnings("all")
-  public void listBuildsTest() {
-    String nextPageToken = "";
-    Build buildsElement = Build.newBuilder().build();
-    List builds = Arrays.asList(buildsElement);
-    ListBuildsResponse expectedResponse =
-        ListBuildsResponse.newBuilder()
-            .setNextPageToken(nextPageToken)
-            .addAllBuilds(builds)
+  public void cancelBuildTest() {
+    String id2 = "id23227150";
+    String projectId2 = "projectId2939242356";
+    String statusDetail = "statusDetail2089931070";
+    String logsBucket = "logsBucket1565363834";
+    String buildTriggerId = "buildTriggerId1105559411";
+    String logUrl = "logUrl342054388";
+    Build expectedResponse =
+        Build.newBuilder()
+            .setId(id2)
+            .setProjectId(projectId2)
+            .setStatusDetail(statusDetail)
+            .setLogsBucket(logsBucket)
+            .setBuildTriggerId(buildTriggerId)
+            .setLogUrl(logUrl)
             .build();
     mockCloudBuild.addResponse(expectedResponse);
 
     String projectId = "projectId-1969970175";
-    String filter = "filter-1274492040";
-
-    ListBuildsPagedResponse pagedListResponse = client.listBuilds(projectId, filter);
+    String id = "id3355";
 
-    List resources = Lists.newArrayList(pagedListResponse.iterateAll());
-    Assert.assertEquals(1, resources.size());
-    Assert.assertEquals(expectedResponse.getBuildsList().get(0), resources.get(0));
+    Build actualResponse = client.cancelBuild(projectId, id);
+    Assert.assertEquals(expectedResponse, actualResponse);
 
     List actualRequests = mockCloudBuild.getRequests();
     Assert.assertEquals(1, actualRequests.size());
-    ListBuildsRequest actualRequest = (ListBuildsRequest) actualRequests.get(0);
+    CancelBuildRequest actualRequest = (CancelBuildRequest) actualRequests.get(0);
 
     Assert.assertEquals(projectId, actualRequest.getProjectId());
-    Assert.assertEquals(filter, actualRequest.getFilter());
+    Assert.assertEquals(id, actualRequest.getId());
     Assert.assertTrue(
         channelProvider.isHeaderSent(
             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
@@ -236,15 +355,15 @@ public void listBuildsTest() {
 
   @Test
   @SuppressWarnings("all")
-  public void listBuildsExceptionTest() throws Exception {
+  public void cancelBuildExceptionTest() throws Exception {
     StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT);
     mockCloudBuild.addException(exception);
 
     try {
       String projectId = "projectId-1969970175";
-      String filter = "filter-1274492040";
+      String id = "id3355";
 
-      client.listBuilds(projectId, filter);
+      client.cancelBuild(projectId, id);
       Assert.fail("No exception raised");
     } catch (InvalidArgumentException e) {
       // Expected exception
@@ -253,7 +372,7 @@ public void listBuildsExceptionTest() throws Exception {
 
   @Test
   @SuppressWarnings("all")
-  public void cancelBuildTest() {
+  public void retryBuildTest() throws Exception {
     String id2 = "id23227150";
     String projectId2 = "projectId2939242356";
     String statusDetail = "statusDetail2089931070";
@@ -269,17 +388,23 @@ public void cancelBuildTest() {
             .setBuildTriggerId(buildTriggerId)
             .setLogUrl(logUrl)
             .build();
-    mockCloudBuild.addResponse(expectedResponse);
+    Operation resultOperation =
+        Operation.newBuilder()
+            .setName("retryBuildTest")
+            .setDone(true)
+            .setResponse(Any.pack(expectedResponse))
+            .build();
+    mockCloudBuild.addResponse(resultOperation);
 
     String projectId = "projectId-1969970175";
     String id = "id3355";
 
-    Build actualResponse = client.cancelBuild(projectId, id);
+    Build actualResponse = client.retryBuildAsync(projectId, id).get();
     Assert.assertEquals(expectedResponse, actualResponse);
 
     List actualRequests = mockCloudBuild.getRequests();
     Assert.assertEquals(1, actualRequests.size());
-    CancelBuildRequest actualRequest = (CancelBuildRequest) actualRequests.get(0);
+    RetryBuildRequest actualRequest = (RetryBuildRequest) actualRequests.get(0);
 
     Assert.assertEquals(projectId, actualRequest.getProjectId());
     Assert.assertEquals(id, actualRequest.getId());
@@ -291,7 +416,7 @@ public void cancelBuildTest() {
 
   @Test
   @SuppressWarnings("all")
-  public void cancelBuildExceptionTest() throws Exception {
+  public void retryBuildExceptionTest() throws Exception {
     StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT);
     mockCloudBuild.addException(exception);
 
@@ -299,10 +424,12 @@ public void cancelBuildExceptionTest() throws Exception {
       String projectId = "projectId-1969970175";
       String id = "id3355";
 
-      client.cancelBuild(projectId, id);
+      client.retryBuildAsync(projectId, id).get();
       Assert.fail("No exception raised");
-    } catch (InvalidArgumentException e) {
-      // Expected exception
+    } catch (ExecutionException e) {
+      Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
+      InvalidArgumentException apiException = (InvalidArgumentException) e.getCause();
+      Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
     }
   }
 
@@ -415,15 +542,23 @@ public void getBuildTriggerExceptionTest() throws Exception {
   @Test
   @SuppressWarnings("all")
   public void listBuildTriggersTest() {
-    String nextPageToken = "nextPageToken-1530815211";
+    String nextPageToken = "";
+    BuildTrigger triggersElement = BuildTrigger.newBuilder().build();
+    List triggers = Arrays.asList(triggersElement);
     ListBuildTriggersResponse expectedResponse =
-        ListBuildTriggersResponse.newBuilder().setNextPageToken(nextPageToken).build();
+        ListBuildTriggersResponse.newBuilder()
+            .setNextPageToken(nextPageToken)
+            .addAllTriggers(triggers)
+            .build();
     mockCloudBuild.addResponse(expectedResponse);
 
     String projectId = "projectId-1969970175";
 
-    ListBuildTriggersResponse actualResponse = client.listBuildTriggers(projectId);
-    Assert.assertEquals(expectedResponse, actualResponse);
+    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 = mockCloudBuild.getRequests();
     Assert.assertEquals(1, actualRequests.size());
@@ -452,46 +587,6 @@ public void listBuildTriggersExceptionTest() throws Exception {
     }
   }
 
-  @Test
-  @SuppressWarnings("all")
-  public void deleteBuildTriggerTest() {
-    Empty expectedResponse = Empty.newBuilder().build();
-    mockCloudBuild.addResponse(expectedResponse);
-
-    String projectId = "projectId-1969970175";
-    String triggerId = "triggerId1363517698";
-
-    client.deleteBuildTrigger(projectId, triggerId);
-
-    List actualRequests = mockCloudBuild.getRequests();
-    Assert.assertEquals(1, actualRequests.size());
-    DeleteBuildTriggerRequest actualRequest = (DeleteBuildTriggerRequest) actualRequests.get(0);
-
-    Assert.assertEquals(projectId, actualRequest.getProjectId());
-    Assert.assertEquals(triggerId, actualRequest.getTriggerId());
-    Assert.assertTrue(
-        channelProvider.isHeaderSent(
-            ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
-            GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
-  }
-
-  @Test
-  @SuppressWarnings("all")
-  public void deleteBuildTriggerExceptionTest() throws Exception {
-    StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT);
-    mockCloudBuild.addException(exception);
-
-    try {
-      String projectId = "projectId-1969970175";
-      String triggerId = "triggerId1363517698";
-
-      client.deleteBuildTrigger(projectId, triggerId);
-      Assert.fail("No exception raised");
-    } catch (InvalidArgumentException e) {
-      // Expected exception
-    }
-  }
-
   @Test
   @SuppressWarnings("all")
   public void updateBuildTriggerTest() {
@@ -550,17 +645,35 @@ public void updateBuildTriggerExceptionTest() throws Exception {
 
   @Test
   @SuppressWarnings("all")
-  public void runBuildTriggerTest() {
-    String name = "name3373707";
-    boolean done = true;
-    Operation expectedResponse = Operation.newBuilder().setName(name).setDone(done).build();
-    mockCloudBuild.addResponse(expectedResponse);
+  public void runBuildTriggerTest() throws Exception {
+    String id = "id3355";
+    String projectId2 = "projectId2939242356";
+    String statusDetail = "statusDetail2089931070";
+    String logsBucket = "logsBucket1565363834";
+    String buildTriggerId = "buildTriggerId1105559411";
+    String logUrl = "logUrl342054388";
+    Build expectedResponse =
+        Build.newBuilder()
+            .setId(id)
+            .setProjectId(projectId2)
+            .setStatusDetail(statusDetail)
+            .setLogsBucket(logsBucket)
+            .setBuildTriggerId(buildTriggerId)
+            .setLogUrl(logUrl)
+            .build();
+    Operation resultOperation =
+        Operation.newBuilder()
+            .setName("runBuildTriggerTest")
+            .setDone(true)
+            .setResponse(Any.pack(expectedResponse))
+            .build();
+    mockCloudBuild.addResponse(resultOperation);
 
     String projectId = "projectId-1969970175";
     String triggerId = "triggerId1363517698";
     RepoSource source = RepoSource.newBuilder().build();
 
-    Operation actualResponse = client.runBuildTrigger(projectId, triggerId, source);
+    Build actualResponse = client.runBuildTriggerAsync(projectId, triggerId, source).get();
     Assert.assertEquals(expectedResponse, actualResponse);
 
     List actualRequests = mockCloudBuild.getRequests();
@@ -587,53 +700,12 @@ public void runBuildTriggerExceptionTest() throws Exception {
       String triggerId = "triggerId1363517698";
       RepoSource source = RepoSource.newBuilder().build();
 
-      client.runBuildTrigger(projectId, triggerId, source);
-      Assert.fail("No exception raised");
-    } catch (InvalidArgumentException e) {
-      // Expected exception
-    }
-  }
-
-  @Test
-  @SuppressWarnings("all")
-  public void retryBuildTest() {
-    String name = "name3373707";
-    boolean done = true;
-    Operation expectedResponse = Operation.newBuilder().setName(name).setDone(done).build();
-    mockCloudBuild.addResponse(expectedResponse);
-
-    String projectId = "projectId-1969970175";
-    String id = "id3355";
-
-    Operation actualResponse = client.retryBuild(projectId, id);
-    Assert.assertEquals(expectedResponse, actualResponse);
-
-    List actualRequests = mockCloudBuild.getRequests();
-    Assert.assertEquals(1, actualRequests.size());
-    RetryBuildRequest actualRequest = (RetryBuildRequest) actualRequests.get(0);
-
-    Assert.assertEquals(projectId, actualRequest.getProjectId());
-    Assert.assertEquals(id, actualRequest.getId());
-    Assert.assertTrue(
-        channelProvider.isHeaderSent(
-            ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
-            GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
-  }
-
-  @Test
-  @SuppressWarnings("all")
-  public void retryBuildExceptionTest() throws Exception {
-    StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT);
-    mockCloudBuild.addException(exception);
-
-    try {
-      String projectId = "projectId-1969970175";
-      String id = "id3355";
-
-      client.retryBuild(projectId, id);
+      client.runBuildTriggerAsync(projectId, triggerId, source).get();
       Assert.fail("No exception raised");
-    } catch (InvalidArgumentException e) {
-      // Expected exception
+    } catch (ExecutionException e) {
+      Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
+      InvalidArgumentException apiException = (InvalidArgumentException) e.getCause();
+      Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
     }
   }
 
diff --git a/synth.metadata b/synth.metadata
index 04d10db7..96465a5c 100644
--- a/synth.metadata
+++ b/synth.metadata
@@ -11,15 +11,15 @@
       "git": {
         "name": ".",
         "remote": "https://github.com/googleapis/java-cloudbuild.git",
-        "sha": "212a947e06830b7318d1dd4d2a1f6683c3cbd577"
+        "sha": "9080b63eddefbceafde6cffd0776ade99278a2fd"
       }
     },
     {
       "git": {
         "name": "googleapis",
         "remote": "https://github.com/googleapis/googleapis.git",
-        "sha": "0e07113e776bdd8fcc0783372e08bb6e76cb1b5b",
-        "internalRef": "302892245"
+        "sha": "bf85ee3ed64951c14b19ef8577689f43ee6f0f41",
+        "internalRef": "305349873"
       }
     },
     {