google-apis-osconfig_v1 0.9.0 → 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -149,6 +149,19 @@ module Google
149
149
  end
150
150
  end
151
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
+
152
165
  # Message for canceling a patch job.
153
166
  class CancelPatchJobRequest
154
167
  include Google::Apis::Core::Hashable
@@ -162,6 +175,47 @@ module Google
162
175
  end
163
176
  end
164
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
+
165
219
  # A generic empty message that you can re-use to avoid defining duplicated empty
166
220
  # messages in your APIs. A typical example is to use it as the request or the
167
221
  # response type of an API method. For instance: service Foo ` rpc Bar(google.
@@ -568,6 +622,13 @@ module Google
568
622
  # @return [Google::Apis::OsconfigV1::InventoryWindowsQuickFixEngineeringPackage]
569
623
  attr_accessor :qfe_package
570
624
 
625
+ # Contains information about a Windows application that is retrieved from the
626
+ # Windows Registry. For more information about these fields, see: https://docs.
627
+ # microsoft.com/en-us/windows/win32/msi/uninstall-registry-key
628
+ # Corresponds to the JSON property `windowsApplication`
629
+ # @return [Google::Apis::OsconfigV1::InventoryWindowsApplication]
630
+ attr_accessor :windows_application
631
+
571
632
  # Details related to a Windows Update package. Field data and names are taken
572
633
  # from Windows Update API IUpdate Interface: https://docs.microsoft.com/en-us/
573
634
  # windows/win32/api/_wua/ Descriptive fields like title, and description are
@@ -603,6 +664,7 @@ module Google
603
664
  @cos_package = args[:cos_package] if args.key?(:cos_package)
604
665
  @googet_package = args[:googet_package] if args.key?(:googet_package)
605
666
  @qfe_package = args[:qfe_package] if args.key?(:qfe_package)
667
+ @windows_application = args[:windows_application] if args.key?(:windows_application)
606
668
  @wua_package = args[:wua_package] if args.key?(:wua_package)
607
669
  @yum_package = args[:yum_package] if args.key?(:yum_package)
608
670
  @zypper_package = args[:zypper_package] if args.key?(:zypper_package)
@@ -642,6 +704,58 @@ module Google
642
704
  end
643
705
  end
644
706
 
707
+ # Contains information about a Windows application that is retrieved from the
708
+ # Windows Registry. For more information about these fields, see: https://docs.
709
+ # microsoft.com/en-us/windows/win32/msi/uninstall-registry-key
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
+
645
759
  # Information related to a Quick Fix Engineering package. Fields are taken from
646
760
  # Windows QuickFixEngineering Interface and match the source names: https://docs.
647
761
  # microsoft.com/en-us/windows/win32/cimwin32prov/win32-quickfixengineering
@@ -840,6 +954,84 @@ module Google
840
954
  end
841
955
  end
842
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
+
843
1035
  # A response message for listing patch deployments.
844
1036
  class ListPatchDeploymentsResponse
845
1037
  include Google::Apis::Core::Hashable
@@ -970,6 +1162,270 @@ module Google
970
1162
  end
971
1163
  end
972
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
+
973
1429
  # OS policy assignment operation metadata provided by OS policy assignment API
974
1430
  # methods that return long running operations.
975
1431
  class OsPolicyAssignmentOperationMetadata
@@ -1016,15 +1472,1045 @@ module Google
1016
1472
  end
1017
1473
  end
1018
1474
 
1019
- # Sets the time for a one time patch deployment. Timestamp is in [RFC3339](https:
1020
- # //www.ietf.org/rfc/rfc3339.txt) text format.
1021
- class OneTimeSchedule
1475
+ # A report of the OS policy assignment status for a given instance.
1476
+ class OsPolicyAssignmentReport
1022
1477
  include Google::Apis::Core::Hashable
1023
1478
 
1024
- # Required. The desired patch job execution time.
1025
- # Corresponds to the JSON property `executeTime`
1479
+ # The Compute Engine VM instance name.
1480
+ # Corresponds to the JSON property `instance`
1026
1481
  # @return [String]
