google-apis-osconfig_v1 0.8.0 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -57,6 +57,111 @@ module Google
57
57
  end
58
58
  end
59
59
 
60
+ # Common Vulnerability Scoring System version 3. For details, see https://www.
61
+ # first.org/cvss/specification-document
62
+ class CvsSv3
63
+ include Google::Apis::Core::Hashable
64
+
65
+ # This metric describes the conditions beyond the attacker's control that must
66
+ # exist in order to exploit the vulnerability.
67
+ # Corresponds to the JSON property `attackComplexity`
68
+ # @return [String]
69
+ attr_accessor :attack_complexity
70
+
71
+ # This metric reflects the context by which vulnerability exploitation is
72
+ # possible.
73
+ # Corresponds to the JSON property `attackVector`
74
+ # @return [String]
75
+ attr_accessor :attack_vector
76
+
77
+ # This metric measures the impact to the availability of the impacted component
78
+ # resulting from a successfully exploited vulnerability.
79
+ # Corresponds to the JSON property `availabilityImpact`
80
+ # @return [String]
81
+ attr_accessor :availability_impact
82
+
83
+ # The base score is a function of the base metric scores. https://www.first.org/
84
+ # cvss/specification-document#Base-Metrics
85
+ # Corresponds to the JSON property `baseScore`
86
+ # @return [Float]
87
+ attr_accessor :base_score
88
+
89
+ # This metric measures the impact to the confidentiality of the information
90
+ # resources managed by a software component due to a successfully exploited
91
+ # vulnerability.
92
+ # Corresponds to the JSON property `confidentialityImpact`
93
+ # @return [String]
94
+ attr_accessor :confidentiality_impact
95
+
96
+ # The Exploitability sub-score equation is derived from the Base Exploitability
97
+ # metrics. https://www.first.org/cvss/specification-document#2-1-Exploitability-
98
+ # Metrics
99
+ # Corresponds to the JSON property `exploitabilityScore`
100
+ # @return [Float]
101
+ attr_accessor :exploitability_score
102
+
103
+ # The Impact sub-score equation is derived from the Base Impact metrics.
104
+ # Corresponds to the JSON property `impactScore`
105
+ # @return [Float]
106
+ attr_accessor :impact_score
107
+
108
+ # This metric measures the impact to integrity of a successfully exploited
109
+ # vulnerability.
110
+ # Corresponds to the JSON property `integrityImpact`
111
+ # @return [String]
112
+ attr_accessor :integrity_impact
113
+
114
+ # This metric describes the level of privileges an attacker must possess before
115
+ # successfully exploiting the vulnerability.
116
+ # Corresponds to the JSON property `privilegesRequired`
117
+ # @return [String]
118
+ attr_accessor :privileges_required
119
+
120
+ # The Scope metric captures whether a vulnerability in one vulnerable component
121
+ # impacts resources in components beyond its security scope.
122
+ # Corresponds to the JSON property `scope`
123
+ # @return [String]
124
+ attr_accessor :scope
125
+
126
+ # This metric captures the requirement for a human user, other than the attacker,
127
+ # to participate in the successful compromise of the vulnerable component.
128
+ # Corresponds to the JSON property `userInteraction`
129
+ # @return [String]
130
+ attr_accessor :user_interaction
131
+
132
+ def initialize(**args)
133
+ update!(**args)
134
+ end
135
+
136
+ # Update properties of this object
137
+ def update!(**args)
138
+ @attack_complexity = args[:attack_complexity] if args.key?(:attack_complexity)
139
+ @attack_vector = args[:attack_vector] if args.key?(:attack_vector)
140
+ @availability_impact = args[:availability_impact] if args.key?(:availability_impact)
141
+ @base_score = args[:base_score] if args.key?(:base_score)
142
+ @confidentiality_impact = args[:confidentiality_impact] if args.key?(:confidentiality_impact)
143
+ @exploitability_score = args[:exploitability_score] if args.key?(:exploitability_score)
144
+ @impact_score = args[:impact_score] if args.key?(:impact_score)
145
+ @integrity_impact = args[:integrity_impact] if args.key?(:integrity_impact)
146
+ @privileges_required = args[:privileges_required] if args.key?(:privileges_required)
147
+ @scope = args[:scope] if args.key?(:scope)
148
+ @user_interaction = args[:user_interaction] if args.key?(:user_interaction)
149
+ end
150
+ end
151
+
152
+ # The request message for Operations.CancelOperation.
153
+ class CancelOperationRequest
154
+ include Google::Apis::Core::Hashable
155
+
156
+ def initialize(**args)
157
+ update!(**args)
158
+ end
159
+
160
+ # Update properties of this object
161
+ def update!(**args)
162
+ end
163
+ end
164
+
60
165
  # Message for canceling a patch job.
61
166
  class CancelPatchJobRequest
62
167
  include Google::Apis::Core::Hashable
@@ -70,6 +175,47 @@ module Google
70
175
  end
71
176
  end
72
177
 
178
+ # Represents a whole or partial calendar date, such as a birthday. The time of
179
+ # day and time zone are either specified elsewhere or are insignificant. The
180
+ # date is relative to the Gregorian Calendar. This can represent one of the
181
+ # following: * A full date, with non-zero year, month, and day values * A month
182
+ # and day value, with a zero year, such as an anniversary * A year on its own,
183
+ # with zero month and day values * A year and month value, with a zero day, such
184
+ # as a credit card expiration date Related types are google.type.TimeOfDay and `
185
+ # google.protobuf.Timestamp`.
186
+ class Date
187
+ include Google::Apis::Core::Hashable
188
+
189
+ # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to
190
+ # specify a year by itself or a year and month where the day isn't significant.
191
+ # Corresponds to the JSON property `day`
192
+ # @return [Fixnum]
193
+ attr_accessor :day
194
+
195
+ # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month
196
+ # and day.
197
+ # Corresponds to the JSON property `month`
198
+ # @return [Fixnum]
199
+ attr_accessor :month
200
+
201
+ # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a
202
+ # year.
203
+ # Corresponds to the JSON property `year`
204
+ # @return [Fixnum]
205
+ attr_accessor :year
206
+
207
+ def initialize(**args)
208
+ update!(**args)
209
+ end
210
+
211
+ # Update properties of this object
212
+ def update!(**args)
213
+ @day = args[:day] if args.key?(:day)
214
+ @month = args[:month] if args.key?(:month)
215
+ @year = args[:year] if args.key?(:year)
216
+ end
217
+ end
218
+
73
219
  # A generic empty message that you can re-use to avoid defining duplicated empty
74
220
  # messages in your APIs. A typical example is to use it as the request or the
75
221
  # response type of an API method. For instance: service Foo ` rpc Bar(google.
@@ -286,7 +432,11 @@ module Google
286
432
  end
287
433
  end
288
434
 
289
- # The inventory details of a VM.
435
+ # This API resource represents the available inventory data for a Compute Engine
436
+ # virtual machine (VM) instance at a given point in time. You can use this API
437
+ # resource to determine the inventory data of your VM. For more information, see
438
+ # [Information provided by OS inventory management](https://cloud.google.com/
439
+ # compute/docs/instances/os-inventory-management#data-collected).
290
440
  class Inventory
291
441
  include Google::Apis::Core::Hashable
292
442
 
@@ -297,11 +447,22 @@ module Google
297
447
  # @return [Hash<String,Google::Apis::OsconfigV1::InventoryItem>]
298
448
  attr_accessor :items
299
449
 
450
+ # Output only. The `Inventory` API resource name. Format: `projects/`
451
+ # project_number`/locations/`location`/instances/`instance_id`/inventory`
452
+ # Corresponds to the JSON property `name`
453
+ # @return [String]
454
+ attr_accessor :name
455
+
300
456
  # Operating system information for the VM.
301
457
  # Corresponds to the JSON property `osInfo`
302
458
  # @return [Google::Apis::OsconfigV1::InventoryOsInfo]
303
459
  attr_accessor :os_info
304
460
 
461
+ # Output only. Timestamp of the last reported inventory for the VM.
462
+ # Corresponds to the JSON property `updateTime`
463
+ # @return [String]
464
+ attr_accessor :update_time
465
+
305
466
  def initialize(**args)
306
467
  update!(**args)
307
468
  end
@@ -309,7 +470,9 @@ module Google
309
470
  # Update properties of this object
310
471
  def update!(**args)
311
472
  @items = args[:items] if args.key?(:items)
473
+ @name = args[:name] if args.key?(:name)
312
474
  @os_info = args[:os_info] if args.key?(:os_info)
475
+ @update_time = args[:update_time] if args.key?(:update_time)
313
476
  end
314
477
  end
315
478
 
@@ -459,6 +622,13 @@ module Google
459
622
  # @return [Google::Apis::OsconfigV1::InventoryWindowsQuickFixEngineeringPackage]
460
623
  attr_accessor :qfe_package
461
624
 
625
+ # Contains information about a Windows application that is retrieved from the
626
+ # Windows Registry. For more information about these fields, see Windows
627
+ # Installer Properties for the Uninstall Registry.
628
+ # Corresponds to the JSON property `windowsApplication`
629
+ # @return [Google::Apis::OsconfigV1::InventoryWindowsApplication]
630
+ attr_accessor :windows_application
631
+
462
632
  # Details related to a Windows Update package. Field data and names are taken
463
633
  # from Windows Update API IUpdate Interface: https://docs.microsoft.com/en-us/
464
634
  # windows/win32/api/_wua/ Descriptive fields like title, and description are
@@ -494,6 +664,7 @@ module Google
494
664
  @cos_package = args[:cos_package] if args.key?(:cos_package)
495
665
  @googet_package = args[:googet_package] if args.key?(:googet_package)
496
666
  @qfe_package = args[:qfe_package] if args.key?(:qfe_package)
667
+ @windows_application = args[:windows_application] if args.key?(:windows_application)
497
668
  @wua_package = args[:wua_package] if args.key?(:wua_package)
498
669
  @yum_package = args[:yum_package] if args.key?(:yum_package)
499
670
  @zypper_package = args[:zypper_package] if args.key?(:zypper_package)
@@ -533,6 +704,58 @@ module Google
533
704
  end
534
705
  end
535
706
 
707
+ # Contains information about a Windows application that is retrieved from the
708
+ # Windows Registry. For more information about these fields, see Windows
709
+ # Installer Properties for the Uninstall Registry.
710
+ class InventoryWindowsApplication
711
+ include Google::Apis::Core::Hashable
712
+
713
+ # The name of the application or product.
714
+ # Corresponds to the JSON property `displayName`
715
+ # @return [String]
716
+ attr_accessor :display_name
717
+
718
+ # The version of the product or application in string format.
719
+ # Corresponds to the JSON property `displayVersion`
720
+ # @return [String]
721
+ attr_accessor :display_version
722
+
723
+ # The internet address for technical support.
724
+ # Corresponds to the JSON property `helpLink`
725
+ # @return [String]
726
+ attr_accessor :help_link
727
+
728
+ # Represents a whole or partial calendar date, such as a birthday. The time of
729
+ # day and time zone are either specified elsewhere or are insignificant. The
730
+ # date is relative to the Gregorian Calendar. This can represent one of the
731
+ # following: * A full date, with non-zero year, month, and day values * A month
732
+ # and day value, with a zero year, such as an anniversary * A year on its own,
733
+ # with zero month and day values * A year and month value, with a zero day, such
734
+ # as a credit card expiration date Related types are google.type.TimeOfDay and `
735
+ # google.protobuf.Timestamp`.
736
+ # Corresponds to the JSON property `installDate`
737
+ # @return [Google::Apis::OsconfigV1::Date]
738
+ attr_accessor :install_date
739
+
740
+ # The name of the manufacturer for the product or application.
741
+ # Corresponds to the JSON property `publisher`
742
+ # @return [String]
743
+ attr_accessor :publisher
744
+
745
+ def initialize(**args)
746
+ update!(**args)
747
+ end
748
+
749
+ # Update properties of this object
750
+ def update!(**args)
751
+ @display_name = args[:display_name] if args.key?(:display_name)
752
+ @display_version = args[:display_version] if args.key?(:display_version)
753
+ @help_link = args[:help_link] if args.key?(:help_link)
754
+ @install_date = args[:install_date] if args.key?(:install_date)
755
+ @publisher = args[:publisher] if args.key?(:publisher)
756
+ end
757
+ end
758
+
536
759
  # Information related to a Quick Fix Engineering package. Fields are taken from
