diff --git a/google-cloud-os-config/src/main/java/com/google/cloud/osconfig/v1/OsConfigServiceClient.java b/google-cloud-os-config/src/main/java/com/google/cloud/osconfig/v1/OsConfigServiceClient.java index 1e34bdb7..b27f179a 100644 --- a/google-cloud-os-config/src/main/java/com/google/cloud/osconfig/v1/OsConfigServiceClient.java +++ b/google-cloud-os-config/src/main/java/com/google/cloud/osconfig/v1/OsConfigServiceClient.java @@ -15,8 +15,15 @@ */ package com.google.cloud.osconfig.v1; +import com.google.api.core.ApiFunction; +import com.google.api.core.ApiFuture; +import com.google.api.core.ApiFutures; import com.google.api.core.BetaApi; import com.google.api.gax.core.BackgroundResource; +import com.google.api.gax.paging.AbstractFixedSizeCollection; +import com.google.api.gax.paging.AbstractPage; +import com.google.api.gax.paging.AbstractPagedListResponse; +import com.google.api.gax.rpc.PageContext; import com.google.api.gax.rpc.UnaryCallable; import com.google.cloud.osconfig.v1.PatchDeployments.CreatePatchDeploymentRequest; import com.google.cloud.osconfig.v1.PatchDeployments.DeletePatchDeploymentRequest; @@ -32,10 +39,13 @@ import com.google.cloud.osconfig.v1.PatchJobs.ListPatchJobsRequest; import com.google.cloud.osconfig.v1.PatchJobs.ListPatchJobsResponse; import com.google.cloud.osconfig.v1.PatchJobs.PatchJob; +import com.google.cloud.osconfig.v1.PatchJobs.PatchJobInstanceDetails; import com.google.cloud.osconfig.v1.stub.OsConfigServiceStub; import com.google.cloud.osconfig.v1.stub.OsConfigServiceStubSettings; +import com.google.common.util.concurrent.MoreExecutors; import com.google.protobuf.Empty; import java.io.IOException; +import java.util.List; import java.util.concurrent.TimeUnit; import javax.annotation.Generated; @@ -52,8 +62,8 @@ *
*
* try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
- * ExecutePatchJobRequest request = ExecutePatchJobRequest.newBuilder().build();
- * PatchJob response = osConfigServiceClient.executePatchJob(request);
+ * PatchJobName name = PatchJobName.of("[PROJECT]", "[PATCH_JOB]");
+ * PatchJob response = osConfigServiceClient.getPatchJob(name);
* }
*
*
@@ -171,7 +181,12 @@ public OsConfigServiceStub getStub() {
*
*
* try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
- * ExecutePatchJobRequest request = ExecutePatchJobRequest.newBuilder().build();
+ * ProjectName parent = ProjectName.of("[PROJECT]");
+ * PatchInstanceFilter instanceFilter = PatchInstanceFilter.newBuilder().build();
+ * ExecutePatchJobRequest request = ExecutePatchJobRequest.newBuilder()
+ * .setParent(parent.toString())
+ * .setInstanceFilter(instanceFilter)
+ * .build();
* PatchJob response = osConfigServiceClient.executePatchJob(request);
* }
*
@@ -191,7 +206,12 @@ public final PatchJob executePatchJob(ExecutePatchJobRequest request) {
*
*
* try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
- * ExecutePatchJobRequest request = ExecutePatchJobRequest.newBuilder().build();
+ * ProjectName parent = ProjectName.of("[PROJECT]");
+ * PatchInstanceFilter instanceFilter = PatchInstanceFilter.newBuilder().build();
+ * ExecutePatchJobRequest request = ExecutePatchJobRequest.newBuilder()
+ * .setParent(parent.toString())
+ * .setInstanceFilter(instanceFilter)
+ * .build();
* ApiFuture<PatchJob> future = osConfigServiceClient.executePatchJobCallable().futureCall(request);
* // Do something
* PatchJob response = future.get();
@@ -211,7 +231,55 @@ public final UnaryCallable executePatchJobCall
*
*
* try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
- * GetPatchJobRequest request = GetPatchJobRequest.newBuilder().build();
+ * PatchJobName name = PatchJobName.of("[PROJECT]", "[PATCH_JOB]");
+ * PatchJob response = osConfigServiceClient.getPatchJob(name);
+ * }
+ *
+ *
+ * @param name Required. Name of the patch in the form `projects/*/patchJobs/*`
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final PatchJob getPatchJob(PatchJobName name) {
+ GetPatchJobRequest request =
+ GetPatchJobRequest.newBuilder().setName(name == null ? null : name.toString()).build();
+ return getPatchJob(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Get the patch job. This can be used to track the progress of an ongoing patch job or review the
+ * details of completed jobs.
+ *
+ * Sample code:
+ *
+ *
+ * try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
+ * PatchJobName name = PatchJobName.of("[PROJECT]", "[PATCH_JOB]");
+ * PatchJob response = osConfigServiceClient.getPatchJob(name.toString());
+ * }
+ *
+ *
+ * @param name Required. Name of the patch in the form `projects/*/patchJobs/*`
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final PatchJob getPatchJob(String name) {
+ GetPatchJobRequest request = GetPatchJobRequest.newBuilder().setName(name).build();
+ return getPatchJob(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Get the patch job. This can be used to track the progress of an ongoing patch job or review the
+ * details of completed jobs.
+ *
+ * Sample code:
+ *
+ *
+ * try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
+ * PatchJobName name = PatchJobName.of("[PROJECT]", "[PATCH_JOB]");
+ * GetPatchJobRequest request = GetPatchJobRequest.newBuilder()
+ * .setName(name.toString())
+ * .build();
* PatchJob response = osConfigServiceClient.getPatchJob(request);
* }
*
@@ -232,7 +300,10 @@ public final PatchJob getPatchJob(GetPatchJobRequest request) {
*
*
* try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
- * GetPatchJobRequest request = GetPatchJobRequest.newBuilder().build();
+ * PatchJobName name = PatchJobName.of("[PROJECT]", "[PATCH_JOB]");
+ * GetPatchJobRequest request = GetPatchJobRequest.newBuilder()
+ * .setName(name.toString())
+ * .build();
* ApiFuture<PatchJob> future = osConfigServiceClient.getPatchJobCallable().futureCall(request);
* // Do something
* PatchJob response = future.get();
@@ -251,7 +322,10 @@ public final UnaryCallable getPatchJobCallable() {
*
*
* try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
- * CancelPatchJobRequest request = CancelPatchJobRequest.newBuilder().build();
+ * PatchJobName name = PatchJobName.of("[PROJECT]", "[PATCH_JOB]");
+ * CancelPatchJobRequest request = CancelPatchJobRequest.newBuilder()
+ * .setName(name.toString())
+ * .build();
* PatchJob response = osConfigServiceClient.cancelPatchJob(request);
* }
*
@@ -271,7 +345,10 @@ public final PatchJob cancelPatchJob(CancelPatchJobRequest request) {
*
*
* try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
- * CancelPatchJobRequest request = CancelPatchJobRequest.newBuilder().build();
+ * PatchJobName name = PatchJobName.of("[PROJECT]", "[PATCH_JOB]");
+ * CancelPatchJobRequest request = CancelPatchJobRequest.newBuilder()
+ * .setName(name.toString())
+ * .build();
* ApiFuture<PatchJob> future = osConfigServiceClient.cancelPatchJobCallable().futureCall(request);
* // Do something
* PatchJob response = future.get();
@@ -290,16 +367,70 @@ public final UnaryCallable cancelPatchJobCallab
*
*
* try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
- * ListPatchJobsRequest request = ListPatchJobsRequest.newBuilder().build();
- * ListPatchJobsResponse response = osConfigServiceClient.listPatchJobs(request);
+ * ProjectName parent = ProjectName.of("[PROJECT]");
+ * for (PatchJob element : osConfigServiceClient.listPatchJobs(parent).iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ *
+ *
+ * @param parent Required. In the form of `projects/*`
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final ListPatchJobsPagedResponse listPatchJobs(ProjectName parent) {
+ ListPatchJobsRequest request =
+ ListPatchJobsRequest.newBuilder()
+ .setParent(parent == null ? null : parent.toString())
+ .build();
+ return listPatchJobs(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Get a list of patch jobs.
+ *
+ * Sample code:
+ *
+ *
+ * try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
+ * ProjectName parent = ProjectName.of("[PROJECT]");
+ * for (PatchJob element : osConfigServiceClient.listPatchJobs(parent.toString()).iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ *
+ *
+ * @param parent Required. In the form of `projects/*`
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final ListPatchJobsPagedResponse listPatchJobs(String parent) {
+ ListPatchJobsRequest request = ListPatchJobsRequest.newBuilder().setParent(parent).build();
+ return listPatchJobs(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Get a list of patch jobs.
+ *
+ * Sample code:
+ *
+ *
+ * try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
+ * ProjectName parent = ProjectName.of("[PROJECT]");
+ * ListPatchJobsRequest request = ListPatchJobsRequest.newBuilder()
+ * .setParent(parent.toString())
+ * .build();
+ * for (PatchJob element : osConfigServiceClient.listPatchJobs(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 ListPatchJobsResponse listPatchJobs(ListPatchJobsRequest request) {
- return listPatchJobsCallable().call(request);
+ public final ListPatchJobsPagedResponse listPatchJobs(ListPatchJobsRequest request) {
+ return listPatchJobsPagedCallable().call(request);
}
// AUTO-GENERATED DOCUMENTATION AND METHOD
@@ -310,10 +441,47 @@ public final ListPatchJobsResponse listPatchJobs(ListPatchJobsRequest request) {
*
*
* try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
- * ListPatchJobsRequest request = ListPatchJobsRequest.newBuilder().build();
- * ApiFuture<ListPatchJobsResponse> future = osConfigServiceClient.listPatchJobsCallable().futureCall(request);
+ * ProjectName parent = ProjectName.of("[PROJECT]");
+ * ListPatchJobsRequest request = ListPatchJobsRequest.newBuilder()
+ * .setParent(parent.toString())
+ * .build();
+ * ApiFuture<ListPatchJobsPagedResponse> future = osConfigServiceClient.listPatchJobsPagedCallable().futureCall(request);
* // Do something
- * ListPatchJobsResponse response = future.get();
+ * for (PatchJob element : future.get().iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ *
+ */
+ public final UnaryCallable
+ listPatchJobsPagedCallable() {
+ return stub.listPatchJobsPagedCallable();
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Get a list of patch jobs.
+ *
+ * Sample code:
+ *
+ *
+ * try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
+ * ProjectName parent = ProjectName.of("[PROJECT]");
+ * ListPatchJobsRequest request = ListPatchJobsRequest.newBuilder()
+ * .setParent(parent.toString())
+ * .build();
+ * while (true) {
+ * ListPatchJobsResponse response = osConfigServiceClient.listPatchJobsCallable().call(request);
+ * for (PatchJob element : response.getPatchJobsList()) {
+ * // doThingsWith(element);
+ * }
+ * String nextPageToken = response.getNextPageToken();
+ * if (!Strings.isNullOrEmpty(nextPageToken)) {
+ * request = request.toBuilder().setPageToken(nextPageToken).build();
+ * } else {
+ * break;
+ * }
+ * }
* }
*
*/
@@ -329,17 +497,75 @@ public final UnaryCallable listPatc
*
*
* try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
- * ListPatchJobInstanceDetailsRequest request = ListPatchJobInstanceDetailsRequest.newBuilder().build();
- * ListPatchJobInstanceDetailsResponse response = osConfigServiceClient.listPatchJobInstanceDetails(request);
+ * PatchJobName parent = PatchJobName.of("[PROJECT]", "[PATCH_JOB]");
+ * for (PatchJobInstanceDetails element : osConfigServiceClient.listPatchJobInstanceDetails(parent).iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ *
+ *
+ * @param parent Required. The parent for the instances are in the form of
+ * `projects/*/patchJobs/*`.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final ListPatchJobInstanceDetailsPagedResponse listPatchJobInstanceDetails(
+ PatchJobName parent) {
+ ListPatchJobInstanceDetailsRequest request =
+ ListPatchJobInstanceDetailsRequest.newBuilder()
+ .setParent(parent == null ? null : parent.toString())
+ .build();
+ return listPatchJobInstanceDetails(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Get a list of instance details for a given patch job.
+ *
+ * Sample code:
+ *
+ *
+ * try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
+ * PatchJobName parent = PatchJobName.of("[PROJECT]", "[PATCH_JOB]");
+ * for (PatchJobInstanceDetails element : osConfigServiceClient.listPatchJobInstanceDetails(parent.toString()).iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ *
+ *
+ * @param parent Required. The parent for the instances are in the form of
+ * `projects/*/patchJobs/*`.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final ListPatchJobInstanceDetailsPagedResponse listPatchJobInstanceDetails(String parent) {
+ ListPatchJobInstanceDetailsRequest request =
+ ListPatchJobInstanceDetailsRequest.newBuilder().setParent(parent).build();
+ return listPatchJobInstanceDetails(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Get a list of instance details for a given patch job.
+ *
+ * Sample code:
+ *
+ *
+ * try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
+ * PatchJobName parent = PatchJobName.of("[PROJECT]", "[PATCH_JOB]");
+ * ListPatchJobInstanceDetailsRequest request = ListPatchJobInstanceDetailsRequest.newBuilder()
+ * .setParent(parent.toString())
+ * .build();
+ * for (PatchJobInstanceDetails element : osConfigServiceClient.listPatchJobInstanceDetails(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 ListPatchJobInstanceDetailsResponse listPatchJobInstanceDetails(
+ public final ListPatchJobInstanceDetailsPagedResponse listPatchJobInstanceDetails(
ListPatchJobInstanceDetailsRequest request) {
- return listPatchJobInstanceDetailsCallable().call(request);
+ return listPatchJobInstanceDetailsPagedCallable().call(request);
}
// AUTO-GENERATED DOCUMENTATION AND METHOD
@@ -350,10 +576,48 @@ public final ListPatchJobInstanceDetailsResponse listPatchJobInstanceDetails(
*
*
* try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
- * ListPatchJobInstanceDetailsRequest request = ListPatchJobInstanceDetailsRequest.newBuilder().build();
- * ApiFuture<ListPatchJobInstanceDetailsResponse> future = osConfigServiceClient.listPatchJobInstanceDetailsCallable().futureCall(request);
+ * PatchJobName parent = PatchJobName.of("[PROJECT]", "[PATCH_JOB]");
+ * ListPatchJobInstanceDetailsRequest request = ListPatchJobInstanceDetailsRequest.newBuilder()
+ * .setParent(parent.toString())
+ * .build();
+ * ApiFuture<ListPatchJobInstanceDetailsPagedResponse> future = osConfigServiceClient.listPatchJobInstanceDetailsPagedCallable().futureCall(request);
* // Do something
- * ListPatchJobInstanceDetailsResponse response = future.get();
+ * for (PatchJobInstanceDetails element : future.get().iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ *
+ */
+ public final UnaryCallable<
+ ListPatchJobInstanceDetailsRequest, ListPatchJobInstanceDetailsPagedResponse>
+ listPatchJobInstanceDetailsPagedCallable() {
+ return stub.listPatchJobInstanceDetailsPagedCallable();
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Get a list of instance details for a given patch job.
+ *
+ * Sample code:
+ *
+ *
+ * try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
+ * PatchJobName parent = PatchJobName.of("[PROJECT]", "[PATCH_JOB]");
+ * ListPatchJobInstanceDetailsRequest request = ListPatchJobInstanceDetailsRequest.newBuilder()
+ * .setParent(parent.toString())
+ * .build();
+ * while (true) {
+ * ListPatchJobInstanceDetailsResponse response = osConfigServiceClient.listPatchJobInstanceDetailsCallable().call(request);
+ * for (PatchJobInstanceDetails element : response.getPatchJobInstanceDetailsList()) {
+ * // doThingsWith(element);
+ * }
+ * String nextPageToken = response.getNextPageToken();
+ * if (!Strings.isNullOrEmpty(nextPageToken)) {
+ * request = request.toBuilder().setPageToken(nextPageToken).build();
+ * } else {
+ * break;
+ * }
+ * }
* }
*
*/
@@ -371,7 +635,86 @@ public final ListPatchJobInstanceDetailsResponse listPatchJobInstanceDetails(
*
*
* try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
- * CreatePatchDeploymentRequest request = CreatePatchDeploymentRequest.newBuilder().build();
+ * ProjectName parent = ProjectName.of("[PROJECT]");
+ * PatchDeployment patchDeployment = PatchDeployment.newBuilder().build();
+ * String patchDeploymentId = "";
+ * PatchDeployment response = osConfigServiceClient.createPatchDeployment(parent, patchDeployment, patchDeploymentId);
+ * }
+ *
+ *
+ * @param parent Required. The project to apply this patch deployment to in the form
+ * `projects/*`.
+ * @param patchDeployment Required. The patch deployment to create.
+ * @param patchDeploymentId Required. A name for the patch deployment in the project. When
+ * creating a name the following rules apply: * Must contain only lowercase letters,
+ * numbers, and hyphens. * Must start with a letter. * Must be between 1-63
+ * characters. * Must end with a number or a letter. * Must be unique within the
+ * project.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final PatchDeployment createPatchDeployment(
+ ProjectName parent, PatchDeployment patchDeployment, String patchDeploymentId) {
+ CreatePatchDeploymentRequest request =
+ CreatePatchDeploymentRequest.newBuilder()
+ .setParent(parent == null ? null : parent.toString())
+ .setPatchDeployment(patchDeployment)
+ .setPatchDeploymentId(patchDeploymentId)
+ .build();
+ return createPatchDeployment(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Create an OS Config patch deployment.
+ *
+ * Sample code:
+ *
+ *
+ * try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
+ * ProjectName parent = ProjectName.of("[PROJECT]");
+ * PatchDeployment patchDeployment = PatchDeployment.newBuilder().build();
+ * String patchDeploymentId = "";
+ * PatchDeployment response = osConfigServiceClient.createPatchDeployment(parent.toString(), patchDeployment, patchDeploymentId);
+ * }
+ *
+ *
+ * @param parent Required. The project to apply this patch deployment to in the form
+ * `projects/*`.
+ * @param patchDeployment Required. The patch deployment to create.
+ * @param patchDeploymentId Required. A name for the patch deployment in the project. When
+ * creating a name the following rules apply: * Must contain only lowercase letters,
+ * numbers, and hyphens. * Must start with a letter. * Must be between 1-63
+ * characters. * Must end with a number or a letter. * Must be unique within the
+ * project.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final PatchDeployment createPatchDeployment(
+ String parent, PatchDeployment patchDeployment, String patchDeploymentId) {
+ CreatePatchDeploymentRequest request =
+ CreatePatchDeploymentRequest.newBuilder()
+ .setParent(parent)
+ .setPatchDeployment(patchDeployment)
+ .setPatchDeploymentId(patchDeploymentId)
+ .build();
+ return createPatchDeployment(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Create an OS Config patch deployment.
+ *
+ * Sample code:
+ *
+ *
+ * try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
+ * ProjectName parent = ProjectName.of("[PROJECT]");
+ * String patchDeploymentId = "";
+ * PatchDeployment patchDeployment = PatchDeployment.newBuilder().build();
+ * CreatePatchDeploymentRequest request = CreatePatchDeploymentRequest.newBuilder()
+ * .setParent(parent.toString())
+ * .setPatchDeploymentId(patchDeploymentId)
+ * .setPatchDeployment(patchDeployment)
+ * .build();
* PatchDeployment response = osConfigServiceClient.createPatchDeployment(request);
* }
*
@@ -391,7 +734,14 @@ public final PatchDeployment createPatchDeployment(CreatePatchDeploymentRequest
*
*
* try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
- * CreatePatchDeploymentRequest request = CreatePatchDeploymentRequest.newBuilder().build();
+ * ProjectName parent = ProjectName.of("[PROJECT]");
+ * String patchDeploymentId = "";
+ * PatchDeployment patchDeployment = PatchDeployment.newBuilder().build();
+ * CreatePatchDeploymentRequest request = CreatePatchDeploymentRequest.newBuilder()
+ * .setParent(parent.toString())
+ * .setPatchDeploymentId(patchDeploymentId)
+ * .setPatchDeployment(patchDeployment)
+ * .build();
* ApiFuture<PatchDeployment> future = osConfigServiceClient.createPatchDeploymentCallable().futureCall(request);
* // Do something
* PatchDeployment response = future.get();
@@ -411,7 +761,58 @@ public final PatchDeployment createPatchDeployment(CreatePatchDeploymentRequest
*
*
* try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
- * GetPatchDeploymentRequest request = GetPatchDeploymentRequest.newBuilder().build();
+ * PatchDeploymentName name = PatchDeploymentName.of("[PROJECT]", "[PATCH_DEPLOYMENT]");
+ * PatchDeployment response = osConfigServiceClient.getPatchDeployment(name);
+ * }
+ *
+ *
+ * @param name Required. The resource name of the patch deployment in the form
+ * `projects/*/patchDeployments/*`.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final PatchDeployment getPatchDeployment(PatchDeploymentName name) {
+ GetPatchDeploymentRequest request =
+ GetPatchDeploymentRequest.newBuilder()
+ .setName(name == null ? null : name.toString())
+ .build();
+ return getPatchDeployment(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Get an OS Config patch deployment.
+ *
+ * Sample code:
+ *
+ *
+ * try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
+ * PatchDeploymentName name = PatchDeploymentName.of("[PROJECT]", "[PATCH_DEPLOYMENT]");
+ * PatchDeployment response = osConfigServiceClient.getPatchDeployment(name.toString());
+ * }
+ *
+ *
+ * @param name Required. The resource name of the patch deployment in the form
+ * `projects/*/patchDeployments/*`.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final PatchDeployment getPatchDeployment(String name) {
+ GetPatchDeploymentRequest request =
+ GetPatchDeploymentRequest.newBuilder().setName(name).build();
+ return getPatchDeployment(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Get an OS Config patch deployment.
+ *
+ * Sample code:
+ *
+ *
+ * try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
+ * PatchDeploymentName name = PatchDeploymentName.of("[PROJECT]", "[PATCH_DEPLOYMENT]");
+ * GetPatchDeploymentRequest request = GetPatchDeploymentRequest.newBuilder()
+ * .setName(name.toString())
+ * .build();
* PatchDeployment response = osConfigServiceClient.getPatchDeployment(request);
* }
*
@@ -431,7 +832,10 @@ public final PatchDeployment getPatchDeployment(GetPatchDeploymentRequest reques
*
*
* try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
- * GetPatchDeploymentRequest request = GetPatchDeploymentRequest.newBuilder().build();
+ * PatchDeploymentName name = PatchDeploymentName.of("[PROJECT]", "[PATCH_DEPLOYMENT]");
+ * GetPatchDeploymentRequest request = GetPatchDeploymentRequest.newBuilder()
+ * .setName(name.toString())
+ * .build();
* ApiFuture<PatchDeployment> future = osConfigServiceClient.getPatchDeploymentCallable().futureCall(request);
* // Do something
* PatchDeployment response = future.get();
@@ -451,17 +855,72 @@ public final PatchDeployment getPatchDeployment(GetPatchDeploymentRequest reques
*
*
* try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
- * ListPatchDeploymentsRequest request = ListPatchDeploymentsRequest.newBuilder().build();
- * ListPatchDeploymentsResponse response = osConfigServiceClient.listPatchDeployments(request);
+ * ProjectName parent = ProjectName.of("[PROJECT]");
+ * for (PatchDeployment element : osConfigServiceClient.listPatchDeployments(parent).iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ *
+ *
+ * @param parent Required. The resource name of the parent in the form `projects/*`.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final ListPatchDeploymentsPagedResponse listPatchDeployments(ProjectName parent) {
+ ListPatchDeploymentsRequest request =
+ ListPatchDeploymentsRequest.newBuilder()
+ .setParent(parent == null ? null : parent.toString())
+ .build();
+ return listPatchDeployments(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Get a page of OS Config patch deployments.
+ *
+ * Sample code:
+ *
+ *
+ * try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
+ * ProjectName parent = ProjectName.of("[PROJECT]");
+ * for (PatchDeployment element : osConfigServiceClient.listPatchDeployments(parent.toString()).iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ *
+ *
+ * @param parent Required. The resource name of the parent in the form `projects/*`.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final ListPatchDeploymentsPagedResponse listPatchDeployments(String parent) {
+ ListPatchDeploymentsRequest request =
+ ListPatchDeploymentsRequest.newBuilder().setParent(parent).build();
+ return listPatchDeployments(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Get a page of OS Config patch deployments.
+ *
+ * Sample code:
+ *
+ *
+ * try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
+ * ProjectName parent = ProjectName.of("[PROJECT]");
+ * ListPatchDeploymentsRequest request = ListPatchDeploymentsRequest.newBuilder()
+ * .setParent(parent.toString())
+ * .build();
+ * for (PatchDeployment element : osConfigServiceClient.listPatchDeployments(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 ListPatchDeploymentsResponse listPatchDeployments(
+ public final ListPatchDeploymentsPagedResponse listPatchDeployments(
ListPatchDeploymentsRequest request) {
- return listPatchDeploymentsCallable().call(request);
+ return listPatchDeploymentsPagedCallable().call(request);
}
// AUTO-GENERATED DOCUMENTATION AND METHOD
@@ -472,10 +931,47 @@ public final ListPatchDeploymentsResponse listPatchDeployments(
*
*
* try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
- * ListPatchDeploymentsRequest request = ListPatchDeploymentsRequest.newBuilder().build();
- * ApiFuture<ListPatchDeploymentsResponse> future = osConfigServiceClient.listPatchDeploymentsCallable().futureCall(request);
+ * ProjectName parent = ProjectName.of("[PROJECT]");
+ * ListPatchDeploymentsRequest request = ListPatchDeploymentsRequest.newBuilder()
+ * .setParent(parent.toString())
+ * .build();
+ * ApiFuture<ListPatchDeploymentsPagedResponse> future = osConfigServiceClient.listPatchDeploymentsPagedCallable().futureCall(request);
* // Do something
- * ListPatchDeploymentsResponse response = future.get();
+ * for (PatchDeployment element : future.get().iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ *
+ */
+ public final UnaryCallable
+ listPatchDeploymentsPagedCallable() {
+ return stub.listPatchDeploymentsPagedCallable();
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Get a page of OS Config patch deployments.
+ *
+ * Sample code:
+ *
+ *
+ * try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
+ * ProjectName parent = ProjectName.of("[PROJECT]");
+ * ListPatchDeploymentsRequest request = ListPatchDeploymentsRequest.newBuilder()
+ * .setParent(parent.toString())
+ * .build();
+ * while (true) {
+ * ListPatchDeploymentsResponse response = osConfigServiceClient.listPatchDeploymentsCallable().call(request);
+ * for (PatchDeployment element : response.getPatchDeploymentsList()) {
+ * // doThingsWith(element);
+ * }
+ * String nextPageToken = response.getNextPageToken();
+ * if (!Strings.isNullOrEmpty(nextPageToken)) {
+ * request = request.toBuilder().setPageToken(nextPageToken).build();
+ * } else {
+ * break;
+ * }
+ * }
* }
*
*/
@@ -492,7 +988,58 @@ public final ListPatchDeploymentsResponse listPatchDeployments(
*
*
* try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
- * DeletePatchDeploymentRequest request = DeletePatchDeploymentRequest.newBuilder().build();
+ * PatchDeploymentName name = PatchDeploymentName.of("[PROJECT]", "[PATCH_DEPLOYMENT]");
+ * osConfigServiceClient.deletePatchDeployment(name);
+ * }
+ *
+ *
+ * @param name Required. The resource name of the patch deployment in the form
+ * `projects/*/patchDeployments/*`.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final void deletePatchDeployment(PatchDeploymentName name) {
+ DeletePatchDeploymentRequest request =
+ DeletePatchDeploymentRequest.newBuilder()
+ .setName(name == null ? null : name.toString())
+ .build();
+ deletePatchDeployment(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Delete an OS Config patch deployment.
+ *
+ * Sample code:
+ *
+ *
+ * try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
+ * PatchDeploymentName name = PatchDeploymentName.of("[PROJECT]", "[PATCH_DEPLOYMENT]");
+ * osConfigServiceClient.deletePatchDeployment(name.toString());
+ * }
+ *
+ *
+ * @param name Required. The resource name of the patch deployment in the form
+ * `projects/*/patchDeployments/*`.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final void deletePatchDeployment(String name) {
+ DeletePatchDeploymentRequest request =
+ DeletePatchDeploymentRequest.newBuilder().setName(name).build();
+ deletePatchDeployment(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Delete an OS Config patch deployment.
+ *
+ * Sample code:
+ *
+ *
+ * try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
+ * PatchDeploymentName name = PatchDeploymentName.of("[PROJECT]", "[PATCH_DEPLOYMENT]");
+ * DeletePatchDeploymentRequest request = DeletePatchDeploymentRequest.newBuilder()
+ * .setName(name.toString())
+ * .build();
* osConfigServiceClient.deletePatchDeployment(request);
* }
*
@@ -512,7 +1059,10 @@ public final void deletePatchDeployment(DeletePatchDeploymentRequest request) {
*
*
* try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
- * DeletePatchDeploymentRequest request = DeletePatchDeploymentRequest.newBuilder().build();
+ * PatchDeploymentName name = PatchDeploymentName.of("[PROJECT]", "[PATCH_DEPLOYMENT]");
+ * DeletePatchDeploymentRequest request = DeletePatchDeploymentRequest.newBuilder()
+ * .setName(name.toString())
+ * .build();
* ApiFuture<Void> future = osConfigServiceClient.deletePatchDeploymentCallable().futureCall(request);
* // Do something
* future.get();
@@ -552,4 +1102,278 @@ public void shutdownNow() {
public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException {
return stub.awaitTermination(duration, unit);
}
+
+ public static class ListPatchJobsPagedResponse
+ extends AbstractPagedListResponse<
+ ListPatchJobsRequest,
+ ListPatchJobsResponse,
+ PatchJob,
+ ListPatchJobsPage,
+ ListPatchJobsFixedSizeCollection> {
+
+ public static ApiFuture createAsync(
+ PageContext context,
+ ApiFuture futureResponse) {
+ ApiFuture futurePage =
+ ListPatchJobsPage.createEmptyPage().createPageAsync(context, futureResponse);
+ return ApiFutures.transform(
+ futurePage,
+ new ApiFunction() {
+ @Override
+ public ListPatchJobsPagedResponse apply(ListPatchJobsPage input) {
+ return new ListPatchJobsPagedResponse(input);
+ }
+ },
+ MoreExecutors.directExecutor());
+ }
+
+ private ListPatchJobsPagedResponse(ListPatchJobsPage page) {
+ super(page, ListPatchJobsFixedSizeCollection.createEmptyCollection());
+ }
+ }
+
+ public static class ListPatchJobsPage
+ extends AbstractPage<
+ ListPatchJobsRequest, ListPatchJobsResponse, PatchJob, ListPatchJobsPage> {
+
+ private ListPatchJobsPage(
+ PageContext context,
+ ListPatchJobsResponse response) {
+ super(context, response);
+ }
+
+ private static ListPatchJobsPage createEmptyPage() {
+ return new ListPatchJobsPage(null, null);
+ }
+
+ @Override
+ protected ListPatchJobsPage createPage(
+ PageContext context,
+ ListPatchJobsResponse response) {
+ return new ListPatchJobsPage(context, response);
+ }
+
+ @Override
+ public ApiFuture createPageAsync(
+ PageContext context,
+ ApiFuture futureResponse) {
+ return super.createPageAsync(context, futureResponse);
+ }
+ }
+
+ public static class ListPatchJobsFixedSizeCollection
+ extends AbstractFixedSizeCollection<
+ ListPatchJobsRequest,
+ ListPatchJobsResponse,
+ PatchJob,
+ ListPatchJobsPage,
+ ListPatchJobsFixedSizeCollection> {
+
+ private ListPatchJobsFixedSizeCollection(List pages, int collectionSize) {
+ super(pages, collectionSize);
+ }
+
+ private static ListPatchJobsFixedSizeCollection createEmptyCollection() {
+ return new ListPatchJobsFixedSizeCollection(null, 0);
+ }
+
+ @Override
+ protected ListPatchJobsFixedSizeCollection createCollection(
+ List pages, int collectionSize) {
+ return new ListPatchJobsFixedSizeCollection(pages, collectionSize);
+ }
+ }
+
+ public static class ListPatchJobInstanceDetailsPagedResponse
+ extends AbstractPagedListResponse<
+ ListPatchJobInstanceDetailsRequest,
+ ListPatchJobInstanceDetailsResponse,
+ PatchJobInstanceDetails,
+ ListPatchJobInstanceDetailsPage,
+ ListPatchJobInstanceDetailsFixedSizeCollection> {
+
+ public static ApiFuture createAsync(
+ PageContext<
+ ListPatchJobInstanceDetailsRequest,
+ ListPatchJobInstanceDetailsResponse,
+ PatchJobInstanceDetails>
+ context,
+ ApiFuture futureResponse) {
+ ApiFuture futurePage =
+ ListPatchJobInstanceDetailsPage.createEmptyPage()
+ .createPageAsync(context, futureResponse);
+ return ApiFutures.transform(
+ futurePage,
+ new ApiFunction<
+ ListPatchJobInstanceDetailsPage, ListPatchJobInstanceDetailsPagedResponse>() {
+ @Override
+ public ListPatchJobInstanceDetailsPagedResponse apply(
+ ListPatchJobInstanceDetailsPage input) {
+ return new ListPatchJobInstanceDetailsPagedResponse(input);
+ }
+ },
+ MoreExecutors.directExecutor());
+ }
+
+ private ListPatchJobInstanceDetailsPagedResponse(ListPatchJobInstanceDetailsPage page) {
+ super(page, ListPatchJobInstanceDetailsFixedSizeCollection.createEmptyCollection());
+ }
+ }
+
+ public static class ListPatchJobInstanceDetailsPage
+ extends AbstractPage<
+ ListPatchJobInstanceDetailsRequest,
+ ListPatchJobInstanceDetailsResponse,
+ PatchJobInstanceDetails,
+ ListPatchJobInstanceDetailsPage> {
+
+ private ListPatchJobInstanceDetailsPage(
+ PageContext<
+ ListPatchJobInstanceDetailsRequest,
+ ListPatchJobInstanceDetailsResponse,
+ PatchJobInstanceDetails>
+ context,
+ ListPatchJobInstanceDetailsResponse response) {
+ super(context, response);
+ }
+
+ private static ListPatchJobInstanceDetailsPage createEmptyPage() {
+ return new ListPatchJobInstanceDetailsPage(null, null);
+ }
+
+ @Override
+ protected ListPatchJobInstanceDetailsPage createPage(
+ PageContext<
+ ListPatchJobInstanceDetailsRequest,
+ ListPatchJobInstanceDetailsResponse,
+ PatchJobInstanceDetails>
+ context,
+ ListPatchJobInstanceDetailsResponse response) {
+ return new ListPatchJobInstanceDetailsPage(context, response);
+ }
+
+ @Override
+ public ApiFuture createPageAsync(
+ PageContext<
+ ListPatchJobInstanceDetailsRequest,
+ ListPatchJobInstanceDetailsResponse,
+ PatchJobInstanceDetails>
+ context,
+ ApiFuture futureResponse) {
+ return super.createPageAsync(context, futureResponse);
+ }
+ }
+
+ public static class ListPatchJobInstanceDetailsFixedSizeCollection
+ extends AbstractFixedSizeCollection<
+ ListPatchJobInstanceDetailsRequest,
+ ListPatchJobInstanceDetailsResponse,
+ PatchJobInstanceDetails,
+ ListPatchJobInstanceDetailsPage,
+ ListPatchJobInstanceDetailsFixedSizeCollection> {
+
+ private ListPatchJobInstanceDetailsFixedSizeCollection(
+ List pages, int collectionSize) {
+ super(pages, collectionSize);
+ }
+
+ private static ListPatchJobInstanceDetailsFixedSizeCollection createEmptyCollection() {
+ return new ListPatchJobInstanceDetailsFixedSizeCollection(null, 0);
+ }
+
+ @Override
+ protected ListPatchJobInstanceDetailsFixedSizeCollection createCollection(
+ List pages, int collectionSize) {
+ return new ListPatchJobInstanceDetailsFixedSizeCollection(pages, collectionSize);
+ }
+ }
+
+ public static class ListPatchDeploymentsPagedResponse
+ extends AbstractPagedListResponse<
+ ListPatchDeploymentsRequest,
+ ListPatchDeploymentsResponse,
+ PatchDeployment,
+ ListPatchDeploymentsPage,
+ ListPatchDeploymentsFixedSizeCollection> {
+
+ public static ApiFuture createAsync(
+ PageContext
+ context,
+ ApiFuture futureResponse) {
+ ApiFuture futurePage =
+ ListPatchDeploymentsPage.createEmptyPage().createPageAsync(context, futureResponse);
+ return ApiFutures.transform(
+ futurePage,
+ new ApiFunction() {
+ @Override
+ public ListPatchDeploymentsPagedResponse apply(ListPatchDeploymentsPage input) {
+ return new ListPatchDeploymentsPagedResponse(input);
+ }
+ },
+ MoreExecutors.directExecutor());
+ }
+
+ private ListPatchDeploymentsPagedResponse(ListPatchDeploymentsPage page) {
+ super(page, ListPatchDeploymentsFixedSizeCollection.createEmptyCollection());
+ }
+ }
+
+ public static class ListPatchDeploymentsPage
+ extends AbstractPage<
+ ListPatchDeploymentsRequest,
+ ListPatchDeploymentsResponse,
+ PatchDeployment,
+ ListPatchDeploymentsPage> {
+
+ private ListPatchDeploymentsPage(
+ PageContext
+ context,
+ ListPatchDeploymentsResponse response) {
+ super(context, response);
+ }
+
+ private static ListPatchDeploymentsPage createEmptyPage() {
+ return new ListPatchDeploymentsPage(null, null);
+ }
+
+ @Override
+ protected ListPatchDeploymentsPage createPage(
+ PageContext
+ context,
+ ListPatchDeploymentsResponse response) {
+ return new ListPatchDeploymentsPage(context, response);
+ }
+
+ @Override
+ public ApiFuture createPageAsync(
+ PageContext
+ context,
+ ApiFuture futureResponse) {
+ return super.createPageAsync(context, futureResponse);
+ }
+ }
+
+ public static class ListPatchDeploymentsFixedSizeCollection
+ extends AbstractFixedSizeCollection<
+ ListPatchDeploymentsRequest,
+ ListPatchDeploymentsResponse,
+ PatchDeployment,
+ ListPatchDeploymentsPage,
+ ListPatchDeploymentsFixedSizeCollection> {
+
+ private ListPatchDeploymentsFixedSizeCollection(
+ List pages, int collectionSize) {
+ super(pages, collectionSize);
+ }
+
+ private static ListPatchDeploymentsFixedSizeCollection createEmptyCollection() {
+ return new ListPatchDeploymentsFixedSizeCollection(null, 0);
+ }
+
+ @Override
+ protected ListPatchDeploymentsFixedSizeCollection createCollection(
+ List pages, int collectionSize) {
+ return new ListPatchDeploymentsFixedSizeCollection(pages, collectionSize);
+ }
+ }
}
diff --git a/google-cloud-os-config/src/main/java/com/google/cloud/osconfig/v1/OsConfigServiceSettings.java b/google-cloud-os-config/src/main/java/com/google/cloud/osconfig/v1/OsConfigServiceSettings.java
index f53fab0d..8ad5304c 100644
--- a/google-cloud-os-config/src/main/java/com/google/cloud/osconfig/v1/OsConfigServiceSettings.java
+++ b/google-cloud-os-config/src/main/java/com/google/cloud/osconfig/v1/OsConfigServiceSettings.java
@@ -15,6 +15,10 @@
*/
package com.google.cloud.osconfig.v1;
+import static com.google.cloud.osconfig.v1.OsConfigServiceClient.ListPatchDeploymentsPagedResponse;
+import static com.google.cloud.osconfig.v1.OsConfigServiceClient.ListPatchJobInstanceDetailsPagedResponse;
+import static com.google.cloud.osconfig.v1.OsConfigServiceClient.ListPatchJobsPagedResponse;
+
import com.google.api.core.ApiFunction;
import com.google.api.core.BetaApi;
import com.google.api.gax.core.GoogleCredentialsProvider;
@@ -23,6 +27,7 @@
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.PagedCallSettings;
import com.google.api.gax.rpc.TransportChannelProvider;
import com.google.api.gax.rpc.UnaryCallSettings;
import com.google.cloud.osconfig.v1.PatchDeployments.CreatePatchDeploymentRequest;
@@ -60,16 +65,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 executePatchJob to 30 seconds:
+ *
For example, to set the total timeout of getPatchJob to 30 seconds:
*
*
*
* OsConfigServiceSettings.Builder osConfigServiceSettingsBuilder =
* OsConfigServiceSettings.newBuilder();
* osConfigServiceSettingsBuilder
- * .executePatchJobSettings()
+ * .getPatchJobSettings()
* .setRetrySettings(
- * osConfigServiceSettingsBuilder.executePatchJobSettings().getRetrySettings().toBuilder()
+ * osConfigServiceSettingsBuilder.getPatchJobSettings().getRetrySettings().toBuilder()
* .setTotalTimeout(Duration.ofSeconds(30))
* .build());
* OsConfigServiceSettings osConfigServiceSettings = osConfigServiceSettingsBuilder.build();
@@ -95,12 +100,16 @@ public UnaryCallSettings cancelPatchJobSettings
}
/** Returns the object with the settings used for calls to listPatchJobs. */
- public UnaryCallSettings listPatchJobsSettings() {
+ public PagedCallSettings
+ listPatchJobsSettings() {
return ((OsConfigServiceStubSettings) getStubSettings()).listPatchJobsSettings();
}
/** Returns the object with the settings used for calls to listPatchJobInstanceDetails. */
- public UnaryCallSettings
+ public PagedCallSettings<
+ ListPatchJobInstanceDetailsRequest,
+ ListPatchJobInstanceDetailsResponse,
+ ListPatchJobInstanceDetailsPagedResponse>
listPatchJobInstanceDetailsSettings() {
return ((OsConfigServiceStubSettings) getStubSettings()).listPatchJobInstanceDetailsSettings();
}
@@ -118,7 +127,10 @@ public UnaryCallSettings listPatchJ
}
/** Returns the object with the settings used for calls to listPatchDeployments. */
- public UnaryCallSettings
+ public PagedCallSettings<
+ ListPatchDeploymentsRequest,
+ ListPatchDeploymentsResponse,
+ ListPatchDeploymentsPagedResponse>
listPatchDeploymentsSettings() {
return ((OsConfigServiceStubSettings) getStubSettings()).listPatchDeploymentsSettings();
}
@@ -241,14 +253,17 @@ public UnaryCallSettings.Builder cancelPatchJob
}
/** Returns the builder for the settings used for calls to listPatchJobs. */
- public UnaryCallSettings.Builder
+ public PagedCallSettings.Builder<
+ ListPatchJobsRequest, ListPatchJobsResponse, ListPatchJobsPagedResponse>
listPatchJobsSettings() {
return getStubSettingsBuilder().listPatchJobsSettings();
}
/** Returns the builder for the settings used for calls to listPatchJobInstanceDetails. */
- public UnaryCallSettings.Builder<
- ListPatchJobInstanceDetailsRequest, ListPatchJobInstanceDetailsResponse>
+ public PagedCallSettings.Builder<
+ ListPatchJobInstanceDetailsRequest,
+ ListPatchJobInstanceDetailsResponse,
+ ListPatchJobInstanceDetailsPagedResponse>
listPatchJobInstanceDetailsSettings() {
return getStubSettingsBuilder().listPatchJobInstanceDetailsSettings();
}
@@ -266,7 +281,10 @@ public UnaryCallSettings.Builder cancelPatchJob
}
/** Returns the builder for the settings used for calls to listPatchDeployments. */
- public UnaryCallSettings.Builder
+ public PagedCallSettings.Builder<
+ ListPatchDeploymentsRequest,
+ ListPatchDeploymentsResponse,
+ ListPatchDeploymentsPagedResponse>
listPatchDeploymentsSettings() {
return getStubSettingsBuilder().listPatchDeploymentsSettings();
}
diff --git a/google-cloud-os-config/src/main/java/com/google/cloud/osconfig/v1/package-info.java b/google-cloud-os-config/src/main/java/com/google/cloud/osconfig/v1/package-info.java
index 4e797fdf..57e71b31 100644
--- a/google-cloud-os-config/src/main/java/com/google/cloud/osconfig/v1/package-info.java
+++ b/google-cloud-os-config/src/main/java/com/google/cloud/osconfig/v1/package-info.java
@@ -31,8 +31,8 @@
*
*
* try (OsConfigServiceClient osConfigServiceClient = OsConfigServiceClient.create()) {
- * ExecutePatchJobRequest request = ExecutePatchJobRequest.newBuilder().build();
- * PatchJob response = osConfigServiceClient.executePatchJob(request);
+ * PatchJobName name = PatchJobName.of("[PROJECT]", "[PATCH_JOB]");
+ * PatchJob response = osConfigServiceClient.getPatchJob(name);
* }
*
*
diff --git a/google-cloud-os-config/src/main/java/com/google/cloud/osconfig/v1/stub/GrpcOsConfigServiceStub.java b/google-cloud-os-config/src/main/java/com/google/cloud/osconfig/v1/stub/GrpcOsConfigServiceStub.java
index 5b7d6d41..f42ba237 100644
--- a/google-cloud-os-config/src/main/java/com/google/cloud/osconfig/v1/stub/GrpcOsConfigServiceStub.java
+++ b/google-cloud-os-config/src/main/java/com/google/cloud/osconfig/v1/stub/GrpcOsConfigServiceStub.java
@@ -15,6 +15,10 @@
*/
package com.google.cloud.osconfig.v1.stub;
+import static com.google.cloud.osconfig.v1.OsConfigServiceClient.ListPatchDeploymentsPagedResponse;
+import static com.google.cloud.osconfig.v1.OsConfigServiceClient.ListPatchJobInstanceDetailsPagedResponse;
+import static com.google.cloud.osconfig.v1.OsConfigServiceClient.ListPatchJobsPagedResponse;
+
import com.google.api.core.BetaApi;
import com.google.api.gax.core.BackgroundResource;
import com.google.api.gax.core.BackgroundResourceAggregation;
@@ -148,15 +152,22 @@ public class GrpcOsConfigServiceStub extends OsConfigServiceStub {
private final UnaryCallable getPatchJobCallable;
private final UnaryCallable cancelPatchJobCallable;
private final UnaryCallable listPatchJobsCallable;
+ private final UnaryCallable
+ listPatchJobsPagedCallable;
private final UnaryCallable<
ListPatchJobInstanceDetailsRequest, ListPatchJobInstanceDetailsResponse>
listPatchJobInstanceDetailsCallable;
+ private final UnaryCallable<
+ ListPatchJobInstanceDetailsRequest, ListPatchJobInstanceDetailsPagedResponse>
+ listPatchJobInstanceDetailsPagedCallable;
private final UnaryCallable
createPatchDeploymentCallable;
private final UnaryCallable
getPatchDeploymentCallable;
private final UnaryCallable
listPatchDeploymentsCallable;
+ private final UnaryCallable
+ listPatchDeploymentsPagedCallable;
private final UnaryCallable deletePatchDeploymentCallable;
private final GrpcStubCallableFactory callableFactory;
@@ -337,11 +348,19 @@ public Map extract(DeletePatchDeploymentRequest request) {
this.listPatchJobsCallable =
callableFactory.createUnaryCallable(
listPatchJobsTransportSettings, settings.listPatchJobsSettings(), clientContext);
+ this.listPatchJobsPagedCallable =
+ callableFactory.createPagedCallable(
+ listPatchJobsTransportSettings, settings.listPatchJobsSettings(), clientContext);
this.listPatchJobInstanceDetailsCallable =
callableFactory.createUnaryCallable(
listPatchJobInstanceDetailsTransportSettings,
settings.listPatchJobInstanceDetailsSettings(),
clientContext);
+ this.listPatchJobInstanceDetailsPagedCallable =
+ callableFactory.createPagedCallable(
+ listPatchJobInstanceDetailsTransportSettings,
+ settings.listPatchJobInstanceDetailsSettings(),
+ clientContext);
this.createPatchDeploymentCallable =
callableFactory.createUnaryCallable(
createPatchDeploymentTransportSettings,
@@ -357,6 +376,11 @@ public Map extract(DeletePatchDeploymentRequest request) {
listPatchDeploymentsTransportSettings,
settings.listPatchDeploymentsSettings(),
clientContext);
+ this.listPatchDeploymentsPagedCallable =
+ callableFactory.createPagedCallable(
+ listPatchDeploymentsTransportSettings,
+ settings.listPatchDeploymentsSettings(),
+ clientContext);
this.deletePatchDeploymentCallable =
callableFactory.createUnaryCallable(
deletePatchDeploymentTransportSettings,
@@ -378,10 +402,20 @@ public UnaryCallable cancelPatchJobCallable() {
return cancelPatchJobCallable;
}
+ public UnaryCallable
+ listPatchJobsPagedCallable() {
+ return listPatchJobsPagedCallable;
+ }
+
public UnaryCallable listPatchJobsCallable() {
return listPatchJobsCallable;
}
+ public UnaryCallable
+ listPatchJobInstanceDetailsPagedCallable() {
+ return listPatchJobInstanceDetailsPagedCallable;
+ }
+
public UnaryCallable
listPatchJobInstanceDetailsCallable() {
return listPatchJobInstanceDetailsCallable;
@@ -396,6 +430,11 @@ public UnaryCallable getPatchDeploym
return getPatchDeploymentCallable;
}
+ public UnaryCallable
+ listPatchDeploymentsPagedCallable() {
+ return listPatchDeploymentsPagedCallable;
+ }
+
public UnaryCallable
listPatchDeploymentsCallable() {
return listPatchDeploymentsCallable;
diff --git a/google-cloud-os-config/src/main/java/com/google/cloud/osconfig/v1/stub/OsConfigServiceStub.java b/google-cloud-os-config/src/main/java/com/google/cloud/osconfig/v1/stub/OsConfigServiceStub.java
index f176cbd6..1037f5ca 100644
--- a/google-cloud-os-config/src/main/java/com/google/cloud/osconfig/v1/stub/OsConfigServiceStub.java
+++ b/google-cloud-os-config/src/main/java/com/google/cloud/osconfig/v1/stub/OsConfigServiceStub.java
@@ -15,6 +15,10 @@
*/
package com.google.cloud.osconfig.v1.stub;
+import static com.google.cloud.osconfig.v1.OsConfigServiceClient.ListPatchDeploymentsPagedResponse;
+import static com.google.cloud.osconfig.v1.OsConfigServiceClient.ListPatchJobInstanceDetailsPagedResponse;
+import static com.google.cloud.osconfig.v1.OsConfigServiceClient.ListPatchJobsPagedResponse;
+
import com.google.api.core.BetaApi;
import com.google.api.gax.core.BackgroundResource;
import com.google.api.gax.rpc.UnaryCallable;
@@ -57,10 +61,21 @@ public UnaryCallable cancelPatchJobCallable() {
throw new UnsupportedOperationException("Not implemented: cancelPatchJobCallable()");
}
+ public UnaryCallable
+ listPatchJobsPagedCallable() {
+ throw new UnsupportedOperationException("Not implemented: listPatchJobsPagedCallable()");
+ }
+
public UnaryCallable listPatchJobsCallable() {
throw new UnsupportedOperationException("Not implemented: listPatchJobsCallable()");
}
+ public UnaryCallable
+ listPatchJobInstanceDetailsPagedCallable() {
+ throw new UnsupportedOperationException(
+ "Not implemented: listPatchJobInstanceDetailsPagedCallable()");
+ }
+
public UnaryCallable
listPatchJobInstanceDetailsCallable() {
throw new UnsupportedOperationException(
@@ -76,6 +91,11 @@ public UnaryCallable getPatchDeploym
throw new UnsupportedOperationException("Not implemented: getPatchDeploymentCallable()");
}
+ public UnaryCallable
+ listPatchDeploymentsPagedCallable() {
+ throw new UnsupportedOperationException("Not implemented: listPatchDeploymentsPagedCallable()");
+ }
+
public UnaryCallable
listPatchDeploymentsCallable() {
throw new UnsupportedOperationException("Not implemented: listPatchDeploymentsCallable()");
diff --git a/google-cloud-os-config/src/main/java/com/google/cloud/osconfig/v1/stub/OsConfigServiceStubSettings.java b/google-cloud-os-config/src/main/java/com/google/cloud/osconfig/v1/stub/OsConfigServiceStubSettings.java
index d6bb4f84..d734fb4c 100644
--- a/google-cloud-os-config/src/main/java/com/google/cloud/osconfig/v1/stub/OsConfigServiceStubSettings.java
+++ b/google-cloud-os-config/src/main/java/com/google/cloud/osconfig/v1/stub/OsConfigServiceStubSettings.java
@@ -15,7 +15,12 @@
*/
package com.google.cloud.osconfig.v1.stub;
+import static com.google.cloud.osconfig.v1.OsConfigServiceClient.ListPatchDeploymentsPagedResponse;
+import static com.google.cloud.osconfig.v1.OsConfigServiceClient.ListPatchJobInstanceDetailsPagedResponse;
+import static com.google.cloud.osconfig.v1.OsConfigServiceClient.ListPatchJobsPagedResponse;
+
import com.google.api.core.ApiFunction;
+import com.google.api.core.ApiFuture;
import com.google.api.core.BetaApi;
import com.google.api.gax.core.GaxProperties;
import com.google.api.gax.core.GoogleCredentialsProvider;
@@ -24,12 +29,18 @@
import com.google.api.gax.grpc.GrpcTransportChannel;
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
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.PageContext;
+import com.google.api.gax.rpc.PagedCallSettings;
+import com.google.api.gax.rpc.PagedListDescriptor;
+import com.google.api.gax.rpc.PagedListResponseFactory;
import com.google.api.gax.rpc.StatusCode;
import com.google.api.gax.rpc.StubSettings;
import com.google.api.gax.rpc.TransportChannelProvider;
import com.google.api.gax.rpc.UnaryCallSettings;
+import com.google.api.gax.rpc.UnaryCallable;
import com.google.cloud.osconfig.v1.PatchDeployments.CreatePatchDeploymentRequest;
import com.google.cloud.osconfig.v1.PatchDeployments.DeletePatchDeploymentRequest;
import com.google.cloud.osconfig.v1.PatchDeployments.GetPatchDeploymentRequest;
@@ -44,6 +55,7 @@
import com.google.cloud.osconfig.v1.PatchJobs.ListPatchJobsRequest;
import com.google.cloud.osconfig.v1.PatchJobs.ListPatchJobsResponse;
import com.google.cloud.osconfig.v1.PatchJobs.PatchJob;
+import com.google.cloud.osconfig.v1.PatchJobs.PatchJobInstanceDetails;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
@@ -69,16 +81,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 executePatchJob to 30 seconds:
+ *
For example, to set the total timeout of getPatchJob to 30 seconds:
*
*
*
* OsConfigServiceStubSettings.Builder osConfigServiceSettingsBuilder =
* OsConfigServiceStubSettings.newBuilder();
* osConfigServiceSettingsBuilder
- * .executePatchJobSettings()
+ * .getPatchJobSettings()
* .setRetrySettings(
- * osConfigServiceSettingsBuilder.executePatchJobSettings().getRetrySettings().toBuilder()
+ * osConfigServiceSettingsBuilder.getPatchJobSettings().getRetrySettings().toBuilder()
* .setTotalTimeout(Duration.ofSeconds(30))
* .build());
* OsConfigServiceStubSettings osConfigServiceSettings = osConfigServiceSettingsBuilder.build();
@@ -95,16 +107,22 @@ public class OsConfigServiceStubSettings extends StubSettings executePatchJobSettings;
private final UnaryCallSettings getPatchJobSettings;
private final UnaryCallSettings cancelPatchJobSettings;
- private final UnaryCallSettings
+ private final PagedCallSettings<
+ ListPatchJobsRequest, ListPatchJobsResponse, ListPatchJobsPagedResponse>
listPatchJobsSettings;
- private final UnaryCallSettings<
- ListPatchJobInstanceDetailsRequest, ListPatchJobInstanceDetailsResponse>
+ private final PagedCallSettings<
+ ListPatchJobInstanceDetailsRequest,
+ ListPatchJobInstanceDetailsResponse,
+ ListPatchJobInstanceDetailsPagedResponse>
listPatchJobInstanceDetailsSettings;
private final UnaryCallSettings
createPatchDeploymentSettings;
private final UnaryCallSettings
getPatchDeploymentSettings;
- private final UnaryCallSettings
+ private final PagedCallSettings<
+ ListPatchDeploymentsRequest,
+ ListPatchDeploymentsResponse,
+ ListPatchDeploymentsPagedResponse>
listPatchDeploymentsSettings;
private final UnaryCallSettings
deletePatchDeploymentSettings;
@@ -125,12 +143,16 @@ public UnaryCallSettings cancelPatchJobSettings
}
/** Returns the object with the settings used for calls to listPatchJobs. */
- public UnaryCallSettings listPatchJobsSettings() {
+ public PagedCallSettings
+ listPatchJobsSettings() {
return listPatchJobsSettings;
}
/** Returns the object with the settings used for calls to listPatchJobInstanceDetails. */
- public UnaryCallSettings
+ public PagedCallSettings<
+ ListPatchJobInstanceDetailsRequest,
+ ListPatchJobInstanceDetailsResponse,
+ ListPatchJobInstanceDetailsPagedResponse>
listPatchJobInstanceDetailsSettings() {
return listPatchJobInstanceDetailsSettings;
}
@@ -148,7 +170,10 @@ public UnaryCallSettings listPatchJ
}
/** Returns the object with the settings used for calls to listPatchDeployments. */
- public UnaryCallSettings
+ public PagedCallSettings<
+ ListPatchDeploymentsRequest,
+ ListPatchDeploymentsResponse,
+ ListPatchDeploymentsPagedResponse>
listPatchDeploymentsSettings() {
return listPatchDeploymentsSettings;
}
@@ -239,6 +264,205 @@ protected OsConfigServiceStubSettings(Builder settingsBuilder) throws IOExceptio
deletePatchDeploymentSettings = settingsBuilder.deletePatchDeploymentSettings().build();
}
+ private static final PagedListDescriptor
+ LIST_PATCH_JOBS_PAGE_STR_DESC =
+ new PagedListDescriptor() {
+ @Override
+ public String emptyToken() {
+ return "";
+ }
+
+ @Override
+ public ListPatchJobsRequest injectToken(ListPatchJobsRequest payload, String token) {
+ return ListPatchJobsRequest.newBuilder(payload).setPageToken(token).build();
+ }
+
+ @Override
+ public ListPatchJobsRequest injectPageSize(ListPatchJobsRequest payload, int pageSize) {
+ return ListPatchJobsRequest.newBuilder(payload).setPageSize(pageSize).build();
+ }
+
+ @Override
+ public Integer extractPageSize(ListPatchJobsRequest payload) {
+ return payload.getPageSize();
+ }
+
+ @Override
+ public String extractNextToken(ListPatchJobsResponse payload) {
+ return payload.getNextPageToken();
+ }
+
+ @Override
+ public Iterable extractResources(ListPatchJobsResponse payload) {
+ return payload.getPatchJobsList() != null
+ ? payload.getPatchJobsList()
+ : ImmutableList.of();
+ }
+ };
+
+ private static final PagedListDescriptor<
+ ListPatchJobInstanceDetailsRequest,
+ ListPatchJobInstanceDetailsResponse,
+ PatchJobInstanceDetails>
+ LIST_PATCH_JOB_INSTANCE_DETAILS_PAGE_STR_DESC =
+ new PagedListDescriptor<
+ ListPatchJobInstanceDetailsRequest,
+ ListPatchJobInstanceDetailsResponse,
+ PatchJobInstanceDetails>() {
+ @Override
+ public String emptyToken() {
+ return "";
+ }
+
+ @Override
+ public ListPatchJobInstanceDetailsRequest injectToken(
+ ListPatchJobInstanceDetailsRequest payload, String token) {
+ return ListPatchJobInstanceDetailsRequest.newBuilder(payload)
+ .setPageToken(token)
+ .build();
+ }
+
+ @Override
+ public ListPatchJobInstanceDetailsRequest injectPageSize(
+ ListPatchJobInstanceDetailsRequest payload, int pageSize) {
+ return ListPatchJobInstanceDetailsRequest.newBuilder(payload)
+ .setPageSize(pageSize)
+ .build();
+ }
+
+ @Override
+ public Integer extractPageSize(ListPatchJobInstanceDetailsRequest payload) {
+ return payload.getPageSize();
+ }
+
+ @Override
+ public String extractNextToken(ListPatchJobInstanceDetailsResponse payload) {
+ return payload.getNextPageToken();
+ }
+
+ @Override
+ public Iterable extractResources(
+ ListPatchJobInstanceDetailsResponse payload) {
+ return payload.getPatchJobInstanceDetailsList() != null
+ ? payload.getPatchJobInstanceDetailsList()
+ : ImmutableList.of();
+ }
+ };
+
+ private static final PagedListDescriptor<
+ ListPatchDeploymentsRequest, ListPatchDeploymentsResponse, PatchDeployment>
+ LIST_PATCH_DEPLOYMENTS_PAGE_STR_DESC =
+ new PagedListDescriptor<
+ ListPatchDeploymentsRequest, ListPatchDeploymentsResponse, PatchDeployment>() {
+ @Override
+ public String emptyToken() {
+ return "";
+ }
+
+ @Override
+ public ListPatchDeploymentsRequest injectToken(
+ ListPatchDeploymentsRequest payload, String token) {
+ return ListPatchDeploymentsRequest.newBuilder(payload).setPageToken(token).build();
+ }
+
+ @Override
+ public ListPatchDeploymentsRequest injectPageSize(
+ ListPatchDeploymentsRequest payload, int pageSize) {
+ return ListPatchDeploymentsRequest.newBuilder(payload).setPageSize(pageSize).build();
+ }
+
+ @Override
+ public Integer extractPageSize(ListPatchDeploymentsRequest payload) {
+ return payload.getPageSize();
+ }
+
+ @Override
+ public String extractNextToken(ListPatchDeploymentsResponse payload) {
+ return payload.getNextPageToken();
+ }
+
+ @Override
+ public Iterable extractResources(
+ ListPatchDeploymentsResponse payload) {
+ return payload.getPatchDeploymentsList() != null
+ ? payload.getPatchDeploymentsList()
+ : ImmutableList.of();
+ }
+ };
+
+ private static final PagedListResponseFactory<
+ ListPatchJobsRequest, ListPatchJobsResponse, ListPatchJobsPagedResponse>
+ LIST_PATCH_JOBS_PAGE_STR_FACT =
+ new PagedListResponseFactory<
+ ListPatchJobsRequest, ListPatchJobsResponse, ListPatchJobsPagedResponse>() {
+ @Override
+ public ApiFuture getFuturePagedResponse(
+ UnaryCallable callable,
+ ListPatchJobsRequest request,
+ ApiCallContext context,
+ ApiFuture futureResponse) {
+ PageContext pageContext =
+ PageContext.create(callable, LIST_PATCH_JOBS_PAGE_STR_DESC, request, context);
+ return ListPatchJobsPagedResponse.createAsync(pageContext, futureResponse);
+ }
+ };
+
+ private static final PagedListResponseFactory<
+ ListPatchJobInstanceDetailsRequest,
+ ListPatchJobInstanceDetailsResponse,
+ ListPatchJobInstanceDetailsPagedResponse>
+ LIST_PATCH_JOB_INSTANCE_DETAILS_PAGE_STR_FACT =
+ new PagedListResponseFactory<
+ ListPatchJobInstanceDetailsRequest,
+ ListPatchJobInstanceDetailsResponse,
+ ListPatchJobInstanceDetailsPagedResponse>() {
+ @Override
+ public ApiFuture getFuturePagedResponse(
+ UnaryCallable<
+ ListPatchJobInstanceDetailsRequest, ListPatchJobInstanceDetailsResponse>
+ callable,
+ ListPatchJobInstanceDetailsRequest request,
+ ApiCallContext context,
+ ApiFuture futureResponse) {
+ PageContext<
+ ListPatchJobInstanceDetailsRequest,
+ ListPatchJobInstanceDetailsResponse,
+ PatchJobInstanceDetails>
+ pageContext =
+ PageContext.create(
+ callable,
+ LIST_PATCH_JOB_INSTANCE_DETAILS_PAGE_STR_DESC,
+ request,
+ context);
+ return ListPatchJobInstanceDetailsPagedResponse.createAsync(
+ pageContext, futureResponse);
+ }
+ };
+
+ private static final PagedListResponseFactory<
+ ListPatchDeploymentsRequest,
+ ListPatchDeploymentsResponse,
+ ListPatchDeploymentsPagedResponse>
+ LIST_PATCH_DEPLOYMENTS_PAGE_STR_FACT =
+ new PagedListResponseFactory<
+ ListPatchDeploymentsRequest,
+ ListPatchDeploymentsResponse,
+ ListPatchDeploymentsPagedResponse>() {
+ @Override
+ public ApiFuture getFuturePagedResponse(
+ UnaryCallable callable,
+ ListPatchDeploymentsRequest request,
+ ApiCallContext context,
+ ApiFuture futureResponse) {
+ PageContext<
+ ListPatchDeploymentsRequest, ListPatchDeploymentsResponse, PatchDeployment>
+ pageContext =
+ PageContext.create(
+ callable, LIST_PATCH_DEPLOYMENTS_PAGE_STR_DESC, request, context);
+ return ListPatchDeploymentsPagedResponse.createAsync(pageContext, futureResponse);
+ }
+ };
+
/** Builder for OsConfigServiceStubSettings. */
public static class Builder extends StubSettings.Builder {
private final ImmutableList> unaryMethodSettingsBuilders;
@@ -247,17 +471,22 @@ public static class Builder extends StubSettings.Builder getPatchJobSettings;
private final UnaryCallSettings.Builder cancelPatchJobSettings;
- private final UnaryCallSettings.Builder
+ private final PagedCallSettings.Builder<
+ ListPatchJobsRequest, ListPatchJobsResponse, ListPatchJobsPagedResponse>
listPatchJobsSettings;
- private final UnaryCallSettings.Builder<
- ListPatchJobInstanceDetailsRequest, ListPatchJobInstanceDetailsResponse>
+ private final PagedCallSettings.Builder<
+ ListPatchJobInstanceDetailsRequest,
+ ListPatchJobInstanceDetailsResponse,
+ ListPatchJobInstanceDetailsPagedResponse>
listPatchJobInstanceDetailsSettings;
private final UnaryCallSettings.Builder
createPatchDeploymentSettings;
private final UnaryCallSettings.Builder
getPatchDeploymentSettings;
- private final UnaryCallSettings.Builder<
- ListPatchDeploymentsRequest, ListPatchDeploymentsResponse>
+ private final PagedCallSettings.Builder<
+ ListPatchDeploymentsRequest,
+ ListPatchDeploymentsResponse,
+ ListPatchDeploymentsPagedResponse>
listPatchDeploymentsSettings;
private final UnaryCallSettings.Builder
deletePatchDeploymentSettings;
@@ -309,15 +538,17 @@ protected Builder(ClientContext clientContext) {
cancelPatchJobSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
- listPatchJobsSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
+ listPatchJobsSettings = PagedCallSettings.newBuilder(LIST_PATCH_JOBS_PAGE_STR_FACT);
- listPatchJobInstanceDetailsSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
+ listPatchJobInstanceDetailsSettings =
+ PagedCallSettings.newBuilder(LIST_PATCH_JOB_INSTANCE_DETAILS_PAGE_STR_FACT);
createPatchDeploymentSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
getPatchDeploymentSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
- listPatchDeploymentsSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
+ listPatchDeploymentsSettings =
+ PagedCallSettings.newBuilder(LIST_PATCH_DEPLOYMENTS_PAGE_STR_FACT);
deletePatchDeploymentSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
@@ -454,14 +685,17 @@ public UnaryCallSettings.Builder cancelPatchJob
}
/** Returns the builder for the settings used for calls to listPatchJobs. */
- public UnaryCallSettings.Builder
+ public PagedCallSettings.Builder<
+ ListPatchJobsRequest, ListPatchJobsResponse, ListPatchJobsPagedResponse>
listPatchJobsSettings() {
return listPatchJobsSettings;
}
/** Returns the builder for the settings used for calls to listPatchJobInstanceDetails. */
- public UnaryCallSettings.Builder<
- ListPatchJobInstanceDetailsRequest, ListPatchJobInstanceDetailsResponse>
+ public PagedCallSettings.Builder<
+ ListPatchJobInstanceDetailsRequest,
+ ListPatchJobInstanceDetailsResponse,
+ ListPatchJobInstanceDetailsPagedResponse>
listPatchJobInstanceDetailsSettings() {
return listPatchJobInstanceDetailsSettings;
}
@@ -479,7 +713,10 @@ public UnaryCallSettings.Builder cancelPatchJob
}
/** Returns the builder for the settings used for calls to listPatchDeployments. */
- public UnaryCallSettings.Builder
+ public PagedCallSettings.Builder<
+ ListPatchDeploymentsRequest,
+ ListPatchDeploymentsResponse,
+ ListPatchDeploymentsPagedResponse>
listPatchDeploymentsSettings() {
return listPatchDeploymentsSettings;
}
diff --git a/google-cloud-os-config/src/test/java/com/google/cloud/osconfig/v1/OsConfigServiceClientTest.java b/google-cloud-os-config/src/test/java/com/google/cloud/osconfig/v1/OsConfigServiceClientTest.java
index ecf126f6..a13da9a9 100644
--- a/google-cloud-os-config/src/test/java/com/google/cloud/osconfig/v1/OsConfigServiceClientTest.java
+++ b/google-cloud-os-config/src/test/java/com/google/cloud/osconfig/v1/OsConfigServiceClientTest.java
@@ -15,6 +15,10 @@
*/
package com.google.cloud.osconfig.v1;
+import static com.google.cloud.osconfig.v1.OsConfigServiceClient.ListPatchDeploymentsPagedResponse;
+import static com.google.cloud.osconfig.v1.OsConfigServiceClient.ListPatchJobInstanceDetailsPagedResponse;
+import static com.google.cloud.osconfig.v1.OsConfigServiceClient.ListPatchJobsPagedResponse;
+
import com.google.api.gax.core.NoCredentialsProvider;
import com.google.api.gax.grpc.GaxGrpcProperties;
import com.google.api.gax.grpc.testing.LocalChannelProvider;
@@ -35,7 +39,10 @@
import com.google.cloud.osconfig.v1.PatchJobs.ListPatchJobInstanceDetailsResponse;
import com.google.cloud.osconfig.v1.PatchJobs.ListPatchJobsRequest;
import com.google.cloud.osconfig.v1.PatchJobs.ListPatchJobsResponse;
+import com.google.cloud.osconfig.v1.PatchJobs.PatchInstanceFilter;
import com.google.cloud.osconfig.v1.PatchJobs.PatchJob;
+import com.google.cloud.osconfig.v1.PatchJobs.PatchJobInstanceDetails;
+import com.google.common.collect.Lists;
import com.google.protobuf.AbstractMessage;
import com.google.protobuf.Empty;
import io.grpc.Status;
@@ -92,26 +99,32 @@ public void tearDown() throws Exception {
@Test
@SuppressWarnings("all")
public void executePatchJobTest() {
- String name = "name3373707";
+ PatchJobName name = PatchJobName.of("[PROJECT]", "[PATCH_JOB]");
String displayName = "displayName1615086568";
String description = "description-1724546052";
boolean dryRun = false;
String errorMessage = "errorMessage-1938755376";
double percentComplete = -1.96096922E8;
- String patchDeployment = "patchDeployment633565980";
+ PatchDeploymentName patchDeployment = PatchDeploymentName.of("[PROJECT]", "[PATCH_DEPLOYMENT]");
PatchJob expectedResponse =
PatchJob.newBuilder()
- .setName(name)
+ .setName(name.toString())
.setDisplayName(displayName)
.setDescription(description)
.setDryRun(dryRun)
.setErrorMessage(errorMessage)
.setPercentComplete(percentComplete)
- .setPatchDeployment(patchDeployment)
+ .setPatchDeployment(patchDeployment.toString())
.build();
mockOsConfigService.addResponse(expectedResponse);
- ExecutePatchJobRequest request = ExecutePatchJobRequest.newBuilder().build();
+ ProjectName parent = ProjectName.of("[PROJECT]");
+ PatchInstanceFilter instanceFilter = PatchInstanceFilter.newBuilder().build();
+ ExecutePatchJobRequest request =
+ ExecutePatchJobRequest.newBuilder()
+ .setParent(parent.toString())
+ .setInstanceFilter(instanceFilter)
+ .build();
PatchJob actualResponse = client.executePatchJob(request);
Assert.assertEquals(expectedResponse, actualResponse);
@@ -120,6 +133,8 @@ public void executePatchJobTest() {
Assert.assertEquals(1, actualRequests.size());
ExecutePatchJobRequest actualRequest = (ExecutePatchJobRequest) actualRequests.get(0);
+ Assert.assertEquals(parent, ProjectName.parse(actualRequest.getParent()));
+ Assert.assertEquals(instanceFilter, actualRequest.getInstanceFilter());
Assert.assertTrue(
channelProvider.isHeaderSent(
ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
@@ -133,7 +148,13 @@ public void executePatchJobExceptionTest() throws Exception {
mockOsConfigService.addException(exception);
try {
- ExecutePatchJobRequest request = ExecutePatchJobRequest.newBuilder().build();
+ ProjectName parent = ProjectName.of("[PROJECT]");
+ PatchInstanceFilter instanceFilter = PatchInstanceFilter.newBuilder().build();
+ ExecutePatchJobRequest request =
+ ExecutePatchJobRequest.newBuilder()
+ .setParent(parent.toString())
+ .setInstanceFilter(instanceFilter)
+ .build();
client.executePatchJob(request);
Assert.fail("No exception raised");
@@ -145,34 +166,35 @@ public void executePatchJobExceptionTest() throws Exception {
@Test
@SuppressWarnings("all")
public void getPatchJobTest() {
- String name = "name3373707";
+ PatchJobName name2 = PatchJobName.of("[PROJECT]", "[PATCH_JOB]");
String displayName = "displayName1615086568";
String description = "description-1724546052";
boolean dryRun = false;
String errorMessage = "errorMessage-1938755376";
double percentComplete = -1.96096922E8;
- String patchDeployment = "patchDeployment633565980";
+ PatchDeploymentName patchDeployment = PatchDeploymentName.of("[PROJECT]", "[PATCH_DEPLOYMENT]");
PatchJob expectedResponse =
PatchJob.newBuilder()
- .setName(name)
+ .setName(name2.toString())
.setDisplayName(displayName)
.setDescription(description)
.setDryRun(dryRun)
.setErrorMessage(errorMessage)
.setPercentComplete(percentComplete)
- .setPatchDeployment(patchDeployment)
+ .setPatchDeployment(patchDeployment.toString())
.build();
mockOsConfigService.addResponse(expectedResponse);
- GetPatchJobRequest request = GetPatchJobRequest.newBuilder().build();
+ PatchJobName name = PatchJobName.of("[PROJECT]", "[PATCH_JOB]");
- PatchJob actualResponse = client.getPatchJob(request);
+ PatchJob actualResponse = client.getPatchJob(name);
Assert.assertEquals(expectedResponse, actualResponse);
List actualRequests = mockOsConfigService.getRequests();
Assert.assertEquals(1, actualRequests.size());
GetPatchJobRequest actualRequest = (GetPatchJobRequest) actualRequests.get(0);
+ Assert.assertEquals(name, PatchJobName.parse(actualRequest.getName()));
Assert.assertTrue(
channelProvider.isHeaderSent(
ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
@@ -186,9 +208,9 @@ public void getPatchJobExceptionTest() throws Exception {
mockOsConfigService.addException(exception);
try {
- GetPatchJobRequest request = GetPatchJobRequest.newBuilder().build();
+ PatchJobName name = PatchJobName.of("[PROJECT]", "[PATCH_JOB]");
- client.getPatchJob(request);
+ client.getPatchJob(name);
Assert.fail("No exception raised");
} catch (InvalidArgumentException e) {
// Expected exception
@@ -198,26 +220,28 @@ public void getPatchJobExceptionTest() throws Exception {
@Test
@SuppressWarnings("all")
public void cancelPatchJobTest() {
- String name = "name3373707";
+ PatchJobName name2 = PatchJobName.of("[PROJECT]", "[PATCH_JOB]");
String displayName = "displayName1615086568";
String description = "description-1724546052";
boolean dryRun = false;
String errorMessage = "errorMessage-1938755376";
double percentComplete = -1.96096922E8;
- String patchDeployment = "patchDeployment633565980";
+ PatchDeploymentName patchDeployment = PatchDeploymentName.of("[PROJECT]", "[PATCH_DEPLOYMENT]");
PatchJob expectedResponse =
PatchJob.newBuilder()
- .setName(name)
+ .setName(name2.toString())
.setDisplayName(displayName)
.setDescription(description)
.setDryRun(dryRun)
.setErrorMessage(errorMessage)
.setPercentComplete(percentComplete)
- .setPatchDeployment(patchDeployment)
+ .setPatchDeployment(patchDeployment.toString())
.build();
mockOsConfigService.addResponse(expectedResponse);
- CancelPatchJobRequest request = CancelPatchJobRequest.newBuilder().build();
+ PatchJobName name = PatchJobName.of("[PROJECT]", "[PATCH_JOB]");
+ CancelPatchJobRequest request =
+ CancelPatchJobRequest.newBuilder().setName(name.toString()).build();
PatchJob actualResponse = client.cancelPatchJob(request);
Assert.assertEquals(expectedResponse, actualResponse);
@@ -226,6 +250,7 @@ public void cancelPatchJobTest() {
Assert.assertEquals(1, actualRequests.size());
CancelPatchJobRequest actualRequest = (CancelPatchJobRequest) actualRequests.get(0);
+ Assert.assertEquals(name, PatchJobName.parse(actualRequest.getName()));
Assert.assertTrue(
channelProvider.isHeaderSent(
ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
@@ -239,7 +264,9 @@ public void cancelPatchJobExceptionTest() throws Exception {
mockOsConfigService.addException(exception);
try {
- CancelPatchJobRequest request = CancelPatchJobRequest.newBuilder().build();
+ PatchJobName name = PatchJobName.of("[PROJECT]", "[PATCH_JOB]");
+ CancelPatchJobRequest request =
+ CancelPatchJobRequest.newBuilder().setName(name.toString()).build();
client.cancelPatchJob(request);
Assert.fail("No exception raised");
@@ -251,20 +278,29 @@ public void cancelPatchJobExceptionTest() throws Exception {
@Test
@SuppressWarnings("all")
public void listPatchJobsTest() {
- String nextPageToken = "nextPageToken-1530815211";
+ String nextPageToken = "";
+ PatchJob patchJobsElement = PatchJob.newBuilder().build();
+ List patchJobs = Arrays.asList(patchJobsElement);
ListPatchJobsResponse expectedResponse =
- ListPatchJobsResponse.newBuilder().setNextPageToken(nextPageToken).build();
+ ListPatchJobsResponse.newBuilder()
+ .setNextPageToken(nextPageToken)
+ .addAllPatchJobs(patchJobs)
+ .build();
mockOsConfigService.addResponse(expectedResponse);
- ListPatchJobsRequest request = ListPatchJobsRequest.newBuilder().build();
+ ProjectName parent = ProjectName.of("[PROJECT]");
- ListPatchJobsResponse actualResponse = client.listPatchJobs(request);
- Assert.assertEquals(expectedResponse, actualResponse);
+ ListPatchJobsPagedResponse pagedListResponse = client.listPatchJobs(parent);
+
+ List resources = Lists.newArrayList(pagedListResponse.iterateAll());
+ Assert.assertEquals(1, resources.size());
+ Assert.assertEquals(expectedResponse.getPatchJobsList().get(0), resources.get(0));
List actualRequests = mockOsConfigService.getRequests();
Assert.assertEquals(1, actualRequests.size());
ListPatchJobsRequest actualRequest = (ListPatchJobsRequest) actualRequests.get(0);
+ Assert.assertEquals(parent, ProjectName.parse(actualRequest.getParent()));
Assert.assertTrue(
channelProvider.isHeaderSent(
ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
@@ -278,9 +314,9 @@ public void listPatchJobsExceptionTest() throws Exception {
mockOsConfigService.addException(exception);
try {
- ListPatchJobsRequest request = ListPatchJobsRequest.newBuilder().build();
+ ProjectName parent = ProjectName.of("[PROJECT]");
- client.listPatchJobs(request);
+ client.listPatchJobs(parent);
Assert.fail("No exception raised");
} catch (InvalidArgumentException e) {
// Expected exception
@@ -290,23 +326,33 @@ public void listPatchJobsExceptionTest() throws Exception {
@Test
@SuppressWarnings("all")
public void listPatchJobInstanceDetailsTest() {
- String nextPageToken = "nextPageToken-1530815211";
+ String nextPageToken = "";
+ PatchJobInstanceDetails patchJobInstanceDetailsElement =
+ PatchJobInstanceDetails.newBuilder().build();
+ List patchJobInstanceDetails =
+ Arrays.asList(patchJobInstanceDetailsElement);
ListPatchJobInstanceDetailsResponse expectedResponse =
- ListPatchJobInstanceDetailsResponse.newBuilder().setNextPageToken(nextPageToken).build();
+ ListPatchJobInstanceDetailsResponse.newBuilder()
+ .setNextPageToken(nextPageToken)
+ .addAllPatchJobInstanceDetails(patchJobInstanceDetails)
+ .build();
mockOsConfigService.addResponse(expectedResponse);
- ListPatchJobInstanceDetailsRequest request =
- ListPatchJobInstanceDetailsRequest.newBuilder().build();
+ PatchJobName parent = PatchJobName.of("[PROJECT]", "[PATCH_JOB]");
- ListPatchJobInstanceDetailsResponse actualResponse =
- client.listPatchJobInstanceDetails(request);
- Assert.assertEquals(expectedResponse, actualResponse);
+ ListPatchJobInstanceDetailsPagedResponse pagedListResponse =
+ client.listPatchJobInstanceDetails(parent);
+
+ List resources = Lists.newArrayList(pagedListResponse.iterateAll());
+ Assert.assertEquals(1, resources.size());
+ Assert.assertEquals(expectedResponse.getPatchJobInstanceDetailsList().get(0), resources.get(0));
List actualRequests = mockOsConfigService.getRequests();
Assert.assertEquals(1, actualRequests.size());
ListPatchJobInstanceDetailsRequest actualRequest =
(ListPatchJobInstanceDetailsRequest) actualRequests.get(0);
+ Assert.assertEquals(parent, PatchJobName.parse(actualRequest.getParent()));
Assert.assertTrue(
channelProvider.isHeaderSent(
ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
@@ -320,10 +366,9 @@ public void listPatchJobInstanceDetailsExceptionTest() throws Exception {
mockOsConfigService.addException(exception);
try {
- ListPatchJobInstanceDetailsRequest request =
- ListPatchJobInstanceDetailsRequest.newBuilder().build();
+ PatchJobName parent = PatchJobName.of("[PROJECT]", "[PATCH_JOB]");
- client.listPatchJobInstanceDetails(request);
+ client.listPatchJobInstanceDetails(parent);
Assert.fail("No exception raised");
} catch (InvalidArgumentException e) {
// Expected exception
@@ -333,15 +378,18 @@ public void listPatchJobInstanceDetailsExceptionTest() throws Exception {
@Test
@SuppressWarnings("all")
public void createPatchDeploymentTest() {
- String name = "name3373707";
+ PatchDeploymentName name = PatchDeploymentName.of("[PROJECT]", "[PATCH_DEPLOYMENT]");
String description = "description-1724546052";
PatchDeployment expectedResponse =
- PatchDeployment.newBuilder().setName(name).setDescription(description).build();
+ PatchDeployment.newBuilder().setName(name.toString()).setDescription(description).build();
mockOsConfigService.addResponse(expectedResponse);
- CreatePatchDeploymentRequest request = CreatePatchDeploymentRequest.newBuilder().build();
+ ProjectName parent = ProjectName.of("[PROJECT]");
+ PatchDeployment patchDeployment = PatchDeployment.newBuilder().build();
+ String patchDeploymentId = "patchDeploymentId-1817061090";
- PatchDeployment actualResponse = client.createPatchDeployment(request);
+ PatchDeployment actualResponse =
+ client.createPatchDeployment(parent, patchDeployment, patchDeploymentId);
Assert.assertEquals(expectedResponse, actualResponse);
List actualRequests = mockOsConfigService.getRequests();
@@ -349,6 +397,9 @@ public void createPatchDeploymentTest() {
CreatePatchDeploymentRequest actualRequest =
(CreatePatchDeploymentRequest) actualRequests.get(0);
+ Assert.assertEquals(parent, ProjectName.parse(actualRequest.getParent()));
+ Assert.assertEquals(patchDeployment, actualRequest.getPatchDeployment());
+ Assert.assertEquals(patchDeploymentId, actualRequest.getPatchDeploymentId());
Assert.assertTrue(
channelProvider.isHeaderSent(
ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
@@ -362,9 +413,11 @@ public void createPatchDeploymentExceptionTest() throws Exception {
mockOsConfigService.addException(exception);
try {
- CreatePatchDeploymentRequest request = CreatePatchDeploymentRequest.newBuilder().build();
+ ProjectName parent = ProjectName.of("[PROJECT]");
+ PatchDeployment patchDeployment = PatchDeployment.newBuilder().build();
+ String patchDeploymentId = "patchDeploymentId-1817061090";
- client.createPatchDeployment(request);
+ client.createPatchDeployment(parent, patchDeployment, patchDeploymentId);
Assert.fail("No exception raised");
} catch (InvalidArgumentException e) {
// Expected exception
@@ -374,21 +427,22 @@ public void createPatchDeploymentExceptionTest() throws Exception {
@Test
@SuppressWarnings("all")
public void getPatchDeploymentTest() {
- String name = "name3373707";
+ PatchDeploymentName name2 = PatchDeploymentName.of("[PROJECT]", "[PATCH_DEPLOYMENT]");
String description = "description-1724546052";
PatchDeployment expectedResponse =
- PatchDeployment.newBuilder().setName(name).setDescription(description).build();
+ PatchDeployment.newBuilder().setName(name2.toString()).setDescription(description).build();
mockOsConfigService.addResponse(expectedResponse);
- GetPatchDeploymentRequest request = GetPatchDeploymentRequest.newBuilder().build();
+ PatchDeploymentName name = PatchDeploymentName.of("[PROJECT]", "[PATCH_DEPLOYMENT]");
- PatchDeployment actualResponse = client.getPatchDeployment(request);
+ PatchDeployment actualResponse = client.getPatchDeployment(name);
Assert.assertEquals(expectedResponse, actualResponse);
List actualRequests = mockOsConfigService.getRequests();
Assert.assertEquals(1, actualRequests.size());
GetPatchDeploymentRequest actualRequest = (GetPatchDeploymentRequest) actualRequests.get(0);
+ Assert.assertEquals(name, PatchDeploymentName.parse(actualRequest.getName()));
Assert.assertTrue(
channelProvider.isHeaderSent(
ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
@@ -402,9 +456,9 @@ public void getPatchDeploymentExceptionTest() throws Exception {
mockOsConfigService.addException(exception);
try {
- GetPatchDeploymentRequest request = GetPatchDeploymentRequest.newBuilder().build();
+ PatchDeploymentName name = PatchDeploymentName.of("[PROJECT]", "[PATCH_DEPLOYMENT]");
- client.getPatchDeployment(request);
+ client.getPatchDeployment(name);
Assert.fail("No exception raised");
} catch (InvalidArgumentException e) {
// Expected exception
@@ -414,20 +468,29 @@ public void getPatchDeploymentExceptionTest() throws Exception {
@Test
@SuppressWarnings("all")
public void listPatchDeploymentsTest() {
- String nextPageToken = "nextPageToken-1530815211";
+ String nextPageToken = "";
+ PatchDeployment patchDeploymentsElement = PatchDeployment.newBuilder().build();
+ List patchDeployments = Arrays.asList(patchDeploymentsElement);
ListPatchDeploymentsResponse expectedResponse =
- ListPatchDeploymentsResponse.newBuilder().setNextPageToken(nextPageToken).build();
+ ListPatchDeploymentsResponse.newBuilder()
+ .setNextPageToken(nextPageToken)
+ .addAllPatchDeployments(patchDeployments)
+ .build();
mockOsConfigService.addResponse(expectedResponse);
- ListPatchDeploymentsRequest request = ListPatchDeploymentsRequest.newBuilder().build();
+ ProjectName parent = ProjectName.of("[PROJECT]");
- ListPatchDeploymentsResponse actualResponse = client.listPatchDeployments(request);
- Assert.assertEquals(expectedResponse, actualResponse);
+ ListPatchDeploymentsPagedResponse pagedListResponse = client.listPatchDeployments(parent);
+
+ List resources = Lists.newArrayList(pagedListResponse.iterateAll());
+ Assert.assertEquals(1, resources.size());
+ Assert.assertEquals(expectedResponse.getPatchDeploymentsList().get(0), resources.get(0));
List actualRequests = mockOsConfigService.getRequests();
Assert.assertEquals(1, actualRequests.size());
ListPatchDeploymentsRequest actualRequest = (ListPatchDeploymentsRequest) actualRequests.get(0);
+ Assert.assertEquals(parent, ProjectName.parse(actualRequest.getParent()));
Assert.assertTrue(
channelProvider.isHeaderSent(
ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
@@ -441,9 +504,9 @@ public void listPatchDeploymentsExceptionTest() throws Exception {
mockOsConfigService.addException(exception);
try {
- ListPatchDeploymentsRequest request = ListPatchDeploymentsRequest.newBuilder().build();
+ ProjectName parent = ProjectName.of("[PROJECT]");
- client.listPatchDeployments(request);
+ client.listPatchDeployments(parent);
Assert.fail("No exception raised");
} catch (InvalidArgumentException e) {
// Expected exception
@@ -456,15 +519,16 @@ public void deletePatchDeploymentTest() {
Empty expectedResponse = Empty.newBuilder().build();
mockOsConfigService.addResponse(expectedResponse);
- DeletePatchDeploymentRequest request = DeletePatchDeploymentRequest.newBuilder().build();
+ PatchDeploymentName name = PatchDeploymentName.of("[PROJECT]", "[PATCH_DEPLOYMENT]");
- client.deletePatchDeployment(request);
+ client.deletePatchDeployment(name);
List actualRequests = mockOsConfigService.getRequests();
Assert.assertEquals(1, actualRequests.size());
DeletePatchDeploymentRequest actualRequest =
(DeletePatchDeploymentRequest) actualRequests.get(0);
+ Assert.assertEquals(name, PatchDeploymentName.parse(actualRequest.getName()));
Assert.assertTrue(
channelProvider.isHeaderSent(
ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
@@ -478,9 +542,9 @@ public void deletePatchDeploymentExceptionTest() throws Exception {
mockOsConfigService.addException(exception);
try {
- DeletePatchDeploymentRequest request = DeletePatchDeploymentRequest.newBuilder().build();
+ PatchDeploymentName name = PatchDeploymentName.of("[PROJECT]", "[PATCH_DEPLOYMENT]");
- client.deletePatchDeployment(request);
+ client.deletePatchDeployment(name);
Assert.fail("No exception raised");
} catch (InvalidArgumentException e) {
// Expected exception
diff --git a/proto-google-cloud-os-config-v1/pom.xml b/proto-google-cloud-os-config-v1/pom.xml
index 85dbb77b..188e5845 100644
--- a/proto-google-cloud-os-config-v1/pom.xml
+++ b/proto-google-cloud-os-config-v1/pom.xml
@@ -21,6 +21,14 @@
com.google.api.grpc
proto-google-common-protos
+
+ com.google.api
+ api-common
+
+
+ com.google.guava
+ guava
+
diff --git a/proto-google-cloud-os-config-v1/src/main/java/com/google/cloud/osconfig/v1/InstanceName.java b/proto-google-cloud-os-config-v1/src/main/java/com/google/cloud/osconfig/v1/InstanceName.java
new file mode 100644
index 00000000..214c82d2
--- /dev/null
+++ b/proto-google-cloud-os-config-v1/src/main/java/com/google/cloud/osconfig/v1/InstanceName.java
@@ -0,0 +1,204 @@
+/*
+ * Copyright 2020 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.cloud.osconfig.v1;
+
+import com.google.api.pathtemplate.PathTemplate;
+import com.google.api.resourcenames.ResourceName;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableMap;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/** AUTO-GENERATED DOCUMENTATION AND CLASS */
+@javax.annotation.Generated("by GAPIC protoc plugin")
+public class InstanceName implements ResourceName {
+
+ private static final PathTemplate PATH_TEMPLATE =
+ PathTemplate.createWithoutUrlEncoding("projects/{project}/zones/{zone}/instances/{instance}");
+
+ private volatile Map fieldValuesMap;
+
+ private final String project;
+ private final String zone;
+ private final String instance;
+
+ public String getProject() {
+ return project;
+ }
+
+ public String getZone() {
+ return zone;
+ }
+
+ public String getInstance() {
+ return instance;
+ }
+
+ public static Builder newBuilder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder(this);
+ }
+
+ private InstanceName(Builder builder) {
+ project = Preconditions.checkNotNull(builder.getProject());
+ zone = Preconditions.checkNotNull(builder.getZone());
+ instance = Preconditions.checkNotNull(builder.getInstance());
+ }
+
+ public static InstanceName of(String project, String zone, String instance) {
+ return newBuilder().setProject(project).setZone(zone).setInstance(instance).build();
+ }
+
+ public static String format(String project, String zone, String instance) {
+ return newBuilder().setProject(project).setZone(zone).setInstance(instance).build().toString();
+ }
+
+ public static InstanceName parse(String formattedString) {
+ if (formattedString.isEmpty()) {
+ return null;
+ }
+ Map matchMap =
+ PATH_TEMPLATE.validatedMatch(
+ formattedString, "InstanceName.parse: formattedString not in valid format");
+ return of(matchMap.get("project"), matchMap.get("zone"), matchMap.get("instance"));
+ }
+
+ public static List parseList(List formattedStrings) {
+ List list = new ArrayList<>(formattedStrings.size());
+ for (String formattedString : formattedStrings) {
+ list.add(parse(formattedString));
+ }
+ return list;
+ }
+
+ public static List toStringList(List values) {
+ List list = new ArrayList(values.size());
+ for (InstanceName value : values) {
+ if (value == null) {
+ list.add("");
+ } else {
+ list.add(value.toString());
+ }
+ }
+ return list;
+ }
+
+ public static boolean isParsableFrom(String formattedString) {
+ return PATH_TEMPLATE.matches(formattedString);
+ }
+
+ public Map getFieldValuesMap() {
+ if (fieldValuesMap == null) {
+ synchronized (this) {
+ if (fieldValuesMap == null) {
+ ImmutableMap.Builder fieldMapBuilder = ImmutableMap.builder();
+ fieldMapBuilder.put("project", project);
+ fieldMapBuilder.put("zone", zone);
+ fieldMapBuilder.put("instance", instance);
+ fieldValuesMap = fieldMapBuilder.build();
+ }
+ }
+ }
+ return fieldValuesMap;
+ }
+
+ public String getFieldValue(String fieldName) {
+ return getFieldValuesMap().get(fieldName);
+ }
+
+ @Override
+ public String toString() {
+ return PATH_TEMPLATE.instantiate("project", project, "zone", zone, "instance", instance);
+ }
+
+ /** Builder for InstanceName. */
+ public static class Builder {
+
+ private String project;
+ private String zone;
+ private String instance;
+
+ public String getProject() {
+ return project;
+ }
+
+ public String getZone() {
+ return zone;
+ }
+
+ public String getInstance() {
+ return instance;
+ }
+
+ public Builder setProject(String project) {
+ this.project = project;
+ return this;
+ }
+
+ public Builder setZone(String zone) {
+ this.zone = zone;
+ return this;
+ }
+
+ public Builder setInstance(String instance) {
+ this.instance = instance;
+ return this;
+ }
+
+ private Builder() {}
+
+ private Builder(InstanceName instanceName) {
+ project = instanceName.project;
+ zone = instanceName.zone;
+ instance = instanceName.instance;
+ }
+
+ public InstanceName build() {
+ return new InstanceName(this);
+ }
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (o == this) {
+ return true;
+ }
+ if (o instanceof InstanceName) {
+ InstanceName that = (InstanceName) o;
+ return (this.project.equals(that.project))
+ && (this.zone.equals(that.zone))
+ && (this.instance.equals(that.instance));
+ }
+ return false;
+ }
+
+ @Override
+ public int hashCode() {
+ int h = 1;
+ h *= 1000003;
+ h ^= project.hashCode();
+ h *= 1000003;
+ h ^= zone.hashCode();
+ h *= 1000003;
+ h ^= instance.hashCode();
+ return h;
+ }
+}
diff --git a/proto-google-cloud-os-config-v1/src/main/java/com/google/cloud/osconfig/v1/OsConfigProto.java b/proto-google-cloud-os-config-v1/src/main/java/com/google/cloud/osconfig/v1/OsConfigProto.java
index 6c349a0e..b07278e9 100644
--- a/proto-google-cloud-os-config-v1/src/main/java/com/google/cloud/osconfig/v1/OsConfigProto.java
+++ b/proto-google-cloud-os-config-v1/src/main/java/com/google/cloud/osconfig/v1/OsConfigProto.java
@@ -38,58 +38,61 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"\n/google/cloud/osconfig/v1/osconfig_serv"
+ "ice.proto\022\030google.cloud.osconfig.v1\032\034goo"
+ "gle/api/annotations.proto\032\027google/api/cl"
- + "ient.proto\0320google/cloud/osconfig/v1/pat"
- + "ch_deployments.proto\032)google/cloud/oscon"
- + "fig/v1/patch_jobs.proto\032\033google/protobuf"
- + "/empty.proto2\276\r\n\017OsConfigService\022\235\001\n\017Exe"
- + "cutePatchJob\0220.google.cloud.osconfig.v1."
- + "ExecutePatchJobRequest\032\".google.cloud.os"
- + "config.v1.PatchJob\"4\202\323\344\223\002.\")/v1/{parent="
- + "projects/*}/patchJobs:execute:\001*\022\221\001\n\013Get"
- + "PatchJob\022,.google.cloud.osconfig.v1.GetP"
- + "atchJobRequest\032\".google.cloud.osconfig.v"
- + "1.PatchJob\"0\202\323\344\223\002#\022!/v1/{name=projects/*"
- + "/patchJobs/*}\332A\004name\022\232\001\n\016CancelPatchJob\022"
- + "/.google.cloud.osconfig.v1.CancelPatchJo"
- + "bRequest\032\".google.cloud.osconfig.v1.Patc"
- + "hJob\"3\202\323\344\223\002-\"(/v1/{name=projects/*/patch"
- + "Jobs/*}:cancel:\001*\022\244\001\n\rListPatchJobs\022..go"
- + "ogle.cloud.osconfig.v1.ListPatchJobsRequ"
- + "est\032/.google.cloud.osconfig.v1.ListPatch"
- + "JobsResponse\"2\202\323\344\223\002#\022!/v1/{parent=projec"
- + "ts/*}/patchJobs\332A\006parent\022\340\001\n\033ListPatchJo"
- + "bInstanceDetails\022<.google.cloud.osconfig"
- + ".v1.ListPatchJobInstanceDetailsRequest\032="
- + ".google.cloud.osconfig.v1.ListPatchJobIn"
- + "stanceDetailsResponse\"D\202\323\344\223\0025\0223/v1/{pare"
- + "nt=projects/*/patchJobs/*}/instanceDetai"
- + "ls\332A\006parent\022\354\001\n\025CreatePatchDeployment\0226."
- + "google.cloud.osconfig.v1.CreatePatchDepl"
- + "oymentRequest\032).google.cloud.osconfig.v1"
- + ".PatchDeployment\"p\202\323\344\223\002<\"(/v1/{parent=pr"
- + "ojects/*}/patchDeployments:\020patch_deploy"
- + "ment\332A+parent,patch_deployment,patch_dep"
- + "loyment_id\022\255\001\n\022GetPatchDeployment\0223.goog"
- + "le.cloud.osconfig.v1.GetPatchDeploymentR"
- + "equest\032).google.cloud.osconfig.v1.PatchD"
- + "eployment\"7\202\323\344\223\002*\022(/v1/{name=projects/*/"
- + "patchDeployments/*}\332A\004name\022\300\001\n\024ListPatch"
- + "Deployments\0225.google.cloud.osconfig.v1.L"
- + "istPatchDeploymentsRequest\0326.google.clou"
- + "d.osconfig.v1.ListPatchDeploymentsRespon"
- + "se\"9\202\323\344\223\002*\022(/v1/{parent=projects/*}/patc"
- + "hDeployments\332A\006parent\022\240\001\n\025DeletePatchDep"
- + "loyment\0226.google.cloud.osconfig.v1.Delet"
- + "ePatchDeploymentRequest\032\026.google.protobu"
- + "f.Empty\"7\202\323\344\223\002**(/v1/{name=projects/*/pa"
- + "tchDeployments/*}\332A\004name\032K\312A\027osconfig.go"
- + "ogleapis.com\322A.https://www.googleapis.co"
- + "m/auth/cloud-platformB\303\001\n\034com.google.clo"
- + "ud.osconfig.v1B\rOsConfigProtoZ@google.go"
- + "lang.org/genproto/googleapis/cloud/oscon"
- + "fig/v1;osconfig\252\002\030Google.Cloud.OsConfig."
- + "V1\312\002\030Google\\Cloud\\OsConfig\\V1\352\002\033Google::"
- + "Cloud::OsConfig::V1b\006proto3"
+ + "ient.proto\032\031google/api/resource.proto\0320g"
+ + "oogle/cloud/osconfig/v1/patch_deployment"
+ + "s.proto\032)google/cloud/osconfig/v1/patch_"
+ + "jobs.proto\032\033google/protobuf/empty.proto2"
+ + "\276\r\n\017OsConfigService\022\235\001\n\017ExecutePatchJob\022"
+ + "0.google.cloud.osconfig.v1.ExecutePatchJ"
+ + "obRequest\032\".google.cloud.osconfig.v1.Pat"
+ + "chJob\"4\202\323\344\223\002.\")/v1/{parent=projects/*}/p"
+ + "atchJobs:execute:\001*\022\221\001\n\013GetPatchJob\022,.go"
+ + "ogle.cloud.osconfig.v1.GetPatchJobReques"
+ + "t\032\".google.cloud.osconfig.v1.PatchJob\"0\202"
+ + "\323\344\223\002#\022!/v1/{name=projects/*/patchJobs/*}"
+ + "\332A\004name\022\232\001\n\016CancelPatchJob\022/.google.clou"
+ + "d.osconfig.v1.CancelPatchJobRequest\032\".go"
+ + "ogle.cloud.osconfig.v1.PatchJob\"3\202\323\344\223\002-\""
+ + "(/v1/{name=projects/*/patchJobs/*}:cance"
+ + "l:\001*\022\244\001\n\rListPatchJobs\022..google.cloud.os"
+ + "config.v1.ListPatchJobsRequest\032/.google."
+ + "cloud.osconfig.v1.ListPatchJobsResponse\""
+ + "2\202\323\344\223\002#\022!/v1/{parent=projects/*}/patchJo"
+ + "bs\332A\006parent\022\340\001\n\033ListPatchJobInstanceDeta"
+ + "ils\022<.google.cloud.osconfig.v1.ListPatch"
+ + "JobInstanceDetailsRequest\032=.google.cloud"
+ + ".osconfig.v1.ListPatchJobInstanceDetails"
+ + "Response\"D\202\323\344\223\0025\0223/v1/{parent=projects/*"
+ + "/patchJobs/*}/instanceDetails\332A\006parent\022\354"
+ + "\001\n\025CreatePatchDeployment\0226.google.cloud."
+ + "osconfig.v1.CreatePatchDeploymentRequest"
+ + "\032).google.cloud.osconfig.v1.PatchDeploym"
+ + "ent\"p\202\323\344\223\002<\"(/v1/{parent=projects/*}/pat"
+ + "chDeployments:\020patch_deployment\332A+parent"
+ + ",patch_deployment,patch_deployment_id\022\255\001"
+ + "\n\022GetPatchDeployment\0223.google.cloud.osco"
+ + "nfig.v1.GetPatchDeploymentRequest\032).goog"
+ + "le.cloud.osconfig.v1.PatchDeployment\"7\202\323"
+ + "\344\223\002*\022(/v1/{name=projects/*/patchDeployme"
+ + "nts/*}\332A\004name\022\300\001\n\024ListPatchDeployments\0225"
+ + ".google.cloud.osconfig.v1.ListPatchDeplo"
+ + "ymentsRequest\0326.google.cloud.osconfig.v1"
+ + ".ListPatchDeploymentsResponse\"9\202\323\344\223\002*\022(/"
+ + "v1/{parent=projects/*}/patchDeployments\332"
+ + "A\006parent\022\240\001\n\025DeletePatchDeployment\0226.goo"
+ + "gle.cloud.osconfig.v1.DeletePatchDeploym"
+ + "entRequest\032\026.google.protobuf.Empty\"7\202\323\344\223"
+ + "\002**(/v1/{name=projects/*/patchDeployment"
+ + "s/*}\332A\004name\032K\312A\027osconfig.googleapis.com\322"
+ + "A.https://www.googleapis.com/auth/cloud-"
+ + "platformB\235\002\n\034com.google.cloud.osconfig.v"
+ + "1B\rOsConfigProtoZ@google.golang.org/genp"
+ + "roto/googleapis/cloud/osconfig/v1;osconf"
+ + "ig\252\002\030Google.Cloud.OsConfig.V1\312\002\030Google\\C"
+ + "loud\\OsConfig\\V1\352\002\033Google::Cloud::OsConf"
+ + "ig::V1\352AW\n\037compute.googleapis.com/Instan"
+ + "ce\0224projects/{project}/zones/{zone}/inst"
+ + "ances/{instance}b\006proto3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
@@ -97,6 +100,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
new com.google.protobuf.Descriptors.FileDescriptor[] {
com.google.api.AnnotationsProto.getDescriptor(),
com.google.api.ClientProto.getDescriptor(),
+ com.google.api.ResourceProto.getDescriptor(),
com.google.cloud.osconfig.v1.PatchDeployments.getDescriptor(),
com.google.cloud.osconfig.v1.PatchJobs.getDescriptor(),
com.google.protobuf.EmptyProto.getDescriptor(),
@@ -107,10 +111,12 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
registry.add(com.google.api.AnnotationsProto.http);
registry.add(com.google.api.ClientProto.methodSignature);
registry.add(com.google.api.ClientProto.oauthScopes);
+ registry.add(com.google.api.ResourceProto.resourceDefinition);
com.google.protobuf.Descriptors.FileDescriptor.internalUpdateFileDescriptor(
descriptor, registry);
com.google.api.AnnotationsProto.getDescriptor();
com.google.api.ClientProto.getDescriptor();
+ com.google.api.ResourceProto.getDescriptor();
com.google.cloud.osconfig.v1.PatchDeployments.getDescriptor();
com.google.cloud.osconfig.v1.PatchJobs.getDescriptor();
com.google.protobuf.EmptyProto.getDescriptor();
diff --git a/proto-google-cloud-os-config-v1/src/main/java/com/google/cloud/osconfig/v1/PatchDeploymentName.java b/proto-google-cloud-os-config-v1/src/main/java/com/google/cloud/osconfig/v1/PatchDeploymentName.java
new file mode 100644
index 00000000..5623d1b7
--- /dev/null
+++ b/proto-google-cloud-os-config-v1/src/main/java/com/google/cloud/osconfig/v1/PatchDeploymentName.java
@@ -0,0 +1,184 @@
+/*
+ * Copyright 2020 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.cloud.osconfig.v1;
+
+import com.google.api.pathtemplate.PathTemplate;
+import com.google.api.resourcenames.ResourceName;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableMap;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/** AUTO-GENERATED DOCUMENTATION AND CLASS */
+@javax.annotation.Generated("by GAPIC protoc plugin")
+public class PatchDeploymentName implements ResourceName {
+
+ private static final PathTemplate PATH_TEMPLATE =
+ PathTemplate.createWithoutUrlEncoding(
+ "projects/{project}/patchDeployments/{patch_deployment}");
+
+ private volatile Map fieldValuesMap;
+
+ private final String project;
+ private final String patchDeployment;
+
+ public String getProject() {
+ return project;
+ }
+
+ public String getPatchDeployment() {
+ return patchDeployment;
+ }
+
+ public static Builder newBuilder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder(this);
+ }
+
+ private PatchDeploymentName(Builder builder) {
+ project = Preconditions.checkNotNull(builder.getProject());
+ patchDeployment = Preconditions.checkNotNull(builder.getPatchDeployment());
+ }
+
+ public static PatchDeploymentName of(String project, String patchDeployment) {
+ return newBuilder().setProject(project).setPatchDeployment(patchDeployment).build();
+ }
+
+ public static String format(String project, String patchDeployment) {
+ return newBuilder().setProject(project).setPatchDeployment(patchDeployment).build().toString();
+ }
+
+ public static PatchDeploymentName parse(String formattedString) {
+ if (formattedString.isEmpty()) {
+ return null;
+ }
+ Map matchMap =
+ PATH_TEMPLATE.validatedMatch(
+ formattedString, "PatchDeploymentName.parse: formattedString not in valid format");
+ return of(matchMap.get("project"), matchMap.get("patch_deployment"));
+ }
+
+ public static List parseList(List formattedStrings) {
+ List list = new ArrayList<>(formattedStrings.size());
+ for (String formattedString : formattedStrings) {
+ list.add(parse(formattedString));
+ }
+ return list;
+ }
+
+ public static List toStringList(List values) {
+ List list = new ArrayList(values.size());
+ for (PatchDeploymentName value : values) {
+ if (value == null) {
+ list.add("");
+ } else {
+ list.add(value.toString());
+ }
+ }
+ return list;
+ }
+
+ public static boolean isParsableFrom(String formattedString) {
+ return PATH_TEMPLATE.matches(formattedString);
+ }
+
+ public Map getFieldValuesMap() {
+ if (fieldValuesMap == null) {
+ synchronized (this) {
+ if (fieldValuesMap == null) {
+ ImmutableMap.Builder fieldMapBuilder = ImmutableMap.builder();
+ fieldMapBuilder.put("project", project);
+ fieldMapBuilder.put("patchDeployment", patchDeployment);
+ fieldValuesMap = fieldMapBuilder.build();
+ }
+ }
+ }
+ return fieldValuesMap;
+ }
+
+ public String getFieldValue(String fieldName) {
+ return getFieldValuesMap().get(fieldName);
+ }
+
+ @Override
+ public String toString() {
+ return PATH_TEMPLATE.instantiate("project", project, "patch_deployment", patchDeployment);
+ }
+
+ /** Builder for PatchDeploymentName. */
+ public static class Builder {
+
+ private String project;
+ private String patchDeployment;
+
+ public String getProject() {
+ return project;
+ }
+
+ public String getPatchDeployment() {
+ return patchDeployment;
+ }
+
+ public Builder setProject(String project) {
+ this.project = project;
+ return this;
+ }
+
+ public Builder setPatchDeployment(String patchDeployment) {
+ this.patchDeployment = patchDeployment;
+ return this;
+ }
+
+ private Builder() {}
+
+ private Builder(PatchDeploymentName patchDeploymentName) {
+ project = patchDeploymentName.project;
+ patchDeployment = patchDeploymentName.patchDeployment;
+ }
+
+ public PatchDeploymentName build() {
+ return new PatchDeploymentName(this);
+ }
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (o == this) {
+ return true;
+ }
+ if (o instanceof PatchDeploymentName) {
+ PatchDeploymentName that = (PatchDeploymentName) o;
+ return (this.project.equals(that.project))
+ && (this.patchDeployment.equals(that.patchDeployment));
+ }
+ return false;
+ }
+
+ @Override
+ public int hashCode() {
+ int h = 1;
+ h *= 1000003;
+ h ^= project.hashCode();
+ h *= 1000003;
+ h ^= patchDeployment.hashCode();
+ return h;
+ }
+}
diff --git a/proto-google-cloud-os-config-v1/src/main/java/com/google/cloud/osconfig/v1/PatchDeployments.java b/proto-google-cloud-os-config-v1/src/main/java/com/google/cloud/osconfig/v1/PatchDeployments.java
index 034c62f5..ea6c8c7b 100644
--- a/proto-google-cloud-os-config-v1/src/main/java/com/google/cloud/osconfig/v1/PatchDeployments.java
+++ b/proto-google-cloud-os-config-v1/src/main/java/com/google/cloud/osconfig/v1/PatchDeployments.java
@@ -300,8 +300,7 @@ public interface PatchDeploymentOrBuilder
*
*
* Output only. Time the patch deployment was created. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -316,8 +315,7 @@ public interface PatchDeploymentOrBuilder
*
*
* Output only. Time the patch deployment was created. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -332,8 +330,7 @@ public interface PatchDeploymentOrBuilder
*
*
* Output only. Time the patch deployment was created. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -347,8 +344,7 @@ public interface PatchDeploymentOrBuilder
*
*
* Output only. Time the patch deployment was last updated. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339]("https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -363,8 +359,7 @@ public interface PatchDeploymentOrBuilder
*
*
* Output only. Time the patch deployment was last updated. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339]("https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -379,8 +374,7 @@ public interface PatchDeploymentOrBuilder
*
*
* Output only. Time the patch deployment was last updated. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339]("https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -394,9 +388,8 @@ public interface PatchDeploymentOrBuilder
*
*
* Output only. The last time a patch job was started by this deployment.
- * Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
+ * format.
*
*
*
@@ -411,9 +404,8 @@ public interface PatchDeploymentOrBuilder
*
*
* Output only. The last time a patch job was started by this deployment.
- * Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
+ * format.
*
*
*
@@ -428,9 +420,8 @@ public interface PatchDeploymentOrBuilder
*
*
* Output only. The last time a patch job was started by this deployment.
- * Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
+ * format.
*
*
*
@@ -450,7 +441,7 @@ public interface PatchDeploymentOrBuilder
* complete a patch. These configurations include instance filter, package
* repository settings, and a schedule. For more information about creating and
* managing patch deployments, see [Scheduling patch
- * jobs](/compute/docs/os-patch-management/schedule-patch-jobs).
+ * jobs](https://cloud.google.com/compute/docs/os-patch-management/schedule-patch-jobs).
*
*
* Protobuf type {@code google.cloud.osconfig.v1.PatchDeployment}
@@ -1099,8 +1090,7 @@ public com.google.cloud.osconfig.v1.PatchDeployments.RecurringSchedule getRecurr
*
*
* Output only. Time the patch deployment was created. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -1117,8 +1107,7 @@ public boolean hasCreateTime() {
*
*
* Output only. Time the patch deployment was created. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -1135,8 +1124,7 @@ public com.google.protobuf.Timestamp getCreateTime() {
*
*
* Output only. Time the patch deployment was created. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -1154,8 +1142,7 @@ public com.google.protobuf.TimestampOrBuilder getCreateTimeOrBuilder() {
*
*
* Output only. Time the patch deployment was last updated. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339]("https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -1172,8 +1159,7 @@ public boolean hasUpdateTime() {
*
*
* Output only. Time the patch deployment was last updated. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339]("https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -1190,8 +1176,7 @@ public com.google.protobuf.Timestamp getUpdateTime() {
*
*
* Output only. Time the patch deployment was last updated. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339]("https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -1209,9 +1194,8 @@ public com.google.protobuf.TimestampOrBuilder getUpdateTimeOrBuilder() {
*
*
* Output only. The last time a patch job was started by this deployment.
- * Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
+ * format.
*
*
*
@@ -1228,9 +1212,8 @@ public boolean hasLastExecuteTime() {
*
*
* Output only. The last time a patch job was started by this deployment.
- * Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
+ * format.
*
*
*
@@ -1249,9 +1232,8 @@ public com.google.protobuf.Timestamp getLastExecuteTime() {
*
*
* Output only. The last time a patch job was started by this deployment.
- * Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
+ * format.
*
*
*
@@ -1565,7 +1547,7 @@ protected Builder newBuilderForType(
* complete a patch. These configurations include instance filter, package
* repository settings, and a schedule. For more information about creating and
* managing patch deployments, see [Scheduling patch
- * jobs](/compute/docs/os-patch-management/schedule-patch-jobs).
+ * jobs](https://cloud.google.com/compute/docs/os-patch-management/schedule-patch-jobs).
*
*
* Protobuf type {@code google.cloud.osconfig.v1.PatchDeployment}
@@ -3176,8 +3158,7 @@ public Builder clearRecurringSchedule() {
*
*
* Output only. Time the patch deployment was created. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -3194,8 +3175,7 @@ public boolean hasCreateTime() {
*
*
* Output only. Time the patch deployment was created. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -3218,8 +3198,7 @@ public com.google.protobuf.Timestamp getCreateTime() {
*
*
* Output only. Time the patch deployment was created. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -3244,8 +3223,7 @@ public Builder setCreateTime(com.google.protobuf.Timestamp value) {
*
*
* Output only. Time the patch deployment was created. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -3267,8 +3245,7 @@ public Builder setCreateTime(com.google.protobuf.Timestamp.Builder builderForVal
*
*
* Output only. Time the patch deployment was created. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -3297,8 +3274,7 @@ public Builder mergeCreateTime(com.google.protobuf.Timestamp value) {
*
*
* Output only. Time the patch deployment was created. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -3321,8 +3297,7 @@ public Builder clearCreateTime() {
*
*
* Output only. Time the patch deployment was created. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -3339,8 +3314,7 @@ public com.google.protobuf.Timestamp.Builder getCreateTimeBuilder() {
*
*
* Output only. Time the patch deployment was created. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -3361,8 +3335,7 @@ public com.google.protobuf.TimestampOrBuilder getCreateTimeOrBuilder() {
*
*
* Output only. Time the patch deployment was created. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -3397,8 +3370,7 @@ public com.google.protobuf.TimestampOrBuilder getCreateTimeOrBuilder() {
*
*
* Output only. Time the patch deployment was last updated. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339]("https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -3415,8 +3387,7 @@ public boolean hasUpdateTime() {
*
*
* Output only. Time the patch deployment was last updated. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339]("https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -3439,8 +3410,7 @@ public com.google.protobuf.Timestamp getUpdateTime() {
*
*
* Output only. Time the patch deployment was last updated. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339]("https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -3465,8 +3435,7 @@ public Builder setUpdateTime(com.google.protobuf.Timestamp value) {
*
*
* Output only. Time the patch deployment was last updated. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339]("https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -3488,8 +3457,7 @@ public Builder setUpdateTime(com.google.protobuf.Timestamp.Builder builderForVal
*
*
* Output only. Time the patch deployment was last updated. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339]("https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -3518,8 +3486,7 @@ public Builder mergeUpdateTime(com.google.protobuf.Timestamp value) {
*
*
* Output only. Time the patch deployment was last updated. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339]("https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -3542,8 +3509,7 @@ public Builder clearUpdateTime() {
*
*
* Output only. Time the patch deployment was last updated. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339]("https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -3560,8 +3526,7 @@ public com.google.protobuf.Timestamp.Builder getUpdateTimeBuilder() {
*
*
* Output only. Time the patch deployment was last updated. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339]("https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -3582,8 +3547,7 @@ public com.google.protobuf.TimestampOrBuilder getUpdateTimeOrBuilder() {
*
*
* Output only. Time the patch deployment was last updated. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339]("https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
*
@@ -3618,9 +3582,8 @@ public com.google.protobuf.TimestampOrBuilder getUpdateTimeOrBuilder() {
*
*
* Output only. The last time a patch job was started by this deployment.
- * Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
+ * format.
*
*
*
@@ -3637,9 +3600,8 @@ public boolean hasLastExecuteTime() {
*
*
* Output only. The last time a patch job was started by this deployment.
- * Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
+ * format.
*
*
*
@@ -3662,9 +3624,8 @@ public com.google.protobuf.Timestamp getLastExecuteTime() {
*
*
* Output only. The last time a patch job was started by this deployment.
- * Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
+ * format.
*
*
*
@@ -3689,9 +3650,8 @@ public Builder setLastExecuteTime(com.google.protobuf.Timestamp value) {
*
*
* Output only. The last time a patch job was started by this deployment.
- * Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
+ * format.
*
*
*
@@ -3713,9 +3673,8 @@ public Builder setLastExecuteTime(com.google.protobuf.Timestamp.Builder builderF
*
*
* Output only. The last time a patch job was started by this deployment.
- * Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
+ * format.
*
*
*
@@ -3744,9 +3703,8 @@ public Builder mergeLastExecuteTime(com.google.protobuf.Timestamp value) {
*
*
* Output only. The last time a patch job was started by this deployment.
- * Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
+ * format.
*
*
*
@@ -3769,9 +3727,8 @@ public Builder clearLastExecuteTime() {
*
*
* Output only. The last time a patch job was started by this deployment.
- * Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
+ * format.
*
*
*
@@ -3788,9 +3745,8 @@ public com.google.protobuf.Timestamp.Builder getLastExecuteTimeBuilder() {
*
*
* Output only. The last time a patch job was started by this deployment.
- * Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
+ * format.
*
*
*
@@ -3811,9 +3767,8 @@ public com.google.protobuf.TimestampOrBuilder getLastExecuteTimeOrBuilder() {
*
*
* Output only. The last time a patch job was started by this deployment.
- * Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
+ * format.
*
*
*
@@ -3940,8 +3895,7 @@ public interface OneTimeScheduleOrBuilder
*
*
* Sets the time for a one time patch deployment. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
* Protobuf type {@code google.cloud.osconfig.v1.OneTimeSchedule}
@@ -4255,8 +4209,7 @@ protected Builder newBuilderForType(
*
*
* Sets the time for a one time patch deployment. Timestamp is in
- * <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
- * text format.
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
*
*
* Protobuf type {@code google.cloud.osconfig.v1.OneTimeSchedule}
diff --git a/proto-google-cloud-os-config-v1/src/main/java/com/google/cloud/osconfig/v1/PatchJobName.java b/proto-google-cloud-os-config-v1/src/main/java/com/google/cloud/osconfig/v1/PatchJobName.java
new file mode 100644
index 00000000..aa966a4b
--- /dev/null
+++ b/proto-google-cloud-os-config-v1/src/main/java/com/google/cloud/osconfig/v1/PatchJobName.java
@@ -0,0 +1,182 @@
+/*
+ * Copyright 2020 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.cloud.osconfig.v1;
+
+import com.google.api.pathtemplate.PathTemplate;
+import com.google.api.resourcenames.ResourceName;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableMap;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/** AUTO-GENERATED DOCUMENTATION AND CLASS */
+@javax.annotation.Generated("by GAPIC protoc plugin")
+public class PatchJobName implements ResourceName {
+
+ private static final PathTemplate PATH_TEMPLATE =
+ PathTemplate.createWithoutUrlEncoding("projects/{project}/patchJobs/{patch_job}");
+
+ private volatile Map fieldValuesMap;
+
+ private final String project;
+ private final String patchJob;
+
+ public String getProject() {
+ return project;
+ }
+
+ public String getPatchJob() {
+ return patchJob;
+ }
+
+ public static Builder newBuilder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder(this);
+ }
+
+ private PatchJobName(Builder builder) {
+ project = Preconditions.checkNotNull(builder.getProject());
+ patchJob = Preconditions.checkNotNull(builder.getPatchJob());
+ }
+
+ public static PatchJobName of(String project, String patchJob) {
+ return newBuilder().setProject(project).setPatchJob(patchJob).build();
+ }
+
+ public static String format(String project, String patchJob) {
+ return newBuilder().setProject(project).setPatchJob(patchJob).build().toString();
+ }
+
+ public static PatchJobName parse(String formattedString) {
+ if (formattedString.isEmpty()) {
+ return null;
+ }
+ Map matchMap =
+ PATH_TEMPLATE.validatedMatch(
+ formattedString, "PatchJobName.parse: formattedString not in valid format");
+ return of(matchMap.get("project"), matchMap.get("patch_job"));
+ }
+
+ public static List parseList(List formattedStrings) {
+ List list = new ArrayList<>(formattedStrings.size());
+ for (String formattedString : formattedStrings) {
+ list.add(parse(formattedString));
+ }
+ return list;
+ }
+
+ public static List toStringList(List values) {
+ List list = new ArrayList(values.size());
+ for (PatchJobName value : values) {
+ if (value == null) {
+ list.add("");
+ } else {
+ list.add(value.toString());
+ }
+ }
+ return list;
+ }
+
+ public static boolean isParsableFrom(String formattedString) {
+ return PATH_TEMPLATE.matches(formattedString);
+ }
+
+ public Map getFieldValuesMap() {
+ if (fieldValuesMap == null) {
+ synchronized (this) {
+ if (fieldValuesMap == null) {
+ ImmutableMap.Builder fieldMapBuilder = ImmutableMap.builder();
+ fieldMapBuilder.put("project", project);
+ fieldMapBuilder.put("patchJob", patchJob);
+ fieldValuesMap = fieldMapBuilder.build();
+ }
+ }
+ }
+ return fieldValuesMap;
+ }
+
+ public String getFieldValue(String fieldName) {
+ return getFieldValuesMap().get(fieldName);
+ }
+
+ @Override
+ public String toString() {
+ return PATH_TEMPLATE.instantiate("project", project, "patch_job", patchJob);
+ }
+
+ /** Builder for PatchJobName. */
+ public static class Builder {
+
+ private String project;
+ private String patchJob;
+
+ public String getProject() {
+ return project;
+ }
+
+ public String getPatchJob() {
+ return patchJob;
+ }
+
+ public Builder setProject(String project) {
+ this.project = project;
+ return this;
+ }
+
+ public Builder setPatchJob(String patchJob) {
+ this.patchJob = patchJob;
+ return this;
+ }
+
+ private Builder() {}
+
+ private Builder(PatchJobName patchJobName) {
+ project = patchJobName.project;
+ patchJob = patchJobName.patchJob;
+ }
+
+ public PatchJobName build() {
+ return new PatchJobName(this);
+ }
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (o == this) {
+ return true;
+ }
+ if (o instanceof PatchJobName) {
+ PatchJobName that = (PatchJobName) o;
+ return (this.project.equals(that.project)) && (this.patchJob.equals(that.patchJob));
+ }
+ return false;
+ }
+
+ @Override
+ public int hashCode() {
+ int h = 1;
+ h *= 1000003;
+ h ^= project.hashCode();
+ h *= 1000003;
+ h ^= patchJob.hashCode();
+ return h;
+ }
+}
diff --git a/proto-google-cloud-os-config-v1/src/main/java/com/google/cloud/osconfig/v1/PatchJobs.java b/proto-google-cloud-os-config-v1/src/main/java/com/google/cloud/osconfig/v1/PatchJobs.java
index 21642e89..d7607830 100644
--- a/proto-google-cloud-os-config-v1/src/main/java/com/google/cloud/osconfig/v1/PatchJobs.java
+++ b/proto-google-cloud-os-config-v1/src/main/java/com/google/cloud/osconfig/v1/PatchJobs.java
@@ -252,7 +252,7 @@ public interface ExecutePatchJobRequestOrBuilder
*
*
*
- * A request message to initiate patching across Google Compute Engine
+ * A request message to initiate patching across Compute Engine
* instances.
*
*
@@ -961,7 +961,7 @@ protected Builder newBuilderForType(
*
*
*
- * A request message to initiate patching across Google Compute Engine
+ * A request message to initiate patching across Compute Engine
* instances.
*
*
@@ -5567,7 +5567,7 @@ public interface PatchJobInstanceDetailsOrBuilder
* Patch details for a VM instance. For more information about reviewing VM
* instance details, see
* [Listing all VM instance details for a specific patch
- * job](/compute/docs/os-patch-management/manage-patch-jobs#list-instance-details).
+ * job](https://cloud.google.com/compute/docs/os-patch-management/manage-patch-jobs#list-instance-details).
*
*
* Protobuf type {@code google.cloud.osconfig.v1.PatchJobInstanceDetails}
@@ -6089,7 +6089,7 @@ protected Builder newBuilderForType(
* Patch details for a VM instance. For more information about reviewing VM
* instance details, see
* [Listing all VM instance details for a specific patch
- * job](/compute/docs/os-patch-management/manage-patch-jobs#list-instance-details).
+ * job](https://cloud.google.com/compute/docs/os-patch-management/manage-patch-jobs#list-instance-details).
*
*
* Protobuf type {@code google.cloud.osconfig.v1.PatchJobInstanceDetails}
@@ -9629,7 +9629,8 @@ public interface PatchJobOrBuilder
* Instances details are not included in the job. To paginate through instance
* details, use ListPatchJobInstanceDetails.
* For more information about patch jobs, see
- * [Creating patch jobs](/compute/docs/os-patch-management/create-patch-job).
+ * [Creating patch
+ * jobs](https://cloud.google.com/compute/docs/os-patch-management/create-patch-job).
*
*
* Protobuf type {@code google.cloud.osconfig.v1.PatchJob}
@@ -13081,7 +13082,8 @@ protected Builder newBuilderForType(
* Instances details are not included in the job. To paginate through instance
* details, use ListPatchJobInstanceDetails.
* For more information about patch jobs, see
- * [Creating patch jobs](/compute/docs/os-patch-management/create-patch-job).
+ * [Creating patch
+ * jobs](https://cloud.google.com/compute/docs/os-patch-management/create-patch-job).
*
*
* Protobuf type {@code google.cloud.osconfig.v1.PatchJob}
@@ -28462,7 +28464,7 @@ public interface ExecStepConfigOrBuilder
*
*
*
- * A Google Cloud Storage object containing the executable.
+ * A Cloud Storage object containing the executable.
*
*
* .google.cloud.osconfig.v1.GcsObject gcs_object = 2;
@@ -28474,7 +28476,7 @@ public interface ExecStepConfigOrBuilder
*
*
*
- * A Google Cloud Storage object containing the executable.
+ * A Cloud Storage object containing the executable.
*
*
* .google.cloud.osconfig.v1.GcsObject gcs_object = 2;
@@ -28486,7 +28488,7 @@ public interface ExecStepConfigOrBuilder
*
*
*
- * A Google Cloud Storage object containing the executable.
+ * A Cloud Storage object containing the executable.
*
*
* .google.cloud.osconfig.v1.GcsObject gcs_object = 2;
@@ -28985,7 +28987,7 @@ public com.google.protobuf.ByteString getLocalPathBytes() {
*
*
*
- * A Google Cloud Storage object containing the executable.
+ * A Cloud Storage object containing the executable.
*
*
* .google.cloud.osconfig.v1.GcsObject gcs_object = 2;
@@ -28999,7 +29001,7 @@ public boolean hasGcsObject() {
*
*
*
- * A Google Cloud Storage object containing the executable.
+ * A Cloud Storage object containing the executable.
*
*
* .google.cloud.osconfig.v1.GcsObject gcs_object = 2;
@@ -29016,7 +29018,7 @@ public com.google.cloud.osconfig.v1.PatchJobs.GcsObject getGcsObject() {
*
*
*
- * A Google Cloud Storage object containing the executable.
+ * A Cloud Storage object containing the executable.
*
*
* .google.cloud.osconfig.v1.GcsObject gcs_object = 2;
@@ -29704,7 +29706,7 @@ public Builder setLocalPathBytes(com.google.protobuf.ByteString value) {
*
*
*
- * A Google Cloud Storage object containing the executable.
+ * A Cloud Storage object containing the executable.
*
*
* .google.cloud.osconfig.v1.GcsObject gcs_object = 2;
@@ -29718,7 +29720,7 @@ public boolean hasGcsObject() {
*
*
*
- * A Google Cloud Storage object containing the executable.
+ * A Cloud Storage object containing the executable.
*
*
* .google.cloud.osconfig.v1.GcsObject gcs_object = 2;
@@ -29742,7 +29744,7 @@ public com.google.cloud.osconfig.v1.PatchJobs.GcsObject getGcsObject() {
*
*
*
- * A Google Cloud Storage object containing the executable.
+ * A Cloud Storage object containing the executable.
*
*
* .google.cloud.osconfig.v1.GcsObject gcs_object = 2;
@@ -29764,7 +29766,7 @@ public Builder setGcsObject(com.google.cloud.osconfig.v1.PatchJobs.GcsObject val
*
*
*
- * A Google Cloud Storage object containing the executable.
+ * A Cloud Storage object containing the executable.
*
*
* .google.cloud.osconfig.v1.GcsObject gcs_object = 2;
@@ -29784,7 +29786,7 @@ public Builder setGcsObject(
*
*
*
- * A Google Cloud Storage object containing the executable.
+ * A Cloud Storage object containing the executable.
*
*
* .google.cloud.osconfig.v1.GcsObject gcs_object = 2;
@@ -29816,7 +29818,7 @@ public Builder mergeGcsObject(com.google.cloud.osconfig.v1.PatchJobs.GcsObject v
*
*
*
- * A Google Cloud Storage object containing the executable.
+ * A Cloud Storage object containing the executable.
*
*
* .google.cloud.osconfig.v1.GcsObject gcs_object = 2;
@@ -29841,7 +29843,7 @@ public Builder clearGcsObject() {
*
*
*
- * A Google Cloud Storage object containing the executable.
+ * A Cloud Storage object containing the executable.
*
*
* .google.cloud.osconfig.v1.GcsObject gcs_object = 2;
@@ -29853,7 +29855,7 @@ public com.google.cloud.osconfig.v1.PatchJobs.GcsObject.Builder getGcsObjectBuil
*
*
*
- * A Google Cloud Storage object containing the executable.
+ * A Cloud Storage object containing the executable.
*
*
* .google.cloud.osconfig.v1.GcsObject gcs_object = 2;
@@ -29872,7 +29874,7 @@ public com.google.cloud.osconfig.v1.PatchJobs.GcsObjectOrBuilder getGcsObjectOrB
*
*
*
- * A Google Cloud Storage object containing the executable.
+ * A Cloud Storage object containing the executable.
*
*
* .google.cloud.osconfig.v1.GcsObject gcs_object = 2;
@@ -30203,7 +30205,7 @@ public interface GcsObjectOrBuilder
*
*
*
- * Required. Bucket of the Google Cloud Storage object.
+ * Required. Bucket of the Cloud Storage object.
*
*
* string bucket = 1 [(.google.api.field_behavior) = REQUIRED];
@@ -30215,7 +30217,7 @@ public interface GcsObjectOrBuilder
*
*
*
- * Required. Bucket of the Google Cloud Storage object.
+ * Required. Bucket of the Cloud Storage object.
*
*
* string bucket = 1 [(.google.api.field_behavior) = REQUIRED];
@@ -30228,7 +30230,7 @@ public interface GcsObjectOrBuilder
*
*
*
- * Required. Name of the Google Cloud Storage object.
+ * Required. Name of the Cloud Storage object.
*
*
* string object = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -30240,7 +30242,7 @@ public interface GcsObjectOrBuilder
*
*
*
- * Required. Name of the Google Cloud Storage object.
+ * Required. Name of the Cloud Storage object.
*
*
* string object = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -30253,7 +30255,7 @@ public interface GcsObjectOrBuilder
*
*
*
- * Required. Generation number of the Google Cloud Storage object. This is used to
+ * Required. Generation number of the Cloud Storage object. This is used to
* ensure that the ExecStep specified by this PatchJob does not change.
*
*
@@ -30267,7 +30269,7 @@ public interface GcsObjectOrBuilder
*
*
*
- * Google Cloud Storage object representation.
+ * Cloud Storage object representation.
*
*
* Protobuf type {@code google.cloud.osconfig.v1.GcsObject}
@@ -30375,7 +30377,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
*
*
*
- * Required. Bucket of the Google Cloud Storage object.
+ * Required. Bucket of the Cloud Storage object.
*
*
* string bucket = 1 [(.google.api.field_behavior) = REQUIRED];
@@ -30397,7 +30399,7 @@ public java.lang.String getBucket() {
*
*
*
- * Required. Bucket of the Google Cloud Storage object.
+ * Required. Bucket of the Cloud Storage object.
*
*
* string bucket = 1 [(.google.api.field_behavior) = REQUIRED];
@@ -30422,7 +30424,7 @@ public com.google.protobuf.ByteString getBucketBytes() {
*
*
*
- * Required. Name of the Google Cloud Storage object.
+ * Required. Name of the Cloud Storage object.
*
*
* string object = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -30444,7 +30446,7 @@ public java.lang.String getObject() {
*
*
*
- * Required. Name of the Google Cloud Storage object.
+ * Required. Name of the Cloud Storage object.
*
*
* string object = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -30469,7 +30471,7 @@ public com.google.protobuf.ByteString getObjectBytes() {
*
*
*
- * Required. Generation number of the Google Cloud Storage object. This is used to
+ * Required. Generation number of the Cloud Storage object. This is used to
* ensure that the ExecStep specified by this PatchJob does not change.
*
*
@@ -30663,7 +30665,7 @@ protected Builder newBuilderForType(
*
*
*
- * Google Cloud Storage object representation.
+ * Cloud Storage object representation.
*
*
* Protobuf type {@code google.cloud.osconfig.v1.GcsObject}
@@ -30839,7 +30841,7 @@ public Builder mergeFrom(
*
*
*
- * Required. Bucket of the Google Cloud Storage object.
+ * Required. Bucket of the Cloud Storage object.
*
*
* string bucket = 1 [(.google.api.field_behavior) = REQUIRED];
@@ -30861,7 +30863,7 @@ public java.lang.String getBucket() {
*
*
*
- * Required. Bucket of the Google Cloud Storage object.
+ * Required. Bucket of the Cloud Storage object.
*
*
* string bucket = 1 [(.google.api.field_behavior) = REQUIRED];
@@ -30883,7 +30885,7 @@ public com.google.protobuf.ByteString getBucketBytes() {
*
*
*
- * Required. Bucket of the Google Cloud Storage object.
+ * Required. Bucket of the Cloud Storage object.
*
*
* string bucket = 1 [(.google.api.field_behavior) = REQUIRED];
@@ -30904,7 +30906,7 @@ public Builder setBucket(java.lang.String value) {
*
*
*
- * Required. Bucket of the Google Cloud Storage object.
+ * Required. Bucket of the Cloud Storage object.
*
*
* string bucket = 1 [(.google.api.field_behavior) = REQUIRED];
@@ -30921,7 +30923,7 @@ public Builder clearBucket() {
*
*
*
- * Required. Bucket of the Google Cloud Storage object.
+ * Required. Bucket of the Cloud Storage object.
*
*
* string bucket = 1 [(.google.api.field_behavior) = REQUIRED];
@@ -30945,7 +30947,7 @@ public Builder setBucketBytes(com.google.protobuf.ByteString value) {
*
*
*
- * Required. Name of the Google Cloud Storage object.
+ * Required. Name of the Cloud Storage object.
*
*
* string object = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -30967,7 +30969,7 @@ public java.lang.String getObject() {
*
*
*
- * Required. Name of the Google Cloud Storage object.
+ * Required. Name of the Cloud Storage object.
*
*
* string object = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -30989,7 +30991,7 @@ public com.google.protobuf.ByteString getObjectBytes() {
*
*
*
- * Required. Name of the Google Cloud Storage object.
+ * Required. Name of the Cloud Storage object.
*
*
* string object = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -31010,7 +31012,7 @@ public Builder setObject(java.lang.String value) {
*
*
*
- * Required. Name of the Google Cloud Storage object.
+ * Required. Name of the Cloud Storage object.
*
*
* string object = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -31027,7 +31029,7 @@ public Builder clearObject() {
*
*
*
- * Required. Name of the Google Cloud Storage object.
+ * Required. Name of the Cloud Storage object.
*
*
* string object = 2 [(.google.api.field_behavior) = REQUIRED];
@@ -31051,7 +31053,7 @@ public Builder setObjectBytes(com.google.protobuf.ByteString value) {
*
*
*
- * Required. Generation number of the Google Cloud Storage object. This is used to
+ * Required. Generation number of the Cloud Storage object. This is used to
* ensure that the ExecStep specified by this PatchJob does not change.
*
*
@@ -31066,7 +31068,7 @@ public long getGenerationNumber() {
*
*
*
- * Required. Generation number of the Google Cloud Storage object. This is used to
+ * Required. Generation number of the Cloud Storage object. This is used to
* ensure that the ExecStep specified by this PatchJob does not change.
*
*
@@ -31085,7 +31087,7 @@ public Builder setGenerationNumber(long value) {
*
*
*
- * Required. Generation number of the Google Cloud Storage object. This is used to
+ * Required. Generation number of the Cloud Storage object. This is used to
* ensure that the ExecStep specified by this PatchJob does not change.
*
*
@@ -31175,8 +31177,8 @@ public interface PatchInstanceFilterOrBuilder
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -31188,8 +31190,8 @@ public interface PatchInstanceFilterOrBuilder
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -31200,8 +31202,8 @@ public interface PatchInstanceFilterOrBuilder
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -31212,8 +31214,8 @@ public interface PatchInstanceFilterOrBuilder
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -31227,8 +31229,8 @@ public interface PatchInstanceFilterOrBuilder
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -31578,7 +31580,7 @@ public interface GroupLabelOrBuilder
*
*
*
- * Google Compute Engine instance labels that must be present for a VM
+ * Compute Engine instance labels that must be present for a VM
* instance to be targeted by this filter.
*
*
@@ -31589,7 +31591,7 @@ public interface GroupLabelOrBuilder
*
*
*
- * Google Compute Engine instance labels that must be present for a VM
+ * Compute Engine instance labels that must be present for a VM
* instance to be targeted by this filter.
*
*
@@ -31603,7 +31605,7 @@ public interface GroupLabelOrBuilder
*
*
*
- * Google Compute Engine instance labels that must be present for a VM
+ * Compute Engine instance labels that must be present for a VM
* instance to be targeted by this filter.
*
*
@@ -31614,7 +31616,7 @@ public interface GroupLabelOrBuilder
*
*
*
- * Google Compute Engine instance labels that must be present for a VM
+ * Compute Engine instance labels that must be present for a VM
* instance to be targeted by this filter.
*
*
@@ -31625,7 +31627,7 @@ public interface GroupLabelOrBuilder
*
*
*
- * Google Compute Engine instance labels that must be present for a VM
+ * Compute Engine instance labels that must be present for a VM
* instance to be targeted by this filter.
*
*
@@ -31637,8 +31639,13 @@ public interface GroupLabelOrBuilder
*
*
*
- * Represents a group of VMs that can be identified as having all these
- * labels, for example "env=prod and app=web".
+ * Targets a group of VM instances by using their [assigned
+ * labels](https://cloud.google.com/compute/docs/labeling-resources). Labels
+ * are key-value pairs. A `GroupLabel` is a combination of labels
+ * that is used to target VMs for a patch job.
+ * For example, a patch job can target VMs that have the following
+ * `GroupLabel`: `{"env":"test", "app":"web"}`. This means that the patch job
+ * is applied to VMs that have both the labels `env=test` and `app=web`.
*
*
* Protobuf type {@code google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel}
@@ -31776,7 +31783,7 @@ public int getLabelsCount() {
*
*
*
- * Google Compute Engine instance labels that must be present for a VM
+ * Compute Engine instance labels that must be present for a VM
* instance to be targeted by this filter.
*
*
@@ -31797,7 +31804,7 @@ public java.util.Map getLabels() {
*
*
*
- * Google Compute Engine instance labels that must be present for a VM
+ * Compute Engine instance labels that must be present for a VM
* instance to be targeted by this filter.
*
*
@@ -31810,7 +31817,7 @@ public java.util.Map getLabelsMap() {
*
*
*
- * Google Compute Engine instance labels that must be present for a VM
+ * Compute Engine instance labels that must be present for a VM
* instance to be targeted by this filter.
*
*
@@ -31828,7 +31835,7 @@ public java.lang.String getLabelsOrDefault(
*
*
*
- * Google Compute Engine instance labels that must be present for a VM
+ * Compute Engine instance labels that must be present for a VM
* instance to be targeted by this filter.
*
*
@@ -32021,8 +32028,13 @@ protected Builder newBuilderForType(
*
*
*
- * Represents a group of VMs that can be identified as having all these
- * labels, for example "env=prod and app=web".
+ * Targets a group of VM instances by using their [assigned
+ * labels](https://cloud.google.com/compute/docs/labeling-resources). Labels
+ * are key-value pairs. A `GroupLabel` is a combination of labels
+ * that is used to target VMs for a patch job.
+ * For example, a patch job can target VMs that have the following
+ * `GroupLabel`: `{"env":"test", "app":"web"}`. This means that the patch job
+ * is applied to VMs that have both the labels `env=test` and `app=web`.
*
*
* Protobuf type {@code google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel}
@@ -32244,7 +32256,7 @@ public int getLabelsCount() {
*
*
*
- * Google Compute Engine instance labels that must be present for a VM
+ * Compute Engine instance labels that must be present for a VM
* instance to be targeted by this filter.
*
*
@@ -32265,7 +32277,7 @@ public java.util.Map getLabels() {
*
*
*
- * Google Compute Engine instance labels that must be present for a VM
+ * Compute Engine instance labels that must be present for a VM
* instance to be targeted by this filter.
*
*
@@ -32278,7 +32290,7 @@ public java.util.Map getLabelsMap() {
*
*
*
- * Google Compute Engine instance labels that must be present for a VM
+ * Compute Engine instance labels that must be present for a VM
* instance to be targeted by this filter.
*
*
@@ -32296,7 +32308,7 @@ public java.lang.String getLabelsOrDefault(
*
*
*
- * Google Compute Engine instance labels that must be present for a VM
+ * Compute Engine instance labels that must be present for a VM
* instance to be targeted by this filter.
*
*
@@ -32321,7 +32333,7 @@ public Builder clearLabels() {
*
*
*
- * Google Compute Engine instance labels that must be present for a VM
+ * Compute Engine instance labels that must be present for a VM
* instance to be targeted by this filter.
*
*
@@ -32343,7 +32355,7 @@ public java.util.Map getMutableLabels() {
*
*
*
- * Google Compute Engine instance labels that must be present for a VM
+ * Compute Engine instance labels that must be present for a VM
* instance to be targeted by this filter.
*
*
@@ -32363,7 +32375,7 @@ public Builder putLabels(java.lang.String key, java.lang.String value) {
*
*
*
- * Google Compute Engine instance labels that must be present for a VM
+ * Compute Engine instance labels that must be present for a VM
* instance to be targeted by this filter.
*
*
@@ -32455,8 +32467,8 @@ public boolean getAll() {
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -32470,8 +32482,8 @@ public boolean getAll() {
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -32487,8 +32499,8 @@ public boolean getAll() {
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -32501,8 +32513,8 @@ public int getGroupLabelsCount() {
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -32516,8 +32528,8 @@ public com.google.cloud.osconfig.v1.PatchJobs.PatchInstanceFilter.GroupLabel get
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -33297,8 +33309,8 @@ private void ensureGroupLabelsIsMutable() {
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -33316,8 +33328,8 @@ private void ensureGroupLabelsIsMutable() {
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -33334,8 +33346,8 @@ public int getGroupLabelsCount() {
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -33353,8 +33365,8 @@ public com.google.cloud.osconfig.v1.PatchJobs.PatchInstanceFilter.GroupLabel get
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -33378,8 +33390,8 @@ public Builder setGroupLabels(
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -33402,8 +33414,8 @@ public Builder setGroupLabels(
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -33427,8 +33439,8 @@ public Builder addGroupLabels(
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -33452,8 +33464,8 @@ public Builder addGroupLabels(
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -33475,8 +33487,8 @@ public Builder addGroupLabels(
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -33499,8 +33511,8 @@ public Builder addGroupLabels(
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -33523,8 +33535,8 @@ public Builder addAllGroupLabels(
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -33544,8 +33556,8 @@ public Builder clearGroupLabels() {
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -33565,8 +33577,8 @@ public Builder removeGroupLabels(int index) {
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -33580,8 +33592,8 @@ public Builder removeGroupLabels(int index) {
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -33599,8 +33611,8 @@ public Builder removeGroupLabels(int index) {
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -33620,8 +33632,8 @@ public Builder removeGroupLabels(int index) {
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -33638,8 +33650,8 @@ public Builder removeGroupLabels(int index) {
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
@@ -33657,8 +33669,8 @@ public Builder removeGroupLabels(int index) {
*
*
*
- * Targets VM instances matching at least one of these label sets. This allows
- * targeting of disparate groups, for example "env=prod or env=staging".
+ * Targets VM instances matching ANY of these GroupLabels. This allows
+ * targeting of disparate groups of VM instances.
*
*
* repeated .google.cloud.osconfig.v1.PatchInstanceFilter.GroupLabel group_labels = 2;
diff --git a/proto-google-cloud-os-config-v1/src/main/java/com/google/cloud/osconfig/v1/ProjectName.java b/proto-google-cloud-os-config-v1/src/main/java/com/google/cloud/osconfig/v1/ProjectName.java
new file mode 100644
index 00000000..802da170
--- /dev/null
+++ b/proto-google-cloud-os-config-v1/src/main/java/com/google/cloud/osconfig/v1/ProjectName.java
@@ -0,0 +1,162 @@
+/*
+ * Copyright 2020 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.cloud.osconfig.v1;
+
+import com.google.api.pathtemplate.PathTemplate;
+import com.google.api.resourcenames.ResourceName;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableMap;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/** AUTO-GENERATED DOCUMENTATION AND CLASS */
+@javax.annotation.Generated("by GAPIC protoc plugin")
+public class ProjectName implements ResourceName {
+
+ private static final PathTemplate PATH_TEMPLATE =
+ PathTemplate.createWithoutUrlEncoding("projects/{project}");
+
+ private volatile Map fieldValuesMap;
+
+ private final String project;
+
+ public String getProject() {
+ return project;
+ }
+
+ public static Builder newBuilder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder(this);
+ }
+
+ private ProjectName(Builder builder) {
+ project = Preconditions.checkNotNull(builder.getProject());
+ }
+
+ public static ProjectName of(String project) {
+ return newBuilder().setProject(project).build();
+ }
+
+ public static String format(String project) {
+ return newBuilder().setProject(project).build().toString();
+ }
+
+ public static ProjectName parse(String formattedString) {
+ if (formattedString.isEmpty()) {
+ return null;
+ }
+ Map matchMap =
+ PATH_TEMPLATE.validatedMatch(
+ formattedString, "ProjectName.parse: formattedString not in valid format");
+ return of(matchMap.get("project"));
+ }
+
+ public static List parseList(List formattedStrings) {
+ List list = new ArrayList<>(formattedStrings.size());
+ for (String formattedString : formattedStrings) {
+ list.add(parse(formattedString));
+ }
+ return list;
+ }
+
+ public static List toStringList(List values) {
+ List list = new ArrayList(values.size());
+ for (ProjectName value : values) {
+ if (value == null) {
+ list.add("");
+ } else {
+ list.add(value.toString());
+ }
+ }
+ return list;
+ }
+
+ public static boolean isParsableFrom(String formattedString) {
+ return PATH_TEMPLATE.matches(formattedString);
+ }
+
+ public Map getFieldValuesMap() {
+ if (fieldValuesMap == null) {
+ synchronized (this) {
+ if (fieldValuesMap == null) {
+ ImmutableMap.Builder fieldMapBuilder = ImmutableMap.builder();
+ fieldMapBuilder.put("project", project);
+ fieldValuesMap = fieldMapBuilder.build();
+ }
+ }
+ }
+ return fieldValuesMap;
+ }
+
+ public String getFieldValue(String fieldName) {
+ return getFieldValuesMap().get(fieldName);
+ }
+
+ @Override
+ public String toString() {
+ return PATH_TEMPLATE.instantiate("project", project);
+ }
+
+ /** Builder for ProjectName. */
+ public static class Builder {
+
+ private String project;
+
+ public String getProject() {
+ return project;
+ }
+
+ public Builder setProject(String project) {
+ this.project = project;
+ return this;
+ }
+
+ private Builder() {}
+
+ private Builder(ProjectName projectName) {
+ project = projectName.project;
+ }
+
+ public ProjectName build() {
+ return new ProjectName(this);
+ }
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (o == this) {
+ return true;
+ }
+ if (o instanceof ProjectName) {
+ ProjectName that = (ProjectName) o;
+ return (this.project.equals(that.project));
+ }
+ return false;
+ }
+
+ @Override
+ public int hashCode() {
+ int h = 1;
+ h *= 1000003;
+ h ^= project.hashCode();
+ return h;
+ }
+}
diff --git a/proto-google-cloud-os-config-v1/src/main/proto/google/cloud/osconfig/v1/osconfig_service.proto b/proto-google-cloud-os-config-v1/src/main/proto/google/cloud/osconfig/v1/osconfig_service.proto
index 6fada486..2a654eaa 100644
--- a/proto-google-cloud-os-config-v1/src/main/proto/google/cloud/osconfig/v1/osconfig_service.proto
+++ b/proto-google-cloud-os-config-v1/src/main/proto/google/cloud/osconfig/v1/osconfig_service.proto
@@ -18,6 +18,7 @@ package google.cloud.osconfig.v1;
import "google/api/annotations.proto";
import "google/api/client.proto";
+import "google/api/resource.proto";
import "google/cloud/osconfig/v1/patch_deployments.proto";
import "google/cloud/osconfig/v1/patch_jobs.proto";
import "google/protobuf/empty.proto";
@@ -28,6 +29,10 @@ option java_outer_classname = "OsConfigProto";
option java_package = "com.google.cloud.osconfig.v1";
option php_namespace = "Google\\Cloud\\OsConfig\\V1";
option ruby_package = "Google::Cloud::OsConfig::V1";
+option (google.api.resource_definition) = {
+ type: "compute.googleapis.com/Instance"
+ pattern: "projects/{project}/zones/{zone}/instances/{instance}"
+};
// OS Config API
//
diff --git a/proto-google-cloud-os-config-v1/src/main/proto/google/cloud/osconfig/v1/patch_deployments.proto b/proto-google-cloud-os-config-v1/src/main/proto/google/cloud/osconfig/v1/patch_deployments.proto
index 6760e1cf..7d699222 100644
--- a/proto-google-cloud-os-config-v1/src/main/proto/google/cloud/osconfig/v1/patch_deployments.proto
+++ b/proto-google-cloud-os-config-v1/src/main/proto/google/cloud/osconfig/v1/patch_deployments.proto
@@ -36,7 +36,7 @@ option ruby_package = "Google::Cloud::OsConfig::V1";
// complete a patch. These configurations include instance filter, package
// repository settings, and a schedule. For more information about creating and
// managing patch deployments, see [Scheduling patch
-// jobs](/compute/docs/os-patch-management/schedule-patch-jobs).
+// jobs](https://cloud.google.com/compute/docs/os-patch-management/schedule-patch-jobs).
message PatchDeployment {
option (google.api.resource) = {
type: "osconfig.googleapis.com/PatchDeployment"
@@ -72,25 +72,21 @@ message PatchDeployment {
}
// Output only. Time the patch deployment was created. Timestamp is in
- // RFC3339
- // text format.
+ // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
google.protobuf.Timestamp create_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Time the patch deployment was last updated. Timestamp is in
- // RFC3339
- // text format.
+ // [RFC3339]("https://www.ietf.org/rfc/rfc3339.txt) text format.
google.protobuf.Timestamp update_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The last time a patch job was started by this deployment.
- // Timestamp is in
- // RFC3339
- // text format.
+ // Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
+ // format.
google.protobuf.Timestamp last_execute_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// Sets the time for a one time patch deployment. Timestamp is in
-// RFC3339
-// text format.
+// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
message OneTimeSchedule {
// Required. The desired patch job execution time.
google.protobuf.Timestamp execute_time = 1 [(google.api.field_behavior) = REQUIRED];
diff --git a/proto-google-cloud-os-config-v1/src/main/proto/google/cloud/osconfig/v1/patch_jobs.proto b/proto-google-cloud-os-config-v1/src/main/proto/google/cloud/osconfig/v1/patch_jobs.proto
index 26c2eb83..cd274d64 100644
--- a/proto-google-cloud-os-config-v1/src/main/proto/google/cloud/osconfig/v1/patch_jobs.proto
+++ b/proto-google-cloud-os-config-v1/src/main/proto/google/cloud/osconfig/v1/patch_jobs.proto
@@ -28,7 +28,7 @@ option java_package = "com.google.cloud.osconfig.v1";
option php_namespace = "Google\\Cloud\\OsConfig\\V1";
option ruby_package = "Google::Cloud::OsConfig::V1";
-// A request message to initiate patching across Google Compute Engine
+// A request message to initiate patching across Compute Engine
// instances.
message ExecutePatchJobRequest {
// Required. The project in which to run this patch in the form `projects/*`
@@ -109,7 +109,7 @@ message ListPatchJobInstanceDetailsResponse {
// Patch details for a VM instance. For more information about reviewing VM
// instance details, see
// [Listing all VM instance details for a specific patch
-// job](/compute/docs/os-patch-management/manage-patch-jobs#list-instance-details).
+// job](https://cloud.google.com/compute/docs/os-patch-management/manage-patch-jobs#list-instance-details).
message PatchJobInstanceDetails {
// The instance name in the form `projects/*/zones/*/instances/*`
string name = 1 [(google.api.resource_reference) = {
@@ -169,7 +169,8 @@ message ListPatchJobsResponse {
// details, use ListPatchJobInstanceDetails.
//
// For more information about patch jobs, see
-// [Creating patch jobs](/compute/docs/os-patch-management/create-patch-job).
+// [Creating patch
+// jobs](https://cloud.google.com/compute/docs/os-patch-management/create-patch-job).
message PatchJob {
option (google.api.resource) = {
type: "osconfig.googleapis.com/PatchJob"
@@ -612,7 +613,7 @@ message ExecStepConfig {
// An absolute path to the executable on the VM.
string local_path = 1;
- // A Google Cloud Storage object containing the executable.
+ // A Cloud Storage object containing the executable.
GcsObject gcs_object = 2;
}
@@ -627,15 +628,15 @@ message ExecStepConfig {
Interpreter interpreter = 4;
}
-// Google Cloud Storage object representation.
+// Cloud Storage object representation.
message GcsObject {
- // Required. Bucket of the Google Cloud Storage object.
+ // Required. Bucket of the Cloud Storage object.
string bucket = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. Name of the Google Cloud Storage object.
+ // Required. Name of the Cloud Storage object.
string object = 2 [(google.api.field_behavior) = REQUIRED];
- // Required. Generation number of the Google Cloud Storage object. This is used to
+ // Required. Generation number of the Cloud Storage object. This is used to
// ensure that the ExecStep specified by this PatchJob does not change.
int64 generation_number = 3 [(google.api.field_behavior) = REQUIRED];
}
@@ -645,10 +646,16 @@ message GcsObject {
// specified, the patch job targets only VMs with those labels and in those
// zones.
message PatchInstanceFilter {
- // Represents a group of VMs that can be identified as having all these
- // labels, for example "env=prod and app=web".
+ // Targets a group of VM instances by using their [assigned
+ // labels](https://cloud.google.com/compute/docs/labeling-resources). Labels
+ // are key-value pairs. A `GroupLabel` is a combination of labels
+ // that is used to target VMs for a patch job.
+ //
+ // For example, a patch job can target VMs that have the following
+ // `GroupLabel`: `{"env":"test", "app":"web"}`. This means that the patch job
+ // is applied to VMs that have both the labels `env=test` and `app=web`.
message GroupLabel {
- // Google Compute Engine instance labels that must be present for a VM
+ // Compute Engine instance labels that must be present for a VM
// instance to be targeted by this filter.
map labels = 1;
}
@@ -657,8 +664,8 @@ message PatchInstanceFilter {
// permitted.
bool all = 1;
- // Targets VM instances matching at least one of these label sets. This allows
- // targeting of disparate groups, for example "env=prod or env=staging".
+ // Targets VM instances matching ANY of these GroupLabels. This allows
+ // targeting of disparate groups of VM instances.
repeated GroupLabel group_labels = 2;
// Targets VM instances in ANY of these zones. Leave empty to target VM
diff --git a/synth.metadata b/synth.metadata
index 87ed4f29..213bf177 100644
--- a/synth.metadata
+++ b/synth.metadata
@@ -4,22 +4,22 @@
"git": {
"name": ".",
"remote": "git@github.com:googleapis/java-os-config.git",
- "sha": "91d111abedcbd10c6fd8c9bb4a2d0f8eb87e19c8"
+ "sha": "5d5e1a40a0d1df52adf70b73ec7acf1d9c4e5c87"
}
},
{
"git": {
"name": "googleapis",
"remote": "https://github.com/googleapis/googleapis.git",
- "sha": "23848c8f64a5e81a239d6133378468185f1756dc",
- "internalRef": "304696192"
+ "sha": "4bef0001ac7040431ea24b6187424fdec9c08b1b",
+ "internalRef": "309990843"
}
},
{
"git": {
"name": "synthtool",
"remote": "https://github.com/googleapis/synthtool.git",
- "sha": "a2c1c4f89a5e220e7b39420ebea33623c7c72804"
+ "sha": "ab883569eb0257bbf16a6d825fd018b3adde3912"
}
}
],