1027
- attr_accessor :execute_time
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
2258
+
2259
+ def initialize(**args)
2260
+ update!(**args)
2261
+ end
2262
+
2263
+ # Update properties of this object
2264
+ def update!(**args)
2265
+ @pull_deps = args[:pull_deps] if args.key?(:pull_deps)
2266
+ @source = args[:source] if args.key?(:source)
2267
+ end
2268
+ end
2269
+
2270
+ # A package managed by YUM. - install: `yum -y install package` - remove: `yum -
2271
+ # y remove package`
2272
+ class OsPolicyResourcePackageResourceYum
2273
+ include Google::Apis::Core::Hashable
2274
+
2275
+ # Required. Package name.
2276
+ # Corresponds to the JSON property `name`
2277
+ # @return [String]
2278
+ attr_accessor :name
2279
+
2280
+ def initialize(**args)
2281
+ update!(**args)
2282
+ end
2283
+
2284
+ # Update properties of this object
2285
+ def update!(**args)
2286
+ @name = args[:name] if args.key?(:name)
2287
+ end
2288
+ end
2289
+
2290
+ # A package managed by Zypper. - install: `zypper -y install package` - remove: `
2291
+ # zypper -y rm package`
2292
+ class OsPolicyResourcePackageResourceZypper
2293
+ include Google::Apis::Core::Hashable
2294
+
2295
+ # Required. Package name.
2296
+ # Corresponds to the JSON property `name`
2297
+ # @return [String]
2298
+ attr_accessor :name
2299
+
2300
+ def initialize(**args)
2301
+ update!(**args)
2302
+ end
2303
+
2304
+ # Update properties of this object
2305
+ def update!(**args)
2306
+ @name = args[:name] if args.key?(:name)
2307
+ end
2308
+ end
2309
+
2310
+ # A resource that manages a package repository.
2311
+ class OsPolicyResourceRepositoryResource
2312
+ include Google::Apis::Core::Hashable
2313
+
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
2319
+
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
2337
+
2338
+ def initialize(**args)
2339
+ update!(**args)
2340
+ end
2341
+
2342
+ # Update properties of this object
2343
+ def update!(**args)
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)
2348
+ end
2349
+ end
2350
+
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
2354
+ include Google::Apis::Core::Hashable
2355
+
2356
+ # Required. Type of archive files in this repository.
2357
+ # Corresponds to the JSON property `archiveType`
2358
+ # @return [String]
2359
+ attr_accessor :archive_type
2360
+
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
2382
+
2383
+ def initialize(**args)
2384
+ update!(**args)
2385
+ end
2386
+
2387
+ # Update properties of this object
2388
+ def update!(**args)
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)
2394
+ end
2395
+ end
2396
+
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
2400
+ include Google::Apis::Core::Hashable
2401
+
2402
+ # Required. The name of the repository.
2403
+ # Corresponds to the JSON property `name`
2404
+ # @return [String]
2405
+ attr_accessor :name
2406
+
2407
+ # Required. The url of the repository.
2408
+ # Corresponds to the JSON property `url`
2409
+ # @return [String]
2410
+ attr_accessor :url
2411
+
2412
+ def initialize(**args)
2413
+ update!(**args)
2414
+ end
2415
+
2416
+ # Update properties of this object
2417
+ def update!(**args)
2418
+ @name = args[:name] if args.key?(:name)
2419
+ @url = args[:url] if args.key?(:url)
2420
+ end
2421
+ end
2422
+
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
2426
+ include Google::Apis::Core::Hashable
2427
+
2428
+ # Required. The location of the repository directory.
2429
+ # Corresponds to the JSON property `baseUrl`
2430
+ # @return [String]
2431
+ attr_accessor :base_url
2432
+
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
2450
+
2451
+ def initialize(**args)
2452
+ update!(**args)
2453
+ end
2454
+
2455
+ # Update properties of this object
2456
+ def update!(**args)
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)
2461
+ end
2462
+ end
2463
+
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
2467
+ include Google::Apis::Core::Hashable
2468
+
2469
+ # Required. The location of the repository directory.
2470
+ # Corresponds to the JSON property `baseUrl`
2471
+ # @return [String]
2472
+ attr_accessor :base_url
2473
+
2474
+ # The display name of the repository.
2475
+ # Corresponds to the JSON property `displayName`
2476
+ # @return [String]
2477
+ attr_accessor :display_name
2478
+
2479
+ # URIs of GPG keys.
2480
+ # Corresponds to the JSON property `gpgKeys`
2481
+ # @return [Array<String>]
2482
+ attr_accessor :gpg_keys
2483
+
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`
2489
+ # @return [String]
2490
+ attr_accessor :id
2491
+
2492
+ def initialize(**args)
2493
+ update!(**args)
2494
+ end
2495
+
2496
+ # Update properties of this object
2497
+ def update!(**args)
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)
2502
+ end
2503
+ end
2504
+
2505
+ # Sets the time for a one time patch deployment. Timestamp is in [RFC3339](https:
2506
+ # //www.ietf.org/rfc/rfc3339.txt) text format.
2507
+ class OneTimeSchedule
2508
+ include Google::Apis::Core::Hashable
2509
+
2510
+ # Required. The desired patch job execution time.
2511
+ # Corresponds to the JSON property `executeTime`
2512
+ # @return [String]
2513
+ attr_accessor :execute_time
1028
2514
 
1029
2515
  def initialize(**args)
1030
2516
  update!(**args)
@@ -1036,6 +2522,68 @@ module Google
1036
2522
  end
1037
2523
  end
1038
2524
 
2525
+ # This resource represents a long-running operation that is the result of a
2526
+ # network API call.
2527
+ class Operation
2528
+ include Google::Apis::Core::Hashable
2529
+
2530
+ # If the value is `false`, it means the operation is still in progress. If `true`
2531
+ # , the operation is completed, and either `error` or `response` is available.
2532
+ # Corresponds to the JSON property `done`
2533
+ # @return [Boolean]
2534
+ attr_accessor :done
2535
+ alias_method :done?, :done
2536
+
2537
+ # The `Status` type defines a logical error model that is suitable for different
2538
+ # programming environments, including REST APIs and RPC APIs. It is used by [
2539
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
2540
+ # data: error code, error message, and error details. You can find out more
2541
+ # about this error model and how to work with it in the [API Design Guide](https:
2542
+ # //cloud.google.com/apis/design/errors).
2543
+ # Corresponds to the JSON property `error`
2544
+ # @return [Google::Apis::OsconfigV1::Status]
2545
+ attr_accessor :error
2546
+
2547
+ # Service-specific metadata associated with the operation. It typically contains
2548
+ # progress information and common metadata such as create time. Some services
2549
+ # might not provide such metadata. Any method that returns a long-running
2550
+ # operation should document the metadata type, if any.
2551
+ # Corresponds to the JSON property `metadata`
2552
+ # @return [Hash<String,Object>]
2553
+ attr_accessor :metadata
2554
+
2555
+ # The server-assigned name, which is only unique within the same service that
2556
+ # originally returns it. If you use the default HTTP mapping, the `name` should
2557
+ # be a resource name ending with `operations/`unique_id``.
2558
+ # Corresponds to the JSON property `name`
2559
+ # @return [String]
2560
+ attr_accessor :name
2561
+
2562
+ # The normal response of the operation in case of success. If the original
2563
+ # method returns no data on success, such as `Delete`, the response is `google.
2564
+ # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
2565
+ # the response should be the resource. For other methods, the response should
2566
+ # have the type `XxxResponse`, where `Xxx` is the original method name. For
2567
+ # example, if the original method name is `TakeSnapshot()`, the inferred
2568
+ # response type is `TakeSnapshotResponse`.
2569
+ # Corresponds to the JSON property `response`
2570
+ # @return [Hash<String,Object>]
2571
+ attr_accessor :response
2572
+
2573
+ def initialize(**args)
2574
+ update!(**args)
2575
+ end
2576
+
2577
+ # Update properties of this object
2578
+ def update!(**args)
2579
+ @done = args[:done] if args.key?(:done)
2580
+ @error = args[:error] if args.key?(:error)
2581
+ @metadata = args[:metadata] if args.key?(:metadata)
2582
+ @name = args[:name] if args.key?(:name)
2583
+ @response = args[:response] if args.key?(:response)
2584
+ end
2585
+ end
2586
+
1039
2587
  # Patch configuration specifications. Contains details on how to apply the patch(
