google-cloud-os_config-v1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,713 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2020 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Cloud
22
+ module OsConfig
23
+ module V1
24
+ # A request message to initiate patching across Compute Engine
25
+ # instances.
26
+ # @!attribute [rw] parent
27
+ # @return [::String]
28
+ # Required. The project in which to run this patch in the form `projects/*`
29
+ # @!attribute [rw] description
30
+ # @return [::String]
31
+ # Description of the patch job. Length of the description is limited
32
+ # to 1024 characters.
33
+ # @!attribute [rw] instance_filter
34
+ # @return [::Google::Cloud::OsConfig::V1::PatchInstanceFilter]
35
+ # Required. Instances to patch, either explicitly or filtered by some criteria such
36
+ # as zone or labels.
37
+ # @!attribute [rw] patch_config
38
+ # @return [::Google::Cloud::OsConfig::V1::PatchConfig]
39
+ # Patch configuration being applied. If omitted, instances are
40
+ # patched using the default configurations.
41
+ # @!attribute [rw] duration
42
+ # @return [::Google::Protobuf::Duration]
43
+ # Duration of the patch job. After the duration ends, the patch job
44
+ # times out.
45
+ # @!attribute [rw] dry_run
46
+ # @return [::Boolean]
47
+ # If this patch is a dry-run only, instances are contacted but
48
+ # will do nothing.
49
+ # @!attribute [rw] display_name
50
+ # @return [::String]
51
+ # Display name for this patch job. This does not have to be unique.
52
+ class ExecutePatchJobRequest
53
+ include ::Google::Protobuf::MessageExts
54
+ extend ::Google::Protobuf::MessageExts::ClassMethods
55
+ end
56
+
57
+ # Request to get an active or completed patch job.
58
+ # @!attribute [rw] name
59
+ # @return [::String]
60
+ # Required. Name of the patch in the form `projects/*/patchJobs/*`
61
+ class GetPatchJobRequest
62
+ include ::Google::Protobuf::MessageExts
63
+ extend ::Google::Protobuf::MessageExts::ClassMethods
64
+ end
65
+
66
+ # Request to list details for all instances that are part of a patch job.
67
+ # @!attribute [rw] parent
68
+ # @return [::String]
69
+ # Required. The parent for the instances are in the form of `projects/*/patchJobs/*`.
70
+ # @!attribute [rw] page_size
71
+ # @return [::Integer]
72
+ # The maximum number of instance details records to return. Default is 100.
73
+ # @!attribute [rw] page_token
74
+ # @return [::String]
75
+ # A pagination token returned from a previous call
76
+ # that indicates where this listing should continue from.
77
+ # @!attribute [rw] filter
78
+ # @return [::String]
79
+ # A filter expression that filters results listed in the response. This
80
+ # field supports filtering results by instance zone, name, state, or
81
+ # `failure_reason`.
82
+ class ListPatchJobInstanceDetailsRequest
83
+ include ::Google::Protobuf::MessageExts
84
+ extend ::Google::Protobuf::MessageExts::ClassMethods
85
+ end
86
+
87
+ # A response message for listing the instances details for a patch job.
88
+ # @!attribute [rw] patch_job_instance_details
89
+ # @return [::Array<::Google::Cloud::OsConfig::V1::PatchJobInstanceDetails>]
90
+ # A list of instance status.
91
+ # @!attribute [rw] next_page_token
92
+ # @return [::String]
93
+ # A pagination token that can be used to get the next page of results.
94
+ class ListPatchJobInstanceDetailsResponse
95
+ include ::Google::Protobuf::MessageExts
96
+ extend ::Google::Protobuf::MessageExts::ClassMethods
97
+ end
98
+
99
+ # Patch details for a VM instance. For more information about reviewing VM
100
+ # instance details, see
101
+ # [Listing all VM instance details for a specific patch
102
+ # job](https://cloud.google.com/compute/docs/os-patch-management/manage-patch-jobs#list-instance-details).
103
+ # @!attribute [rw] name
104
+ # @return [::String]
105
+ # The instance name in the form `projects/*/zones/*/instances/*`
106
+ # @!attribute [rw] instance_system_id
107
+ # @return [::String]
108
+ # The unique identifier for the instance. This identifier is
109
+ # defined by the server.
110
+ # @!attribute [rw] state
111
+ # @return [::Google::Cloud::OsConfig::V1::Instance::PatchState]
112
+ # Current state of instance patch.
113
+ # @!attribute [rw] failure_reason
114
+ # @return [::String]
115
+ # If the patch fails, this field provides the reason.
116
+ # @!attribute [rw] attempt_count
117
+ # @return [::Integer]
118
+ # The number of times the agent that the agent attempts to apply the patch.
119
+ class PatchJobInstanceDetails
120
+ include ::Google::Protobuf::MessageExts
121
+ extend ::Google::Protobuf::MessageExts::ClassMethods
122
+ end
123
+
124
+ # A request message for listing patch jobs.
125
+ # @!attribute [rw] parent
126
+ # @return [::String]
127
+ # Required. In the form of `projects/*`
128
+ # @!attribute [rw] page_size
129
+ # @return [::Integer]
130
+ # The maximum number of instance status to return.
131
+ # @!attribute [rw] page_token
132
+ # @return [::String]
133
+ # A pagination token returned from a previous call
134
+ # that indicates where this listing should continue from.
135
+ # @!attribute [rw] filter
136
+ # @return [::String]
137
+ # If provided, this field specifies the criteria that must be met by patch
138
+ # jobs to be included in the response.
139
+ # Currently, filtering is only available on the patch_deployment field.
140
+ class ListPatchJobsRequest
141
+ include ::Google::Protobuf::MessageExts
142
+ extend ::Google::Protobuf::MessageExts::ClassMethods
143
+ end
144
+
145
+ # A response message for listing patch jobs.
146
+ # @!attribute [rw] patch_jobs
147
+ # @return [::Array<::Google::Cloud::OsConfig::V1::PatchJob>]
148
+ # The list of patch jobs.
149
+ # @!attribute [rw] next_page_token
150
+ # @return [::String]
151
+ # A pagination token that can be used to get the next page of results.
152
+ class ListPatchJobsResponse
153
+ include ::Google::Protobuf::MessageExts
154
+ extend ::Google::Protobuf::MessageExts::ClassMethods
155
+ end
156
+
157
+ # A high level representation of a patch job that is either in progress
158
+ # or has completed.
159
+ #
160
+ # Instances details are not included in the job. To paginate through instance
161
+ # details, use ListPatchJobInstanceDetails.
162
+ #
163
+ # For more information about patch jobs, see
164
+ # [Creating patch
165
+ # jobs](https://cloud.google.com/compute/docs/os-patch-management/create-patch-job).
166
+ # @!attribute [rw] name
167
+ # @return [::String]
168
+ # Unique identifier for this patch job in the form
169
+ # `projects/*/patchJobs/*`
170
+ # @!attribute [rw] display_name
171
+ # @return [::String]
172
+ # Display name for this patch job. This is not a unique identifier.
173
+ # @!attribute [rw] description
174
+ # @return [::String]
175
+ # Description of the patch job. Length of the description is limited
176
+ # to 1024 characters.
177
+ # @!attribute [rw] create_time
178
+ # @return [::Google::Protobuf::Timestamp]
179
+ # Time this patch job was created.
180
+ # @!attribute [rw] update_time
181
+ # @return [::Google::Protobuf::Timestamp]
182
+ # Last time this patch job was updated.
183
+ # @!attribute [rw] state
184
+ # @return [::Google::Cloud::OsConfig::V1::PatchJob::State]
185
+ # The current state of the PatchJob .
186
+ # @!attribute [rw] instance_filter
187
+ # @return [::Google::Cloud::OsConfig::V1::PatchInstanceFilter]
188
+ # Instances to patch.
189
+ # @!attribute [rw] patch_config
190
+ # @return [::Google::Cloud::OsConfig::V1::PatchConfig]
191
+ # Patch configuration being applied.
192
+ # @!attribute [rw] duration
193
+ # @return [::Google::Protobuf::Duration]
194
+ # Duration of the patch job. After the duration ends, the
195
+ # patch job times out.
196
+ # @!attribute [rw] instance_details_summary
197
+ # @return [::Google::Cloud::OsConfig::V1::PatchJob::InstanceDetailsSummary]
198
+ # Summary of instance details.
199
+ # @!attribute [rw] dry_run
200
+ # @return [::Boolean]
201
+ # If this patch job is a dry run, the agent reports that it has
202
+ # finished without running any updates on the VM instance.
203
+ # @!attribute [rw] error_message
204
+ # @return [::String]
205
+ # If this patch job failed, this message provides information about the
206
+ # failure.
207
+ # @!attribute [rw] percent_complete
208
+ # @return [::Float]
209
+ # Reflects the overall progress of the patch job in the range of
210
+ # 0.0 being no progress to 100.0 being complete.
211
+ # @!attribute [r] patch_deployment
212
+ # @return [::String]
213
+ # Output only. Name of the patch deployment that created this patch job.
214
+ class PatchJob
215
+ include ::Google::Protobuf::MessageExts
216
+ extend ::Google::Protobuf::MessageExts::ClassMethods
217
+
218
+ # A summary of the current patch state across all instances that this patch
219
+ # job affects. Contains counts of instances in different states. These states
220
+ # map to `InstancePatchState`. List patch job instance details to see the
221
+ # specific states of each instance.
222
+ # @!attribute [rw] pending_instance_count
223
+ # @return [::Integer]
224
+ # Number of instances pending patch job.
225
+ # @!attribute [rw] inactive_instance_count
226
+ # @return [::Integer]
227
+ # Number of instances that are inactive.
228
+ # @!attribute [rw] notified_instance_count
229
+ # @return [::Integer]
230
+ # Number of instances notified about patch job.
231
+ # @!attribute [rw] started_instance_count
232
+ # @return [::Integer]
233
+ # Number of instances that have started.
234
+ # @!attribute [rw] downloading_patches_instance_count
235
+ # @return [::Integer]
236
+ # Number of instances that are downloading patches.
237
+ # @!attribute [rw] applying_patches_instance_count
238
+ # @return [::Integer]
239
+ # Number of instances that are applying patches.
240
+ # @!attribute [rw] rebooting_instance_count
241
+ # @return [::Integer]
242
+ # Number of instances rebooting.
243
+ # @!attribute [rw] succeeded_instance_count
244
+ # @return [::Integer]
245
+ # Number of instances that have completed successfully.
246
+ # @!attribute [rw] succeeded_reboot_required_instance_count
247
+ # @return [::Integer]
248
+ # Number of instances that require reboot.
249
+ # @!attribute [rw] failed_instance_count
250
+ # @return [::Integer]
251
+ # Number of instances that failed.
252
+ # @!attribute [rw] acked_instance_count
253
+ # @return [::Integer]
254
+ # Number of instances that have acked and will start shortly.
255
+ # @!attribute [rw] timed_out_instance_count
256
+ # @return [::Integer]
257
+ # Number of instances that exceeded the time out while applying the patch.
258
+ # @!attribute [rw] pre_patch_step_instance_count
259
+ # @return [::Integer]
260
+ # Number of instances that are running the pre-patch step.
261
+ # @!attribute [rw] post_patch_step_instance_count
262
+ # @return [::Integer]
263
+ # Number of instances that are running the post-patch step.
264
+ # @!attribute [rw] no_agent_detected_instance_count
265
+ # @return [::Integer]
266
+ # Number of instances that do not appear to be running the agent. Check to
267
+ # ensure that the agent is installed, running, and able to communicate with
268
+ # the service.
269
+ class InstanceDetailsSummary
270
+ include ::Google::Protobuf::MessageExts
271
+ extend ::Google::Protobuf::MessageExts::ClassMethods
272
+ end
273
+
274
+ # Enumeration of the various states a patch job passes through as it
275
+ # executes.
276
+ module State
277
+ # State must be specified.
278
+ STATE_UNSPECIFIED = 0
279
+
280
+ # The patch job was successfully initiated.
281
+ STARTED = 1
282
+
283
+ # The patch job is looking up instances to run the patch on.
284
+ INSTANCE_LOOKUP = 2
285
+
286
+ # Instances are being patched.
287
+ PATCHING = 3
288
+
289
+ # Patch job completed successfully.
290
+ SUCCEEDED = 4
291
+
292
+ # Patch job completed but there were errors.
293
+ COMPLETED_WITH_ERRORS = 5
294
+
295
+ # The patch job was canceled.
296
+ CANCELED = 6
297
+
298
+ # The patch job timed out.
299
+ TIMED_OUT = 7
300
+ end
301
+ end
302
+
303
+ # Patch configuration specifications. Contains details on how to apply the
304
+ # patch(es) to a VM instance.
305
+ # @!attribute [rw] reboot_config
306
+ # @return [::Google::Cloud::OsConfig::V1::PatchConfig::RebootConfig]
307
+ # Post-patch reboot settings.
308
+ # @!attribute [rw] apt
309
+ # @return [::Google::Cloud::OsConfig::V1::AptSettings]
310
+ # Apt update settings. Use this setting to override the default `apt` patch
311
+ # rules.
312
+ # @!attribute [rw] yum
313
+ # @return [::Google::Cloud::OsConfig::V1::YumSettings]
314
+ # Yum update settings. Use this setting to override the default `yum` patch
315
+ # rules.
316
+ # @!attribute [rw] goo
317
+ # @return [::Google::Cloud::OsConfig::V1::GooSettings]
318
+ # Goo update settings. Use this setting to override the default `goo` patch
319
+ # rules.
320
+ # @!attribute [rw] zypper
321
+ # @return [::Google::Cloud::OsConfig::V1::ZypperSettings]
322
+ # Zypper update settings. Use this setting to override the default `zypper`
323
+ # patch rules.
324
+ # @!attribute [rw] windows_update
325
+ # @return [::Google::Cloud::OsConfig::V1::WindowsUpdateSettings]
326
+ # Windows update settings. Use this override the default windows patch rules.
327
+ # @!attribute [rw] pre_step
328
+ # @return [::Google::Cloud::OsConfig::V1::ExecStep]
329
+ # The `ExecStep` to run before the patch update.
330
+ # @!attribute [rw] post_step
331
+ # @return [::Google::Cloud::OsConfig::V1::ExecStep]
332
+ # The `ExecStep` to run after the patch update.
333
+ class PatchConfig
334
+ include ::Google::Protobuf::MessageExts
335
+ extend ::Google::Protobuf::MessageExts::ClassMethods
336
+
337
+ # Post-patch reboot settings.
338
+ module RebootConfig
339
+ # The default behavior is DEFAULT.
340
+ REBOOT_CONFIG_UNSPECIFIED = 0
341
+
342
+ # The agent decides if a reboot is necessary by checking signals such as
343
+ # registry keys on Windows or `/var/run/reboot-required` on APT based
344
+ # systems. On RPM based systems, a set of core system package install times
345
+ # are compared with system boot time.
346
+ DEFAULT = 1
347
+
348
+ # Always reboot the machine after the update completes.
349
+ ALWAYS = 2
350
+
351
+ # Never reboot the machine after the update completes.
352
+ NEVER = 3
353
+ end
354
+ end
355
+
356
+ # Namespace for instance state enums.
357
+ class Instance
358
+ include ::Google::Protobuf::MessageExts
359
+ extend ::Google::Protobuf::MessageExts::ClassMethods
360
+
361
+ # Patch state of an instance.
362
+ module PatchState
363
+ # Unspecified.
364
+ PATCH_STATE_UNSPECIFIED = 0
365
+
366
+ # The instance is not yet notified.
367
+ PENDING = 1
368
+
369
+ # Instance is inactive and cannot be patched.
370
+ INACTIVE = 2
371
+
372
+ # The instance is notified that it should be patched.
373
+ NOTIFIED = 3
374
+
375
+ # The instance has started the patching process.
376
+ STARTED = 4
377
+
378
+ # The instance is downloading patches.
379
+ DOWNLOADING_PATCHES = 5
380
+
381
+ # The instance is applying patches.
382
+ APPLYING_PATCHES = 6
383
+
384
+ # The instance is rebooting.
385
+ REBOOTING = 7
386
+
387
+ # The instance has completed applying patches.
388
+ SUCCEEDED = 8
389
+
390
+ # The instance has completed applying patches but a reboot is required.
391
+ SUCCEEDED_REBOOT_REQUIRED = 9
392
+
393
+ # The instance has failed to apply the patch.
394
+ FAILED = 10
395
+
396
+ # The instance acked the notification and will start shortly.
397
+ ACKED = 11
398
+
399
+ # The instance exceeded the time out while applying the patch.
400
+ TIMED_OUT = 12
401
+
402
+ # The instance is running the pre-patch step.
403
+ RUNNING_PRE_PATCH_STEP = 13
404
+
405
+ # The instance is running the post-patch step.
406
+ RUNNING_POST_PATCH_STEP = 14
407
+
408
+ # The service could not detect the presence of the agent. Check to ensure
409
+ # that the agent is installed, running, and able to communicate with the
410
+ # service.
411
+ NO_AGENT_DETECTED = 15
412
+ end
413
+ end
414
+
415
+ # Message for canceling a patch job.
416
+ # @!attribute [rw] name
417
+ # @return [::String]
418
+ # Required. Name of the patch in the form `projects/*/patchJobs/*`
419
+ class CancelPatchJobRequest
420
+ include ::Google::Protobuf::MessageExts
421
+ extend ::Google::Protobuf::MessageExts::ClassMethods
422
+ end
423
+
424
+ # Apt patching is completed by executing `apt-get update && apt-get
425
+ # upgrade`. Additional options can be set to control how this is executed.
426
+ # @!attribute [rw] type
427
+ # @return [::Google::Cloud::OsConfig::V1::AptSettings::Type]
428
+ # By changing the type to DIST, the patching is performed
429
+ # using `apt-get dist-upgrade` instead.
430
+ # @!attribute [rw] excludes
431
+ # @return [::Array<::String>]
432
+ # List of packages to exclude from update. These packages will be excluded
433
+ # @!attribute [rw] exclusive_packages
434
+ # @return [::Array<::String>]
435
+ # An exclusive list of packages to be updated. These are the only packages
436
+ # that will be updated. If these packages are not installed, they will be
437
+ # ignored. This field cannot be specified with any other patch configuration
438
+ # fields.
439
+ class AptSettings
440
+ include ::Google::Protobuf::MessageExts
441
+ extend ::Google::Protobuf::MessageExts::ClassMethods
442
+
443
+ # Apt patch type.
444
+ module Type
445
+ # By default, upgrade will be performed.
446
+ TYPE_UNSPECIFIED = 0
447
+
448
+ # Runs `apt-get dist-upgrade`.
449
+ DIST = 1
450
+
451
+ # Runs `apt-get upgrade`.
452
+ UPGRADE = 2
453
+ end
454
+ end
455
+
456
+ # Yum patching is performed by executing `yum update`. Additional options
457
+ # can be set to control how this is executed.
458
+ #
459
+ # Note that not all settings are supported on all platforms.
460
+ # @!attribute [rw] security
461
+ # @return [::Boolean]
462
+ # Adds the `--security` flag to `yum update`. Not supported on
463
+ # all platforms.
464
+ # @!attribute [rw] minimal
465
+ # @return [::Boolean]
466
+ # Will cause patch to run `yum update-minimal` instead.
467
+ # @!attribute [rw] excludes
468
+ # @return [::Array<::String>]
469
+ # List of packages to exclude from update. These packages are excluded by
470
+ # using the yum `--exclude` flag.
471
+ # @!attribute [rw] exclusive_packages
472
+ # @return [::Array<::String>]
473
+ # An exclusive list of packages to be updated. These are the only packages
474
+ # that will be updated. If these packages are not installed, they will be
475
+ # ignored. This field must not be specified with any other patch
476
+ # configuration fields.
477
+ class YumSettings
478
+ include ::Google::Protobuf::MessageExts
479
+ extend ::Google::Protobuf::MessageExts::ClassMethods
480
+ end
481
+
482
+ # Googet patching is performed by running `googet update`.
483
+ class GooSettings
484
+ include ::Google::Protobuf::MessageExts
485
+ extend ::Google::Protobuf::MessageExts::ClassMethods
486
+ end
487
+
488
+ # Zypper patching is performed by running `zypper patch`.
489
+ # See also https://en.opensuse.org/SDB:Zypper_manual.
490
+ # @!attribute [rw] with_optional
491
+ # @return [::Boolean]
492
+ # Adds the `--with-optional` flag to `zypper patch`.
493
+ # @!attribute [rw] with_update
494
+ # @return [::Boolean]
495
+ # Adds the `--with-update` flag, to `zypper patch`.
496
+ # @!attribute [rw] categories
497
+ # @return [::Array<::String>]
498
+ # Install only patches with these categories.
499
+ # Common categories include security, recommended, and feature.
500
+ # @!attribute [rw] severities
501
+ # @return [::Array<::String>]
502
+ # Install only patches with these severities.
503
+ # Common severities include critical, important, moderate, and low.
504
+ # @!attribute [rw] excludes
505
+ # @return [::Array<::String>]
506
+ # List of patches to exclude from update.
507
+ # @!attribute [rw] exclusive_patches
508
+ # @return [::Array<::String>]
509
+ # An exclusive list of patches to be updated. These are the only patches
510
+ # that will be installed using 'zypper patch patch:<patch_name>' command.
511
+ # This field must not be used with any other patch configuration fields.
512
+ class ZypperSettings
513
+ include ::Google::Protobuf::MessageExts
514
+ extend ::Google::Protobuf::MessageExts::ClassMethods
515
+ end
516
+
517
+ # Windows patching is performed using the Windows Update Agent.
518
+ # @!attribute [rw] classifications
519
+ # @return [::Array<::Google::Cloud::OsConfig::V1::WindowsUpdateSettings::Classification>]
520
+ # Only apply updates of these windows update classifications. If empty, all
521
+ # updates are applied.
522
+ # @!attribute [rw] excludes
523
+ # @return [::Array<::String>]
524
+ # List of KBs to exclude from update.
525
+ # @!attribute [rw] exclusive_patches
526
+ # @return [::Array<::String>]
527
+ # An exclusive list of kbs to be updated. These are the only patches
528
+ # that will be updated. This field must not be used with other
529
+ # patch configurations.
530
+ class WindowsUpdateSettings
531
+ include ::Google::Protobuf::MessageExts
532
+ extend ::Google::Protobuf::MessageExts::ClassMethods
533
+
534
+ # Microsoft Windows update classifications as defined in
535
+ # [1]
536
+ # https://support.microsoft.com/en-us/help/824684/description-of-the-standard-terminology-that-is-used-to-describe-micro
537
+ module Classification
538
+ # Invalid. If classifications are included, they must be specified.
539
+ CLASSIFICATION_UNSPECIFIED = 0
540
+
541
+ # "A widely released fix for a specific problem that addresses a critical,
542
+ # non-security-related bug." [1]
543
+ CRITICAL = 1
544
+
545
+ # "A widely released fix for a product-specific, security-related
546
+ # vulnerability. Security vulnerabilities are rated by their severity. The
547
+ # severity rating is indicated in the Microsoft security bulletin as
548
+ # critical, important, moderate, or low." [1]
549
+ SECURITY = 2
550
+
551
+ # "A widely released and frequent software update that contains additions
552
+ # to a product's definition database. Definition databases are often used
553
+ # to detect objects that have specific attributes, such as malicious code,
554
+ # phishing websites, or junk mail." [1]
555
+ DEFINITION = 3
556
+
557
+ # "Software that controls the input and output of a device." [1]
558
+ DRIVER = 4
559
+
560
+ # "New product functionality that is first distributed outside the context
561
+ # of a product release and that is typically included in the next full
562
+ # product release." [1]
563
+ FEATURE_PACK = 5
564
+
565
+ # "A tested, cumulative set of all hotfixes, security updates, critical
566
+ # updates, and updates. Additionally, service packs may contain additional
567
+ # fixes for problems that are found internally since the release of the
568
+ # product. Service packs my also contain a limited number of
569
+ # customer-requested design changes or features." [1]
570
+ SERVICE_PACK = 6
571
+
572
+ # "A utility or feature that helps complete a task or set of tasks." [1]
573
+ TOOL = 7
574
+
575
+ # "A tested, cumulative set of hotfixes, security updates, critical
576
+ # updates, and updates that are packaged together for easy deployment. A
577
+ # rollup generally targets a specific area, such as security, or a
578
+ # component of a product, such as Internet Information Services (IIS)." [1]
579
+ UPDATE_ROLLUP = 8
580
+
581
+ # "A widely released fix for a specific problem. An update addresses a
582
+ # noncritical, non-security-related bug." [1]
583
+ UPDATE = 9
584
+ end
585
+ end
586
+
587
+ # A step that runs an executable for a PatchJob.
588
+ # @!attribute [rw] linux_exec_step_config
589
+ # @return [::Google::Cloud::OsConfig::V1::ExecStepConfig]
590
+ # The ExecStepConfig for all Linux VMs targeted by the PatchJob.
591
+ # @!attribute [rw] windows_exec_step_config
592
+ # @return [::Google::Cloud::OsConfig::V1::ExecStepConfig]
593
+ # The ExecStepConfig for all Windows VMs targeted by the PatchJob.
594
+ class ExecStep
595
+ include ::Google::Protobuf::MessageExts
596
+ extend ::Google::Protobuf::MessageExts::ClassMethods
597
+ end
598
+
599
+ # Common configurations for an ExecStep.
600
+ # @!attribute [rw] local_path
601
+ # @return [::String]
602
+ # An absolute path to the executable on the VM.
603
+ # @!attribute [rw] gcs_object
604
+ # @return [::Google::Cloud::OsConfig::V1::GcsObject]
605
+ # A Cloud Storage object containing the executable.
606
+ # @!attribute [rw] allowed_success_codes
607
+ # @return [::Array<::Integer>]
608
+ # Defaults to [0]. A list of possible return values that the
609
+ # execution can return to indicate a success.
610
+ # @!attribute [rw] interpreter
611
+ # @return [::Google::Cloud::OsConfig::V1::ExecStepConfig::Interpreter]
612
+ # The script interpreter to use to run the script. If no interpreter is
613
+ # specified the script will be executed directly, which will likely
614
+ # only succeed for scripts with [shebang lines]
615
+ # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
616
+ class ExecStepConfig
617
+ include ::Google::Protobuf::MessageExts
618
+ extend ::Google::Protobuf::MessageExts::ClassMethods
619
+
620
+ # The interpreter used to execute the a file.
621
+ module Interpreter
622
+ # Invalid for a Windows ExecStepConfig. For a Linux ExecStepConfig, the
623
+ # interpreter will be parsed from the shebang line of the script if
624
+ # unspecified.
625
+ INTERPRETER_UNSPECIFIED = 0
626
+
627
+ # Indicates that the script is run with `/bin/sh` on Linux and `cmd`
628
+ # on Windows.
629
+ SHELL = 1
630
+
631
+ # Indicates that the file is run with PowerShell flags
632
+ # `-NonInteractive`, `-NoProfile`, and `-ExecutionPolicy Bypass`.
633
+ POWERSHELL = 2
634
+ end
635
+ end
636
+
637
+ # Cloud Storage object representation.
638
+ # @!attribute [rw] bucket
639
+ # @return [::String]
640
+ # Required. Bucket of the Cloud Storage object.
641
+ # @!attribute [rw] object
642
+ # @return [::String]
643
+ # Required. Name of the Cloud Storage object.
644
+ # @!attribute [rw] generation_number
645
+ # @return [::Integer]
646
+ # Required. Generation number of the Cloud Storage object. This is used to
647
+ # ensure that the ExecStep specified by this PatchJob does not change.
648
+ class GcsObject
649
+ include ::Google::Protobuf::MessageExts
650
+ extend ::Google::Protobuf::MessageExts::ClassMethods
651
+ end
652
+
653
+ # A filter to target VM instances for patching. The targeted
654
+ # VMs must meet all criteria specified. So if both labels and zones are
655
+ # specified, the patch job targets only VMs with those labels and in those
656
+ # zones.
657
+ # @!attribute [rw] all
658
+ # @return [::Boolean]
659
+ # Target all VM instances in the project. If true, no other criteria is
660
+ # permitted.
661
+ # @!attribute [rw] group_labels
662
+ # @return [::Array<::Google::Cloud::OsConfig::V1::PatchInstanceFilter::GroupLabel>]
663
+ # Targets VM instances matching ANY of these GroupLabels. This allows
664
+ # targeting of disparate groups of VM instances.
665
+ # @!attribute [rw] zones
666
+ # @return [::Array<::String>]
667
+ # Targets VM instances in ANY of these zones. Leave empty to target VM
668
+ # instances in any zone.
669
+ # @!attribute [rw] instances
670
+ # @return [::Array<::String>]
671
+ # Targets any of the VM instances specified. Instances are specified by their
672
+ # URI in the form `zones/[ZONE]/instances/[INSTANCE_NAME],
673
+ # `projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]`, or
674
+ # `https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]`
675
+ # @!attribute [rw] instance_name_prefixes
676
+ # @return [::Array<::String>]
677
+ # Targets VMs whose name starts with one of these prefixes. Similar to
678
+ # labels, this is another way to group VMs when targeting configs, for
679
+ # example prefix="prod-".
680
+ class PatchInstanceFilter
681
+ include ::Google::Protobuf::MessageExts
682
+ extend ::Google::Protobuf::MessageExts::ClassMethods
683
+
684
+ # Targets a group of VM instances by using their [assigned
685
+ # labels](https://cloud.google.com/compute/docs/labeling-resources). Labels
686
+ # are key-value pairs. A `GroupLabel` is a combination of labels
687
+ # that is used to target VMs for a patch job.
688
+ #
689
+ # For example, a patch job can target VMs that have the following
690
+ # `GroupLabel`: `{"env":"test", "app":"web"}`. This means that the patch job
691
+ # is applied to VMs that have both the labels `env=test` and `app=web`.
692
+ # @!attribute [rw] labels
693
+ # @return [::Google::Protobuf::Map{::String => ::String}]
694
+ # Compute Engine instance labels that must be present for a VM
695
+ # instance to be targeted by this filter.
696
+ class GroupLabel
697
+ include ::Google::Protobuf::MessageExts
698
+ extend ::Google::Protobuf::MessageExts::ClassMethods
699
+
700
+ # @!attribute [rw] key
701
+ # @return [::String]
702
+ # @!attribute [rw] value
703
+ # @return [::String]
704
+ class LabelsEntry
705
+ include ::Google::Protobuf::MessageExts
706
+ extend ::Google::Protobuf::MessageExts::ClassMethods
707
+ end
708
+ end
709
+ end
710
+ end
711
+ end
712
+ end
713
+ end