diff options
Diffstat (limited to 'third_party/googleapis/google/cloud/osconfig/v1beta/patch_deployments.proto')
| -rw-r--r-- | third_party/googleapis/google/cloud/osconfig/v1beta/patch_deployments.proto | 295 | 
1 files changed, 295 insertions, 0 deletions
diff --git a/third_party/googleapis/google/cloud/osconfig/v1beta/patch_deployments.proto b/third_party/googleapis/google/cloud/osconfig/v1beta/patch_deployments.proto new file mode 100644 index 0000000..b37758f --- /dev/null +++ b/third_party/googleapis/google/cloud/osconfig/v1beta/patch_deployments.proto @@ -0,0 +1,295 @@ +// 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 +// +//     http://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. + +syntax = "proto3"; + +package google.cloud.osconfig.v1beta; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/osconfig/v1beta/patch_jobs.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; +import "google/type/datetime.proto"; +import "google/type/dayofweek.proto"; +import "google/type/timeofday.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/osconfig/v1beta;osconfig"; +option java_outer_classname = "PatchDeployments"; +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. For more information about creating and +// managing patch deployments, see [Scheduling patch +// jobs](https://cloud.google.com/compute/docs/os-patch-management/schedule-patch-jobs). +message PatchDeployment { +  option (google.api.resource) = { +    type: "osconfig.googleapis.com/PatchDeployment" +    pattern: "projects/{project}/patchDeployments/{patch_deployment}" +  }; + +  // Represents state of patch peployment. +  enum State { +    // The default value. This value is used if the state is omitted. +    STATE_UNSPECIFIED = 0; + +    // Active value means that patch deployment generates Patch Jobs. +    ACTIVE = 1; + +    // Paused value means that patch deployment does not generate +    // Patch jobs. Requires user action to move in and out from this state. +    PAUSED = 2; +  } + +  // Unique name for the patch deployment resource in a project. The patch +  // deployment name is in the form: +  // `projects/{project_id}/patchDeployments/{patch_deployment_id}`. +  // 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. +  string description = 2 [(google.api.field_behavior) = OPTIONAL]; + +  // Required. VM instances to patch. +  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]; + +  // Schedule for the patch. +  oneof schedule { +    // Required. Schedule a one-time execution. +    OneTimeSchedule one_time_schedule = 6 [(google.api.field_behavior) = REQUIRED]; + +    // Required. Schedule recurring executions. +    RecurringSchedule recurring_schedule = 7 [(google.api.field_behavior) = REQUIRED]; +  } + +  // Output only. Time the patch deployment was created. Timestamp is in +  // [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](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](https://www.ietf.org/rfc/rfc3339.txt) text +  // format. +  google.protobuf.Timestamp last_execute_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + +  // Optional. Rollout strategy of the patch job. +  PatchRollout rollout = 11 [(google.api.field_behavior) = OPTIONAL]; + +  // Output only. Current state of the patch deployment. +  State state = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Sets the time for a one time patch deployment. Timestamp is in +// [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]; +} + +// Sets the time for recurring patch deployments. +message RecurringSchedule { +  // Specifies the frequency of the recurring patch deployments. +  enum Frequency { +    // Invalid. A frequency must be specified. +    FREQUENCY_UNSPECIFIED = 0; + +    // Indicates that the frequency of recurrence should be expressed in terms +    // of weeks. +    WEEKLY = 1; + +    // Indicates that the frequency of recurrence should be expressed in terms +    // of months. +    MONTHLY = 2; + +    // Indicates that the frequency of recurrence should be expressed in terms +    // of days. +    DAILY = 3; +  } + +  // Required. Defines the time zone that `time_of_day` is relative to. +  // The rules for daylight saving time are determined by the chosen time zone. +  google.type.TimeZone time_zone = 1 [(google.api.field_behavior) = REQUIRED]; + +  // 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]; + +  // 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]; + +  // Required. The frequency unit of this recurring schedule. +  Frequency frequency = 5 [(google.api.field_behavior) = REQUIRED]; + +  // Configurations for this recurring schedule. +  // Configurations must match frequency. +  oneof schedule_config { +    // Required. Schedule with weekly executions. +    WeeklySchedule weekly = 6 [(google.api.field_behavior) = REQUIRED]; + +    // Required. Schedule with monthly executions. +    MonthlySchedule monthly = 7 [(google.api.field_behavior) = REQUIRED]; +  } + +  // Output only. The time the last patch job ran successfully. +  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]; +} + +// Represents a weekly schedule. +message WeeklySchedule { +  // Required. Day of the week. +  google.type.DayOfWeek day_of_week = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Represents a monthly schedule. An example of a valid monthly schedule is +// "on the third Tuesday of the month" or "on the 15th of the month". +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]; + +    // 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. +  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]; + +  // Optional. Represents the number of days before or after the given week day of month +  // that the patch deployment is scheduled for. For example if `week_ordinal` +  // and `day_of_week` values point to the second day of the month and this +  // `day_offset` value is set to `3`, the patch deployment takes place three +  // days after the second Tuesday of the month. If this value is negative, for +  // example -5, the patches  are deployed five days before before the second +  // Tuesday of the month. Allowed values are in range `[-30, 30]`. +  int32 day_offset = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// A request message for creating a patch deployment. +message CreatePatchDeploymentRequest { +  // 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: +  // * 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. +  string patch_deployment_id = 2 [(google.api.field_behavior) = REQUIRED]; + +  // Required. The patch deployment to create. +  PatchDeployment patch_deployment = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// A request message for retrieving a patch deployment. +message GetPatchDeploymentRequest { +  // Required. The resource name of the patch deployment in the form +  // `projects/*/patchDeployments/*`. +  string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// A request message for listing patch deployments. +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. +  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. +  string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// A response message for listing patch deployments. +message ListPatchDeploymentsResponse { +  // The list of patch deployments. +  repeated PatchDeployment patch_deployments = 1; + +  // A pagination token that can be used to get the next page of patch +  // deployments. +  string next_page_token = 2; +} + +// A request message for deleting a patch deployment. +message DeletePatchDeploymentRequest { +  // Required. The resource name of the patch deployment in the form +  // `projects/*/patchDeployments/*`. +  string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// A request message for updating a patch deployment. +message UpdatePatchDeploymentRequest { +  // Required. The patch deployment to Update. +  PatchDeployment patch_deployment = 1 [(google.api.field_behavior) = REQUIRED]; + +  // Optional. Field mask that controls which fields of the patch deployment should be +  // updated. +  google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// A request message for pausing a patch deployment. +message PausePatchDeploymentRequest { +  // Required. The resource name of the patch deployment in the form +  // `projects/*/patchDeployments/*`. +  string name = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.resource_reference) = { +      type: "osconfig.googleapis.com/PatchDeployment" +    } +  ]; +} + +// A request message for resuming a patch deployment. +message ResumePatchDeploymentRequest { +  // Required. The resource name of the patch deployment in the form +  // `projects/*/patchDeployments/*`. +  string name = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.resource_reference) = { +      type: "osconfig.googleapis.com/PatchDeployment" +    } +  ]; +}  | 