1040
2588
  # es) to a VM instance.
1041
2589
  class PatchConfig
@@ -1650,6 +3198,45 @@ module Google
1650
3198
  end
1651
3199
  end
1652
3200
 
3201
+ # The `Status` type defines a logical error model that is suitable for different
3202
+ # programming environments, including REST APIs and RPC APIs. It is used by [
3203
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
3204
+ # data: error code, error message, and error details. You can find out more
3205
+ # about this error model and how to work with it in the [API Design Guide](https:
3206
+ # //cloud.google.com/apis/design/errors).
3207
+ class Status
3208
+ include Google::Apis::Core::Hashable
3209
+
3210
+ # The status code, which should be an enum value of google.rpc.Code.
3211
+ # Corresponds to the JSON property `code`
3212
+ # @return [Fixnum]
3213
+ attr_accessor :code
3214
+
3215
+ # A list of messages that carry the error details. There is a common set of
3216
+ # message types for APIs to use.
3217
+ # Corresponds to the JSON property `details`
3218
+ # @return [Array<Hash<String,Object>>]
3219
+ attr_accessor :details
3220
+
3221
+ # A developer-facing error message, which should be in English. Any user-facing
3222
+ # error message should be localized and sent in the google.rpc.Status.details
3223
+ # field, or localized by the client.
3224
+ # Corresponds to the JSON property `message`
3225
+ # @return [String]
3226
+ attr_accessor :message
3227
+
3228
+ def initialize(**args)
3229
+ update!(**args)
3230
+ end
3231
+
3232
+ # Update properties of this object
3233
+ def update!(**args)
3234
+ @code = args[:code] if args.key?(:code)
3235
+ @details = args[:details] if args.key?(:details)
3236
+ @message = args[:message] if args.key?(:message)
3237
+ end
3238
+ end
3239
+
1653
3240
  # Represents a time of day. The date and time zone are either not significant or
1654
3241
  # are specified elsewhere. An API may choose to allow leap seconds. Related
1655
3242
  # types are google.type.Date and `google.protobuf.Timestamp`.