537
760
  # Windows QuickFixEngineering Interface and match the source names: https://docs.
538
761
  # microsoft.com/en-us/windows/win32/cimwin32prov/win32-quickfixengineering
@@ -652,10 +875,1386 @@ module Google
652
875
  # @return [String]
653
876
  attr_accessor :id
654
877
 
655
- # The name of the windows update category.
656
- # Corresponds to the JSON property `name`
657
- # @return [String]
658
- attr_accessor :name
878
+ # The name of the windows update category.
879
+ # Corresponds to the JSON property `name`
880
+ # @return [String]
881
+ attr_accessor :name
882
+
883
+ def initialize(**args)
884
+ update!(**args)
885
+ end
886
+
887
+ # Update properties of this object
888
+ def update!(**args)
889
+ @id = args[:id] if args.key?(:id)
890
+ @name = args[:name] if args.key?(:name)
891
+ end
892
+ end
893
+
894
+ # Details related to a Zypper Patch.
895
+ class InventoryZypperPatch
896
+ include Google::Apis::Core::Hashable
897
+
898
+ # The category of the patch.
899
+ # Corresponds to the JSON property `category`
900
+ # @return [String]
901
+ attr_accessor :category
902
+
903
+ # The name of the patch.
904
+ # Corresponds to the JSON property `patchName`
905
+ # @return [String]
906
+ attr_accessor :patch_name
907
+
908
+ # The severity specified for this patch
909
+ # Corresponds to the JSON property `severity`
910
+ # @return [String]
911
+ attr_accessor :severity
912
+
913
+ # Any summary information provided about this patch.
914
+ # Corresponds to the JSON property `summary`
915
+ # @return [String]
916
+ attr_accessor :summary
917
+
918
+ def initialize(**args)
919
+ update!(**args)
920
+ end
921
+
922
+ # Update properties of this object
923
+ def update!(**args)
924
+ @category = args[:category] if args.key?(:category)
925
+ @patch_name = args[:patch_name] if args.key?(:patch_name)
926
+ @severity = args[:severity] if args.key?(:severity)
927
+ @summary = args[:summary] if args.key?(:summary)
928
+ end
929
+ end
930
+
931
+ # A response message for listing inventory data for all VMs in a specified
932
+ # location.
933
+ class ListInventoriesResponse
934
+ include Google::Apis::Core::Hashable
935
+
936
+ # List of inventory objects.
937
+ # Corresponds to the JSON property `inventories`
938
+ # @return [Array<Google::Apis::OsconfigV1::Inventory>]
939
+ attr_accessor :inventories
940
+
941
+ # The pagination token to retrieve the next page of inventory objects.
942
+ # Corresponds to the JSON property `nextPageToken`
943
+ # @return [String]
944
+ attr_accessor :next_page_token
945
+
946
+ def initialize(**args)
947
+ update!(**args)
948
+ end
949
+
950
+ # Update properties of this object
951
+ def update!(**args)
952
+ @inventories = args[:inventories] if args.key?(:inventories)
953
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
954
+ end
955
+ end
956
+
957
+ # A response message for listing OS Policy assignment reports including the page
958
+ # of results and page token.
959
+ class ListOsPolicyAssignmentReportsResponse
960
+ include Google::Apis::Core::Hashable
961
+
962
+ # The pagination token to retrieve the next page of OS policy assignment report
963
+ # objects.
964
+ # Corresponds to the JSON property `nextPageToken`
965
+ # @return [String]
966
+ attr_accessor :next_page_token
967
+
968
+ # List of OS policy assignment reports.
969
+ # Corresponds to the JSON property `osPolicyAssignmentReports`
970
+ # @return [Array<Google::Apis::OsconfigV1::OsPolicyAssignmentReport>]
971
+ attr_accessor :os_policy_assignment_reports
972
+
973
+ def initialize(**args)
974
+ update!(**args)
975
+ end
976
+
977
+ # Update properties of this object
978
+ def update!(**args)
979
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
980
+ @os_policy_assignment_reports = args[:os_policy_assignment_reports] if args.key?(:os_policy_assignment_reports)
981
+ end
982
+ end
983
+
984
+ # A response message for listing all revisions for a OS policy assignment.
985
+ class ListOsPolicyAssignmentRevisionsResponse
986
+ include Google::Apis::Core::Hashable
987
+
988
+ # The pagination token to retrieve the next page of OS policy assignment
989
+ # revisions.
990
+ # Corresponds to the JSON property `nextPageToken`
991
+ # @return [String]
992
+ attr_accessor :next_page_token
993
+
994
+ # The OS policy assignment revisions
995
+ # Corresponds to the JSON property `osPolicyAssignments`
996
+ # @return [Array<Google::Apis::OsconfigV1::OsPolicyAssignment>]
997
+ attr_accessor :os_policy_assignments
998
+
999
+ def initialize(**args)
1000
+ update!(**args)
1001
+ end
1002
+
1003
+ # Update properties of this object
1004
+ def update!(**args)
1005
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1006
+ @os_policy_assignments = args[:os_policy_assignments] if args.key?(:os_policy_assignments)
1007
+ end
1008
+ end
1009
+
1010
+ # A response message for listing all assignments under given parent.
1011
+ class ListOsPolicyAssignmentsResponse
1012
+ include Google::Apis::Core::Hashable
1013
+
1014
+ # The pagination token to retrieve the next page of OS policy assignments.
1015
+ # Corresponds to the JSON property `nextPageToken`
1016
+ # @return [String]
1017
+ attr_accessor :next_page_token
1018
+
1019
+ # The list of assignments
1020
+ # Corresponds to the JSON property `osPolicyAssignments`
1021
+ # @return [Array<Google::Apis::OsconfigV1::OsPolicyAssignment>]
1022
+ attr_accessor :os_policy_assignments
1023
+
1024
+ def initialize(**args)
1025
+ update!(**args)
1026
+ end
1027
+
1028
+ # Update properties of this object
1029
+ def update!(**args)
1030
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1031
+ @os_policy_assignments = args[:os_policy_assignments] if args.key?(:os_policy_assignments)
1032
+ end
1033
+ end
1034
+
1035
+ # A response message for listing patch deployments.
1036
+ class ListPatchDeploymentsResponse
1037
+ include Google::Apis::Core::Hashable
1038
+
1039
+ # A pagination token that can be used to get the next page of patch deployments.
1040
+ # Corresponds to the JSON property `nextPageToken`
1041
+ # @return [String]
1042
+ attr_accessor :next_page_token
1043
+
1044
+ # The list of patch deployments.
1045
+ # Corresponds to the JSON property `patchDeployments`
1046
+ # @return [Array<Google::Apis::OsconfigV1::PatchDeployment>]
1047
+ attr_accessor :patch_deployments
1048
+
1049
+ def initialize(**args)
1050
+ update!(**args)
1051
+ end
1052
+
1053
+ # Update properties of this object
1054
+ def update!(**args)
1055
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1056
+ @patch_deployments = args[:patch_deployments] if args.key?(:patch_deployments)
1057
+ end
1058
+ end
1059
+
1060
+ # A response message for listing the instances details for a patch job.
1061
+ class ListPatchJobInstanceDetailsResponse
1062
+ include Google::Apis::Core::Hashable
1063
+
1064
+ # A pagination token that can be used to get the next page of results.
1065
+ # Corresponds to the JSON property `nextPageToken`
1066
+ # @return [String]
1067
+ attr_accessor :next_page_token
1068
+
1069
+ # A list of instance status.
1070
+ # Corresponds to the JSON property `patchJobInstanceDetails`
1071
+ # @return [Array<Google::Apis::OsconfigV1::PatchJobInstanceDetails>]
1072
+ attr_accessor :patch_job_instance_details
1073
+
1074
+ def initialize(**args)
1075
+ update!(**args)
1076
+ end
1077
+
1078
+ # Update properties of this object
1079
+ def update!(**args)
1080
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1081
+ @patch_job_instance_details = args[:patch_job_instance_details] if args.key?(:patch_job_instance_details)
1082
+ end
1083
+ end
1084
+
1085
+ # A response message for listing patch jobs.
1086
+ class ListPatchJobsResponse
1087
+ include Google::Apis::Core::Hashable
1088
+
1089
+ # A pagination token that can be used to get the next page of results.
1090
+ # Corresponds to the JSON property `nextPageToken`
1091
+ # @return [String]
1092
+ attr_accessor :next_page_token
1093
+
1094
+ # The list of patch jobs.
1095
+ # Corresponds to the JSON property `patchJobs`
1096
+ # @return [Array<Google::Apis::OsconfigV1::PatchJob>]
1097
+ attr_accessor :patch_jobs
1098
+
1099
+ def initialize(**args)
1100
+ update!(**args)
1101
+ end
1102
+
1103
+ # Update properties of this object
1104
+ def update!(**args)
1105
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1106
+ @patch_jobs = args[:patch_jobs] if args.key?(:patch_jobs)
1107
+ end
1108
+ end
1109
+
1110
+ # A response message for listing vulnerability reports for all VM instances in
1111
+ # the specified location.
1112
+ class ListVulnerabilityReportsResponse
1113
+ include Google::Apis::Core::Hashable
1114
+
1115
+ # The pagination token to retrieve the next page of vulnerabilityReports object.
1116
+ # Corresponds to the JSON property `nextPageToken`
1117
+ # @return [String]
1118
+ attr_accessor :next_page_token
1119
+
1120
+ # List of vulnerabilityReport objects.
1121
+ # Corresponds to the JSON property `vulnerabilityReports`
1122
+ # @return [Array<Google::Apis::OsconfigV1::VulnerabilityReport>]
1123
+ attr_accessor :vulnerability_reports
1124
+
1125
+ def initialize(**args)
1126
+ update!(**args)
1127
+ end
1128
+
1129
+ # Update properties of this object
1130
+ def update!(**args)
1131
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1132
+ @vulnerability_reports = args[:vulnerability_reports] if args.key?(:vulnerability_reports)
1133
+ end
1134
+ end
1135
+
1136
+ # Represents a monthly schedule. An example of a valid monthly schedule is "on
1137
+ # the third Tuesday of the month" or "on the 15th of the month".
1138
+ class MonthlySchedule
1139
+ include Google::Apis::Core::Hashable
1140
+
1141
+ # Required. One day of the month. 1-31 indicates the 1st to the 31st day. -1
1142
+ # indicates the last day of the month. Months without the target day will be
1143
+ # skipped. For example, a schedule to run "every month on the 31st" will not run
1144
+ # in February, April, June, etc.
1145
+ # Corresponds to the JSON property `monthDay`
1146
+ # @return [Fixnum]
1147
+ attr_accessor :month_day
1148
+
1149
+ # Represents one week day in a month. An example is "the 4th Sunday".
1150
+ # Corresponds to the JSON property `weekDayOfMonth`
1151
+ # @return [Google::Apis::OsconfigV1::WeekDayOfMonth]
1152
+ attr_accessor :week_day_of_month
1153
+
1154
+ def initialize(**args)
1155
+ update!(**args)
1156
+ end
1157
+
1158
+ # Update properties of this object
1159
+ def update!(**args)
1160
+ @month_day = args[:month_day] if args.key?(:month_day)
1161
+ @week_day_of_month = args[:week_day_of_month] if args.key?(:week_day_of_month)
1162
+ end
1163
+ end
1164
+
1165
+ # An OS policy defines the desired state configuration for a VM.
1166
+ class OsPolicy
1167
+ include Google::Apis::Core::Hashable
1168
+
1169
+ # This flag determines the OS policy compliance status when none of the resource
1170
+ # groups within the policy are applicable for a VM. Set this value to `true` if
1171
+ # the policy needs to be reported as compliant even if the policy has nothing to
1172
+ # validate or enforce.
1173
+ # Corresponds to the JSON property `allowNoResourceGroupMatch`
1174
+ # @return [Boolean]
1175
+ attr_accessor :allow_no_resource_group_match
1176
+ alias_method :allow_no_resource_group_match?, :allow_no_resource_group_match
1177
+
1178
+ # Policy description. Length of the description is limited to 1024 characters.
1179
+ # Corresponds to the JSON property `description`
1180
+ # @return [String]
1181
+ attr_accessor :description
1182
+
1183
+ # Required. The id of the OS policy with the following restrictions: * Must
1184
+ # contain only lowercase letters, numbers, and hyphens. * Must start with a
1185
+ # letter. * Must be between 1-63 characters. * Must end with a number or a
1186
+ # letter. * Must be unique within the assignment.
1187
+ # Corresponds to the JSON property `id`
1188
+ # @return [String]
1189
+ attr_accessor :id
1190
+
1191
+ # Required. Policy mode
1192
+ # Corresponds to the JSON property `mode`
1193
+ # @return [String]
1194
+ attr_accessor :mode
1195
+
1196
+ # Required. List of resource groups for the policy. For a particular VM,
1197
+ # resource groups are evaluated in the order specified and the first resource
1198
+ # group that is applicable is selected and the rest are ignored. If none of the
1199
+ # resource groups are applicable for a VM, the VM is considered to be non-
1200
+ # compliant w.r.t this policy. This behavior can be toggled by the flag `
1201
+ # allow_no_resource_group_match`
1202
+ # Corresponds to the JSON property `resourceGroups`
1203
+ # @return [Array<Google::Apis::OsconfigV1::OsPolicyResourceGroup>]
1204
+ attr_accessor :resource_groups
1205
+
1206
+ def initialize(**args)
1207
+ update!(**args)
1208
+ end
1209
+
1210
+ # Update properties of this object
1211
+ def update!(**args)
1212
+ @allow_no_resource_group_match = args[:allow_no_resource_group_match] if args.key?(:allow_no_resource_group_match)
1213
+ @description = args[:description] if args.key?(:description)
1214
+ @id = args[:id] if args.key?(:id)
1215
+ @mode = args[:mode] if args.key?(:mode)
1216
+ @resource_groups = args[:resource_groups] if args.key?(:resource_groups)
1217
+ end
1218
+ end
1219
+
1220
+ # OS policy assignment is an API resource that is used to apply a set of OS
1221
+ # policies to a dynamically targeted group of Compute Engine VM instances. An OS
1222
+ # policy is used to define the desired state configuration for a Compute Engine
1223
+ # VM instance through a set of configuration resources that provide capabilities
1224
+ # such as installing or removing software packages, or executing a script. For
1225
+ # more information, see [OS policy and OS policy assignment](https://cloud.
1226
+ # google.com/compute/docs/os-configuration-management/working-with-os-policies).
1227
+ class OsPolicyAssignment
1228
+ include Google::Apis::Core::Hashable
1229
+
1230
+ # Output only. Indicates that this revision has been successfully rolled out in
1231
+ # this zone and new VMs will be assigned OS policies from this revision. For a
1232
+ # given OS policy assignment, there is only one revision with a value of `true`
1233
+ # for this field.
1234
+ # Corresponds to the JSON property `baseline`
1235
+ # @return [Boolean]
1236
+ attr_accessor :baseline
1237
+ alias_method :baseline?, :baseline
1238
+
1239
+ # Output only. Indicates that this revision deletes the OS policy assignment.
1240
+ # Corresponds to the JSON property `deleted`
1241
+ # @return [Boolean]
1242
+ attr_accessor :deleted
1243
+ alias_method :deleted?, :deleted
1244
+
1245
+ # OS policy assignment description. Length of the description is limited to 1024
1246
+ # characters.
1247
+ # Corresponds to the JSON property `description`
1248
+ # @return [String]
1249
+ attr_accessor :description
1250
+
1251
+ # The etag for this OS policy assignment. If this is provided on update, it must
1252
+ # match the server's etag.
1253
+ # Corresponds to the JSON property `etag`
1254
+ # @return [String]
1255
+ attr_accessor :etag
1256
+
1257
+ # Filters to select target VMs for an assignment. If more than one filter
1258
+ # criteria is specified below, a VM will be selected if and only if it satisfies
1259
+ # all of them.
1260
+ # Corresponds to the JSON property `instanceFilter`
1261
+ # @return [Google::Apis::OsconfigV1::OsPolicyAssignmentInstanceFilter]
1262
+ attr_accessor :instance_filter
1263
+
1264
+ # Resource name. Format: `projects/`project_number`/locations/`location`/
1265
+ # osPolicyAssignments/`os_policy_assignment_id`` This field is ignored when you
1266
+ # create an OS policy assignment.
1267
+ # Corresponds to the JSON property `name`
1268
+ # @return [String]
1269
+ attr_accessor :name
1270
+
1271
+ # Required. List of OS policies to be applied to the VMs.
1272
+ # Corresponds to the JSON property `osPolicies`
1273
+ # @return [Array<Google::Apis::OsconfigV1::OsPolicy>]
1274
+ attr_accessor :os_policies
1275
+
1276
+ # Output only. Indicates that reconciliation is in progress for the revision.
1277
+ # This value is `true` when the `rollout_state` is one of: * IN_PROGRESS *
1278
+ # CANCELLING
1279
+ # Corresponds to the JSON property `reconciling`
1280
+ # @return [Boolean]
1281
+ attr_accessor :reconciling
1282
+ alias_method :reconciling?, :reconciling
1283
+
1284
+ # Output only. The timestamp that the revision was created.
1285
+ # Corresponds to the JSON property `revisionCreateTime`
1286
+ # @return [String]
1287
+ attr_accessor :revision_create_time
1288
+
1289
+ # Output only. The assignment revision ID A new revision is committed whenever a
1290
+ # rollout is triggered for a OS policy assignment
1291
+ # Corresponds to the JSON property `revisionId`
1292
+ # @return [String]
1293
+ attr_accessor :revision_id
1294
+
1295
+ # Message to configure the rollout at the zonal level for the OS policy
1296
+ # assignment.
1297
+ # Corresponds to the JSON property `rollout`
1298
+ # @return [Google::Apis::OsconfigV1::OsPolicyAssignmentRollout]
1299
+ attr_accessor :rollout
1300
+
1301
+ # Output only. OS policy assignment rollout state
1302
+ # Corresponds to the JSON property `rolloutState`
1303
+ # @return [String]
1304
+ attr_accessor :rollout_state
1305
+
1306
+ # Output only. Server generated unique id for the OS policy assignment resource.
1307
+ # Corresponds to the JSON property `uid`
1308
+ # @return [String]
1309
+ attr_accessor :uid
1310
+
1311
+ def initialize(**args)
1312
+ update!(**args)
1313
+ end
1314
+
1315
+ # Update properties of this object
1316
+ def update!(**args)
1317
+ @baseline = args[:baseline] if args.key?(:baseline)
1318
+ @deleted = args[:deleted] if args.key?(:deleted)
1319
+ @description = args[:description] if args.key?(:description)
1320
+ @etag = args[:etag] if args.key?(:etag)
1321
+ @instance_filter = args[:instance_filter] if args.key?(:instance_filter)
1322
+ @name = args[:name] if args.key?(:name)
1323
+ @os_policies = args[:os_policies] if args.key?(:os_policies)
1324
+ @reconciling = args[:reconciling] if args.key?(:reconciling)
1325
+ @revision_create_time = args[:revision_create_time] if args.key?(:revision_create_time)
1326
+ @revision_id = args[:revision_id] if args.key?(:revision_id)
1327
+ @rollout = args[:rollout] if args.key?(:rollout)
1328
+ @rollout_state = args[:rollout_state] if args.key?(:rollout_state)
1329
+ @uid = args[:uid] if args.key?(:uid)
1330
+ end
1331
+ end
1332
+
1333
+ # Filters to select target VMs for an assignment. If more than one filter
1334
+ # criteria is specified below, a VM will be selected if and only if it satisfies
1335
+ # all of them.
1336
+ class OsPolicyAssignmentInstanceFilter
1337
+ include Google::Apis::Core::Hashable
1338
+
1339
+ # Target all VMs in the project. If true, no other criteria is permitted.
1340
+ # Corresponds to the JSON property `all`
1341
+ # @return [Boolean]
1342
+ attr_accessor :all
1343
+ alias_method :all?, :all
1344
+
1345
+ # List of label sets used for VM exclusion. If the list has more than one label
1346
+ # set, the VM is excluded if any of the label sets are applicable for the VM.
1347
+ # Corresponds to the JSON property `exclusionLabels`
1348
+ # @return [Array<Google::Apis::OsconfigV1::OsPolicyAssignmentLabelSet>]
1349
+ attr_accessor :exclusion_labels
1350
+
1351
+ # List of label sets used for VM inclusion. If the list has more than one `
1352
+ # LabelSet`, the VM is included if any of the label sets are applicable for the
1353
+ # VM.
1354
+ # Corresponds to the JSON property `inclusionLabels`
1355
+ # @return [Array<Google::Apis::OsconfigV1::OsPolicyAssignmentLabelSet>]
1356
+ attr_accessor :inclusion_labels
1357
+
1358
+ # List of inventories to select VMs. A VM is selected if its inventory data
1359
+ # matches at least one of the following inventories.
1360
+ # Corresponds to the JSON property `inventories`
1361
+ # @return [Array<Google::Apis::OsconfigV1::OsPolicyAssignmentInstanceFilterInventory>]
1362
+ attr_accessor :inventories
1363
+
1364
+ def initialize(**args)
1365
+ update!(**args)
1366
+ end
1367
+
1368
+ # Update properties of this object
1369
+ def update!(**args)
1370
+ @all = args[:all] if args.key?(:all)
1371
+ @exclusion_labels = args[:exclusion_labels] if args.key?(:exclusion_labels)
1372
+ @inclusion_labels = args[:inclusion_labels] if args.key?(:inclusion_labels)
1373
+ @inventories = args[:inventories] if args.key?(:inventories)
1374
+ end
1375
+ end
1376
+
1377
+ # VM inventory details.
1378
+ class OsPolicyAssignmentInstanceFilterInventory
1379
+ include Google::Apis::Core::Hashable
1380
+
1381
+ # Required. The OS short name
1382
+ # Corresponds to the JSON property `osShortName`
1383
+ # @return [String]
1384
+ attr_accessor :os_short_name
1385
+
1386
+ # The OS version Prefix matches are supported if asterisk(*) is provided as the
1387
+ # last character. For example, to match all versions with a major version of `7`,
1388
+ # specify the following value for this field `7.*` An empty string matches all
1389
+ # OS versions.
1390
+ # Corresponds to the JSON property `osVersion`
1391
+ # @return [String]
1392
+ attr_accessor :os_version
1393
+
1394
+ def initialize(**args)
1395
+ update!(**args)
1396
+ end
1397
+
1398
+ # Update properties of this object
1399
+ def update!(**args)
1400
+ @os_short_name = args[:os_short_name] if args.key?(:os_short_name)
1401
+ @os_version = args[:os_version] if args.key?(:os_version)
1402
+ end
1403
+ end
1404
+
1405
+ # Message representing label set. * A label is a key value pair set for a VM. *
1406
+ # A LabelSet is a set of labels. * Labels within a LabelSet are ANDed. In other
1407
+ # words, a LabelSet is applicable for a VM only if it matches all the labels in
1408
+ # the LabelSet. * Example: A LabelSet with 2 labels: `env=prod` and `type=
1409
+ # webserver` will only be applicable for those VMs with both labels present.
1410
+ class OsPolicyAssignmentLabelSet
1411
+ include Google::Apis::Core::Hashable
1412
+
1413
+ # Labels are identified by key/value pairs in this map. A VM should contain all
1414
+ # the key/value pairs specified in this map to be selected.
1415
+ # Corresponds to the JSON property `labels`
1416
+ # @return [Hash<String,String>]
1417
+ attr_accessor :labels
1418
+
1419
+ def initialize(**args)
1420
+ update!(**args)
1421
+ end
1422
+
1423
+ # Update properties of this object
1424
+ def update!(**args)
1425
+ @labels = args[:labels] if args.key?(:labels)
1426
+ end
1427
+ end
1428
+
1429
+ # OS policy assignment operation metadata provided by OS policy assignment API
1430
+ # methods that return long running operations.
1431
+ class OsPolicyAssignmentOperationMetadata
1432
+ include Google::Apis::Core::Hashable
1433
+
1434
+ # The OS policy assignment API method.
1435
+ # Corresponds to the JSON property `apiMethod`
1436
+ # @return [String]
1437
+ attr_accessor :api_method
1438
+
1439
+ # Reference to the `OSPolicyAssignment` API resource. Format: `projects/`
1440
+ # project_number`/locations/`location`/osPolicyAssignments/`
1441
+ # os_policy_assignment_id@revision_id``
1442
+ # Corresponds to the JSON property `osPolicyAssignment`
1443
+ # @return [String]
1444
+ attr_accessor :os_policy_assignment
1445
+
1446
+ # Rollout start time
1447
+ # Corresponds to the JSON property `rolloutStartTime`
1448
+ # @return [String]
1449
+ attr_accessor :rollout_start_time
1450
+
1451
+ # State of the rollout
1452
+ # Corresponds to the JSON property `rolloutState`
1453
+ # @return [String]
1454
+ attr_accessor :rollout_state
1455
+
1456
+ # Rollout update time
1457
+ # Corresponds to the JSON property `rolloutUpdateTime`
1458
+ # @return [String]
1459
+ attr_accessor :rollout_update_time
1460
+
1461
+ def initialize(**args)
1462
+ update!(**args)
1463
+ end
1464
+
1465
+ # Update properties of this object
1466
+ def update!(**args)
1467
+ @api_method = args[:api_method] if args.key?(:api_method)
1468
+ @os_policy_assignment = args[:os_policy_assignment] if args.key?(:os_policy_assignment)
1469
+ @rollout_start_time = args[:rollout_start_time] if args.key?(:rollout_start_time)
1470
+ @rollout_state = args[:rollout_state] if args.key?(:rollout_state)
1471
+ @rollout_update_time = args[:rollout_update_time] if args.key?(:rollout_update_time)
1472
+ end
1473
+ end
1474
+
1475
+ # A report of the OS policy assignment status for a given instance.
1476
+ class OsPolicyAssignmentReport
1477
+ include Google::Apis::Core::Hashable
1478
+
1479
+ # The Compute Engine VM instance name.
1480
+ # Corresponds to the JSON property `instance`
1481
+ # @return [String]
1482
+ attr_accessor :instance
1483
+
1484
+ # Unique identifier of the last attempted run to apply the OS policies
1485
+ # associated with this assignment on the VM. This ID is logged by the OS Config
1486
+ # agent while applying the OS policies associated with this assignment on the VM.
1487
+ # NOTE: If the service is unable to successfully connect to the agent for this
1488
+ # run, then this id will not be available in the agent logs.
1489
+ # Corresponds to the JSON property `lastRunId`
1490
+ # @return [String]
1491
+ attr_accessor :last_run_id
1492
+
1493
+ # The `OSPolicyAssignmentReport` API resource name. Format: `projects/`
1494
+ # project_number`/locations/`location`/instances/`instance_id`/
1495
+ # osPolicyAssignments/`os_policy_assignment_id`/report`
1496
+ # Corresponds to the JSON property `name`
1497
+ # @return [String]
1498
+ attr_accessor :name
1499
+
1500
+ # Reference to the `OSPolicyAssignment` API resource that the `OSPolicy` belongs
1501
+ # to. Format: `projects/`project_number`/locations/`location`/
1502
+ # osPolicyAssignments/`os_policy_assignment_id@revision_id``
1503
+ # Corresponds to the JSON property `osPolicyAssignment`
1504
+ # @return [String]
1505
+ attr_accessor :os_policy_assignment
1506
+
1507
+ # Compliance data for each `OSPolicy` that is applied to the VM.
1508
+ # Corresponds to the JSON property `osPolicyCompliances`
1509
+ # @return [Array<Google::Apis::OsconfigV1::OsPolicyAssignmentReportOsPolicyCompliance>]
1510
+ attr_accessor :os_policy_compliances
1511
+
1512
+ # Timestamp for when the report was last generated.
1513
+ # Corresponds to the JSON property `updateTime`
1514
+ # @return [String]
1515
+ attr_accessor :update_time
1516
+
1517
+ def initialize(**args)
1518
+ update!(**args)
1519
+ end
1520
+
1521
+ # Update properties of this object
1522
+ def update!(**args)
1523
+ @instance = args[:instance] if args.key?(:instance)
1524
+ @last_run_id = args[:last_run_id] if args.key?(:last_run_id)
1525
+ @name = args[:name] if args.key?(:name)
1526
+ @os_policy_assignment = args[:os_policy_assignment] if args.key?(:os_policy_assignment)
1527
+ @os_policy_compliances = args[:os_policy_compliances] if args.key?(:os_policy_compliances)
1528
+ @update_time = args[:update_time] if args.key?(:update_time)
1529
+ end
1530
+ end
1531
+
1532
+ # Compliance data for an OS policy
1533
+ class OsPolicyAssignmentReportOsPolicyCompliance
1534
+ include Google::Apis::Core::Hashable
1535
+
1536
+ # The compliance state of the OS policy.
1537
+ # Corresponds to the JSON property `complianceState`
1538
+ # @return [String]
1539
+ attr_accessor :compliance_state
1540
+
1541
+ # The reason for the OS policy to be in an unknown compliance state. This field
1542
+ # is always populated when `compliance_state` is `UNKNOWN`. If populated, the
1543
+ # field can contain one of the following values: * `vm-not-running`: The VM was
1544
+ # not running. * `os-policies-not-supported-by-agent`: The version of the OS
1545
+ # Config agent running on the VM does not support running OS policies. * `no-
1546
+ # agent-detected`: The OS Config agent is not detected for the VM. * `resource-
1547
+ # execution-errors`: The OS Config agent encountered errors while executing one
1548
+ # or more resources in the policy. See `os_policy_resource_compliances` for
1549
+ # details. * `task-timeout`: The task sent to the agent to apply the policy
1550
+ # timed out. * `unexpected-agent-state`: The OS Config agent did not report the
1551
+ # final status of the task that attempted to apply the policy. Instead, the
1552
+ # agent unexpectedly started working on a different task. This mostly happens
1553
+ # when the agent or VM unexpectedly restarts while applying OS policies. * `
1554
+ # internal-service-errors`: Internal service errors were encountered while
1555
+ # attempting to apply the policy.
1556
+ # Corresponds to the JSON property `complianceStateReason`
1557
+ # @return [String]
1558
+ attr_accessor :compliance_state_reason
1559
+
1560
+ # The OS policy id
1561
+ # Corresponds to the JSON property `osPolicyId`
1562
+ # @return [String]
1563
+ attr_accessor :os_policy_id
1564
+
1565
+ # Compliance data for each resource within the policy that is applied to the VM.
1566
+ # Corresponds to the JSON property `osPolicyResourceCompliances`
1567
+ # @return [Array<Google::Apis::OsconfigV1::OsPolicyAssignmentReportOsPolicyComplianceOsPolicyResourceCompliance>]
1568
+ attr_accessor :os_policy_resource_compliances
1569
+
1570
+ def initialize(**args)
1571
+ update!(**args)
1572
+ end
1573
+
1574
+ # Update properties of this object
1575
+ def update!(**args)
1576
+ @compliance_state = args[:compliance_state] if args.key?(:compliance_state)
1577
+ @compliance_state_reason = args[:compliance_state_reason] if args.key?(:compliance_state_reason)
1578
+ @os_policy_id = args[:os_policy_id] if args.key?(:os_policy_id)
1579
+ @os_policy_resource_compliances = args[:os_policy_resource_compliances] if args.key?(:os_policy_resource_compliances)
1580
+ end
1581
+ end
1582
+
1583
+ # Compliance data for an OS policy resource.
1584
+ class OsPolicyAssignmentReportOsPolicyComplianceOsPolicyResourceCompliance
1585
+ include Google::Apis::Core::Hashable
1586
+
1587
+ # The compliance state of the resource.
1588
+ # Corresponds to the JSON property `complianceState`
1589
+ # @return [String]
1590
+ attr_accessor :compliance_state
1591
+
1592
+ # A reason for the resource to be in the given compliance state. This field is
1593
+ # always populated when `compliance_state` is `UNKNOWN`. The following values
1594
+ # are supported when `compliance_state == UNKNOWN` * `execution-errors`: Errors
1595
+ # were encountered by the agent while executing the resource and the compliance
1596
+ # state couldn't be determined. * `execution-skipped-by-agent`: Resource
1597
+ # execution was skipped by the agent because errors were encountered while
1598
+ # executing prior resources in the OS policy. * `os-policy-execution-attempt-
1599
+ # failed`: The execution of the OS policy containing this resource failed and
1600
+ # the compliance state couldn't be determined.
1601
+ # Corresponds to the JSON property `complianceStateReason`
1602
+ # @return [String]
1603
+ attr_accessor :compliance_state_reason
1604
+
1605
+ # Ordered list of configuration completed by the agent for the OS policy
1606
+ # resource.
1607
+ # Corresponds to the JSON property `configSteps`
1608
+ # @return [Array<Google::Apis::OsconfigV1::OsPolicyAssignmentReportOsPolicyComplianceOsPolicyResourceComplianceOsPolicyResourceConfigStep>]
1609
+ attr_accessor :config_steps
1610
+
1611
+ # ExecResource specific output.
1612
+ # Corresponds to the JSON property `execResourceOutput`
1613
+ # @return [Google::Apis::OsconfigV1::OsPolicyAssignmentReportOsPolicyComplianceOsPolicyResourceComplianceExecResourceOutput]
1614
+ attr_accessor :exec_resource_output
1615
+
1616
+ # The ID of the OS policy resource.
1617
+ # Corresponds to the JSON property `osPolicyResourceId`
1618
+ # @return [String]
1619
+ attr_accessor :os_policy_resource_id
1620
+
1621
+ def initialize(**args)
1622
+ update!(**args)
1623
+ end
1624
+
1625
+ # Update properties of this object
1626
+ def update!(**args)
1627
+ @compliance_state = args[:compliance_state] if args.key?(:compliance_state)
1628
+ @compliance_state_reason = args[:compliance_state_reason] if args.key?(:compliance_state_reason)
1629
+ @config_steps = args[:config_steps] if args.key?(:config_steps)
1630
+ @exec_resource_output = args[:exec_resource_output] if args.key?(:exec_resource_output)
1631
+ @os_policy_resource_id = args[:os_policy_resource_id] if args.key?(:os_policy_resource_id)
1632
+ end
1633
+ end
1634
+
1635
+ # ExecResource specific output.
1636
+ class OsPolicyAssignmentReportOsPolicyComplianceOsPolicyResourceComplianceExecResourceOutput
1637
+ include Google::Apis::Core::Hashable
1638
+
1639
+ # Output from enforcement phase output file (if run). Output size is limited to
1640
+ # 100K bytes.
1641
+ # Corresponds to the JSON property `enforcementOutput`
1642
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1643
+ # @return [String]
1644
+ attr_accessor :enforcement_output
1645
+
1646
+ def initialize(**args)
1647
+ update!(**args)
1648
+ end
1649
+
1650
+ # Update properties of this object
1651
+ def update!(**args)
1652
+ @enforcement_output = args[:enforcement_output] if args.key?(:enforcement_output)
1653
+ end
1654
+ end
1655
+
1656
+ # Step performed by the OS Config agent for configuring an `OSPolicy` resource
1657
+ # to its desired state.
1658
+ class OsPolicyAssignmentReportOsPolicyComplianceOsPolicyResourceComplianceOsPolicyResourceConfigStep
1659
+ include Google::Apis::Core::Hashable
1660
+
1661
+ # An error message recorded during the execution of this step. Only populated if
1662
+ # errors were encountered during this step execution.
1663
+ # Corresponds to the JSON property `errorMessage`
1664
+ # @return [String]
1665
+ attr_accessor :error_message
1666
+
1667
+ # Configuration step type.
1668
+ # Corresponds to the JSON property `type`
1669
+ # @return [String]
1670
+ attr_accessor :type
1671
+
1672
+ def initialize(**args)
1673
+ update!(**args)
1674
+ end
1675
+
1676
+ # Update properties of this object
1677
+ def update!(**args)
1678
+ @error_message = args[:error_message] if args.key?(:error_message)
1679
+ @type = args[:type] if args.key?(:type)
1680
+ end
1681
+ end
1682
+
1683
+ # Message to configure the rollout at the zonal level for the OS policy
1684
+ # assignment.
1685
+ class OsPolicyAssignmentRollout
1686
+ include Google::Apis::Core::Hashable
1687
+
1688
+ # Message encapsulating a value that can be either absolute ("fixed") or
1689
+ # relative ("percent") to a value.
1690
+ # Corresponds to the JSON property `disruptionBudget`
1691
+ # @return [Google::Apis::OsconfigV1::FixedOrPercent]
1692
+ attr_accessor :disruption_budget
1693
+
1694
+ # Required. This determines the minimum duration of time to wait after the
1695
+ # configuration changes are applied through the current rollout. A VM continues
1696
+ # to count towards the `disruption_budget` at least until this duration of time
1697
+ # has passed after configuration changes are applied.
1698
+ # Corresponds to the JSON property `minWaitDuration`
1699
+ # @return [String]
1700
+ attr_accessor :min_wait_duration
1701
+
1702
+ def initialize(**args)
1703
+ update!(**args)
1704
+ end
1705
+
1706
+ # Update properties of this object
1707
+ def update!(**args)
1708
+ @disruption_budget = args[:disruption_budget] if args.key?(:disruption_budget)
1709
+ @min_wait_duration = args[:min_wait_duration] if args.key?(:min_wait_duration)
1710
+ end
1711
+ end
1712
+
1713
+ # Filtering criteria to select VMs based on inventory details.
1714
+ class OsPolicyInventoryFilter
1715
+ include Google::Apis::Core::Hashable
1716
+
1717
+ # Required. The OS short name
1718
+ # Corresponds to the JSON property `osShortName`
1719
+ # @return [String]
1720
+ attr_accessor :os_short_name
1721
+
1722
+ # The OS version Prefix matches are supported if asterisk(*) is provided as the
1723
+ # last character. For example, to match all versions with a major version of `7`,
1724
+ # specify the following value for this field `7.*` An empty string matches all
1725
+ # OS versions.
1726
+ # Corresponds to the JSON property `osVersion`
1727
+ # @return [String]
1728
+ attr_accessor :os_version
1729
+
1730
+ def initialize(**args)
1731
+ update!(**args)
1732
+ end
1733
+
1734
+ # Update properties of this object
1735
+ def update!(**args)
1736
+ @os_short_name = args[:os_short_name] if args.key?(:os_short_name)
1737
+ @os_version = args[:os_version] if args.key?(:os_version)
1738
+ end
1739
+ end
1740
+
1741
+ # An OS policy resource is used to define the desired state configuration and
1742
+ # provides a specific functionality like installing/removing packages, executing
1743
+ # a script etc. The system ensures that resources are always in their desired
1744
+ # state by taking necessary actions if they have drifted from their desired
1745
+ # state.
1746
+ class OsPolicyResource
1747
+ include Google::Apis::Core::Hashable
1748
+
1749
+ # A resource that allows executing scripts on the VM. The `ExecResource` has 2
1750
+ # stages: `validate` and `enforce` and both stages accept a script as an
1751
+ # argument to execute. When the `ExecResource` is applied by the agent, it first
1752
+ # executes the script in the `validate` stage. The `validate` stage can signal
1753
+ # that the `ExecResource` is already in the desired state by returning an exit
1754
+ # code of `100`. If the `ExecResource` is not in the desired state, it should
1755
+ # return an exit code of `101`. Any other exit code returned by this stage is
1756
+ # considered an error. If the `ExecResource` is not in the desired state based
1757
+ # on the exit code from the `validate` stage, the agent proceeds to execute the
1758
+ # script from the `enforce` stage. If the `ExecResource` is already in the
1759
+ # desired state, the `enforce` stage will not be run. Similar to `validate`
1760
+ # stage, the `enforce` stage should return an exit code of `100` to indicate
1761
+ # that the resource in now in its desired state. Any other exit code is
1762
+ # considered an error. NOTE: An exit code of `100` was chosen over `0` (and `101`
1763
+ # vs `1`) to have an explicit indicator of `in desired state`, `not in desired
1764
+ # state` and errors. Because, for example, Powershell will always return an exit
1765
+ # code of `0` unless an `exit` statement is provided in the script. So, for
1766
+ # reasons of consistency and being explicit, exit codes `100` and `101` were
1767
+ # chosen.
1768
+ # Corresponds to the JSON property `exec`
1769
+ # @return [Google::Apis::OsconfigV1::OsPolicyResourceExecResource]
1770
+ attr_accessor :exec
1771
+
1772
+ # A resource that manages the state of a file.
1773
+ # Corresponds to the JSON property `file`
1774
+ # @return [Google::Apis::OsconfigV1::OsPolicyResourceFileResource]
1775
+ attr_accessor :file
1776
+
1777
+ # Required. The id of the resource with the following restrictions: * Must
1778
+ # contain only lowercase letters, numbers, and hyphens. * Must start with a
1779
+ # letter. * Must be between 1-63 characters. * Must end with a number or a
1780
+ # letter. * Must be unique within the OS policy.
1781
+ # Corresponds to the JSON property `id`
1782
+ # @return [String]
1783
+ attr_accessor :id
1784
+
1785
+ # A resource that manages a system package.
1786
+ # Corresponds to the JSON property `pkg`
1787
+ # @return [Google::Apis::OsconfigV1::OsPolicyResourcePackageResource]
1788
+ attr_accessor :pkg
1789
+
1790
+ # A resource that manages a package repository.
1791
+ # Corresponds to the JSON property `repository`
1792
+ # @return [Google::Apis::OsconfigV1::OsPolicyResourceRepositoryResource]
1793
+ attr_accessor :repository
1794
+
1795
+ def initialize(**args)
1796
+ update!(**args)
1797
+ end
1798
+
1799
+ # Update properties of this object
1800
+ def update!(**args)
1801
+ @exec = args[:exec] if args.key?(:exec)
1802
+ @file = args[:file] if args.key?(:file)
1803
+ @id = args[:id] if args.key?(:id)
1804
+ @pkg = args[:pkg] if args.key?(:pkg)
1805
+ @repository = args[:repository] if args.key?(:repository)
1806
+ end
1807
+ end
1808
+
1809
+ # A resource that allows executing scripts on the VM. The `ExecResource` has 2
1810
+ # stages: `validate` and `enforce` and both stages accept a script as an
1811
+ # argument to execute. When the `ExecResource` is applied by the agent, it first
1812
+ # executes the script in the `validate` stage. The `validate` stage can signal
1813
+ # that the `ExecResource` is already in the desired state by returning an exit
1814
+ # code of `100`. If the `ExecResource` is not in the desired state, it should
1815
+ # return an exit code of `101`. Any other exit code returned by this stage is
1816
+ # considered an error. If the `ExecResource` is not in the desired state based
1817
+ # on the exit code from the `validate` stage, the agent proceeds to execute the
1818
+ # script from the `enforce` stage. If the `ExecResource` is already in the
1819
+ # desired state, the `enforce` stage will not be run. Similar to `validate`
1820
+ # stage, the `enforce` stage should return an exit code of `100` to indicate
1821
+ # that the resource in now in its desired state. Any other exit code is
1822
+ # considered an error. NOTE: An exit code of `100` was chosen over `0` (and `101`
1823
+ # vs `1`) to have an explicit indicator of `in desired state`, `not in desired
1824
+ # state` and errors. Because, for example, Powershell will always return an exit
1825
+ # code of `0` unless an `exit` statement is provided in the script. So, for
1826
+ # reasons of consistency and being explicit, exit codes `100` and `101` were
1827
+ # chosen.
1828
+ class OsPolicyResourceExecResource
1829
+ include Google::Apis::Core::Hashable
1830
+
1831
+ # A file or script to execute.
1832
+ # Corresponds to the JSON property `enforce`
1833
+ # @return [Google::Apis::OsconfigV1::OsPolicyResourceExecResourceExec]
1834
+ attr_accessor :enforce
1835
+
1836
+ # A file or script to execute.
1837
+ # Corresponds to the JSON property `validate`
1838
+ # @return [Google::Apis::OsconfigV1::OsPolicyResourceExecResourceExec]
1839
+ attr_accessor :validate
1840
+
1841
+ def initialize(**args)
1842
+ update!(**args)
1843
+ end
1844
+
1845
+ # Update properties of this object
1846
+ def update!(**args)
1847
+ @enforce = args[:enforce] if args.key?(:enforce)
1848
+ @validate = args[:validate] if args.key?(:validate)
1849
+ end
1850
+ end
1851
+
1852
+ # A file or script to execute.
1853
+ class OsPolicyResourceExecResourceExec
1854
+ include Google::Apis::Core::Hashable
1855
+
1856
+ # Optional arguments to pass to the source during execution.
1857
+ # Corresponds to the JSON property `args`
1858
+ # @return [Array<String>]
1859
+ attr_accessor :args
1860
+
1861
+ # A remote or local file.
1862
+ # Corresponds to the JSON property `file`
1863
+ # @return [Google::Apis::OsconfigV1::OsPolicyResourceFile]
1864
+ attr_accessor :file
1865
+
1866
+ # Required. The script interpreter to use.
1867
+ # Corresponds to the JSON property `interpreter`
1868
+ # @return [String]
1869
+ attr_accessor :interpreter
1870
+
1871
+ # Only recorded for enforce Exec. Path to an output file (that is created by
1872
+ # this Exec) whose content will be recorded in OSPolicyResourceCompliance after
1873
+ # a successful run. Absence or failure to read this file will result in this
1874
+ # ExecResource being non-compliant. Output file size is limited to 100K bytes.
1875
+ # Corresponds to the JSON property `outputFilePath`
1876
+ # @return [String]
1877
+ attr_accessor :output_file_path
1878
+
1879
+ # An inline script. The size of the script is limited to 1024 characters.
1880
+ # Corresponds to the JSON property `script`
1881
+ # @return [String]
1882
+ attr_accessor :script
1883
+
1884
+ def initialize(**args)
1885
+ update!(**args)
1886
+ end
1887
+
1888
+ # Update properties of this object
1889
+ def update!(**args)
1890
+ @args = args[:args] if args.key?(:args)
1891
+ @file = args[:file] if args.key?(:file)
1892
+ @interpreter = args[:interpreter] if args.key?(:interpreter)
1893
+ @output_file_path = args[:output_file_path] if args.key?(:output_file_path)
1894
+ @script = args[:script] if args.key?(:script)
1895
+ end
1896
+ end
1897
+
1898
+ # A remote or local file.
1899
+ class OsPolicyResourceFile
1900
+ include Google::Apis::Core::Hashable
1901
+
1902
+ # Defaults to false. When false, files are subject to validations based on the
1903
+ # file type: Remote: A checksum must be specified. Cloud Storage: An object
1904
+ # generation number must be specified.
1905
+ # Corresponds to the JSON property `allowInsecure`
1906
+ # @return [Boolean]
1907
+ attr_accessor :allow_insecure
1908
+ alias_method :allow_insecure?, :allow_insecure
1909
+
1910
+ # Specifies a file available as a Cloud Storage Object.
1911
+ # Corresponds to the JSON property `gcs`
1912
+ # @return [Google::Apis::OsconfigV1::OsPolicyResourceFileGcs]
1913
+ attr_accessor :gcs
1914
+
1915
+ # A local path within the VM to use.
1916
+ # Corresponds to the JSON property `localPath`
1917
+ # @return [String]
1918
+ attr_accessor :local_path
1919
+
1920
+ # Specifies a file available via some URI.
1921
+ # Corresponds to the JSON property `remote`
1922
+ # @return [Google::Apis::OsconfigV1::OsPolicyResourceFileRemote]
1923
+ attr_accessor :remote
1924
+
1925
+ def initialize(**args)
1926
+ update!(**args)
1927
+ end
1928
+
1929
+ # Update properties of this object
1930
+ def update!(**args)
1931
+ @allow_insecure = args[:allow_insecure] if args.key?(:allow_insecure)
1932
+ @gcs = args[:gcs] if args.key?(:gcs)
1933
+ @local_path = args[:local_path] if args.key?(:local_path)
1934
+ @remote = args[:remote] if args.key?(:remote)
1935
+ end
1936
+ end
1937
+
1938
+ # Specifies a file available as a Cloud Storage Object.
1939
+ class OsPolicyResourceFileGcs
1940
+ include Google::Apis::Core::Hashable
1941
+
1942
+ # Required. Bucket of the Cloud Storage object.
1943
+ # Corresponds to the JSON property `bucket`
1944
+ # @return [String]
1945
+ attr_accessor :bucket
1946
+
1947
+ # Generation number of the Cloud Storage object.
1948
+ # Corresponds to the JSON property `generation`
1949
+ # @return [Fixnum]
1950
+ attr_accessor :generation
1951
+
1952
+ # Required. Name of the Cloud Storage object.
1953
+ # Corresponds to the JSON property `object`
1954
+ # @return [String]
1955
+ attr_accessor :object
1956
+
1957
+ def initialize(**args)
1958
+ update!(**args)
1959
+ end
1960
+
1961
+ # Update properties of this object
1962
+ def update!(**args)
1963
+ @bucket = args[:bucket] if args.key?(:bucket)
1964
+ @generation = args[:generation] if args.key?(:generation)
1965
+ @object = args[:object] if args.key?(:object)
1966
+ end
1967
+ end
1968
+
1969
+ # Specifies a file available via some URI.
1970
+ class OsPolicyResourceFileRemote
1971
+ include Google::Apis::Core::Hashable
1972
+
1973
+ # SHA256 checksum of the remote file.
1974
+ # Corresponds to the JSON property `sha256Checksum`
1975
+ # @return [String]
1976
+ attr_accessor :sha256_checksum
1977
+
1978
+ # Required. URI from which to fetch the object. It should contain both the
1979
+ # protocol and path following the format ``protocol`://`location``.
1980
+ # Corresponds to the JSON property `uri`
1981
+ # @return [String]
1982
+ attr_accessor :uri
1983
+
1984
+ def initialize(**args)
1985
+ update!(**args)
1986
+ end
1987
+
1988
+ # Update properties of this object
1989
+ def update!(**args)
1990
+ @sha256_checksum = args[:sha256_checksum] if args.key?(:sha256_checksum)
1991
+ @uri = args[:uri] if args.key?(:uri)
1992
+ end
1993
+ end
1994
+
1995
+ # A resource that manages the state of a file.
1996
+ class OsPolicyResourceFileResource
1997
+ include Google::Apis::Core::Hashable
1998
+
1999
+ # A a file with this content. The size of the content is limited to 1024
2000
+ # characters.
2001
+ # Corresponds to the JSON property `content`
2002
+ # @return [String]
2003
+ attr_accessor :content
2004
+
2005
+ # A remote or local file.
2006
+ # Corresponds to the JSON property `file`
2007
+ # @return [Google::Apis::OsconfigV1::OsPolicyResourceFile]
2008
+ attr_accessor :file
2009
+
2010
+ # Required. The absolute path of the file within the VM.
2011
+ # Corresponds to the JSON property `path`
2012
+ # @return [String]
2013
+ attr_accessor :path
2014
+
2015
+ # Consists of three octal digits which represent, in order, the permissions of
2016
+ # the owner, group, and other users for the file (similarly to the numeric mode
2017
+ # used in the linux chmod utility). Each digit represents a three bit number
2018
+ # with the 4 bit corresponding to the read permissions, the 2 bit corresponds to
2019
+ # the write bit, and the one bit corresponds to the execute permission. Default
2020
+ # behavior is 755. Below are some examples of permissions and their associated
2021
+ # values: read, write, and execute: 7 read and execute: 5 read and write: 6 read
2022
+ # only: 4
2023
+ # Corresponds to the JSON property `permissions`
2024
+ # @return [String]
2025
+ attr_accessor :permissions
2026
+
2027
+ # Required. Desired state of the file.
2028
+ # Corresponds to the JSON property `state`
2029
+ # @return [String]
2030
+ attr_accessor :state
2031
+
2032
+ def initialize(**args)
2033
+ update!(**args)
2034
+ end
2035
+
2036
+ # Update properties of this object
2037
+ def update!(**args)
2038
+ @content = args[:content] if args.key?(:content)
2039
+ @file = args[:file] if args.key?(:file)
2040
+ @path = args[:path] if args.key?(:path)
2041
+ @permissions = args[:permissions] if args.key?(:permissions)
2042
+ @state = args[:state] if args.key?(:state)
2043
+ end
2044
+ end
2045
+
2046
+ # Resource groups provide a mechanism to group OS policy resources. Resource
2047
+ # groups enable OS policy authors to create a single OS policy to be applied to
2048
+ # VMs running different operating Systems. When the OS policy is applied to a
2049
+ # target VM, the appropriate resource group within the OS policy is selected
2050
+ # based on the `OSFilter` specified within the resource group.
2051
+ class OsPolicyResourceGroup
2052
+ include Google::Apis::Core::Hashable
2053
+
2054
+ # List of inventory filters for the resource group. The resources in this
2055
+ # resource group are applied to the target VM if it satisfies at least one of
2056
+ # the following inventory filters. For example, to apply this resource group to
2057
+ # VMs running either `RHEL` or `CentOS` operating systems, specify 2 items for
2058
+ # the list with following values: inventory_filters[0].os_short_name='rhel' and
2059
+ # inventory_filters[1].os_short_name='centos' If the list is empty, this
2060
+ # resource group will be applied to the target VM unconditionally.
2061
+ # Corresponds to the JSON property `inventoryFilters`
2062
+ # @return [Array<Google::Apis::OsconfigV1::OsPolicyInventoryFilter>]
2063
+ attr_accessor :inventory_filters
2064
+
2065
+ # Required. List of resources configured for this resource group. The resources
2066
+ # are executed in the exact order specified here.
2067
+ # Corresponds to the JSON property `resources`
2068
+ # @return [Array<Google::Apis::OsconfigV1::OsPolicyResource>]
2069
+ attr_accessor :resources
2070
+
2071
+ def initialize(**args)
2072
+ update!(**args)
2073
+ end
2074
+
2075
+ # Update properties of this object
2076
+ def update!(**args)
2077
+ @inventory_filters = args[:inventory_filters] if args.key?(:inventory_filters)
2078
+ @resources = args[:resources] if args.key?(:resources)
2079
+ end
2080
+ end
2081
+
2082
+ # A resource that manages a system package.
2083
+ class OsPolicyResourcePackageResource
2084
+ include Google::Apis::Core::Hashable
2085
+
2086
+ # A package managed by APT. - install: `apt-get update && apt-get -y install [
2087
+ # name]` - remove: `apt-get -y remove [name]`
2088
+ # Corresponds to the JSON property `apt`
2089
+ # @return [Google::Apis::OsconfigV1::OsPolicyResourcePackageResourceApt]
2090
+ attr_accessor :apt
2091
+
2092
+ # A deb package file. dpkg packages only support INSTALLED state.
2093
+ # Corresponds to the JSON property `deb`
2094
+ # @return [Google::Apis::OsconfigV1::OsPolicyResourcePackageResourceDeb]
2095
+ attr_accessor :deb
2096
+
2097
+ # Required. The desired state the agent should maintain for this package.
2098
+ # Corresponds to the JSON property `desiredState`
2099
+ # @return [String]
2100
+ attr_accessor :desired_state
2101
+
2102
+ # A package managed by GooGet. - install: `googet -noconfirm install package` -
2103
+ # remove: `googet -noconfirm remove package`
2104
+ # Corresponds to the JSON property `googet`
2105
+ # @return [Google::Apis::OsconfigV1::OsPolicyResourcePackageResourceGooGet]
2106
+ attr_accessor :googet
2107
+
2108
+ # An MSI package. MSI packages only support INSTALLED state.
2109
+ # Corresponds to the JSON property `msi`
2110
+ # @return [Google::Apis::OsconfigV1::OsPolicyResourcePackageResourceMsi]
2111
+ attr_accessor :msi
2112
+
2113
+ # An RPM package file. RPM packages only support INSTALLED state.
2114
+ # Corresponds to the JSON property `rpm`
2115
+ # @return [Google::Apis::OsconfigV1::OsPolicyResourcePackageResourceRpm]
2116
+ attr_accessor :rpm
2117
+
2118
+ # A package managed by YUM. - install: `yum -y install package` - remove: `yum -
2119
+ # y remove package`
2120
+ # Corresponds to the JSON property `yum`
2121
+ # @return [Google::Apis::OsconfigV1::OsPolicyResourcePackageResourceYum]
2122
+ attr_accessor :yum
2123
+
2124
+ # A package managed by Zypper. - install: `zypper -y install package` - remove: `
2125
+ # zypper -y rm package`
2126
+ # Corresponds to the JSON property `zypper`
2127
+ # @return [Google::Apis::OsconfigV1::OsPolicyResourcePackageResourceZypper]
2128
+ attr_accessor :zypper
2129
+
2130
+ def initialize(**args)
2131
+ update!(**args)
2132
+ end
2133
+
2134
+ # Update properties of this object
2135
+ def update!(**args)
2136
+ @apt = args[:apt] if args.key?(:apt)
2137
+ @deb = args[:deb] if args.key?(:deb)
2138
+ @desired_state = args[:desired_state] if args.key?(:desired_state)
2139
+ @googet = args[:googet] if args.key?(:googet)
2140
+ @msi = args[:msi] if args.key?(:msi)
2141
+ @rpm = args[:rpm] if args.key?(:rpm)
2142
+ @yum = args[:yum] if args.key?(:yum)
2143
+ @zypper = args[:zypper] if args.key?(:zypper)
2144
+ end
2145
+ end
2146
+
2147
+ # A package managed by APT. - install: `apt-get update && apt-get -y install [
2148
+ # name]` - remove: `apt-get -y remove [name]`
2149
+ class OsPolicyResourcePackageResourceApt
2150
+ include Google::Apis::Core::Hashable
2151
+
2152
+ # Required. Package name.
2153
+ # Corresponds to the JSON property `name`
2154
+ # @return [String]
2155
+ attr_accessor :name
2156
+
2157
+ def initialize(**args)
2158
+ update!(**args)
2159
+ end
2160
+
2161
+ # Update properties of this object
2162
+ def update!(**args)
2163
+ @name = args[:name] if args.key?(:name)
2164
+ end
2165
+ end
2166
+
2167
+ # A deb package file. dpkg packages only support INSTALLED state.
2168
+ class OsPolicyResourcePackageResourceDeb
2169
+ include Google::Apis::Core::Hashable
2170
+
2171
+ # Whether dependencies should also be installed. - install when false: `dpkg -i
2172
+ # package` - install when true: `apt-get update && apt-get -y install package.
2173
+ # deb`
2174
+ # Corresponds to the JSON property `pullDeps`
2175
+ # @return [Boolean]
2176
+ attr_accessor :pull_deps
2177
+ alias_method :pull_deps?, :pull_deps
2178
+
2179
+ # A remote or local file.
2180
+ # Corresponds to the JSON property `source`
2181
+ # @return [Google::Apis::OsconfigV1::OsPolicyResourceFile]
2182
+ attr_accessor :source
2183
+
2184
+ def initialize(**args)
2185
+ update!(**args)
2186
+ end
2187
+
2188
+ # Update properties of this object
2189
+ def update!(**args)
2190
+ @pull_deps = args[:pull_deps] if args.key?(:pull_deps)
2191
+ @source = args[:source] if args.key?(:source)
2192
+ end
2193
+ end
2194
+
2195
+ # A package managed by GooGet. - install: `googet -noconfirm install package` -
2196
+ # remove: `googet -noconfirm remove package`
2197
+ class OsPolicyResourcePackageResourceGooGet
2198
+ include Google::Apis::Core::Hashable
2199
+
2200
+ # Required. Package name.
2201
+ # Corresponds to the JSON property `name`
2202
+ # @return [String]
2203
+ attr_accessor :name
2204
+
2205
+ def initialize(**args)
2206
+ update!(**args)
2207
+ end
2208
+
2209
+ # Update properties of this object
2210
+ def update!(**args)
2211
+ @name = args[:name] if args.key?(:name)
2212
+ end
2213
+ end
2214
+
2215
+ # An MSI package. MSI packages only support INSTALLED state.
2216
+ class OsPolicyResourcePackageResourceMsi
2217
+ include Google::Apis::Core::Hashable
2218
+
2219
+ # Additional properties to use during installation. This should be in the format
2220
+ # of Property=Setting. Appended to the defaults of `ACTION=INSTALL REBOOT=
2221
+ # ReallySuppress`.
2222
+ # Corresponds to the JSON property `properties`
2223
+ # @return [Array<String>]
2224
+ attr_accessor :properties
2225
+
2226
+ # A remote or local file.
2227
+ # Corresponds to the JSON property `source`
2228
+ # @return [Google::Apis::OsconfigV1::OsPolicyResourceFile]
2229
+ attr_accessor :source
2230
+
2231
+ def initialize(**args)
2232
+ update!(**args)
2233
+ end
2234
+
2235
+ # Update properties of this object
2236
+ def update!(**args)
2237
+ @properties = args[:properties] if args.key?(:properties)
2238
+ @source = args[:source] if args.key?(:source)
2239
+ end
2240
+ end
2241
+
2242
+ # An RPM package file. RPM packages only support INSTALLED state.
2243
+ class OsPolicyResourcePackageResourceRpm
2244
+ include Google::Apis::Core::Hashable
2245
+
2246
+ # Whether dependencies should also be installed. - install when false: `rpm --
2247
+ # upgrade --replacepkgs package.rpm` - install when true: `yum -y install
2248
+ # package.rpm` or `zypper -y install package.rpm`
2249
+ # Corresponds to the JSON property `pullDeps`
2250
+ # @return [Boolean]
2251
+ attr_accessor :pull_deps
2252
+ alias_method :pull_deps?, :pull_deps
2253
+
2254
+ # A remote or local file.
2255
+ # Corresponds to the JSON property `source`
2256
+ # @return [Google::Apis::OsconfigV1::OsPolicyResourceFile]
2257
+ attr_accessor :source
659
2258
 
