google-apis-osconfig_v1 0.7.0 → 0.11.0

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