feat: Adding retry policy for OS Config V1Beta OsConfigService
PiperOrigin-RevId: 306471195
This commit is contained in:
parent
3028060618
commit
b5aa7d668d
|
|
@ -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 product’s 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…
Reference in New Issue