660
2259
  def initialize(**args)
661
2260
  update!(**args)
@@ -663,34 +2262,20 @@ module Google
663
2262
 
664
2263
  # Update properties of this object
665
2264
  def update!(**args)
666
- @id = args[:id] if args.key?(:id)
667
- @name = args[:name] if args.key?(:name)
2265
+ @pull_deps = args[:pull_deps] if args.key?(:pull_deps)
2266
+ @source = args[:source] if args.key?(:source)
668
2267
  end
669
2268
  end
670
2269
 
671
- # Details related to a Zypper Patch.
672
- class InventoryZypperPatch
2270
+ # A package managed by YUM. - install: `yum -y install package` - remove: `yum -
2271
+ # y remove package`
2272
+ class OsPolicyResourcePackageResourceYum
673
2273
  include Google::Apis::Core::Hashable
674
2274
 
675
- # The category of the patch.
676
- # Corresponds to the JSON property `category`
677
- # @return [String]
678
- attr_accessor :category
679
-
680
- # The name of the patch.
681
- # Corresponds to the JSON property `patchName`
682
- # @return [String]
683
- attr_accessor :patch_name
684
-
685
- # The severity specified for this patch
686
- # Corresponds to the JSON property `severity`
687
- # @return [String]
688
- attr_accessor :severity
689
-
690
- # Any summary information provided about this patch.
691
- # Corresponds to the JSON property `summary`
2275
+ # Required. Package name.
2276
+ # Corresponds to the JSON property `name`
692
2277
  # @return [String]
