google-apis-osconfig_v1 0.9.0 → 0.13.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.
@@ -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`.