feat: Adding retry policy for OS Config V1Beta OsConfigService

PiperOrigin-RevId: 306471195
pull/602/head
Google APIs 5 years ago committed by Copybara-Service
parent 3028060618
commit b5aa7d668d
  1. 91
      google/cloud/osconfig/v1beta/guest_policies.proto
  2. 22
      google/cloud/osconfig/v1beta/osconfig_grpc_service_config.json
  3. 28
      google/cloud/osconfig/v1beta/osconfig_service.proto
  4. 3
      google/cloud/osconfig/v1beta/osconfig_v1beta.yaml
  5. 93
      google/cloud/osconfig/v1beta/patch_deployments.proto
  6. 54
      google/cloud/osconfig/v1beta/patch_jobs.proto

@ -1,4 +1,4 @@
// Copyright 2019 Google LLC.
// 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.
@ -11,7 +11,6 @@
// 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.
//
syntax = "proto3";
@ -36,8 +35,8 @@ message GuestPolicy {
pattern: "projects/{project}/guestPolicies/{guest_policy}"
};
// Required. Unique name of the resource in this project using one of the
// following forms:
// Required. Unique name of the resource in this project using one of the following
// forms:
// `projects/{project_number}/guestPolicies/{guest_policy_id}`.
string name = 1 [(google.api.field_behavior) = REQUIRED];
@ -46,40 +45,21 @@ message GuestPolicy {
string description = 2;
// Output only. Time this guest policy was created.
google.protobuf.Timestamp create_time = 3
[(google.api.field_behavior) = OUTPUT_ONLY];
google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Last time this guest policy was updated.
google.protobuf.Timestamp update_time = 4
[(google.api.field_behavior) = OUTPUT_ONLY];
google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. Specifies the VM instances that are assigned to this policy. This
// allows you to target sets or groups of VM instances by different parameters
// such as labels, names, OS, or zones.
// Required. Specifies the VM instances that are assigned to this policy. This allows
// you to target sets or groups of VM instances by different parameters such
// as labels, names, OS, or zones.
//
// If left empty, all VM instances underneath this policy are targeted.
//
//
// Conflict Management
//
// At the same level in the resource hierarchy (that is within a project), the
// service prevents the creation of multiple policies that conflict with
// each other. If there are multiple policies that specify the same config
// (eg. package, software recipe, repository, etc.), the service ensures
// that no VM instance could potentially receive instructions from both
// policies. To create multiple policies that specify different versions of a
// package or different configs for different operating systems, each policy
// must be mutually exclusive in their targeting according to labels, OS, or
// other criteria.
//
// Different configs are identified for conflicts in different ways. Packages
// are identified by their name and the package manager(s) they target.
// Package repositories are identified by their unique id where applicable.
// Some package managers don't have a unique identifier for repositories and
// where that's the case, no uniqueness is validated by the service.
//
// Note that if OS Inventory is disabled, a VM instance cannot assign a policy
// that targets by OS because the service sees the OS as unknown.
// each other. For more information, see how the service [handles assignment
// conflicts](/compute/docs/os-config-management/create-guest-policy#handle-conflicts).
Assignment assignment = 6 [(google.api.field_behavior) = REQUIRED];
// The software packages to be managed by this policy.
@ -110,8 +90,8 @@ message Assignment {
// Represents a group of VM intances that can be identified as having all
// these labels, for example "env=prod and app=web".
message GroupLabel {
// GCE instance labels that must be present for an instance to be included
// in this assignment group.
// Google Compute Engine instance labels that must be present for an
// instance to be included in this assignment group.
map<string, string> labels = 1;
}
@ -156,7 +136,7 @@ message Assignment {
// Targets VM instances whose name starts with one of these prefixes.
//
// Like labels, this is another way to group VM instances when targeting
// configs, for example prefix=prod-.
// configs, for example prefix="prod-".
//
// Only supported for project-level policies.
repeated string instance_name_prefixes = 4;
@ -213,9 +193,9 @@ message Package {
GOO = 5;
}
// Required. The name of the package. A package is uniquely identified for
// conflict validation by checking the package name and the manager(s) that
// the package targets.
// Required. The name of the package. A package is uniquely identified for conflict
// validation by checking the package name and the manager(s) that the
// package targets.
string name = 1 [(google.api.field_behavior) = REQUIRED];
// The desired_state the agent should maintain for this package. The
@ -259,8 +239,7 @@ message AptRepository {
// Required. Distribution of this repository.
string distribution = 3 [(google.api.field_behavior) = REQUIRED];
// Required. List of components for this repository. Must contain at least one
// item.
// Required. List of components for this repository. Must contain at least one item.
repeated string components = 4 [(google.api.field_behavior) = REQUIRED];
// URI of the key file for this repository. The agent maintains
@ -392,15 +371,15 @@ message SoftwareRecipe {
string checksum = 2;
}
// Specifies an artifact available as a Cloud Storage object.
// Specifies an artifact available as a Google Cloud Storage object.
message Gcs {
// Bucket of the Cloud Storage object.
// Bucket of the Google Cloud Storage object.
// Given an example URL:
// `https://storage.googleapis.com/my-bucket/foo/bar#1234567`
// this value would be `my-bucket`.
string bucket = 1;
// Name of the Cloud Storage object.
// Name of the Google Cloud Storage object.
// As specified [here]
// (https://cloud.google.com/storage/docs/naming#objectnames)
// Given an example URL:
@ -409,14 +388,14 @@ message SoftwareRecipe {
string object = 2;
// Must be provided if allow_insecure is false.
// Generation number of the Cloud Storage object.
// Generation number of the Google Cloud Storage object.
// `https://storage.googleapis.com/my-bucket/foo/bar#1234567`
// this value would be `1234567`.
int64 generation = 3;
}
// Required. Id of the artifact, which the installation and update steps of
// this recipe can reference. Artifacts in a recipe cannot have the same id.
// Required. Id of the artifact, which the installation and update steps of this
// recipe can reference. Artifacts in a recipe cannot have the same id.
string id = 1 [(google.api.field_behavior) = REQUIRED];
// A specific type of artifact.
@ -424,7 +403,7 @@ message SoftwareRecipe {
// A generic remote artifact.
Remote remote = 2;
// A Cloud Storage artifact.
// A Google Cloud Storage artifact.
Gcs gcs = 3;
}
@ -432,7 +411,7 @@ message SoftwareRecipe {
// based on the artifact type:
//
// Remote: A checksum must be specified, and only protocols with
// transport-layer security are permitted.
// transport-layer security are permitted.
// GCS: An object generation number must be specified.
bool allow_insecure = 4;
}
@ -575,7 +554,7 @@ message SoftwareRecipe {
// The script interpreter to use to run the script. If no interpreter is
// specified the script is executed directly, which likely
// only succeed for scripts with
// [shebang lines](https://en.wikipedia.org/wiki/Shebang_(Unix)).
// [shebang lines](https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
Interpreter interpreter = 3;
}
@ -604,8 +583,8 @@ message SoftwareRecipe {
}
}
// Required. Unique identifier for the recipe. Only one recipe with a given
// name is installed on an instance.
// Required. Unique identifier for the recipe. Only one recipe with a given name is
// installed on an instance.
//
// Names are also used to identify resources which helps to determine whether
// guest policies have conflicts. This means that requests to create multiple
@ -671,8 +650,8 @@ message CreateGuestPolicyRequest {
// A request message for retrieving a guest policy.
message GetGuestPolicyRequest {
// Required. The resource name of the guest policy using one of the following
// forms: `projects/{project_number}/guestPolicies/{guest_policy_id}`.
// Required. The resource name of the guest policy using one of the following forms:
// `projects/{project_number}/guestPolicies/{guest_policy_id}`.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
@ -722,8 +701,8 @@ message UpdateGuestPolicyRequest {
// A request message for deleting a guest policy.
message DeleteGuestPolicyRequest {
// Required. The resource name of the guest policy using one of the following
// forms: `projects/{project_number}/guestPolicies/{guest_policy_id}`.
// Required. The resource name of the guest policy using one of the following forms:
// `projects/{project_number}/guestPolicies/{guest_policy_id}`.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
@ -739,17 +718,17 @@ message LookupEffectiveGuestPolicyRequest {
string instance = 1 [(google.api.field_behavior) = REQUIRED];
// Short name of the OS running on the instance. The OS Config agent only
// provideS this field for targeting if OS Inventory is enabled for that
// provides this field for targeting if OS Inventory is enabled for that
// instance.
string os_short_name = 2;
// Version of the OS running on the instance. The OS Config agent only
// provide this field for targeting if OS Inventory is enabled for that
// provides this field for targeting if OS Inventory is enabled for that
// VM instance.
string os_version = 3;
// Architecture of OS running on the instance. The OS Config agent only
// provide this field for targeting if OS Inventory is enabled for that
// provides this field for targeting if OS Inventory is enabled for that
// instance.
string os_architecture = 4;
}

@ -7,27 +7,7 @@
"initialBackoff": "1s",
"maxBackoff": "60s",
"backoffMultiplier": 1.3,
"retryableStatusCodes": ["UNAVAILABLE", "DEADLINE_EXCEEDED"]
"retryableStatusCodes": ["UNAVAILABLE"]
}
},
{
"name": [
{ "service": "google.cloud.osconfig.v1beta.OsConfigService", "method": "ExecutePatchJob" },
{ "service": "google.cloud.osconfig.v1beta.OsConfigService", "method": "GetPatchJob" },
{ "service": "google.cloud.osconfig.v1beta.OsConfigService", "method": "CancelPatchJob" },
{ "service": "google.cloud.osconfig.v1beta.OsConfigService", "method": "ListPatchJobs" },
{ "service": "google.cloud.osconfig.v1beta.OsConfigService", "method": "ListPatchJobInstanceDetails" },
{ "service": "google.cloud.osconfig.v1beta.OsConfigService", "method": "CreatePatchDeployment" },
{ "service": "google.cloud.osconfig.v1beta.OsConfigService", "method": "GetPatchDeployment" },
{ "service": "google.cloud.osconfig.v1beta.OsConfigService", "method": "ListPatchDeployments" },
{ "service": "google.cloud.osconfig.v1beta.OsConfigService", "method": "DeletePatchDeployment" },
{ "service": "google.cloud.osconfig.v1beta.OsConfigService", "method": "CreateGuestPolicy" },
{ "service": "google.cloud.osconfig.v1beta.OsConfigService", "method": "GetGuestPolicy" },
{ "service": "google.cloud.osconfig.v1beta.OsConfigService", "method": "ListGuestPolicies" },
{ "service": "google.cloud.osconfig.v1beta.OsConfigService", "method": "UpdateGuestPolicy" },
{ "service": "google.cloud.osconfig.v1beta.OsConfigService", "method": "DeleteGuestPolicy" },
{ "service": "google.cloud.osconfig.v1beta.OsConfigService", "method": "LookupEffectiveGuestPolicy" }
],
"timeout": "60s"
}]
}

@ -1,4 +1,4 @@
// Copyright 2019 Google LLC.
// 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.
@ -11,7 +11,6 @@
// 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.
//
syntax = "proto3";
@ -34,9 +33,7 @@ option java_package = "com.google.cloud.osconfig.v1beta";
// manage package installations and patch jobs for virtual machine instances.
service OsConfigService {
option (google.api.default_host) = "osconfig.googleapis.com";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/cloud-platform,"
"https://www.googleapis.com/auth/compute";
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
// Patch VM instances by creating and running a patch job.
rpc ExecutePatchJob(ExecutePatchJobRequest) returns (PatchJob) {
@ -71,8 +68,7 @@ service OsConfigService {
}
// Get a list of instance details for a given patch job.
rpc ListPatchJobInstanceDetails(ListPatchJobInstanceDetailsRequest)
returns (ListPatchJobInstanceDetailsResponse) {
rpc ListPatchJobInstanceDetails(ListPatchJobInstanceDetailsRequest) returns (ListPatchJobInstanceDetailsResponse) {
option (google.api.http) = {
get: "/v1beta/{parent=projects/*/patchJobs/*}/instanceDetails"
};
@ -80,8 +76,7 @@ service OsConfigService {
}
// Create an OS Config patch deployment.
rpc CreatePatchDeployment(CreatePatchDeploymentRequest)
returns (PatchDeployment) {
rpc CreatePatchDeployment(CreatePatchDeploymentRequest) returns (PatchDeployment) {
option (google.api.http) = {
post: "/v1beta/{parent=projects/*}/patchDeployments"
body: "patch_deployment"
@ -96,16 +91,14 @@ service OsConfigService {
}
// Get a page of OS Config patch deployments.
rpc ListPatchDeployments(ListPatchDeploymentsRequest)
returns (ListPatchDeploymentsResponse) {
rpc ListPatchDeployments(ListPatchDeploymentsRequest) returns (ListPatchDeploymentsResponse) {
option (google.api.http) = {
get: "/v1beta/{parent=projects/*}/patchDeployments"
};
}
// Delete an OS Config patch deployment.
rpc DeletePatchDeployment(DeletePatchDeploymentRequest)
returns (google.protobuf.Empty) {
rpc DeletePatchDeployment(DeletePatchDeploymentRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1beta/{name=projects/*/patchDeployments/*}"
};
@ -129,8 +122,7 @@ service OsConfigService {
}
// Get a page of OS Config guest policies.
rpc ListGuestPolicies(ListGuestPoliciesRequest)
returns (ListGuestPoliciesResponse) {
rpc ListGuestPolicies(ListGuestPoliciesRequest) returns (ListGuestPoliciesResponse) {
option (google.api.http) = {
get: "/v1beta/{parent=projects/*}/guestPolicies"
};
@ -147,8 +139,7 @@ service OsConfigService {
}
// Delete an OS Config guest policy.
rpc DeleteGuestPolicy(DeleteGuestPolicyRequest)
returns (google.protobuf.Empty) {
rpc DeleteGuestPolicy(DeleteGuestPolicyRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1beta/{name=projects/*/guestPolicies/*}"
};
@ -157,8 +148,7 @@ service OsConfigService {
// Lookup the effective guest policy that applies to a VM instance. This
// lookup merges all policies that are assigned to the instance ancestry.
rpc LookupEffectiveGuestPolicy(LookupEffectiveGuestPolicyRequest)
returns (EffectiveGuestPolicy) {
rpc LookupEffectiveGuestPolicy(LookupEffectiveGuestPolicyRequest) returns (EffectiveGuestPolicy) {
option (google.api.http) = {
post: "/v1beta/{instance=projects/*/zones/*/instances/*}:lookupEffectiveGuestPolicy"
body: "*"

@ -21,5 +21,4 @@ authentication:
- selector: 'google.cloud.osconfig.v1beta.OsConfigService.*'
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform,
https://www.googleapis.com/auth/compute
https://www.googleapis.com/auth/cloud-platform

@ -1,4 +1,4 @@
// Copyright 2019 Google LLC.
// 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.
@ -11,7 +11,6 @@
// 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.
//
syntax = "proto3";
@ -32,7 +31,9 @@ option java_package = "com.google.cloud.osconfig.v1beta";
// Patch deployments are configurations that individual patch jobs use to
// complete a patch. These configurations include instance filter, package
// repository settings, and a schedule.
// 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).
message PatchDeployment {
// Unique name for the patch deployment resource in a project. The patch
// deployment name is in the form:
@ -40,51 +41,43 @@ message PatchDeployment {
// This field is ignored when you create a new patch deployment.
string name = 1;
// Optional. Description of the patch deployment. Length of the description is
// limited to 1024 characters.
// Optional. Description of the patch deployment. Length of the description is limited
// to 1024 characters.
string description = 2 [(google.api.field_behavior) = OPTIONAL];
// Required. VM instances to patch.
PatchInstanceFilter instance_filter = 3
[(google.api.field_behavior) = REQUIRED];
PatchInstanceFilter instance_filter = 3 [(google.api.field_behavior) = REQUIRED];
// Optional. Patch configuration that is applied.
PatchConfig patch_config = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. Duration of the patch. After the duration ends, the patch times
// out.
google.protobuf.Duration duration = 5
[(google.api.field_behavior) = OPTIONAL];
// Optional. Duration of the patch. After the duration ends, the patch times out.
google.protobuf.Duration duration = 5 [(google.api.field_behavior) = OPTIONAL];
// Schedule for the patch.
oneof schedule {
// Required. Schedule a one-time execution.
OneTimeSchedule one_time_schedule = 6
[(google.api.field_behavior) = REQUIRED];
OneTimeSchedule one_time_schedule = 6 [(google.api.field_behavior) = REQUIRED];
// Required. Schedule recurring executions.
RecurringSchedule recurring_schedule = 7
[(google.api.field_behavior) = REQUIRED];
RecurringSchedule recurring_schedule = 7 [(google.api.field_behavior) = REQUIRED];
}
// 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.
google.protobuf.Timestamp create_time = 8
[(google.api.field_behavior) = OUTPUT_ONLY];
google.protobuf.Timestamp create_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
// 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.
google.protobuf.Timestamp update_time = 9
[(google.api.field_behavior) = OUTPUT_ONLY];
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
// <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
// text format.
google.protobuf.Timestamp last_execute_time = 10
[(google.api.field_behavior) = OUTPUT_ONLY];
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
@ -92,8 +85,7 @@ message PatchDeployment {
// text format.
message OneTimeSchedule {
// Required. The desired patch job execution time.
google.protobuf.Timestamp execute_time = 1
[(google.api.field_behavior) = REQUIRED];
google.protobuf.Timestamp execute_time = 1 [(google.api.field_behavior) = REQUIRED];
}
// Sets the time for recurring patch deployments.
@ -118,17 +110,14 @@ message RecurringSchedule {
// Optional. The time that the recurring schedule becomes effective.
// Defaults to `create_time` of the patch deployment.
google.protobuf.Timestamp start_time = 2
[(google.api.field_behavior) = OPTIONAL];
google.protobuf.Timestamp start_time = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. The end time at which a recurring patch deployment schedule is no
// longer active.
google.protobuf.Timestamp end_time = 3
[(google.api.field_behavior) = OPTIONAL];
// Optional. The end time at which a recurring patch deployment schedule is no longer
// active.
google.protobuf.Timestamp end_time = 3 [(google.api.field_behavior) = OPTIONAL];
// Required. Time of the day to run a recurring deployment.
google.type.TimeOfDay time_of_day = 4
[(google.api.field_behavior) = REQUIRED];
google.type.TimeOfDay time_of_day = 4 [(google.api.field_behavior) = REQUIRED];
// Required. The frequency unit of this recurring schedule.
Frequency frequency = 5 [(google.api.field_behavior) = REQUIRED];
@ -144,19 +133,16 @@ message RecurringSchedule {
}
// Output only. The time the last patch job ran successfully.
google.protobuf.Timestamp last_execute_time = 9
[(google.api.field_behavior) = OUTPUT_ONLY];
google.protobuf.Timestamp last_execute_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The time the next patch job is scheduled to run.
google.protobuf.Timestamp next_execute_time = 10
[(google.api.field_behavior) = OUTPUT_ONLY];
google.protobuf.Timestamp next_execute_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// Represents a weekly schedule.
message WeeklySchedule {
// Required. Day of the week.
google.type.DayOfWeek day_of_week = 1
[(google.api.field_behavior) = REQUIRED];
google.type.DayOfWeek day_of_week = 1 [(google.api.field_behavior) = REQUIRED];
}
// Represents a monthly schedule. An example of a valid monthly schedule is
@ -165,36 +151,33 @@ message MonthlySchedule {
// One day in a month.
oneof day_of_month {
// Required. Week day in a month.
WeekDayOfMonth week_day_of_month = 1
[(google.api.field_behavior) = REQUIRED];
WeekDayOfMonth week_day_of_month = 1 [(google.api.field_behavior) = REQUIRED];
// Required. One day of the month. 1-31 indicates the 1st to the 31st day.
// -1 indicates the last day of the month. Months without the target day
// will be skipped. For example, a schedule to run "every month on the 31st"
// will not run in February, April, June, etc.
// Required. One day of the month. 1-31 indicates the 1st to the 31st day. -1
// indicates the last day of the month.
// Months without the target day will be skipped. For example, a schedule to
// run "every month on the 31st" will not run in February, April, June, etc.
int32 month_day = 2 [(google.api.field_behavior) = REQUIRED];
}
}
// Represents one week day in a month. An example is "the 4th Sunday".
message WeekDayOfMonth {
// Required. Week number in a month. 1-4 indicates the 1st to 4th week of the
// month. -1 indicates the last week of the month.
// Required. Week number in a month. 1-4 indicates the 1st to 4th week of the month. -1
// indicates the last week of the month.
int32 week_ordinal = 1 [(google.api.field_behavior) = REQUIRED];
// Required. A day of the week.
google.type.DayOfWeek day_of_week = 2
[(google.api.field_behavior) = REQUIRED];
google.type.DayOfWeek day_of_week = 2 [(google.api.field_behavior) = REQUIRED];
}
// A request message for creating a patch deployment.
message CreatePatchDeploymentRequest {
// Required. The project to apply this patch deployment to in the form
// `projects/*`.
// Required. The project to apply this patch deployment to in the form `projects/*`.
string parent = 1 [(google.api.field_behavior) = REQUIRED];
// Required. A name for the patch deployment in the project. When creating a
// name the following rules apply:
// 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.
@ -218,13 +201,11 @@ message ListPatchDeploymentsRequest {
// Required. The resource name of the parent in the form `projects/*`.
string parent = 1 [(google.api.field_behavior) = REQUIRED];
// Optional. The maximum number of patch deployments to return. Default is
// 100.
// Optional. The maximum number of patch deployments to return. Default is 100.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. A pagination token returned from a previous call to
// ListPatchDeployments that indicates where this listing should continue
// from.
// Optional. A pagination token returned from a previous call to ListPatchDeployments
// that indicates where this listing should continue from.
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
}

@ -1,4 +1,4 @@
// Copyright 2019 Google LLC.
// 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.
@ -11,7 +11,6 @@
// 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.
//
syntax = "proto3";
@ -26,7 +25,8 @@ option go_package = "google.golang.org/genproto/googleapis/cloud/osconfig/v1beta
option java_outer_classname = "PatchJobs";
option java_package = "com.google.cloud.osconfig.v1beta";
// A request message to initiate patching across GCE instances.
// A request message to initiate patching across Google Compute Engine
// instances.
message ExecutePatchJobRequest {
// Required. The project in which to run this patch in the form `projects/*`
string parent = 1 [(google.api.field_behavior) = REQUIRED];
@ -35,10 +35,9 @@ message ExecutePatchJobRequest {
// to 1024 characters.
string description = 2;
// Required. Instances to patch, either explicitly or filtered by some
// criteria such as zone or labels.
PatchInstanceFilter instance_filter = 7
[(google.api.field_behavior) = REQUIRED];
// Required. Instances to patch, either explicitly or filtered by some criteria such
// as zone or labels.
PatchInstanceFilter instance_filter = 7 [(google.api.field_behavior) = REQUIRED];
// Patch configuration being applied. If omitted, instances are
// patched using the default configurations.
@ -64,8 +63,7 @@ message GetPatchJobRequest {
// Request to list details for all instances that are part of a patch job.
message ListPatchJobInstanceDetailsRequest {
// Required. The parent for the instances are in the form of
// `projects/*/patchJobs/*`.
// Required. The parent for the instances are in the form of `projects/*/patchJobs/*`.
string parent = 1 [(google.api.field_behavior) = REQUIRED];
// The maximum number of instance details records to return. Default is 100.
@ -90,7 +88,10 @@ message ListPatchJobInstanceDetailsResponse {
string next_page_token = 2;
}
// Patch details for a VM instance.
// 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).
message PatchJobInstanceDetails {
// The instance name in the form `projects/*/zones/*/instances/*`
string name = 1;
@ -141,6 +142,9 @@ message ListPatchJobsResponse {
//
// 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).
message PatchJob {
// A summary of the current patch state across all instances that this patch
// job affects. Contains counts of instances in different states. These states
@ -376,6 +380,8 @@ message Instance {
// service.
NO_AGENT_DETECTED = 15;
}
}
// Message for canceling a patch job.
@ -437,7 +443,9 @@ message YumSettings {
}
// Googet patching is performed by running `googet update`.
message GooSettings {}
message GooSettings {
}
// Zypper patching is performed by running `zypper patch`.
// See also https://en.opensuse.org/SDB:Zypper_manual.
@ -485,7 +493,7 @@ message WindowsUpdateSettings {
SECURITY = 2;
// "A widely released and frequent software update that contains additions
// to a products definition database. Definition databases are often used
// to a product's definition database. Definition databases are often used
// to detect objects that have specific attributes, such as malicious code,
// phishing websites, or junk mail." [1]
DEFINITION = 3;
@ -564,7 +572,7 @@ message ExecStepConfig {
// An absolute path to the executable on the VM.
string local_path = 1;
// A GCS object containing the executable.
// A Google Cloud Storage object containing the executable.
GcsObject gcs_object = 2;
}
@ -574,21 +582,21 @@ message ExecStepConfig {
// The script interpreter to use to run the script. If no interpreter is
// specified the script will be executed directly, which will likely
// only succeed for scripts with shebang lines.
// [Wikipedia shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)).
// only succeed for scripts with [shebang lines]
// (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
Interpreter interpreter = 4;
}
// GCS object representation.
// Google Cloud Storage object representation.
message GcsObject {
// Required. Bucket of the GCS object.
// Required. Bucket of the Google Cloud Storage object.
string bucket = 1 [(google.api.field_behavior) = REQUIRED];
// Required. Name of the GCS object.
// Required. Name of the Google Cloud Storage object.
string object = 2 [(google.api.field_behavior) = REQUIRED];
// Required. Generation number of the GCS object. This is used to ensure that
// the ExecStep specified by this PatchJob does not change.
// Required. Generation number of the Google 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];
}
@ -600,8 +608,8 @@ message PatchInstanceFilter {
// Represents a group of VMs that can be identified as having all these
// labels, for example "env=prod and app=web".
message GroupLabel {
// GCE instance labels that must be present for a VM instance to be targeted
// by this filter.
// Google Compute Engine instance labels that must be present for a VM
// instance to be targeted by this filter.
map<string, string> labels = 1;
}
@ -625,6 +633,6 @@ message PatchInstanceFilter {
// Targets VMs whose name starts with one of these prefixes. Similar to
// labels, this is another way to group VMs when targeting configs, for
// example prefix=prod-.
// example prefix="prod-".
repeated string instance_name_prefixes = 5;
}

Loading…
Cancel
Save