693
- attr_accessor :summary
2278
+ attr_accessor :name
694
2279
 
695
2280
  def initialize(**args)
696
2281
  update!(**args)
@@ -698,26 +2283,19 @@ module Google
698
2283
 
699
2284
  # Update properties of this object
700
2285
  def update!(**args)
701
- @category = args[:category] if args.key?(:category)
702
- @patch_name = args[:patch_name] if args.key?(:patch_name)
703
- @severity = args[:severity] if args.key?(:severity)
704
- @summary = args[:summary] if args.key?(:summary)
2286
+ @name = args[:name] if args.key?(:name)
705
2287
  end
706
2288
  end
707
2289
 
708
- # The response message for Operations.ListOperations.
709
- class ListOperationsResponse
2290
+ # A package managed by Zypper. - install: `zypper -y install package` - remove: `
2291
+ # zypper -y rm package`
2292
+ class OsPolicyResourcePackageResourceZypper
710
2293
  include Google::Apis::Core::Hashable
711
2294
 
712
- # The standard List next-page token.
713
- # Corresponds to the JSON property `nextPageToken`
2295
+ # Required. Package name.
2296
+ # Corresponds to the JSON property `name`
714
2297
  # @return [String]
715
- attr_accessor :next_page_token
716
-
717
- # A list of operations that matches the specified filter in the request.
718
- # Corresponds to the JSON property `operations`
719
- # @return [Array<Google::Apis::OsconfigV1::Operation>]
720
- attr_accessor :operations
2298
+ attr_accessor :name
721
2299
 
