google-cloud-os_config-v1 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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