722
2300
  def initialize(**args)
723
2301
  update!(**args)
@@ -725,24 +2303,37 @@ module Google
725
2303
 
726
2304
  # Update properties of this object
727
2305
  def update!(**args)
728
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
729
- @operations = args[:operations] if args.key?(:operations)
2306
+ @name = args[:name] if args.key?(:name)
730
2307
  end
731
2308
  end
732
2309
 
733
- # A response message for listing patch deployments.
734
- class ListPatchDeploymentsResponse
2310
+ # A resource that manages a package repository.
2311
+ class OsPolicyResourceRepositoryResource
735
2312
  include Google::Apis::Core::Hashable
736
2313
 
737
- # A pagination token that can be used to get the next page of patch deployments.
738
- # Corresponds to the JSON property `nextPageToken`
739
- # @return [String]
740
- attr_accessor :next_page_token
2314
+ # Represents a single apt package repository. These will be added to a repo file
2315
+ # that will be managed at `/etc/apt/sources.list.d/google_osconfig.list`.
2316
+ # Corresponds to the JSON property `apt`
2317
+ # @return [Google::Apis::OsconfigV1::OsPolicyResourceRepositoryResourceAptRepository]
2318
+ attr_accessor :apt
741
2319
 
742
- # The list of patch deployments.
743
- # Corresponds to the JSON property `patchDeployments`
744
- # @return [Array<Google::Apis::OsconfigV1::PatchDeployment>]
745
- attr_accessor :patch_deployments
2320
+ # Represents a Goo package repository. These are added to a repo file that is
2321
+ # managed at `C:/ProgramData/GooGet/repos/google_osconfig.repo`.
2322
+ # Corresponds to the JSON property `goo`
2323
+ # @return [Google::Apis::OsconfigV1::OsPolicyResourceRepositoryResourceGooRepository]
2324
+ attr_accessor :goo
2325
+
2326
+ # Represents a single yum package repository. These are added to a repo file
2327
+ # that is managed at `/etc/yum.repos.d/google_osconfig.repo`.
2328
+ # Corresponds to the JSON property `yum`
2329
+ # @return [Google::Apis::OsconfigV1::OsPolicyResourceRepositoryResourceYumRepository]
2330
+ attr_accessor :yum
2331
+
2332
+ # Represents a single zypper package repository. These are added to a repo file
2333
+ # that is managed at `/etc/zypp/repos.d/google_osconfig.repo`.
2334
+ # Corresponds to the JSON property `zypper`
2335
+ # @return [Google::Apis::OsconfigV1::OsPolicyResourceRepositoryResourceZypperRepository]
2336
+ attr_accessor :zypper
746
2337
 
747
2338
  def initialize(**args)
748
2339
  update!(**args)
@@ -750,24 +2341,44 @@ module Google
750
2341
 
751
2342
  # Update properties of this object
752
2343
  def update!(**args)
753
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
754
- @patch_deployments = args[:patch_deployments] if args.key?(:patch_deployments)
2344
+ @apt = args[:apt] if args.key?(:apt)
2345
+ @goo = args[:goo] if args.key?(:goo)
2346
+ @yum = args[:yum] if args.key?(:yum)
2347
+ @zypper = args[:zypper] if args.key?(:zypper)
755
2348
  end
756
2349
  end
757
2350
 
758
- # A response message for listing the instances details for a patch job.
759
- class ListPatchJobInstanceDetailsResponse
2351
+ # Represents a single apt package repository. These will be added to a repo file
2352
+ # that will be managed at `/etc/apt/sources.list.d/google_osconfig.list`.
2353
+ class OsPolicyResourceRepositoryResourceAptRepository
760
2354
  include Google::Apis::Core::Hashable
761
2355
 
762
- # A pagination token that can be used to get the next page of results.
763
- # Corresponds to the JSON property `nextPageToken`
2356
+ # Required. Type of archive files in this repository.
2357
+ # Corresponds to the JSON property `archiveType`
764
2358
  # @return [String]
765
- attr_accessor :next_page_token
2359
+ attr_accessor :archive_type
766
2360
 
767
- # A list of instance status.
768
- # Corresponds to the JSON property `patchJobInstanceDetails`
769
- # @return [Array<Google::Apis::OsconfigV1::PatchJobInstanceDetails>]
770
- attr_accessor :patch_job_instance_details
2361
+ # Required. List of components for this repository. Must contain at least one
2362
+ # item.
2363
+ # Corresponds to the JSON property `components`
2364
+ # @return [Array<String>]
2365
+ attr_accessor :components
2366
+
2367
+ # Required. Distribution of this repository.
2368
+ # Corresponds to the JSON property `distribution`
2369
+ # @return [String]
2370
+ attr_accessor :distribution
2371
+
2372
+ # URI of the key file for this repository. The agent maintains a keyring at `/
2373
+ # etc/apt/trusted.gpg.d/osconfig_agent_managed.gpg`.
2374
+ # Corresponds to the JSON property `gpgKey`
2375
+ # @return [String]
2376
+ attr_accessor :gpg_key
2377
+
2378
+ # Required. URI for this repository.
2379
+ # Corresponds to the JSON property `uri`
2380
+ # @return [String]
2381
+ attr_accessor :uri
771
2382
 
772
2383
  def initialize(**args)
773
2384
  update!(**args)
@@ -775,24 +2386,28 @@ module Google
775
2386
 
776
2387
  # Update properties of this object
777
2388
  def update!(**args)
778
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
779
- @patch_job_instance_details = args[:patch_job_instance_details] if args.key?(:patch_job_instance_details)
2389
+ @archive_type = args[:archive_type] if args.key?(:archive_type)
2390
+ @components = args[:components] if args.key?(:components)
2391
+ @distribution = args[:distribution] if args.key?(:distribution)
2392
+ @gpg_key = args[:gpg_key] if args.key?(:gpg_key)
2393
+ @uri = args[:uri] if args.key?(:uri)
780
2394
  end
781
2395
  end
782
2396
 
783
- # A response message for listing patch jobs.
784
- class ListPatchJobsResponse
2397
+ # Represents a Goo package repository. These are added to a repo file that is
2398
+ # managed at `C:/ProgramData/GooGet/repos/google_osconfig.repo`.
2399
+ class OsPolicyResourceRepositoryResourceGooRepository
785
2400
  include Google::Apis::Core::Hashable
786
2401
 
787
- # A pagination token that can be used to get the next page of results.
788
- # Corresponds to the JSON property `nextPageToken`
2402
+ # Required. The name of the repository.
2403
+ # Corresponds to the JSON property `name`
789
2404
  # @return [String]
790
- attr_accessor :next_page_token
2405
+ attr_accessor :name
791
2406
 
792
- # The list of patch jobs.
793
- # Corresponds to the JSON property `patchJobs`
794
- # @return [Array<Google::Apis::OsconfigV1::PatchJob>]
795
- attr_accessor :patch_jobs
2407
+ # Required. The url of the repository.
2408
+ # Corresponds to the JSON property `url`
2409
+ # @return [String]
2410
+ attr_accessor :url
796
2411
 
797
2412
  def initialize(**args)
798
2413
  update!(**args)
@@ -800,28 +2415,38 @@ module Google
800
2415
 
801
2416
  # Update properties of this object
802
2417
  def update!(**args)
803
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
804
- @patch_jobs = args[:patch_jobs] if args.key?(:patch_jobs)
2418
+ @name = args[:name] if args.key?(:name)
2419
+ @url = args[:url] if args.key?(:url)
805
2420
  end
806
2421
  end
807
2422
 
808
- # Represents a monthly schedule. An example of a valid monthly schedule is "on
809
- # the third Tuesday of the month" or "on the 15th of the month".
810
- class MonthlySchedule
2423
+ # Represents a single yum package repository. These are added to a repo file
2424
+ # that is managed at `/etc/yum.repos.d/google_osconfig.repo`.
2425
+ class OsPolicyResourceRepositoryResourceYumRepository
811
2426
  include Google::Apis::Core::Hashable
812
2427
 
813
- # Required. One day of the month. 1-31 indicates the 1st to the 31st day. -1
814
- # indicates the last day of the month. Months without the target day will be
815
- # skipped. For example, a schedule to run "every month on the 31st" will not run
816
- # in February, April, June, etc.
817
- # Corresponds to the JSON property `monthDay`
818
- # @return [Fixnum]
819
- attr_accessor :month_day
2428
+ # Required. The location of the repository directory.
2429
+ # Corresponds to the JSON property `baseUrl`
2430
+ # @return [String]
2431
+ attr_accessor :base_url
820
2432
 
821
- # Represents one week day in a month. An example is "the 4th Sunday".
822
- # Corresponds to the JSON property `weekDayOfMonth`
823
- # @return [Google::Apis::OsconfigV1::WeekDayOfMonth]
824
- attr_accessor :week_day_of_month
2433
+ # The display name of the repository.
2434
+ # Corresponds to the JSON property `displayName`
2435
+ # @return [String]
2436
+ attr_accessor :display_name
2437
+
2438
+ # URIs of GPG keys.
2439
+ # Corresponds to the JSON property `gpgKeys`
2440
+ # @return [Array<String>]
2441
+ attr_accessor :gpg_keys
2442
+
2443
+ # Required. A one word, unique name for this repository. This is the `repo id`
2444
+ # in the yum config file and also the `display_name` if `display_name` is
2445
+ # omitted. This id is also used as the unique identifier when checking for
2446
+ # resource conflicts.
2447
+ # Corresponds to the JSON property `id`
2448
+ # @return [String]
2449
+ attr_accessor :id
825
2450
 
826
2451
  def initialize(**args)
827
2452
  update!(**args)
@@ -829,42 +2454,40 @@ module Google
829
2454
 
830
2455
  # Update properties of this object
831
2456
  def update!(**args)
832
- @month_day = args[:month_day] if args.key?(:month_day)
833
- @week_day_of_month = args[:week_day_of_month] if args.key?(:week_day_of_month)
2457
+ @base_url = args[:base_url] if args.key?(:base_url)
2458
+ @display_name = args[:display_name] if args.key?(:display_name)
2459
+ @gpg_keys = args[:gpg_keys] if args.key?(:gpg_keys)
2460
+ @id = args[:id] if args.key?(:id)
834
2461
  end
835
2462
  end
836
2463
 
837
- # OS policy assignment operation metadata provided by OS policy assignment API
838
- # methods that return long running operations.
839
- class OsPolicyAssignmentOperationMetadata
2464
+ # Represents a single zypper package repository. These are added to a repo file
2465
+ # that is managed at `/etc/zypp/repos.d/google_osconfig.repo`.
2466
+ class OsPolicyResourceRepositoryResourceZypperRepository
840
2467
  include Google::Apis::Core::Hashable
841
2468
 
842
- # The OS policy assignment API method.
843
- # Corresponds to the JSON property `apiMethod`
844
- # @return [String]
845
- attr_accessor :api_method
846
-
847
- # Reference to the `OSPolicyAssignment` API resource. Format: `projects/`
848
- # project_number`/locations/`location`/osPolicyAssignments/`
849
- # os_policy_assignment_id@revision_id``
850
- # Corresponds to the JSON property `osPolicyAssignment`
2469
+ # Required. The location of the repository directory.
2470
+ # Corresponds to the JSON property `baseUrl`
851
2471
  # @return [String]
852
- attr_accessor :os_policy_assignment
2472
+ attr_accessor :base_url
853
2473
 
854
- # Rollout start time
855
- # Corresponds to the JSON property `rolloutStartTime`
2474
+ # The display name of the repository.
2475
+ # Corresponds to the JSON property `displayName`
856
2476
  # @return [String]
857
- attr_accessor :rollout_start_time
2477
+ attr_accessor :display_name
858
2478
 
859
- # State of the rollout
860
- # Corresponds to the JSON property `rolloutState`
861
- # @return [String]
862
- attr_accessor :rollout_state
2479
+ # URIs of GPG keys.
2480
+ # Corresponds to the JSON property `gpgKeys`
2481
+ # @return [Array<String>]
2482
+ attr_accessor :gpg_keys
863
2483
 
864
- # Rollout update time
865
- # Corresponds to the JSON property `rolloutUpdateTime`
2484
+ # Required. A one word, unique name for this repository. This is the `repo id`
2485
+ # in the zypper config file and also the `display_name` if `display_name` is
2486
+ # omitted. This id is also used as the unique identifier when checking for
2487
+ # GuestPolicy conflicts.
2488
+ # Corresponds to the JSON property `id`
866
2489
  # @return [String]
867
- attr_accessor :rollout_update_time
2490
+ attr_accessor :id
868
2491
 
869
2492
  def initialize(**args)
870
2493
  update!(**args)
@@ -872,11 +2495,10 @@ module Google
872
2495
 
873
2496
  # Update properties of this object
874
2497
  def update!(**args)
875
- @api_method = args[:api_method] if args.key?(:api_method)
876
- @os_policy_assignment = args[:os_policy_assignment] if args.key?(:os_policy_assignment)
877
- @rollout_start_time = args[:rollout_start_time] if args.key?(:rollout_start_time)
878
- @rollout_state = args[:rollout_state] if args.key?(:rollout_state)
879
- @rollout_update_time = args[:rollout_update_time] if args.key?(:rollout_update_time)
2498
+ @base_url = args[:base_url] if args.key?(:base_url)
2499
+ @display_name = args[:display_name] if args.key?(:display_name)
2500
+ @gpg_keys = args[:gpg_keys] if args.key?(:gpg_keys)
2501
+ @id = args[:id] if args.key?(:id)
880
2502
  end
881
2503
  end
882
2504
 
@@ -1682,6 +3304,173 @@ module Google
1682
3304
  end
1683
3305
  end
1684
3306
 
3307
+ # This API resource represents the vulnerability report for a specified Compute
3308
+ # Engine virtual machine (VM) instance at a given point in time. For more
3309
+ # information, see [Vulnerability reports](https://cloud.google.com/compute/docs/
3310
+ # instances/os-inventory-management#vulnerability-reports).
3311
+ class VulnerabilityReport
3312
+ include Google::Apis::Core::Hashable
3313
+
3314
+ # Output only. The `vulnerabilityReport` API resource name. Format: `projects/`
3315
+ # project_number`/locations/`location`/instances/`instance_id`/
3316
+ # vulnerabilityReport`
3317
+ # Corresponds to the JSON property `name`
3318
+ # @return [String]
3319
+ attr_accessor :name
3320
+
3321
+ # Output only. The timestamp for when the last vulnerability report was
3322
+ # generated for the VM.
3323
+ # Corresponds to the JSON property `updateTime`
3324
+ # @return [String]
3325
+ attr_accessor :update_time
3326
+
3327
+ # Output only. List of vulnerabilities affecting the VM.
3328
+ # Corresponds to the JSON property `vulnerabilities`
3329
+ # @return [Array<Google::Apis::OsconfigV1::VulnerabilityReportVulnerability>]
3330
+ attr_accessor :vulnerabilities
3331
+
3332
+ def initialize(**args)
3333
+ update!(**args)
3334
+ end
3335
+
3336
+ # Update properties of this object
3337
+ def update!(**args)
3338
+ @name = args[:name] if args.key?(:name)
3339
+ @update_time = args[:update_time] if args.key?(:update_time)
3340
+ @vulnerabilities = args[:vulnerabilities] if args.key?(:vulnerabilities)
3341
+ end
3342
+ end
3343
+
3344
+ # A vulnerability affecting the VM instance.
3345
+ class VulnerabilityReportVulnerability
3346
+ include Google::Apis::Core::Hashable
3347
+
3348
+ # Corresponds to the `AVAILABLE_PACKAGE` inventory item on the VM. If the
3349
+ # vulnerability report was not updated after the VM inventory update, these
3350
+ # values might not display in VM inventory. If there is no available fix, the
3351
+ # field is empty. The `inventory_item` value specifies the latest `
3352
+ # SoftwarePackage` available to the VM that fixes the vulnerability.
3353
+ # Corresponds to the JSON property `availableInventoryItemIds`
3354
+ # @return [Array<String>]
3355
+ attr_accessor :available_inventory_item_ids
3356
+
3357
+ # The timestamp for when the vulnerability was first detected.
3358
+ # Corresponds to the JSON property `createTime`
3359
+ # @return [String]
3360
+ attr_accessor :create_time
3361
+
3362
+ # Contains metadata information for the vulnerability. This information is
3363
+ # collected from the upstream feed of the operating system.
3364
+ # Corresponds to the JSON property `details`
3365
+ # @return [Google::Apis::OsconfigV1::VulnerabilityReportVulnerabilityDetails]
3366
+ attr_accessor :details
3367
+
3368
+ # Corresponds to the `INSTALLED_PACKAGE` inventory item on the VM. This field
3369
+ # displays the inventory items affected by this vulnerability. If the
3370
+ # vulnerability report was not updated after the VM inventory update, these
3371
+ # values might not display in VM inventory. For some distros, this field may be
3372
+ # empty.
3373
+ # Corresponds to the JSON property `installedInventoryItemIds`
3374
+ # @return [Array<String>]
3375
+ attr_accessor :installed_inventory_item_ids
3376
+
3377
+ # The timestamp for when the vulnerability was last modified.
3378
+ # Corresponds to the JSON property `updateTime`
3379
+ # @return [String]
3380
+ attr_accessor :update_time
3381
+
3382
+ def initialize(**args)
3383
+ update!(**args)
3384
+ end
3385
+
3386
+ # Update properties of this object
3387
+ def update!(**args)
3388
+ @available_inventory_item_ids = args[:available_inventory_item_ids] if args.key?(:available_inventory_item_ids)
3389
+ @create_time = args[:create_time] if args.key?(:create_time)
3390
+ @details = args[:details] if args.key?(:details)
3391
+ @installed_inventory_item_ids = args[:installed_inventory_item_ids] if args.key?(:installed_inventory_item_ids)
3392
+ @update_time = args[:update_time] if args.key?(:update_time)
3393
+ end
3394
+ end
3395
+
3396
+ # Contains metadata information for the vulnerability. This information is
3397
+ # collected from the upstream feed of the operating system.
3398
+ class VulnerabilityReportVulnerabilityDetails
3399
+ include Google::Apis::Core::Hashable
3400
+
3401
+ # The CVE of the vulnerability. CVE cannot be empty and the combination of
3402
+ # should be unique across vulnerabilities for a VM.
3403
+ # Corresponds to the JSON property `cve`
3404
+ # @return [String]
3405
+ attr_accessor :cve
3406
+
3407
+ # The CVSS V2 score of this vulnerability. CVSS V2 score is on a scale of 0 - 10
3408
+ # where 0 indicates low severity and 10 indicates high severity.
3409
+ # Corresponds to the JSON property `cvssV2Score`
3410
+ # @return [Float]
3411
+ attr_accessor :cvss_v2_score
3412
+
3413
+ # Common Vulnerability Scoring System version 3. For details, see https://www.
3414
+ # first.org/cvss/specification-document
3415
+ # Corresponds to the JSON property `cvssV3`
3416
+ # @return [Google::Apis::OsconfigV1::CvsSv3]
3417
+ attr_accessor :cvss_v3
3418
+
3419
+ # The note or description describing the vulnerability from the distro.
3420
+ # Corresponds to the JSON property `description`
3421
+ # @return [String]
3422
+ attr_accessor :description
3423
+
3424
+ # Corresponds to the references attached to the `VulnerabilityDetails`.
3425
+ # Corresponds to the JSON property `references`
3426
+ # @return [Array<Google::Apis::OsconfigV1::VulnerabilityReportVulnerabilityDetailsReference>]
3427
+ attr_accessor :references
3428
+
3429
+ # Assigned severity/impact ranking from the distro.
3430
+ # Corresponds to the JSON property `severity`
3431
+ # @return [String]
3432
+ attr_accessor :severity
3433
+
3434
+ def initialize(**args)
3435
+ update!(**args)
3436
+ end
3437
+
3438
+ # Update properties of this object
3439
+ def update!(**args)
3440
+ @cve = args[:cve] if args.key?(:cve)
3441
+ @cvss_v2_score = args[:cvss_v2_score] if args.key?(:cvss_v2_score)
3442
+ @cvss_v3 = args[:cvss_v3] if args.key?(:cvss_v3)
3443
+ @description = args[:description] if args.key?(:description)
3444
+ @references = args[:references] if args.key?(:references)
3445
+ @severity = args[:severity] if args.key?(:severity)
3446
+ end
3447
+ end
3448
+
3449
+ # A reference for this vulnerability.
3450
+ class VulnerabilityReportVulnerabilityDetailsReference
3451
+ include Google::Apis::Core::Hashable
3452
+
3453
+ # The source of the reference e.g. NVD.
3454
+ # Corresponds to the JSON property `source`
3455
+ # @return [String]
3456
+ attr_accessor :source
3457
+
3458
+ # The url of the reference.
3459
+ # Corresponds to the JSON property `url`
3460
+ # @return [String]
3461
+ attr_accessor :url
3462
+
3463
+ def initialize(**args)
3464
+ update!(**args)
3465
+ end
3466
+
3467
+ # Update properties of this object
3468
+ def update!(**args)
3469
+ @source = args[:source] if args.key?(:source)
3470
+ @url = args[:url] if args.key?(:url)
3471
+ end
3472
+ end
3473
+
1685
3474
  # Represents one week day in a month. An example is "the 4th Sunday".
1686
3475
  class WeekDayOfMonth
1687
3476
  include Google::Apis::Core::Hashable