google-apis-cloudasset_v1p7beta1 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d9137af7237d6ebd7efa85dc88754c0a458df63cfa6e2c20615f448fd0f7a742
4
- data.tar.gz: 34cffd3dd83bff6741cbc856cf9c6855fd3c4050e4247ba3c03c4171e6772b23
3
+ metadata.gz: db95e223da7dd719426721acb9417c28dd3da265182e788b9aa1d0940d243480
4
+ data.tar.gz: d0fd4ed57c1fec311cbafc906767706fb7456de56a31bb2848c3107c7677a5dc
5
5
  SHA512:
6
- metadata.gz: 542d47275687f8ed7910b3530686cb579cbd4cf545e9c85c7c3fe5208dbf133572644ae4a638b7f1ed2030adc994c0866bc08f6734923998d39b17ae2ae38b5d
7
- data.tar.gz: 2b024dcd41417c33a8b21b6affeececea4d7e85092cecacd2b10e0e00ae26cd647f7a2f670286195b3b2f5a0f8ebdb453234852c8338dd3740ed7eaab699778d
6
+ metadata.gz: ed3f918f2ad8478efed1b882560dc09bce5d703911490da74a858ea66c8a7fcd98380d88d9830249af729b95a5304df5f7fe2c191d31cff992c3de8f4fcfd337
7
+ data.tar.gz: 4c07d6bf2fd85b0b1279ce64b476ec8c97355dcff1a91208d41d50ab94072dbeae580f10c11c9edbcf26b5580f4d683ff4c87c125b537157050f031444698e5a
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Release history for google-apis-cloudasset_v1p7beta1
2
2
 
3
+ ### v0.2.0 (2021-02-11)
4
+
5
+ * Regenerated from discovery document revision 20210209
6
+
3
7
  ### v0.1.0 (2021-02-03)
4
8
 
5
9
  * Regenerated from discovery document revision 20210129
@@ -22,1810 +22,62 @@ module Google
22
22
  module Apis
23
23
  module CloudassetV1p7beta1
24
24
 
25
- # An asset in Google Cloud. An asset can be any resource in the Google Cloud [
26
- # resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-
27
- # platform-resource-hierarchy), a resource outside the Google Cloud resource
28
- # hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy
29
- # (e.g. Cloud IAM policy). See [Supported asset types](https://cloud.google.com/
30
- # asset-inventory/docs/supported-asset-types) for more information.
31
- class Asset
32
- include Google::Apis::Core::Hashable
33
-
34
- # An `AccessLevel` is a label that can be applied to requests to Google Cloud
35
- # services, along with a list of requirements necessary for the label to be
36
- # applied.
37
- # Corresponds to the JSON property `accessLevel`
38
- # @return [Google::Apis::CloudassetV1p7beta1::GoogleIdentityAccesscontextmanagerV1AccessLevel]
39
- attr_accessor :access_level
40
-
41
- # `AccessPolicy` is a container for `AccessLevels` (which define the necessary
42
- # attributes to use Google Cloud services) and `ServicePerimeters` (which define
43
- # regions of services able to freely pass data within a perimeter). An access
44
- # policy is globally visible within an organization, and the restrictions it
45
- # specifies apply to all projects within an organization.
46
- # Corresponds to the JSON property `accessPolicy`
47
- # @return [Google::Apis::CloudassetV1p7beta1::GoogleIdentityAccesscontextmanagerV1AccessPolicy]
48
- attr_accessor :access_policy
49
-
50
- # The ancestry path of an asset in Google Cloud [resource hierarchy](https://
51
- # cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy),
52
- # represented as a list of relative resource names. An ancestry path starts with
53
- # the closest ancestor in the hierarchy and ends at root. If the asset is a
54
- # project, folder, or organization, the ancestry path starts from the asset
55
- # itself. Example: `["projects/123456789", "folders/5432", "organizations/1234"]`
56
- # Corresponds to the JSON property `ancestors`
57
- # @return [Array<String>]
58
- attr_accessor :ancestors
59
-
60
- # The type of the asset. Example: `compute.googleapis.com/Disk` See [Supported
61
- # asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-
62
- # types) for more information.
63
- # Corresponds to the JSON property `assetType`
64
- # @return [String]
65
- attr_accessor :asset_type
66
-
67
- # Whether the asset has been deleted or not.
68
- # Corresponds to the JSON property `deleted`
69
- # @return [Boolean]
70
- attr_accessor :deleted
71
- alias_method :deleted?, :deleted
72
-
73
- # An Identity and Access Management (IAM) policy, which specifies access
74
- # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
75
- # A `binding` binds one or more `members` to a single `role`. Members can be
76
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
77
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
78
- # role or a user-created custom role. For some types of Google Cloud resources,
79
- # a `binding` can also specify a `condition`, which is a logical expression that
80
- # allows access to a resource only if the expression evaluates to `true`. A
81
- # condition can add constraints based on attributes of the request, the resource,
82
- # or both. To learn which resources support conditions in their IAM policies,
83
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
84
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
85
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
86
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
87
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
88
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
89
- # title": "expirable access", "description": "Does not grant access after Sep
90
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
91
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
92
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
93
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
94
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
95
- # roles/resourcemanager.organizationViewer condition: title: expirable access
96
- # description: Does not grant access after Sep 2020 expression: request.time <
97
- # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
98
- # description of IAM and its features, see the [IAM documentation](https://cloud.
99
- # google.com/iam/docs/).
100
- # Corresponds to the JSON property `iamPolicy`
101
- # @return [Google::Apis::CloudassetV1p7beta1::Policy]
102
- attr_accessor :iam_policy
103
-
104
- # The full name of the asset. Example: `//compute.googleapis.com/projects/
105
- # my_project_123/zones/zone1/instances/instance1` See [Resource names](https://
106
- # cloud.google.com/apis/design/resource_names#full_resource_name) for more
107
- # information.
108
- # Corresponds to the JSON property `name`
109
- # @return [String]
110
- attr_accessor :name
111
-
112
- # A representation of an [organization policy](https://cloud.google.com/resource-
113
- # manager/docs/organization-policy/overview#organization_policy). There can be
114
- # more than one organization policy with different constraints set on a given
115
- # resource.
116
- # Corresponds to the JSON property `orgPolicy`
117
- # @return [Array<Google::Apis::CloudassetV1p7beta1::GoogleCloudOrgpolicyV1Policy>]
118
- attr_accessor :org_policy
119
-
120
- # A representation of a Google Cloud resource.
121
- # Corresponds to the JSON property `resource`
122
- # @return [Google::Apis::CloudassetV1p7beta1::Resource]
123
- attr_accessor :resource
124
-
125
- # `ServicePerimeter` describes a set of Google Cloud resources which can freely
126
- # import and export data amongst themselves, but not export outside of the `
127
- # ServicePerimeter`. If a request with a source within this `ServicePerimeter`
128
- # has a target outside of the `ServicePerimeter`, the request will be blocked.
129
- # Otherwise the request is allowed. There are two types of Service Perimeter -
130
- # Regular and Bridge. Regular Service Perimeters cannot overlap, a single Google
131
- # Cloud project can only belong to a single regular Service Perimeter. Service
132
- # Perimeter Bridges can contain only Google Cloud projects as members, a single
133
- # Google Cloud project may belong to multiple Service Perimeter Bridges.
134
- # Corresponds to the JSON property `servicePerimeter`
135
- # @return [Google::Apis::CloudassetV1p7beta1::GoogleIdentityAccesscontextmanagerV1ServicePerimeter]
136
- attr_accessor :service_perimeter
137
-
138
- # The last update timestamp of an asset. update_time is updated when create/
139
- # update/delete operation is performed.
140
- # Corresponds to the JSON property `updateTime`
141
- # @return [String]
142
- attr_accessor :update_time
143
-
144
- def initialize(**args)
145
- update!(**args)
146
- end
147
-
148
- # Update properties of this object
149
- def update!(**args)
150
- @access_level = args[:access_level] if args.key?(:access_level)
151
- @access_policy = args[:access_policy] if args.key?(:access_policy)
152
- @ancestors = args[:ancestors] if args.key?(:ancestors)
153
- @asset_type = args[:asset_type] if args.key?(:asset_type)
154
- @deleted = args[:deleted] if args.key?(:deleted)
155
- @iam_policy = args[:iam_policy] if args.key?(:iam_policy)
156
- @name = args[:name] if args.key?(:name)
157
- @org_policy = args[:org_policy] if args.key?(:org_policy)
158
- @resource = args[:resource] if args.key?(:resource)
159
- @service_perimeter = args[:service_perimeter] if args.key?(:service_perimeter)
160
- @update_time = args[:update_time] if args.key?(:update_time)
161
- end
162
- end
163
-
164
- # Specifies the audit configuration for a service. The configuration determines
165
- # which permission types are logged, and what identities, if any, are exempted
166
- # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
167
- # are AuditConfigs for both `allServices` and a specific service, the union of
168
- # the two AuditConfigs is used for that service: the log_types specified in each
169
- # AuditConfig are enabled, and the exempted_members in each AuditLogConfig are
170
- # exempted. Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` "
171
- # service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", "
172
- # exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `,
173
- # ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com",
174
- # "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE"
175
- # , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice,
176
- # this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also
177
- # exempts jose@example.com from DATA_READ logging, and aliya@example.com from
178
- # DATA_WRITE logging.
179
- class AuditConfig
180
- include Google::Apis::Core::Hashable
181
-
182
- # The configuration for logging of each type of permission.
183
- # Corresponds to the JSON property `auditLogConfigs`
184
- # @return [Array<Google::Apis::CloudassetV1p7beta1::AuditLogConfig>]
185
- attr_accessor :audit_log_configs
186
-
187
- # Specifies a service that will be enabled for audit logging. For example, `
188
- # storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special
189
- # value that covers all services.
190
- # Corresponds to the JSON property `service`
191
- # @return [String]
192
- attr_accessor :service
193
-
194
- def initialize(**args)
195
- update!(**args)
196
- end
197
-
198
- # Update properties of this object
199
- def update!(**args)
200
- @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
201
- @service = args[:service] if args.key?(:service)
202
- end
203
- end
204
-
205
- # Provides the configuration for logging a type of permissions. Example: ` "
206
- # audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user:
207
- # jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables '
208
- # DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
209
- # DATA_READ logging.
210
- class AuditLogConfig
211
- include Google::Apis::Core::Hashable
212
-
213
- # Specifies the identities that do not cause logging for this type of permission.
214
- # Follows the same format of Binding.members.
215
- # Corresponds to the JSON property `exemptedMembers`
216
- # @return [Array<String>]
217
- attr_accessor :exempted_members
218
-
219
- # The log type that this config enables.
220
- # Corresponds to the JSON property `logType`
221
- # @return [String]
222
- attr_accessor :log_type
223
-
224
- def initialize(**args)
225
- update!(**args)
226
- end
227
-
228
- # Update properties of this object
229
- def update!(**args)
230
- @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
231
- @log_type = args[:log_type] if args.key?(:log_type)
232
- end
233
- end
234
-
235
- # A BigQuery destination for exporting assets to.
236
- class BigQueryDestination
237
- include Google::Apis::Core::Hashable
238
-
239
- # Required. The BigQuery dataset in format "projects/projectId/datasets/
240
- # datasetId", to which the snapshot result should be exported. If this dataset
241
- # does not exist, the export call returns an INVALID_ARGUMENT error.
242
- # Corresponds to the JSON property `dataset`
243
- # @return [String]
244
- attr_accessor :dataset
245
-
246
- # If the destination table already exists and this flag is `TRUE`, the table
247
- # will be overwritten by the contents of assets snapshot. If the flag is `FALSE`
248
- # or unset and the destination table already exists, the export call returns an
249
- # INVALID_ARGUMEMT error.
250
- # Corresponds to the JSON property `force`
251
- # @return [Boolean]
252
- attr_accessor :force
253
- alias_method :force?, :force
254
-
255
- # Specifications of BigQuery partitioned table as export destination.
256
- # Corresponds to the JSON property `partitionSpec`
257
- # @return [Google::Apis::CloudassetV1p7beta1::PartitionSpec]
258
- attr_accessor :partition_spec
259
-
260
- # If this flag is `TRUE`, the snapshot results will be written to one or
261
- # multiple tables, each of which contains results of one asset type. The [force]
262
- # and [partition_spec] fields will apply to each of them. Field [table] will be
263
- # concatenated with "_" and the asset type names (see https://cloud.google.com/
264
- # asset-inventory/docs/supported-asset-types for supported asset types) to
265
- # construct per-asset-type table names, in which all non-alphanumeric characters
266
- # like "." and "/" will be substituted by "_". Example: if field [table] is "
267
- # mytable" and snapshot results contain "storage.googleapis.com/Bucket" assets,
268
- # the corresponding table name will be "mytable_storage_googleapis_com_Bucket".
269
- # If any of these tables does not exist, a new table with the concatenated name
270
- # will be created. When [content_type] in the ExportAssetsRequest is `RESOURCE`,
271
- # the schema of each table will include RECORD-type columns mapped to the nested
272
- # fields in the Asset.resource.data field of that asset type (up to the 15
273
- # nested level BigQuery supports (https://cloud.google.com/bigquery/docs/nested-
274
- # repeated#limitations)). The fields in >15 nested levels will be stored in JSON
275
- # format string as a child column of its parent RECORD column. If error occurs
276
- # when exporting to any table, the whole export call will return an error but
277
- # the export results that already succeed will persist. Example: if exporting to
278
- # table_type_A succeeds when exporting to table_type_B fails during one export
279
- # call, the results in table_type_A will persist and there will not be partial
280
- # results persisting in a table.
281
- # Corresponds to the JSON property `separateTablesPerAssetType`
282
- # @return [Boolean]
283
- attr_accessor :separate_tables_per_asset_type
284
- alias_method :separate_tables_per_asset_type?, :separate_tables_per_asset_type
285
-
286
- # Required. The BigQuery table to which the snapshot result should be written.
287
- # If this table does not exist, a new table with the given name will be created.
288
- # In the case of scheduled export, the real destination is [table] appended with
289
- # a suffix indicating the point-in-time of the snapshot. For example, suppose
290
- # field [table] is "mytable". When [separate_tables_per_asset_type] and is `
291
- # FALSE`, the destination will be "mytable_snapshot_20201122060000", and when [
292
- # separate_tables_per_asset_type] and is `TRUE` and the [asset_types] contains "
293
- # storage.googleapis.com/Bucket", the destination will be "
294
- # mytable_snapshot_20201122060000_storage_googleapis_com_Bucket"
295
- # Corresponds to the JSON property `table`
296
- # @return [String]
297
- attr_accessor :table
298
-
299
- def initialize(**args)
300
- update!(**args)
301
- end
302
-
303
- # Update properties of this object
304
- def update!(**args)
305
- @dataset = args[:dataset] if args.key?(:dataset)
306
- @force = args[:force] if args.key?(:force)
307
- @partition_spec = args[:partition_spec] if args.key?(:partition_spec)
308
- @separate_tables_per_asset_type = args[:separate_tables_per_asset_type] if args.key?(:separate_tables_per_asset_type)
309
- @table = args[:table] if args.key?(:table)
310
- end
311
- end
312
-
313
- # Setting for scheduled export to BigQuery.
314
- class BigQuerySetting
315
- include Google::Apis::Core::Hashable
316
-
317
- # A BigQuery destination for exporting assets to.
318
- # Corresponds to the JSON property `destination`
319
- # @return [Google::Apis::CloudassetV1p7beta1::BigQueryDestination]
320
- attr_accessor :destination
321
-
322
- # Schedule for scheduled export. This is used to configure scheduled export for
323
- # both GCS and BigQuery.
324
- # Corresponds to the JSON property `snapshotSchedule`
325
- # @return [Google::Apis::CloudassetV1p7beta1::ScheduleConfig]
326
- attr_accessor :snapshot_schedule
327
-
328
- def initialize(**args)
329
- update!(**args)
330
- end
331
-
332
- # Update properties of this object
333
- def update!(**args)
334
- @destination = args[:destination] if args.key?(:destination)
335
- @snapshot_schedule = args[:snapshot_schedule] if args.key?(:snapshot_schedule)
336
- end
337
- end
338
-
339
- # Associates `members` with a `role`.
340
- class Binding
341
- include Google::Apis::Core::Hashable
342
-
343
- # Represents a textual expression in the Common Expression Language (CEL) syntax.
344
- # CEL is a C-like expression language. The syntax and semantics of CEL are
345
- # documented at https://github.com/google/cel-spec. Example (Comparison): title:
346
- # "Summary size limit" description: "Determines if a summary is less than 100
347
- # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
348
- # Requestor is owner" description: "Determines if requestor is the document
349
- # owner" expression: "document.owner == request.auth.claims.email" Example (
350
- # Logic): title: "Public documents" description: "Determine whether the document
351
- # should be publicly visible" expression: "document.type != 'private' &&
352
- # document.type != 'internal'" Example (Data Manipulation): title: "Notification
353
- # string" description: "Create a notification string with a timestamp."
354
- # expression: "'New message received at ' + string(document.create_time)" The
355
- # exact variables and functions that may be referenced within an expression are
356
- # determined by the service that evaluates it. See the service documentation for
357
- # additional information.
358
- # Corresponds to the JSON property `condition`
359
- # @return [Google::Apis::CloudassetV1p7beta1::Expr]
360
- attr_accessor :condition
361
-
362
- # Specifies the identities requesting access for a Cloud Platform resource. `
363
- # members` can have the following values: * `allUsers`: A special identifier
364
- # that represents anyone who is on the internet; with or without a Google
365
- # account. * `allAuthenticatedUsers`: A special identifier that represents
366
- # anyone who is authenticated with a Google account or a service account. * `
367
- # user:`emailid``: An email address that represents a specific Google account.
368
- # For example, `alice@example.com` . * `serviceAccount:`emailid``: An email
369
- # address that represents a service account. For example, `my-other-app@appspot.
370
- # gserviceaccount.com`. * `group:`emailid``: An email address that represents a
371
- # Google group. For example, `admins@example.com`. * `deleted:user:`emailid`?uid=
372
- # `uniqueid``: An email address (plus unique identifier) representing a user
373
- # that has been recently deleted. For example, `alice@example.com?uid=
374
- # 123456789012345678901`. If the user is recovered, this value reverts to `user:`
375
- # emailid`` and the recovered user retains the role in the binding. * `deleted:
376
- # serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus unique
377
- # identifier) representing a service account that has been recently deleted. For
378
- # example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
379
- # If the service account is undeleted, this value reverts to `serviceAccount:`
380
- # emailid`` and the undeleted service account retains the role in the binding. *
381
- # `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
382
- # identifier) representing a Google group that has been recently deleted. For
383
- # example, `admins@example.com?uid=123456789012345678901`. If the group is
384
- # recovered, this value reverts to `group:`emailid`` and the recovered group
385
- # retains the role in the binding. * `domain:`domain``: The G Suite domain (
386
- # primary) that represents all the users of that domain. For example, `google.
387
- # com` or `example.com`.
388
- # Corresponds to the JSON property `members`
389
- # @return [Array<String>]
390
- attr_accessor :members
391
-
392
- # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
393
- # , or `roles/owner`.
394
- # Corresponds to the JSON property `role`
395
- # @return [String]
396
- attr_accessor :role
397
-
398
- def initialize(**args)
399
- update!(**args)
400
- end
401
-
402
- # Update properties of this object
403
- def update!(**args)
404
- @condition = args[:condition] if args.key?(:condition)
405
- @members = args[:members] if args.key?(:members)
406
- @role = args[:role] if args.key?(:role)
407
- end
408
- end
409
-
410
- #
411
- class CreateExportSettingRequest
412
- include Google::Apis::Core::Hashable
413
-
414
- # Settings that configure CAI to export assets on given schedules. An [
415
- # InventorySettings] might have multiple [ExportSetting], each with a unique
416
- # identifier.
417
- # Corresponds to the JSON property `exportSetting`
418
- # @return [Google::Apis::CloudassetV1p7beta1::ExportSetting]
419
- attr_accessor :export_setting
420
-
421
- # Required. This is the client-assigned export setting identifier encoded in UTF-
422
- # 8 and it needs to be unique under a specific [InventorySettings].
423
- # Corresponds to the JSON property `exportSettingId`
424
- # @return [String]
425
- attr_accessor :export_setting_id
426
-
427
- def initialize(**args)
428
- update!(**args)
429
- end
430
-
431
- # Update properties of this object
432
- def update!(**args)
433
- @export_setting = args[:export_setting] if args.key?(:export_setting)
434
- @export_setting_id = args[:export_setting_id] if args.key?(:export_setting_id)
435
- end
436
- end
437
-
438
- # A generic empty message that you can re-use to avoid defining duplicated empty
439
- # messages in your APIs. A typical example is to use it as the request or the
440
- # response type of an API method. For instance: service Foo ` rpc Bar(google.
441
- # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
442
- # `Empty` is empty JSON object ````.
443
- class Empty
444
- include Google::Apis::Core::Hashable
445
-
446
- def initialize(**args)
447
- update!(**args)
448
- end
449
-
450
- # Update properties of this object
451
- def update!(**args)
452
- end
453
- end
454
-
455
- # Export asset updates request.
456
- class ExportAssetUpdatesRequest
457
- include Google::Apis::Core::Hashable
458
-
459
- # A list of the full names of the assets to export the updates for. See: https://
460
- # cloud.google.com/asset-inventory/docs/resource-name-format Example: `//compute.
461
- # googleapis.com/projects/my_project_123/zones/zone1/instances/instance1`. If
462
- # specified, only assets in the list will be returned. At most one of
463
- # asset_types and asset_names should be specified. If neither is specified, all
464
- # assets under the parent will be returned.
465
- # Corresponds to the JSON property `assetNames`
466
- # @return [Array<String>]
467
- attr_accessor :asset_names
468
-
469
- # A list of asset types to export the updates for. For example: "compute.
470
- # googleapis.com/Disk". Regular expressions are also supported. For example: * "
471
- # compute.googleapis.com.*" snapshots resources whose asset type starts with "
472
- # compute.googleapis.com". * ".*Instance" snapshots resources whose asset type
473
- # ends with "Instance". * ".*Instance.*" snapshots resources whose asset type
474
- # contains "Instance". See [RE2](https://github.com/google/re2/wiki/Syntax) for
475
- # all supported regular expression syntax. If the regular expression does not
476
- # match any supported asset type, an INVALID_ARGUMENT error will be returned. If
477
- # specified, only matching assets will be returned. See [Introduction to Cloud
478
- # Asset Inventory](https://cloud.google.com/asset-inventory/docs/overview) for
479
- # all supported asset types. At most one of asset_types and asset_names should
480
- # be specified. If neither is specified, all assets under the parent will be
481
- # returned.
482
- # Corresponds to the JSON property `assetTypes`
483
- # @return [Array<String>]
484
- attr_accessor :asset_types
485
-
486
- # Asset content type. If not specified, no content but the asset name will be
487
- # returned.
488
- # Corresponds to the JSON property `contentType`
489
- # @return [String]
490
- attr_accessor :content_type
491
-
492
- # Output configuration for export assets destination.
493
- # Corresponds to the JSON property `outputConfig`
494
- # @return [Google::Apis::CloudassetV1p7beta1::OutputConfig]
495
- attr_accessor :output_config
496
-
497
- # Time window configuration for asset updates requests.
498
- # Corresponds to the JSON property `updateTimeWindow`
499
- # @return [Google::Apis::CloudassetV1p7beta1::UpdateTimeWindow]
500
- attr_accessor :update_time_window
501
-
502
- def initialize(**args)
503
- update!(**args)
504
- end
505
-
506
- # Update properties of this object
507
- def update!(**args)
508
- @asset_names = args[:asset_names] if args.key?(:asset_names)
509
- @asset_types = args[:asset_types] if args.key?(:asset_types)
510
- @content_type = args[:content_type] if args.key?(:content_type)
511
- @output_config = args[:output_config] if args.key?(:output_config)
512
- @update_time_window = args[:update_time_window] if args.key?(:update_time_window)
513
- end
514
- end
515
-
516
- # Export asset request.
517
- class ExportAssetsRequest
518
- include Google::Apis::Core::Hashable
519
-
520
- # A list of asset types to take a snapshot for. For example: "compute.googleapis.
521
- # com/Disk". Regular expressions are also supported. For example: * "compute.
522
- # googleapis.com.*" snapshots resources whose asset type starts with "compute.
523
- # googleapis.com". * ".*Instance" snapshots resources whose asset type ends with
524
- # "Instance". * ".*Instance.*" snapshots resources whose asset type contains "
525
- # Instance". See [RE2](https://github.com/google/re2/wiki/Syntax) for all
526
- # supported regular expression syntax. If the regular expression does not match
527
- # any supported asset type, an INVALID_ARGUMENT error will be returned. If
528
- # specified, only matching assets will be returned, otherwise, it will snapshot
529
- # all asset types. See [Introduction to Cloud Asset Inventory](https://cloud.
530
- # google.com/asset-inventory/docs/overview) for all supported asset types.
531
- # Corresponds to the JSON property `assetTypes`
532
- # @return [Array<String>]
533
- attr_accessor :asset_types
534
-
535
- # Asset content type. If not specified, no content but the asset name will be
536
- # returned.
537
- # Corresponds to the JSON property `contentType`
538
- # @return [String]
539
- attr_accessor :content_type
540
-
541
- # Output configuration for export assets destination.
542
- # Corresponds to the JSON property `outputConfig`
543
- # @return [Google::Apis::CloudassetV1p7beta1::OutputConfig]
544
- attr_accessor :output_config
545
-
546
- # Timestamp to take an asset snapshot. This can only be set to a timestamp
547
- # between the current time and the current time minus 35 days (inclusive). If
548
- # not specified, the current time will be used. Due to delays in resource data
549
- # collection and indexing, there is a volatile window during which running the
550
- # same query may get different results.
551
- # Corresponds to the JSON property `readTime`
552
- # @return [String]
553
- attr_accessor :read_time
554
-
555
- def initialize(**args)
556
- update!(**args)
557
- end
558
-
559
- # Update properties of this object
560
- def update!(**args)
561
- @asset_types = args[:asset_types] if args.key?(:asset_types)
562
- @content_type = args[:content_type] if args.key?(:content_type)
563
- @output_config = args[:output_config] if args.key?(:output_config)
564
- @read_time = args[:read_time] if args.key?(:read_time)
565
- end
566
- end
567
-
568
- # Settings that configure CAI to export assets on given schedules. An [
569
- # InventorySettings] might have multiple [ExportSetting], each with a unique
570
- # identifier.
571
- class ExportSetting
572
- include Google::Apis::Core::Hashable
573
-
574
- # Asset types of resources that will be exported on schedule. For example: "
575
- # compute.googleapis.com/Disk". Regular expressions are also supported. For
576
- # example: * "compute.googleapis.com.*" snapshots resources whose asset type
577
- # starts with "compute.googleapis.com". * ".*Instance" snapshots resources whose
578
- # asset type ends with "Instance". * ".*Instance.*" snapshots resources whose
579
- # asset type contains "Instance". See [RE2](https://github.com/google/re2/wiki/
580
- # Syntax) for all supported regular expression syntax. If the regular expression
581
- # does not match any supported asset type, an INVALID_ARGUMENT error will be
582
- # returned. If specified, only matching assets will be returned. See [
583
- # Introduction to Cloud Asset Inventory](https://cloud.google.com/asset-
584
- # inventory/docs/overview) for all supported asset types.
585
- # Corresponds to the JSON property `assetTypes`
586
- # @return [Array<String>]
587
- attr_accessor :asset_types
588
-
589
- # Setting for scheduled export to BigQuery.
590
- # Corresponds to the JSON property `bigquerySetting`
591
- # @return [Google::Apis::CloudassetV1p7beta1::BigQuerySetting]
592
- attr_accessor :bigquery_setting
593
-
594
- # Required. Asset content type. Currently only `RESOURCE`, `IAM_POLICY`, `
595
- # ORG_POLICY`, `ACCESS_POLICY` are supported.
596
- # Corresponds to the JSON property `contentType`
597
- # @return [String]
598
- attr_accessor :content_type
599
-
600
- # Setting for scheduled export to GCS.
601
- # Corresponds to the JSON property `gcsSetting`
602
- # @return [Google::Apis::CloudassetV1p7beta1::GcsSetting]
603
- attr_accessor :gcs_setting
604
-
605
- # The format will be: organizations/`ORGANIZATION_NUMBER`/inventorySettings/
606
- # exportSettings/`exportSetting` or folders/`FOLDER_NUMBER`/inventorySettings/
607
- # exportSettings/`exportSetting` or projects/`PROJECT_NUMBER`/inventorySettings/
608
- # exportSettings/`exportSetting`
609
- # Corresponds to the JSON property `name`
610
- # @return [String]
611
- attr_accessor :name
612
-
613
- def initialize(**args)
614
- update!(**args)
615
- end
616
-
617
- # Update properties of this object
618
- def update!(**args)
619
- @asset_types = args[:asset_types] if args.key?(:asset_types)
620
- @bigquery_setting = args[:bigquery_setting] if args.key?(:bigquery_setting)
621
- @content_type = args[:content_type] if args.key?(:content_type)
622
- @gcs_setting = args[:gcs_setting] if args.key?(:gcs_setting)
623
- @name = args[:name] if args.key?(:name)
624
- end
625
- end
626
-
627
- # Represents a textual expression in the Common Expression Language (CEL) syntax.
628
- # CEL is a C-like expression language. The syntax and semantics of CEL are
629
- # documented at https://github.com/google/cel-spec. Example (Comparison): title:
630
- # "Summary size limit" description: "Determines if a summary is less than 100
631
- # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
632
- # Requestor is owner" description: "Determines if requestor is the document
633
- # owner" expression: "document.owner == request.auth.claims.email" Example (
634
- # Logic): title: "Public documents" description: "Determine whether the document
635
- # should be publicly visible" expression: "document.type != 'private' &&
636
- # document.type != 'internal'" Example (Data Manipulation): title: "Notification
637
- # string" description: "Create a notification string with a timestamp."
638
- # expression: "'New message received at ' + string(document.create_time)" The
639
- # exact variables and functions that may be referenced within an expression are
640
- # determined by the service that evaluates it. See the service documentation for
641
- # additional information.
642
- class Expr
643
- include Google::Apis::Core::Hashable
644
-
645
- # Optional. Description of the expression. This is a longer text which describes
646
- # the expression, e.g. when hovered over it in a UI.
647
- # Corresponds to the JSON property `description`
648
- # @return [String]
649
- attr_accessor :description
650
-
651
- # Textual representation of an expression in Common Expression Language syntax.
652
- # Corresponds to the JSON property `expression`
653
- # @return [String]
654
- attr_accessor :expression
655
-
656
- # Optional. String indicating the location of the expression for error reporting,
657
- # e.g. a file name and a position in the file.
658
- # Corresponds to the JSON property `location`
659
- # @return [String]
660
- attr_accessor :location
661
-
662
- # Optional. Title for the expression, i.e. a short string describing its purpose.
663
- # This can be used e.g. in UIs which allow to enter the expression.
664
- # Corresponds to the JSON property `title`
665
- # @return [String]
666
- attr_accessor :title
667
-
668
- def initialize(**args)
669
- update!(**args)
670
- end
671
-
672
- # Update properties of this object
673
- def update!(**args)
674
- @description = args[:description] if args.key?(:description)
675
- @expression = args[:expression] if args.key?(:expression)
676
- @location = args[:location] if args.key?(:location)
677
- @title = args[:title] if args.key?(:title)
678
- end
679
- end
680
-
681
- # A Cloud Storage location.
682
- class GcsDestination
683
- include Google::Apis::Core::Hashable
684
-
685
- # The uri of the Cloud Storage object. It's the same uri that is used by gsutil.
686
- # Example: "gs://bucket_name/object_name". See [Viewing and Editing Object
687
- # Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata) for
688
- # more information. In the case of scheduled export, a path indiciating when the
689
- # export happens will be added in between the bucket_name and object_name. For
690
- # example: the real destination for an scheduled snapshot is: gs://bucket_name/`
691
- # YYYY`/`MM`/`DD`/snapshot/`HHMMSS`/file
692
- # Corresponds to the JSON property `uri`
693
- # @return [String]
694
- attr_accessor :uri
695
-
696
- # The uri prefix of all generated Cloud Storage objects. Example: "gs://
697
- # bucket_name/object_name_prefix". Each object uri is in format: "gs://
698
- # bucket_name/object_name_prefix/`ASSET_TYPE`/`SHARD_NUMBER` and only contains
699
- # assets for that type. starts from 0. Example: "gs://bucket_name/
700
- # object_name_prefix/compute.googleapis.com/Disk/0" is the first shard of output
701
- # objects containing all compute.googleapis.com/Disk assets. An INVALID_ARGUMENT
702
- # error will be returned if file with the same name "gs://bucket_name/
703
- # object_name_prefix" already exists. In the case of scheduled export, a path
704
- # indiciating when the export happens will be appended. For example: the real
705
- # destination for an scheduled snapshot is: gs://bucket_name/object_name_prefix/`
706
- # YYYY`/`MM`/`DD`/snapshot/`HHMMSS`/`ASSET_TYPE`/`SHARD_NUMBER`
707
- # Corresponds to the JSON property `uriPrefix`
708
- # @return [String]
709
- attr_accessor :uri_prefix
710
-
711
- def initialize(**args)
712
- update!(**args)
713
- end
714
-
715
- # Update properties of this object
716
- def update!(**args)
717
- @uri = args[:uri] if args.key?(:uri)
718
- @uri_prefix = args[:uri_prefix] if args.key?(:uri_prefix)
719
- end
720
- end
721
-
722
- # Setting for scheduled export to GCS.
723
- class GcsSetting
724
- include Google::Apis::Core::Hashable
725
-
726
- # A Cloud Storage location.
727
- # Corresponds to the JSON property `destination`
728
- # @return [Google::Apis::CloudassetV1p7beta1::GcsDestination]
729
- attr_accessor :destination
730
-
731
- # Schedule for scheduled export. This is used to configure scheduled export for
732
- # both GCS and BigQuery.
733
- # Corresponds to the JSON property `snapshotSchedule`
734
- # @return [Google::Apis::CloudassetV1p7beta1::ScheduleConfig]
735
- attr_accessor :snapshot_schedule
736
-
737
- def initialize(**args)
738
- update!(**args)
739
- end
740
-
741
- # Update properties of this object
742
- def update!(**args)
743
- @destination = args[:destination] if args.key?(:destination)
744
- @snapshot_schedule = args[:snapshot_schedule] if args.key?(:snapshot_schedule)
745
- end
746
- end
747
-
748
- # Used in `policy_type` to specify how `boolean_policy` will behave at this
749
- # resource.
750
- class GoogleCloudOrgpolicyV1BooleanPolicy
751
- include Google::Apis::Core::Hashable
752
-
753
- # If `true`, then the `Policy` is enforced. If `false`, then any configuration
754
- # is acceptable. Suppose you have a `Constraint` `constraints/compute.
755
- # disableSerialPortAccess` with `constraint_default` set to `ALLOW`. A `Policy`
756
- # for that `Constraint` exhibits the following behavior: - If the `Policy` at
757
- # this resource has enforced set to `false`, serial port connection attempts
758
- # will be allowed. - If the `Policy` at this resource has enforced set to `true`,
759
- # serial port connection attempts will be refused. - If the `Policy` at this
760
- # resource is `RestoreDefault`, serial port connection attempts will be allowed.
761
- # - If no `Policy` is set at this resource or anywhere higher in the resource
762
- # hierarchy, serial port connection attempts will be allowed. - If no `Policy`
763
- # is set at this resource, but one exists higher in the resource hierarchy, the
764
- # behavior is as if the`Policy` were set at this resource. The following
765
- # examples demonstrate the different possible layerings: Example 1 (nearest `
766
- # Constraint` wins): `organizations/foo` has a `Policy` with: `enforced: false` `
767
- # projects/bar` has no `Policy` set. The constraint at `projects/bar` and `
768
- # organizations/foo` will not be enforced. Example 2 (enforcement gets replaced):
769
- # `organizations/foo` has a `Policy` with: `enforced: false` `projects/bar` has
770
- # a `Policy` with: `enforced: true` The constraint at `organizations/foo` is not
771
- # enforced. The constraint at `projects/bar` is enforced. Example 3 (
772
- # RestoreDefault): `organizations/foo` has a `Policy` with: `enforced: true` `
773
- # projects/bar` has a `Policy` with: `RestoreDefault: ``` The constraint at `
774
- # organizations/foo` is enforced. The constraint at `projects/bar` is not
775
- # enforced, because `constraint_default` for the `Constraint` is `ALLOW`.
776
- # Corresponds to the JSON property `enforced`
777
- # @return [Boolean]
778
- attr_accessor :enforced
779
- alias_method :enforced?, :enforced
780
-
781
- def initialize(**args)
782
- update!(**args)
783
- end
784
-
785
- # Update properties of this object
786
- def update!(**args)
787
- @enforced = args[:enforced] if args.key?(:enforced)
788
- end
789
- end
790
-
791
- # Used in `policy_type` to specify how `list_policy` behaves at this resource. `
792
- # ListPolicy` can define specific values and subtrees of Cloud Resource Manager
793
- # resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed
794
- # or denied by setting the `allowed_values` and `denied_values` fields. This is
795
- # achieved by using the `under:` and optional `is:` prefixes. The `under:`
796
- # prefix is used to denote resource subtree values. The `is:` prefix is used to
797
- # denote specific values, and is required only if the value contains a ":".
798
- # Values prefixed with "is:" are treated the same as values with no prefix.
799
- # Ancestry subtrees must be in one of the following formats: - "projects/", e.g.
800
- # "projects/tokyo-rain-123" - "folders/", e.g. "folders/1234" - "organizations/",
801
- # e.g. "organizations/1234" The `supports_under` field of the associated `
802
- # Constraint` defines whether ancestry prefixes can be used. You can set `
803
- # allowed_values` and `denied_values` in the same `Policy` if `all_values` is `
804
- # ALL_VALUES_UNSPECIFIED`. `ALLOW` or `DENY` are used to allow or deny all
805
- # values. If `all_values` is set to either `ALLOW` or `DENY`, `allowed_values`
806
- # and `denied_values` must be unset.
807
- class GoogleCloudOrgpolicyV1ListPolicy
808
- include Google::Apis::Core::Hashable
809
-
810
- # The policy all_values state.
811
- # Corresponds to the JSON property `allValues`
812
- # @return [String]
813
- attr_accessor :all_values
814
-
815
- # List of values allowed at this resource. Can only be set if `all_values` is
816
- # set to `ALL_VALUES_UNSPECIFIED`.
817
- # Corresponds to the JSON property `allowedValues`
818
- # @return [Array<String>]
819
- attr_accessor :allowed_values
820
-
821
- # List of values denied at this resource. Can only be set if `all_values` is set
822
- # to `ALL_VALUES_UNSPECIFIED`.
823
- # Corresponds to the JSON property `deniedValues`
824
- # @return [Array<String>]
825
- attr_accessor :denied_values
826
-
827
- # Determines the inheritance behavior for this `Policy`. By default, a `
828
- # ListPolicy` set at a resource supersedes any `Policy` set anywhere up the
829
- # resource hierarchy. However, if `inherit_from_parent` is set to `true`, then
830
- # the values from the effective `Policy` of the parent resource are inherited,
831
- # meaning the values set in this `Policy` are added to the values inherited up
832
- # the hierarchy. Setting `Policy` hierarchies that inherit both allowed values
833
- # and denied values isn't recommended in most circumstances to keep the
834
- # configuration simple and understandable. However, it is possible to set a `
835
- # Policy` with `allowed_values` set that inherits a `Policy` with `denied_values`
836
- # set. In this case, the values that are allowed must be in `allowed_values`
837
- # and not present in `denied_values`. For example, suppose you have a `
838
- # Constraint` `constraints/serviceuser.services`, which has a `constraint_type`
839
- # of `list_constraint`, and with `constraint_default` set to `ALLOW`. Suppose
840
- # that at the Organization level, a `Policy` is applied that restricts the
841
- # allowed API activations to ``E1`, `E2``. Then, if a `Policy` is applied to a
842
- # project below the Organization that has `inherit_from_parent` set to `false`
843
- # and field all_values set to DENY, then an attempt to activate any API will be
844
- # denied. The following examples demonstrate different possible layerings for `
845
- # projects/bar` parented by `organizations/foo`: Example 1 (no inherited values):
846
- # `organizations/foo` has a `Policy` with values: `allowed_values: "E1"
847
- # allowed_values:"E2"` `projects/bar` has `inherit_from_parent` `false` and
848
- # values: `allowed_values: "E3" allowed_values: "E4"` The accepted values at `
849
- # organizations/foo` are `E1`, `E2`. The accepted values at `projects/bar` are `
850
- # E3`, and `E4`. Example 2 (inherited values): `organizations/foo` has a `Policy`
851
- # with values: `allowed_values: "E1" allowed_values:"E2"` `projects/bar` has a `
852
- # Policy` with values: `value: "E3" value: "E4" inherit_from_parent: true` The
853
- # accepted values at `organizations/foo` are `E1`, `E2`. The accepted values at `
854
- # projects/bar` are `E1`, `E2`, `E3`, and `E4`. Example 3 (inheriting both
855
- # allowed and denied values): `organizations/foo` has a `Policy` with values: `
856
- # allowed_values: "E1" allowed_values: "E2"` `projects/bar` has a `Policy` with:
857
- # `denied_values: "E1"` The accepted values at `organizations/foo` are `E1`, `E2`
858
- # . The value accepted at `projects/bar` is `E2`. Example 4 (RestoreDefault): `
859
- # organizations/foo` has a `Policy` with values: `allowed_values: "E1"
860
- # allowed_values:"E2"` `projects/bar` has a `Policy` with values: `
861
- # RestoreDefault: ``` The accepted values at `organizations/foo` are `E1`, `E2`.
862
- # The accepted values at `projects/bar` are either all or none depending on the
863
- # value of `constraint_default` (if `ALLOW`, all; if `DENY`, none). Example 5 (
864
- # no policy inherits parent policy): `organizations/foo` has no `Policy` set. `
865
- # projects/bar` has no `Policy` set. The accepted values at both levels are
866
- # either all or none depending on the value of `constraint_default` (if `ALLOW`,
867
- # all; if `DENY`, none). Example 6 (ListConstraint allowing all): `organizations/
868
- # foo` has a `Policy` with values: `allowed_values: "E1" allowed_values: "E2"` `
869
- # projects/bar` has a `Policy` with: `all: ALLOW` The accepted values at `
870
- # organizations/foo` are `E1`, E2`. Any value is accepted at `projects/bar`.
871
- # Example 7 (ListConstraint allowing none): `organizations/foo` has a `Policy`
872
- # with values: `allowed_values: "E1" allowed_values: "E2"` `projects/bar` has a `
873
- # Policy` with: `all: DENY` The accepted values at `organizations/foo` are `E1`,
874
- # E2`. No value is accepted at `projects/bar`. Example 10 (allowed and denied
875
- # subtrees of Resource Manager hierarchy): Given the following resource
876
- # hierarchy O1->`F1, F2`; F1->`P1`; F2->`P2, P3`, `organizations/foo` has a `
877
- # Policy` with values: `allowed_values: "under:organizations/O1"` `projects/bar`
878
- # has a `Policy` with: `allowed_values: "under:projects/P3"` `denied_values: "
879
- # under:folders/F2"` The accepted values at `organizations/foo` are `
880
- # organizations/O1`, `folders/F1`, `folders/F2`, `projects/P1`, `projects/P2`, `
881
- # projects/P3`. The accepted values at `projects/bar` are `organizations/O1`, `
882
- # folders/F1`, `projects/P1`.
883
- # Corresponds to the JSON property `inheritFromParent`
884
- # @return [Boolean]
885
- attr_accessor :inherit_from_parent
886
- alias_method :inherit_from_parent?, :inherit_from_parent
887
-
888
- # Optional. The Google Cloud Console will try to default to a configuration that
889
- # matches the value specified in this `Policy`. If `suggested_value` is not set,
890
- # it will inherit the value specified higher in the hierarchy, unless `
891
- # inherit_from_parent` is `false`.
892
- # Corresponds to the JSON property `suggestedValue`
893
- # @return [String]
894
- attr_accessor :suggested_value
895
-
896
- def initialize(**args)
897
- update!(**args)
898
- end
899
-
900
- # Update properties of this object
901
- def update!(**args)
902
- @all_values = args[:all_values] if args.key?(:all_values)
903
- @allowed_values = args[:allowed_values] if args.key?(:allowed_values)
904
- @denied_values = args[:denied_values] if args.key?(:denied_values)
905
- @inherit_from_parent = args[:inherit_from_parent] if args.key?(:inherit_from_parent)
906
- @suggested_value = args[:suggested_value] if args.key?(:suggested_value)
907
- end
908
- end
909
-
910
- # Defines a Cloud Organization `Policy` which is used to specify `Constraints`
911
- # for configurations of Cloud Platform resources.
912
- class GoogleCloudOrgpolicyV1Policy
913
- include Google::Apis::Core::Hashable
914
-
915
- # Used in `policy_type` to specify how `boolean_policy` will behave at this
916
- # resource.
917
- # Corresponds to the JSON property `booleanPolicy`
918
- # @return [Google::Apis::CloudassetV1p7beta1::GoogleCloudOrgpolicyV1BooleanPolicy]
919
- attr_accessor :boolean_policy
920
-
921
- # The name of the `Constraint` the `Policy` is configuring, for example, `
922
- # constraints/serviceuser.services`. A [list of available constraints](/resource-
923
- # manager/docs/organization-policy/org-policy-constraints) is available.
924
- # Immutable after creation.
925
- # Corresponds to the JSON property `constraint`
926
- # @return [String]
927
- attr_accessor :constraint
928
-
929
- # An opaque tag indicating the current version of the `Policy`, used for
930
- # concurrency control. When the `Policy` is returned from either a `GetPolicy`
931
- # or a `ListOrgPolicy` request, this `etag` indicates the version of the current
932
- # `Policy` to use when executing a read-modify-write loop. When the `Policy` is
933
- # returned from a `GetEffectivePolicy` request, the `etag` will be unset. When
934
- # the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value that was
935
- # returned from a `GetOrgPolicy` request as part of a read-modify-write loop for
936
- # concurrency control. Not setting the `etag`in a `SetOrgPolicy` request will
937
- # result in an unconditional write of the `Policy`.
938
- # Corresponds to the JSON property `etag`
939
- # NOTE: Values are automatically base64 encoded/decoded in the client library.
940
- # @return [String]
941
- attr_accessor :etag
942
-
943
- # Used in `policy_type` to specify how `list_policy` behaves at this resource. `
944
- # ListPolicy` can define specific values and subtrees of Cloud Resource Manager
945
- # resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed
946
- # or denied by setting the `allowed_values` and `denied_values` fields. This is
947
- # achieved by using the `under:` and optional `is:` prefixes. The `under:`
948
- # prefix is used to denote resource subtree values. The `is:` prefix is used to
949
- # denote specific values, and is required only if the value contains a ":".
950
- # Values prefixed with "is:" are treated the same as values with no prefix.
951
- # Ancestry subtrees must be in one of the following formats: - "projects/", e.g.
952
- # "projects/tokyo-rain-123" - "folders/", e.g. "folders/1234" - "organizations/",
953
- # e.g. "organizations/1234" The `supports_under` field of the associated `
954
- # Constraint` defines whether ancestry prefixes can be used. You can set `
955
- # allowed_values` and `denied_values` in the same `Policy` if `all_values` is `
956
- # ALL_VALUES_UNSPECIFIED`. `ALLOW` or `DENY` are used to allow or deny all
957
- # values. If `all_values` is set to either `ALLOW` or `DENY`, `allowed_values`
958
- # and `denied_values` must be unset.
959
- # Corresponds to the JSON property `listPolicy`
960
- # @return [Google::Apis::CloudassetV1p7beta1::GoogleCloudOrgpolicyV1ListPolicy]
961
- attr_accessor :list_policy
962
-
963
- # Ignores policies set above this resource and restores the `constraint_default`
964
- # enforcement behavior of the specific `Constraint` at this resource. Suppose
965
- # that `constraint_default` is set to `ALLOW` for the `Constraint` `constraints/
966
- # serviceuser.services`. Suppose that organization foo.com sets a `Policy` at
967
- # their Organization resource node that restricts the allowed service
968
- # activations to deny all service activations. They could then set a `Policy`
969
- # with the `policy_type` `restore_default` on several experimental projects,
970
- # restoring the `constraint_default` enforcement of the `Constraint` for only
971
- # those projects, allowing those projects to have all services activated.
972
- # Corresponds to the JSON property `restoreDefault`
973
- # @return [Google::Apis::CloudassetV1p7beta1::GoogleCloudOrgpolicyV1RestoreDefault]
974
- attr_accessor :restore_default
975
-
976
- # The time stamp the `Policy` was previously updated. This is set by the server,
977
- # not specified by the caller, and represents the last time a call to `
978
- # SetOrgPolicy` was made for that `Policy`. Any value set by the client will be
979
- # ignored.
980
- # Corresponds to the JSON property `updateTime`
981
- # @return [String]
982
- attr_accessor :update_time
983
-
984
- # Version of the `Policy`. Default version is 0;
985
- # Corresponds to the JSON property `version`
986
- # @return [Fixnum]
987
- attr_accessor :version
988
-
989
- def initialize(**args)
990
- update!(**args)
991
- end
992
-
993
- # Update properties of this object
994
- def update!(**args)
995
- @boolean_policy = args[:boolean_policy] if args.key?(:boolean_policy)
996
- @constraint = args[:constraint] if args.key?(:constraint)
997
- @etag = args[:etag] if args.key?(:etag)
998
- @list_policy = args[:list_policy] if args.key?(:list_policy)
999
- @restore_default = args[:restore_default] if args.key?(:restore_default)
1000
- @update_time = args[:update_time] if args.key?(:update_time)
1001
- @version = args[:version] if args.key?(:version)
1002
- end
1003
- end
1004
-
1005
- # Ignores policies set above this resource and restores the `constraint_default`
1006
- # enforcement behavior of the specific `Constraint` at this resource. Suppose
1007
- # that `constraint_default` is set to `ALLOW` for the `Constraint` `constraints/
1008
- # serviceuser.services`. Suppose that organization foo.com sets a `Policy` at
1009
- # their Organization resource node that restricts the allowed service
1010
- # activations to deny all service activations. They could then set a `Policy`
1011
- # with the `policy_type` `restore_default` on several experimental projects,
1012
- # restoring the `constraint_default` enforcement of the `Constraint` for only
1013
- # those projects, allowing those projects to have all services activated.
1014
- class GoogleCloudOrgpolicyV1RestoreDefault
1015
- include Google::Apis::Core::Hashable
1016
-
1017
- def initialize(**args)
1018
- update!(**args)
1019
- end
1020
-
1021
- # Update properties of this object
1022
- def update!(**args)
1023
- end
1024
- end
1025
-
1026
- # An `AccessLevel` is a label that can be applied to requests to Google Cloud
1027
- # services, along with a list of requirements necessary for the label to be
1028
- # applied.
1029
- class GoogleIdentityAccesscontextmanagerV1AccessLevel
1030
- include Google::Apis::Core::Hashable
1031
-
1032
- # `BasicLevel` is an `AccessLevel` using a set of recommended features.
1033
- # Corresponds to the JSON property `basic`
1034
- # @return [Google::Apis::CloudassetV1p7beta1::GoogleIdentityAccesscontextmanagerV1BasicLevel]
1035
- attr_accessor :basic
1036
-
1037
- # `CustomLevel` is an `AccessLevel` using the Cloud Common Expression Language
1038
- # to represent the necessary conditions for the level to apply to a request. See
1039
- # CEL spec at: https://github.com/google/cel-spec
1040
- # Corresponds to the JSON property `custom`
1041
- # @return [Google::Apis::CloudassetV1p7beta1::GoogleIdentityAccesscontextmanagerV1CustomLevel]
1042
- attr_accessor :custom
1043
-
1044
- # Description of the `AccessLevel` and its use. Does not affect behavior.
1045
- # Corresponds to the JSON property `description`
1046
- # @return [String]
1047
- attr_accessor :description
1048
-
1049
- # Required. Resource name for the Access Level. The `short_name` component must
1050
- # begin with a letter and only include alphanumeric and '_'. Format: `
1051
- # accessPolicies/`policy_id`/accessLevels/`short_name``. The maximum length of
1052
- # the `short_name` component is 50 characters.
1053
- # Corresponds to the JSON property `name`
1054
- # @return [String]
1055
- attr_accessor :name
1056
-
1057
- # Human readable title. Must be unique within the Policy.
1058
- # Corresponds to the JSON property `title`
1059
- # @return [String]
1060
- attr_accessor :title
1061
-
1062
- def initialize(**args)
1063
- update!(**args)
1064
- end
1065
-
1066
- # Update properties of this object
1067
- def update!(**args)
1068
- @basic = args[:basic] if args.key?(:basic)
1069
- @custom = args[:custom] if args.key?(:custom)
1070
- @description = args[:description] if args.key?(:description)
1071
- @name = args[:name] if args.key?(:name)
1072
- @title = args[:title] if args.key?(:title)
1073
- end
1074
- end
1075
-
1076
- # `AccessPolicy` is a container for `AccessLevels` (which define the necessary
1077
- # attributes to use Google Cloud services) and `ServicePerimeters` (which define
1078
- # regions of services able to freely pass data within a perimeter). An access
1079
- # policy is globally visible within an organization, and the restrictions it
1080
- # specifies apply to all projects within an organization.
1081
- class GoogleIdentityAccesscontextmanagerV1AccessPolicy
1082
- include Google::Apis::Core::Hashable
1083
-
1084
- # Output only. An opaque identifier for the current version of the `AccessPolicy`
1085
- # . This will always be a strongly validated etag, meaning that two Access
1086
- # Polices will be identical if and only if their etags are identical. Clients
1087
- # should not expect this to be in any specific format.
1088
- # Corresponds to the JSON property `etag`
1089
- # @return [String]
1090
- attr_accessor :etag
1091
-
1092
- # Output only. Resource name of the `AccessPolicy`. Format: `accessPolicies/`
1093
- # policy_id``
1094
- # Corresponds to the JSON property `name`
1095
- # @return [String]
1096
- attr_accessor :name
1097
-
1098
- # Required. The parent of this `AccessPolicy` in the Cloud Resource Hierarchy.
1099
- # Currently immutable once created. Format: `organizations/`organization_id``
1100
- # Corresponds to the JSON property `parent`
1101
- # @return [String]
1102
- attr_accessor :parent
1103
-
1104
- # Required. Human readable title. Does not affect behavior.
1105
- # Corresponds to the JSON property `title`
1106
- # @return [String]
1107
- attr_accessor :title
1108
-
1109
- def initialize(**args)
1110
- update!(**args)
1111
- end
1112
-
1113
- # Update properties of this object
1114
- def update!(**args)
1115
- @etag = args[:etag] if args.key?(:etag)
1116
- @name = args[:name] if args.key?(:name)
1117
- @parent = args[:parent] if args.key?(:parent)
1118
- @title = args[:title] if args.key?(:title)
1119
- end
1120
- end
1121
-
1122
- # Identification for an API Operation.
1123
- class GoogleIdentityAccesscontextmanagerV1ApiOperation
1124
- include Google::Apis::Core::Hashable
1125
-
1126
- # API methods or permissions to allow. Method or permission must belong to the
1127
- # service specified by `service_name` field. A single MethodSelector entry with `
1128
- # *` specified for the `method` field will allow all methods AND permissions for
1129
- # the service specified in `service_name`.
1130
- # Corresponds to the JSON property `methodSelectors`
1131
- # @return [Array<Google::Apis::CloudassetV1p7beta1::GoogleIdentityAccesscontextmanagerV1MethodSelector>]
1132
- attr_accessor :method_selectors
1133
-
1134
- # The name of the API whose methods or permissions the IngressPolicy or
1135
- # EgressPolicy want to allow. A single ApiOperation with `service_name` field
1136
- # set to `*` will allow all methods AND permissions for all services.
1137
- # Corresponds to the JSON property `serviceName`
1138
- # @return [String]
1139
- attr_accessor :service_name
1140
-
1141
- def initialize(**args)
1142
- update!(**args)
1143
- end
1144
-
1145
- # Update properties of this object
1146
- def update!(**args)
1147
- @method_selectors = args[:method_selectors] if args.key?(:method_selectors)
1148
- @service_name = args[:service_name] if args.key?(:service_name)
1149
- end
1150
- end
1151
-
1152
- # `BasicLevel` is an `AccessLevel` using a set of recommended features.
1153
- class GoogleIdentityAccesscontextmanagerV1BasicLevel
1154
- include Google::Apis::Core::Hashable
1155
-
1156
- # How the `conditions` list should be combined to determine if a request is
1157
- # granted this `AccessLevel`. If AND is used, each `Condition` in `conditions`
1158
- # must be satisfied for the `AccessLevel` to be applied. If OR is used, at least
1159
- # one `Condition` in `conditions` must be satisfied for the `AccessLevel` to be
1160
- # applied. Default behavior is AND.
1161
- # Corresponds to the JSON property `combiningFunction`
1162
- # @return [String]
1163
- attr_accessor :combining_function
1164
-
1165
- # Required. A list of requirements for the `AccessLevel` to be granted.
1166
- # Corresponds to the JSON property `conditions`
1167
- # @return [Array<Google::Apis::CloudassetV1p7beta1::GoogleIdentityAccesscontextmanagerV1Condition>]
1168
- attr_accessor :conditions
1169
-
1170
- def initialize(**args)
1171
- update!(**args)
1172
- end
1173
-
1174
- # Update properties of this object
1175
- def update!(**args)
1176
- @combining_function = args[:combining_function] if args.key?(:combining_function)
1177
- @conditions = args[:conditions] if args.key?(:conditions)
1178
- end
1179
- end
1180
-
1181
- # A condition necessary for an `AccessLevel` to be granted. The Condition is an
1182
- # AND over its fields. So a Condition is true if: 1) the request IP is from one
1183
- # of the listed subnetworks AND 2) the originating device complies with the
1184
- # listed device policy AND 3) all listed access levels are granted AND 4) the
1185
- # request was sent at a time allowed by the DateTimeRestriction.
1186
- class GoogleIdentityAccesscontextmanagerV1Condition
1187
- include Google::Apis::Core::Hashable
1188
-
1189
- # `DevicePolicy` specifies device specific restrictions necessary to acquire a
1190
- # given access level. A `DevicePolicy` specifies requirements for requests from
1191
- # devices to be granted access levels, it does not do any enforcement on the
1192
- # device. `DevicePolicy` acts as an AND over all specified fields, and each
1193
- # repeated field is an OR over its elements. Any unset fields are ignored. For
1194
- # example, if the proto is ` os_type : DESKTOP_WINDOWS, os_type : DESKTOP_LINUX,
1195
- # encryption_status: ENCRYPTED`, then the DevicePolicy will be true for requests
1196
- # originating from encrypted Linux desktops and encrypted Windows desktops.
1197
- # Corresponds to the JSON property `devicePolicy`
1198
- # @return [Google::Apis::CloudassetV1p7beta1::GoogleIdentityAccesscontextmanagerV1DevicePolicy]
1199
- attr_accessor :device_policy
1200
-
1201
- # CIDR block IP subnetwork specification. May be IPv4 or IPv6. Note that for a
1202
- # CIDR IP address block, the specified IP address portion must be properly
1203
- # truncated (i.e. all the host bits must be zero) or the input is considered
1204
- # malformed. For example, "192.0.2.0/24" is accepted but "192.0.2.1/24" is not.
1205
- # Similarly, for IPv6, "2001:db8::/32" is accepted whereas "2001:db8::1/32" is
1206
- # not. The originating IP of a request must be in one of the listed subnets in
1207
- # order for this Condition to be true. If empty, all IP addresses are allowed.
1208
- # Corresponds to the JSON property `ipSubnetworks`
1209
- # @return [Array<String>]
1210
- attr_accessor :ip_subnetworks
1211
-
1212
- # The request must be made by one of the provided user or service accounts.
1213
- # Groups are not supported. Syntax: `user:`emailid`` `serviceAccount:`emailid``
1214
- # If not specified, a request may come from any user.
1215
- # Corresponds to the JSON property `members`
1216
- # @return [Array<String>]
1217
- attr_accessor :members
1218
-
1219
- # Whether to negate the Condition. If true, the Condition becomes a NAND over
1220
- # its non-empty fields, each field must be false for the Condition overall to be
1221
- # satisfied. Defaults to false.
1222
- # Corresponds to the JSON property `negate`
1223
- # @return [Boolean]
1224
- attr_accessor :negate
1225
- alias_method :negate?, :negate
1226
-
1227
- # The request must originate from one of the provided countries/regions. Must be
1228
- # valid ISO 3166-1 alpha-2 codes.
1229
- # Corresponds to the JSON property `regions`
1230
- # @return [Array<String>]
1231
- attr_accessor :regions
1232
-
1233
- # A list of other access levels defined in the same `Policy`, referenced by
1234
- # resource name. Referencing an `AccessLevel` which does not exist is an error.
1235
- # All access levels listed must be granted for the Condition to be true. Example:
1236
- # "`accessPolicies/MY_POLICY/accessLevels/LEVEL_NAME"`
1237
- # Corresponds to the JSON property `requiredAccessLevels`
1238
- # @return [Array<String>]
1239
- attr_accessor :required_access_levels
1240
-
1241
- def initialize(**args)
1242
- update!(**args)
1243
- end
1244
-
1245
- # Update properties of this object
1246
- def update!(**args)
1247
- @device_policy = args[:device_policy] if args.key?(:device_policy)
1248
- @ip_subnetworks = args[:ip_subnetworks] if args.key?(:ip_subnetworks)
1249
- @members = args[:members] if args.key?(:members)
1250
- @negate = args[:negate] if args.key?(:negate)
1251
- @regions = args[:regions] if args.key?(:regions)
1252
- @required_access_levels = args[:required_access_levels] if args.key?(:required_access_levels)
1253
- end
1254
- end
1255
-
1256
- # `CustomLevel` is an `AccessLevel` using the Cloud Common Expression Language
1257
- # to represent the necessary conditions for the level to apply to a request. See
1258
- # CEL spec at: https://github.com/google/cel-spec
1259
- class GoogleIdentityAccesscontextmanagerV1CustomLevel
1260
- include Google::Apis::Core::Hashable
1261
-
1262
- # Represents a textual expression in the Common Expression Language (CEL) syntax.
1263
- # CEL is a C-like expression language. The syntax and semantics of CEL are
1264
- # documented at https://github.com/google/cel-spec. Example (Comparison): title:
1265
- # "Summary size limit" description: "Determines if a summary is less than 100
1266
- # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
1267
- # Requestor is owner" description: "Determines if requestor is the document
1268
- # owner" expression: "document.owner == request.auth.claims.email" Example (
1269
- # Logic): title: "Public documents" description: "Determine whether the document
1270
- # should be publicly visible" expression: "document.type != 'private' &&
1271
- # document.type != 'internal'" Example (Data Manipulation): title: "Notification
1272
- # string" description: "Create a notification string with a timestamp."
1273
- # expression: "'New message received at ' + string(document.create_time)" The
1274
- # exact variables and functions that may be referenced within an expression are
1275
- # determined by the service that evaluates it. See the service documentation for
1276
- # additional information.
1277
- # Corresponds to the JSON property `expr`
1278
- # @return [Google::Apis::CloudassetV1p7beta1::Expr]
1279
- attr_accessor :expr
1280
-
1281
- def initialize(**args)
1282
- update!(**args)
1283
- end
1284
-
1285
- # Update properties of this object
1286
- def update!(**args)
1287
- @expr = args[:expr] if args.key?(:expr)
1288
- end
1289
- end
1290
-
1291
- # `DevicePolicy` specifies device specific restrictions necessary to acquire a
1292
- # given access level. A `DevicePolicy` specifies requirements for requests from
1293
- # devices to be granted access levels, it does not do any enforcement on the
1294
- # device. `DevicePolicy` acts as an AND over all specified fields, and each
1295
- # repeated field is an OR over its elements. Any unset fields are ignored. For
1296
- # example, if the proto is ` os_type : DESKTOP_WINDOWS, os_type : DESKTOP_LINUX,
1297
- # encryption_status: ENCRYPTED`, then the DevicePolicy will be true for requests
1298
- # originating from encrypted Linux desktops and encrypted Windows desktops.
1299
- class GoogleIdentityAccesscontextmanagerV1DevicePolicy
1300
- include Google::Apis::Core::Hashable
1301
-
1302
- # Allowed device management levels, an empty list allows all management levels.
1303
- # Corresponds to the JSON property `allowedDeviceManagementLevels`
1304
- # @return [Array<String>]
1305
- attr_accessor :allowed_device_management_levels
1306
-
1307
- # Allowed encryptions statuses, an empty list allows all statuses.
1308
- # Corresponds to the JSON property `allowedEncryptionStatuses`
1309
- # @return [Array<String>]
1310
- attr_accessor :allowed_encryption_statuses
1311
-
1312
- # Allowed OS versions, an empty list allows all types and all versions.
1313
- # Corresponds to the JSON property `osConstraints`
1314
- # @return [Array<Google::Apis::CloudassetV1p7beta1::GoogleIdentityAccesscontextmanagerV1OsConstraint>]
1315
- attr_accessor :os_constraints
1316
-
1317
- # Whether the device needs to be approved by the customer admin.
1318
- # Corresponds to the JSON property `requireAdminApproval`
1319
- # @return [Boolean]
1320
- attr_accessor :require_admin_approval
1321
- alias_method :require_admin_approval?, :require_admin_approval
1322
-
1323
- # Whether the device needs to be corp owned.
1324
- # Corresponds to the JSON property `requireCorpOwned`
1325
- # @return [Boolean]
1326
- attr_accessor :require_corp_owned
1327
- alias_method :require_corp_owned?, :require_corp_owned
1328
-
1329
- # Whether or not screenlock is required for the DevicePolicy to be true.
1330
- # Defaults to `false`.
1331
- # Corresponds to the JSON property `requireScreenlock`
1332
- # @return [Boolean]
1333
- attr_accessor :require_screenlock
1334
- alias_method :require_screenlock?, :require_screenlock
1335
-
1336
- def initialize(**args)
1337
- update!(**args)
1338
- end
1339
-
1340
- # Update properties of this object
1341
- def update!(**args)
1342
- @allowed_device_management_levels = args[:allowed_device_management_levels] if args.key?(:allowed_device_management_levels)
1343
- @allowed_encryption_statuses = args[:allowed_encryption_statuses] if args.key?(:allowed_encryption_statuses)
1344
- @os_constraints = args[:os_constraints] if args.key?(:os_constraints)
1345
- @require_admin_approval = args[:require_admin_approval] if args.key?(:require_admin_approval)
1346
- @require_corp_owned = args[:require_corp_owned] if args.key?(:require_corp_owned)
1347
- @require_screenlock = args[:require_screenlock] if args.key?(:require_screenlock)
1348
- end
1349
- end
1350
-
1351
- # Defines the conditions under which an EgressPolicy matches a request.
1352
- # Conditions based on information about the source of the request. Note that if
1353
- # the destination of the request is protected by a ServicePerimeter, then that
1354
- # ServicePerimeter must have an IngressPolicy which allows access in order for
1355
- # this request to succeed.
1356
- class GoogleIdentityAccesscontextmanagerV1EgressFrom
1357
- include Google::Apis::Core::Hashable
1358
-
1359
- # A list of identities that are allowed access through this [EgressPolicy].
1360
- # Should be in the format of email address. The email address should represent
1361
- # individual user or service account only.
1362
- # Corresponds to the JSON property `identities`
1363
- # @return [Array<String>]
1364
- attr_accessor :identities
1365
-
1366
- # Specifies the type of identities that are allowed access to outside the
1367
- # perimeter. If left unspecified, then members of `identities` field will be
1368
- # allowed access.
1369
- # Corresponds to the JSON property `identityType`
1370
- # @return [String]
1371
- attr_accessor :identity_type
1372
-
1373
- def initialize(**args)
1374
- update!(**args)
1375
- end
1376
-
1377
- # Update properties of this object
1378
- def update!(**args)
1379
- @identities = args[:identities] if args.key?(:identities)
1380
- @identity_type = args[:identity_type] if args.key?(:identity_type)
1381
- end
1382
- end
1383
-
1384
- # Policy for egress from perimeter. EgressPolicies match requests based on `
1385
- # egress_from` and `egress_to` stanzas. For an EgressPolicy to match, both `
1386
- # egress_from` and `egress_to` stanzas must be matched. If an EgressPolicy
1387
- # matches a request, the request is allowed to span the ServicePerimeter
1388
- # boundary. For example, an EgressPolicy can be used to allow VMs on networks
1389
- # within the ServicePerimeter to access a defined set of projects outside the
1390
- # perimeter in certain contexts (e.g. to read data from a Cloud Storage bucket
1391
- # or query against a BigQuery dataset). EgressPolicies are concerned with the *
1392
- # resources* that a request relates as well as the API services and API actions
1393
- # being used. They do not related to the direction of data movement. More
1394
- # detailed documentation for this concept can be found in the descriptions of
1395
- # EgressFrom and EgressTo.
1396
- class GoogleIdentityAccesscontextmanagerV1EgressPolicy
1397
- include Google::Apis::Core::Hashable
1398
-
1399
- # Defines the conditions under which an EgressPolicy matches a request.
1400
- # Conditions based on information about the source of the request. Note that if
1401
- # the destination of the request is protected by a ServicePerimeter, then that
1402
- # ServicePerimeter must have an IngressPolicy which allows access in order for
1403
- # this request to succeed.
1404
- # Corresponds to the JSON property `egressFrom`
1405
- # @return [Google::Apis::CloudassetV1p7beta1::GoogleIdentityAccesscontextmanagerV1EgressFrom]
1406
- attr_accessor :egress_from
1407
-
1408
- # Defines the conditions under which an EgressPolicy matches a request.
1409
- # Conditions are based on information about the ApiOperation intended to be
1410
- # performed on the `resources` specified. Note that if the destination of the
1411
- # request is protected by a ServicePerimeter, then that ServicePerimeter must
1412
- # have an IngressPolicy which allows access in order for this request to succeed.
1413
- # Corresponds to the JSON property `egressTo`
1414
- # @return [Google::Apis::CloudassetV1p7beta1::GoogleIdentityAccesscontextmanagerV1EgressTo]
1415
- attr_accessor :egress_to
1416
-
1417
- def initialize(**args)
1418
- update!(**args)
1419
- end
1420
-
1421
- # Update properties of this object
1422
- def update!(**args)
1423
- @egress_from = args[:egress_from] if args.key?(:egress_from)
1424
- @egress_to = args[:egress_to] if args.key?(:egress_to)
1425
- end
1426
- end
1427
-
1428
- # Defines the conditions under which an EgressPolicy matches a request.
1429
- # Conditions are based on information about the ApiOperation intended to be
1430
- # performed on the `resources` specified. Note that if the destination of the
1431
- # request is protected by a ServicePerimeter, then that ServicePerimeter must
1432
- # have an IngressPolicy which allows access in order for this request to succeed.
1433
- class GoogleIdentityAccesscontextmanagerV1EgressTo
1434
- include Google::Apis::Core::Hashable
1435
-
1436
- # A list of ApiOperations that this egress rule applies to. A request matches if
1437
- # it contains an operation/service in this list.
1438
- # Corresponds to the JSON property `operations`
1439
- # @return [Array<Google::Apis::CloudassetV1p7beta1::GoogleIdentityAccesscontextmanagerV1ApiOperation>]
1440
- attr_accessor :operations
1441
-
1442
- # A list of resources, currently only projects in the form `projects/`, that
1443
- # match this to stanza. A request matches if it contains a resource in this list.
1444
- # If `*` is specified for resources, then this EgressTo rule will authorize
1445
- # access to all resources outside the perimeter.
1446
- # Corresponds to the JSON property `resources`
1447
- # @return [Array<String>]
1448
- attr_accessor :resources
1449
-
1450
- def initialize(**args)
1451
- update!(**args)
1452
- end
1453
-
1454
- # Update properties of this object
1455
- def update!(**args)
1456
- @operations = args[:operations] if args.key?(:operations)
1457
- @resources = args[:resources] if args.key?(:resources)
1458
- end
1459
- end
1460
-
1461
- # Defines the conditions under which an IngressPolicy matches a request.
1462
- # Conditions are based on information about the source of the request.
1463
- class GoogleIdentityAccesscontextmanagerV1IngressFrom
1464
- include Google::Apis::Core::Hashable
1465
-
1466
- # A list of identities that are allowed access through this ingress policy.
1467
- # Should be in the format of email address. The email address should represent
1468
- # individual user or service account only.
1469
- # Corresponds to the JSON property `identities`
1470
- # @return [Array<String>]
1471
- attr_accessor :identities
1472
-
1473
- # Specifies the type of identities that are allowed access from outside the
1474
- # perimeter. If left unspecified, then members of `identities` field will be
1475
- # allowed access.
1476
- # Corresponds to the JSON property `identityType`
1477
- # @return [String]
1478
- attr_accessor :identity_type
1479
-
1480
- # Sources that this IngressPolicy authorizes access from.
1481
- # Corresponds to the JSON property `sources`
1482
- # @return [Array<Google::Apis::CloudassetV1p7beta1::GoogleIdentityAccesscontextmanagerV1IngressSource>]
1483
- attr_accessor :sources
1484
-
1485
- def initialize(**args)
1486
- update!(**args)
1487
- end
1488
-
1489
- # Update properties of this object
1490
- def update!(**args)
1491
- @identities = args[:identities] if args.key?(:identities)
1492
- @identity_type = args[:identity_type] if args.key?(:identity_type)
1493
- @sources = args[:sources] if args.key?(:sources)
1494
- end
1495
- end
1496
-
1497
- # Policy for ingress into ServicePerimeter. IngressPolicies match requests based
1498
- # on `ingress_from` and `ingress_to` stanzas. For an ingress policy to match,
1499
- # both the `ingress_from` and `ingress_to` stanzas must be matched. If an
1500
- # IngressPolicy matches a request, the request is allowed through the perimeter
1501
- # boundary from outside the perimeter. For example, access from the internet can
1502
- # be allowed either based on an AccessLevel or, for traffic hosted on Google
1503
- # Cloud, the project of the source network. For access from private networks,
1504
- # using the project of the hosting network is required. Individual ingress
1505
- # policies can be limited by restricting which services and/or actions they
1506
- # match using the `ingress_to` field.
1507
- class GoogleIdentityAccesscontextmanagerV1IngressPolicy
1508
- include Google::Apis::Core::Hashable
1509
-
1510
- # Defines the conditions under which an IngressPolicy matches a request.
1511
- # Conditions are based on information about the source of the request.
1512
- # Corresponds to the JSON property `ingressFrom`
1513
- # @return [Google::Apis::CloudassetV1p7beta1::GoogleIdentityAccesscontextmanagerV1IngressFrom]
1514
- attr_accessor :ingress_from
1515
-
1516
- # Defines the conditions under which an IngressPolicy matches a request.
1517
- # Conditions are based on information about the ApiOperation intended to be
1518
- # performed on the destination of the request.
1519
- # Corresponds to the JSON property `ingressTo`
1520
- # @return [Google::Apis::CloudassetV1p7beta1::GoogleIdentityAccesscontextmanagerV1IngressTo]
1521
- attr_accessor :ingress_to
1522
-
1523
- def initialize(**args)
1524
- update!(**args)
1525
- end
1526
-
1527
- # Update properties of this object
1528
- def update!(**args)
1529
- @ingress_from = args[:ingress_from] if args.key?(:ingress_from)
1530
- @ingress_to = args[:ingress_to] if args.key?(:ingress_to)
1531
- end
1532
- end
1533
-
1534
- # The source that IngressPolicy authorizes access from.
1535
- class GoogleIdentityAccesscontextmanagerV1IngressSource
1536
- include Google::Apis::Core::Hashable
1537
-
1538
- # An AccessLevel resource name that allow resources within the ServicePerimeters
1539
- # to be accessed from the internet. AccessLevels listed must be in the same
1540
- # policy as this ServicePerimeter. Referencing a nonexistent AccessLevel will
1541
- # cause an error. If no AccessLevel names are listed, resources within the
1542
- # perimeter can only be accessed via Google Cloud calls with request origins
1543
- # within the perimeter. Example: `accessPolicies/MY_POLICY/accessLevels/MY_LEVEL`
1544
- # . If `*` is specified, then all IngressSources will be allowed.
1545
- # Corresponds to the JSON property `accessLevel`
1546
- # @return [String]
1547
- attr_accessor :access_level
1548
-
1549
- # A Google Cloud resource that is allowed to ingress the perimeter. Requests
1550
- # from these resources will be allowed to access perimeter data. Currently only
1551
- # projects are allowed. Format: `projects/`project_number`` The project may be
1552
- # in any Google Cloud organization, not just the organization that the perimeter
1553
- # is defined in. `*` is not allowed, the case of allowing all Google Cloud
1554
- # resources only is not supported.
1555
- # Corresponds to the JSON property `resource`
1556
- # @return [String]
1557
- attr_accessor :resource
1558
-
1559
- def initialize(**args)
1560
- update!(**args)
1561
- end
1562
-
1563
- # Update properties of this object
1564
- def update!(**args)
1565
- @access_level = args[:access_level] if args.key?(:access_level)
1566
- @resource = args[:resource] if args.key?(:resource)
1567
- end
1568
- end
1569
-
1570
- # Defines the conditions under which an IngressPolicy matches a request.
1571
- # Conditions are based on information about the ApiOperation intended to be
1572
- # performed on the destination of the request.
1573
- class GoogleIdentityAccesscontextmanagerV1IngressTo
1574
- include Google::Apis::Core::Hashable
1575
-
1576
- # A list of ApiOperations the sources specified in corresponding IngressFrom are
1577
- # allowed to perform in this ServicePerimeter.
1578
- # Corresponds to the JSON property `operations`
1579
- # @return [Array<Google::Apis::CloudassetV1p7beta1::GoogleIdentityAccesscontextmanagerV1ApiOperation>]
1580
- attr_accessor :operations
1581
-
1582
- # A list of resources, currently only projects in the form `projects/`,
1583
- # protected by this ServicePerimeter that are allowed to be accessed by sources
1584
- # defined in the corresponding IngressFrom. A request matches if it contains a
1585
- # resource in this list. If `*` is specified for resources, then this IngressTo
1586
- # rule will authorize access to all resources inside the perimeter, provided
1587
- # that the request also matches the `operations` field.
1588
- # Corresponds to the JSON property `resources`
1589
- # @return [Array<String>]
1590
- attr_accessor :resources
1591
-
1592
- def initialize(**args)
1593
- update!(**args)
1594
- end
1595
-
1596
- # Update properties of this object
1597
- def update!(**args)
1598
- @operations = args[:operations] if args.key?(:operations)
1599
- @resources = args[:resources] if args.key?(:resources)
1600
- end
1601
- end
1602
-
1603
- # An allowed method or permission of a service specified in ApiOperation.
1604
- class GoogleIdentityAccesscontextmanagerV1MethodSelector
1605
- include Google::Apis::Core::Hashable
1606
-
1607
- # Value for `method` should be a valid method name for the corresponding `
1608
- # service_name` in ApiOperation. If `*` used as value for `method`, then ALL
1609
- # methods and permissions are allowed.
1610
- # Corresponds to the JSON property `method`
1611
- # @return [String]
1612
- attr_accessor :method_prop
1613
-
1614
- # Value for `permission` should be a valid Cloud IAM permission for the
1615
- # corresponding `service_name` in ApiOperation.
1616
- # Corresponds to the JSON property `permission`
1617
- # @return [String]
1618
- attr_accessor :permission
1619
-
1620
- def initialize(**args)
1621
- update!(**args)
1622
- end
1623
-
1624
- # Update properties of this object
1625
- def update!(**args)
1626
- @method_prop = args[:method_prop] if args.key?(:method_prop)
1627
- @permission = args[:permission] if args.key?(:permission)
1628
- end
1629
- end
1630
-
1631
- # A restriction on the OS type and version of devices making requests.
1632
- class GoogleIdentityAccesscontextmanagerV1OsConstraint
1633
- include Google::Apis::Core::Hashable
1634
-
1635
- # The minimum allowed OS version. If not set, any version of this OS satisfies
1636
- # the constraint. Format: `"major.minor.patch"`. Examples: `"10.5.301"`, `"9.2.1"
1637
- # `.
1638
- # Corresponds to the JSON property `minimumVersion`
1639
- # @return [String]
1640
- attr_accessor :minimum_version
1641
-
1642
- # Required. The allowed OS type.
1643
- # Corresponds to the JSON property `osType`
1644
- # @return [String]
1645
- attr_accessor :os_type
1646
-
1647
- # Only allows requests from devices with a verified Chrome OS. Verifications
1648
- # includes requirements that the device is enterprise-managed, conformant to
1649
- # domain policies, and the caller has permission to call the API targeted by the
1650
- # request.
1651
- # Corresponds to the JSON property `requireVerifiedChromeOs`
1652
- # @return [Boolean]
1653
- attr_accessor :require_verified_chrome_os
1654
- alias_method :require_verified_chrome_os?, :require_verified_chrome_os
1655
-
1656
- def initialize(**args)
1657
- update!(**args)
1658
- end
1659
-
1660
- # Update properties of this object
1661
- def update!(**args)
1662
- @minimum_version = args[:minimum_version] if args.key?(:minimum_version)
1663
- @os_type = args[:os_type] if args.key?(:os_type)
1664
- @require_verified_chrome_os = args[:require_verified_chrome_os] if args.key?(:require_verified_chrome_os)
1665
- end
1666
- end
1667
-
1668
- # `ServicePerimeter` describes a set of Google Cloud resources which can freely
1669
- # import and export data amongst themselves, but not export outside of the `
1670
- # ServicePerimeter`. If a request with a source within this `ServicePerimeter`
1671
- # has a target outside of the `ServicePerimeter`, the request will be blocked.
1672
- # Otherwise the request is allowed. There are two types of Service Perimeter -
1673
- # Regular and Bridge. Regular Service Perimeters cannot overlap, a single Google
1674
- # Cloud project can only belong to a single regular Service Perimeter. Service
1675
- # Perimeter Bridges can contain only Google Cloud projects as members, a single
1676
- # Google Cloud project may belong to multiple Service Perimeter Bridges.
1677
- class GoogleIdentityAccesscontextmanagerV1ServicePerimeter
25
+ # A BigQuery destination for exporting assets to.
26
+ class BigQueryDestination
1678
27
  include Google::Apis::Core::Hashable
1679
28
 
1680
- # Description of the `ServicePerimeter` and its use. Does not affect behavior.
1681
- # Corresponds to the JSON property `description`
1682
- # @return [String]
1683
- attr_accessor :description
1684
-
1685
- # Required. Resource name for the ServicePerimeter. The `short_name` component
1686
- # must begin with a letter and only include alphanumeric and '_'. Format: `
1687
- # accessPolicies/`policy_id`/servicePerimeters/`short_name``
1688
- # Corresponds to the JSON property `name`
1689
- # @return [String]
1690
- attr_accessor :name
1691
-
1692
- # Perimeter type indicator. A single project is allowed to be a member of single
1693
- # regular perimeter, but multiple service perimeter bridges. A project cannot be
1694
- # a included in a perimeter bridge without being included in regular perimeter.
1695
- # For perimeter bridges, the restricted service list as well as access level
1696
- # lists must be empty.
1697
- # Corresponds to the JSON property `perimeterType`
1698
- # @return [String]
1699
- attr_accessor :perimeter_type
1700
-
1701
- # `ServicePerimeterConfig` specifies a set of Google Cloud resources that
1702
- # describe specific Service Perimeter configuration.
1703
- # Corresponds to the JSON property `spec`
1704
- # @return [Google::Apis::CloudassetV1p7beta1::GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig]
1705
- attr_accessor :spec
1706
-
1707
- # `ServicePerimeterConfig` specifies a set of Google Cloud resources that
1708
- # describe specific Service Perimeter configuration.
1709
- # Corresponds to the JSON property `status`
1710
- # @return [Google::Apis::CloudassetV1p7beta1::GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig]
1711
- attr_accessor :status
1712
-
1713
- # Human readable title. Must be unique within the Policy.
1714
- # Corresponds to the JSON property `title`
29
+ # Required. The BigQuery dataset in format "projects/projectId/datasets/
30
+ # datasetId", to which the snapshot result should be exported. If this dataset
31
+ # does not exist, the export call returns an INVALID_ARGUMENT error.
32
+ # Corresponds to the JSON property `dataset`
1715
33
  # @return [String]
1716
- attr_accessor :title
34
+ attr_accessor :dataset
1717
35
 
1718
- # Use explicit dry run spec flag. Ordinarily, a dry-run spec implicitly exists
1719
- # for all Service Perimeters, and that spec is identical to the status for those
1720
- # Service Perimeters. When this flag is set, it inhibits the generation of the
1721
- # implicit spec, thereby allowing the user to explicitly provide a configuration
1722
- # ("spec") to use in a dry-run version of the Service Perimeter. This allows the
1723
- # user to test changes to the enforced config ("status") without actually
1724
- # enforcing them. This testing is done through analyzing the differences between
1725
- # currently enforced and suggested restrictions. use_explicit_dry_run_spec must
1726
- # bet set to True if any of the fields in the spec are set to non-default values.
1727
- # Corresponds to the JSON property `useExplicitDryRunSpec`
36
+ # If the destination table already exists and this flag is `TRUE`, the table
37
+ # will be overwritten by the contents of assets snapshot. If the flag is `FALSE`
38
+ # or unset and the destination table already exists, the export call returns an
39
+ # INVALID_ARGUMEMT error.
40
+ # Corresponds to the JSON property `force`
1728
41
  # @return [Boolean]
1729
- attr_accessor :use_explicit_dry_run_spec
1730
- alias_method :use_explicit_dry_run_spec?, :use_explicit_dry_run_spec
1731
-
1732
- def initialize(**args)
1733
- update!(**args)
1734
- end
1735
-
1736
- # Update properties of this object
1737
- def update!(**args)
1738
- @description = args[:description] if args.key?(:description)
1739
- @name = args[:name] if args.key?(:name)
1740
- @perimeter_type = args[:perimeter_type] if args.key?(:perimeter_type)
1741
- @spec = args[:spec] if args.key?(:spec)
1742
- @status = args[:status] if args.key?(:status)
1743
- @title = args[:title] if args.key?(:title)
1744
- @use_explicit_dry_run_spec = args[:use_explicit_dry_run_spec] if args.key?(:use_explicit_dry_run_spec)
1745
- end
1746
- end
1747
-
1748
- # `ServicePerimeterConfig` specifies a set of Google Cloud resources that
1749
- # describe specific Service Perimeter configuration.
1750
- class GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig
1751
- include Google::Apis::Core::Hashable
1752
-
1753
- # A list of `AccessLevel` resource names that allow resources within the `
1754
- # ServicePerimeter` to be accessed from the internet. `AccessLevels` listed must
1755
- # be in the same policy as this `ServicePerimeter`. Referencing a nonexistent `
1756
- # AccessLevel` is a syntax error. If no `AccessLevel` names are listed,
1757
- # resources within the perimeter can only be accessed via Google Cloud calls
1758
- # with request origins within the perimeter. Example: `"accessPolicies/MY_POLICY/
1759
- # accessLevels/MY_LEVEL"`. For Service Perimeter Bridge, must be empty.
1760
- # Corresponds to the JSON property `accessLevels`
1761
- # @return [Array<String>]
1762
- attr_accessor :access_levels
1763
-
1764
- # List of EgressPolicies to apply to the perimeter. A perimeter may have
1765
- # multiple EgressPolicies, each of which is evaluated separately. Access is
1766
- # granted if any EgressPolicy grants it. Must be empty for a perimeter bridge.
1767
- # Corresponds to the JSON property `egressPolicies`
1768
- # @return [Array<Google::Apis::CloudassetV1p7beta1::GoogleIdentityAccesscontextmanagerV1EgressPolicy>]
1769
- attr_accessor :egress_policies
1770
-
1771
- # List of IngressPolicies to apply to the perimeter. A perimeter may have
1772
- # multiple IngressPolicies, each of which is evaluated separately. Access is
1773
- # granted if any Ingress Policy grants it. Must be empty for a perimeter bridge.
1774
- # Corresponds to the JSON property `ingressPolicies`
1775
- # @return [Array<Google::Apis::CloudassetV1p7beta1::GoogleIdentityAccesscontextmanagerV1IngressPolicy>]
1776
- attr_accessor :ingress_policies
1777
-
1778
- # A list of Google Cloud resources that are inside of the service perimeter.
1779
- # Currently only projects are allowed. Format: `projects/`project_number``
1780
- # Corresponds to the JSON property `resources`
1781
- # @return [Array<String>]
1782
- attr_accessor :resources
1783
-
1784
- # Google Cloud services that are subject to the Service Perimeter restrictions.
1785
- # For example, if `storage.googleapis.com` is specified, access to the storage
1786
- # buckets inside the perimeter must meet the perimeter's access restrictions.
1787
- # Corresponds to the JSON property `restrictedServices`
1788
- # @return [Array<String>]
1789
- attr_accessor :restricted_services
1790
-
1791
- # Specifies how APIs are allowed to communicate within the Service Perimeter.
1792
- # Corresponds to the JSON property `vpcAccessibleServices`
1793
- # @return [Google::Apis::CloudassetV1p7beta1::GoogleIdentityAccesscontextmanagerV1VpcAccessibleServices]
1794
- attr_accessor :vpc_accessible_services
1795
-
1796
- def initialize(**args)
1797
- update!(**args)
1798
- end
1799
-
1800
- # Update properties of this object
1801
- def update!(**args)
1802
- @access_levels = args[:access_levels] if args.key?(:access_levels)
1803
- @egress_policies = args[:egress_policies] if args.key?(:egress_policies)
1804
- @ingress_policies = args[:ingress_policies] if args.key?(:ingress_policies)
1805
- @resources = args[:resources] if args.key?(:resources)
1806
- @restricted_services = args[:restricted_services] if args.key?(:restricted_services)
1807
- @vpc_accessible_services = args[:vpc_accessible_services] if args.key?(:vpc_accessible_services)
1808
- end
1809
- end
1810
-
1811
- # Specifies how APIs are allowed to communicate within the Service Perimeter.
1812
- class GoogleIdentityAccesscontextmanagerV1VpcAccessibleServices
1813
- include Google::Apis::Core::Hashable
42
+ attr_accessor :force
43
+ alias_method :force?, :force
1814
44
 
1815
- # The list of APIs usable within the Service Perimeter. Must be empty unless '
1816
- # enable_restriction' is True. You can specify a list of individual services, as
1817
- # well as include the 'RESTRICTED-SERVICES' value, which automatically includes
1818
- # all of the services protected by the perimeter.
1819
- # Corresponds to the JSON property `allowedServices`
1820
- # @return [Array<String>]
1821
- attr_accessor :allowed_services
45
+ # Specifications of BigQuery partitioned table as export destination.
46
+ # Corresponds to the JSON property `partitionSpec`
47
+ # @return [Google::Apis::CloudassetV1p7beta1::PartitionSpec]
48
+ attr_accessor :partition_spec
1822
49
 
1823
- # Whether to restrict API calls within the Service Perimeter to the list of APIs
1824
- # specified in 'allowed_services'.
1825
- # Corresponds to the JSON property `enableRestriction`
50
+ # If this flag is `TRUE`, the snapshot results will be written to one or
51
+ # multiple tables, each of which contains results of one asset type. The [force]
52
+ # and [partition_spec] fields will apply to each of them. Field [table] will be
53
+ # concatenated with "_" and the asset type names (see https://cloud.google.com/
54
+ # asset-inventory/docs/supported-asset-types for supported asset types) to
55
+ # construct per-asset-type table names, in which all non-alphanumeric characters
56
+ # like "." and "/" will be substituted by "_". Example: if field [table] is "
57
+ # mytable" and snapshot results contain "storage.googleapis.com/Bucket" assets,
58
+ # the corresponding table name will be "mytable_storage_googleapis_com_Bucket".
59
+ # If any of these tables does not exist, a new table with the concatenated name
60
+ # will be created. When [content_type] in the ExportAssetsRequest is `RESOURCE`,
61
+ # the schema of each table will include RECORD-type columns mapped to the nested
62
+ # fields in the Asset.resource.data field of that asset type (up to the 15
63
+ # nested level BigQuery supports (https://cloud.google.com/bigquery/docs/nested-
64
+ # repeated#limitations)). The fields in >15 nested levels will be stored in JSON
65
+ # format string as a child column of its parent RECORD column. If error occurs
66
+ # when exporting to any table, the whole export call will return an error but
67
+ # the export results that already succeed will persist. Example: if exporting to
68
+ # table_type_A succeeds when exporting to table_type_B fails during one export
69
+ # call, the results in table_type_A will persist and there will not be partial
70
+ # results persisting in a table.
71
+ # Corresponds to the JSON property `separateTablesPerAssetType`
1826
72
  # @return [Boolean]
1827
- attr_accessor :enable_restriction
1828
- alias_method :enable_restriction?, :enable_restriction
73
+ attr_accessor :separate_tables_per_asset_type
74
+ alias_method :separate_tables_per_asset_type?, :separate_tables_per_asset_type
75
+
76
+ # Required. The BigQuery table to which the snapshot result should be written.
77
+ # If this table does not exist, a new table with the given name will be created.
78
+ # Corresponds to the JSON property `table`
79
+ # @return [String]
80
+ attr_accessor :table
1829
81
 
1830
82
  def initialize(**args)
1831
83
  update!(**args)
@@ -1833,59 +85,65 @@ module Google
1833
85
 
1834
86
  # Update properties of this object
1835
87
  def update!(**args)
1836
- @allowed_services = args[:allowed_services] if args.key?(:allowed_services)
1837
- @enable_restriction = args[:enable_restriction] if args.key?(:enable_restriction)
88
+ @dataset = args[:dataset] if args.key?(:dataset)
89
+ @force = args[:force] if args.key?(:force)
90
+ @partition_spec = args[:partition_spec] if args.key?(:partition_spec)
91
+ @separate_tables_per_asset_type = args[:separate_tables_per_asset_type] if args.key?(:separate_tables_per_asset_type)
92
+ @table = args[:table] if args.key?(:table)
1838
93
  end
1839
94
  end
1840
95
 
1841
- # Inventory Settings. There is only one inventory settings for a given
1842
- # organization, folder or project. Users can update inventory settings using
1843
- # specific API, but cannot create or delete.
1844
- class InventorySettings
96
+ # Export asset request.
97
+ class ExportAssetsRequest
1845
98
  include Google::Apis::Core::Hashable
1846
99
 
1847
- # Output only. A list of export settings.
1848
- # Corresponds to the JSON property `exportSettings`
100
+ # A list of asset types to take a snapshot for. For example: "compute.googleapis.
101
+ # com/Disk". Regular expressions are also supported. For example: * "compute.
102
+ # googleapis.com.*" snapshots resources whose asset type starts with "compute.
103
+ # googleapis.com". * ".*Instance" snapshots resources whose asset type ends with
104
+ # "Instance". * ".*Instance.*" snapshots resources whose asset type contains "
105
+ # Instance". See [RE2](https://github.com/google/re2/wiki/Syntax) for all
106
+ # supported regular expression syntax. If the regular expression does not match
107
+ # any supported asset type, an INVALID_ARGUMENT error will be returned. If
108
+ # specified, only matching assets will be returned, otherwise, it will snapshot
109
+ # all asset types. See [Introduction to Cloud Asset Inventory](https://cloud.
110
+ # google.com/asset-inventory/docs/overview) for all supported asset types.
111
+ # Corresponds to the JSON property `assetTypes`
1849
112
  # @return [Array<String>]
1850
- attr_accessor :export_settings
113
+ attr_accessor :asset_types
1851
114
 
1852
- # Required. The format will be projects/`PROJECT_NUMBER`/inventorySettings or
1853
- # folders/`FOLDER_NUMBER`/inventorySettings or organizations/`
1854
- # ORGANIZATION_NUMBER`/inventorySettings
1855
- # Corresponds to the JSON property `name`
115
+ # Asset content type. If not specified, no content but the asset name will be
116
+ # returned.
117
+ # Corresponds to the JSON property `contentType`
1856
118
  # @return [String]
1857
- attr_accessor :name
1858
-
1859
- def initialize(**args)
1860
- update!(**args)
1861
- end
1862
-
1863
- # Update properties of this object
1864
- def update!(**args)
1865
- @export_settings = args[:export_settings] if args.key?(:export_settings)
1866
- @name = args[:name] if args.key?(:name)
1867
- end
1868
- end
1869
-
1870
- # ListAssets response.
1871
- class ListAssetUpdatesResponse
1872
- include Google::Apis::Core::Hashable
119
+ attr_accessor :content_type
1873
120
 
1874
- # Asset updates in the time window.
1875
- # Corresponds to the JSON property `assetUpdates`
1876
- # @return [Array<Google::Apis::CloudassetV1p7beta1::Asset>]
1877
- attr_accessor :asset_updates
121
+ # Output configuration for export assets destination.
122
+ # Corresponds to the JSON property `outputConfig`
123
+ # @return [Google::Apis::CloudassetV1p7beta1::OutputConfig]
124
+ attr_accessor :output_config
1878
125
 
1879
- # Token to retrieve the next page of results. Set to empty if there are no
1880
- # remaining results.
1881
- # Corresponds to the JSON property `nextPageToken`
126
+ # Timestamp to take an asset snapshot. This can only be set to a timestamp
127
+ # between the current time and the current time minus 35 days (inclusive). If
128
+ # not specified, the current time will be used. Due to delays in resource data
129
+ # collection and indexing, there is a volatile window during which running the
130
+ # same query may get different results.
131
+ # Corresponds to the JSON property `readTime`
1882
132
  # @return [String]
1883
- attr_accessor :next_page_token
133
+ attr_accessor :read_time
1884
134
 
1885
- # Time window configuration for asset updates requests.
1886
- # Corresponds to the JSON property `updateTimeWindow`
1887
- # @return [Google::Apis::CloudassetV1p7beta1::UpdateTimeWindow]
1888
- attr_accessor :update_time_window
135
+ # A list of relationship types to export, for example: `
136
+ # INSTANCE_TO_INSTANCEGROUP`. This field should only be specified if
137
+ # content_type=RELATIONSHIP. If specified, it will snapshot [asset_types]'
138
+ # specified relationships, or give errors if any relationship_types' supported
139
+ # types are not in [asset_types]. If not specified, it will snapshot all [
140
+ # asset_types]' supported relationships. An unspecified [asset_types] field
141
+ # means all supported asset_types. See [Introduction to Cloud Asset Inventory](
142
+ # https://cloud.google.com/asset-inventory/docs/overview) for all supported
143
+ # asset types and relationship types.
144
+ # Corresponds to the JSON property `relationshipTypes`
145
+ # @return [Array<String>]
146
+ attr_accessor :relationship_types
1889
147
 
1890
148
  def initialize(**args)
1891
149
  update!(**args)
@@ -1893,26 +151,37 @@ module Google
1893
151
 
1894
152
  # Update properties of this object
1895
153
  def update!(**args)
1896
- @asset_updates = args[:asset_updates] if args.key?(:asset_updates)
1897
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1898
- @update_time_window = args[:update_time_window] if args.key?(:update_time_window)
154
+ @asset_types = args[:asset_types] if args.key?(:asset_types)
155
+ @content_type = args[:content_type] if args.key?(:content_type)
156
+ @output_config = args[:output_config] if args.key?(:output_config)
157
+ @read_time = args[:read_time] if args.key?(:read_time)
158
+ @relationship_types = args[:relationship_types] if args.key?(:relationship_types)
1899
159
  end
1900
160
  end
1901
161
 
1902
- #
1903
- class ListExportSettingsResponse
162
+ # A Cloud Storage location.
163
+ class GcsDestination
1904
164
  include Google::Apis::Core::Hashable
1905
165
 
1906
- # A list of export settings.
1907
- # Corresponds to the JSON property `exportSettings`
1908
- # @return [Array<Google::Apis::CloudassetV1p7beta1::ExportSetting>]
1909
- attr_accessor :export_settings
166
+ # The uri of the Cloud Storage object. It's the same uri that is used by gsutil.
167
+ # Example: "gs://bucket_name/object_name". See [Viewing and Editing Object
168
+ # Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata) for
169
+ # more information.
170
+ # Corresponds to the JSON property `uri`
171
+ # @return [String]
172
+ attr_accessor :uri
1910
173
 
1911
- # Token to retrieve the next page of results. Set to empty if there are no
1912
- # remaining results.
1913
- # Corresponds to the JSON property `nextPageToken`
174
+ # The uri prefix of all generated Cloud Storage objects. Example: "gs://
175
+ # bucket_name/object_name_prefix". Each object uri is in format: "gs://
176
+ # bucket_name/object_name_prefix/`ASSET_TYPE`/`SHARD_NUMBER` and only contains
177
+ # assets for that type. starts from 0. Example: "gs://bucket_name/
178
+ # object_name_prefix/compute.googleapis.com/Disk/0" is the first shard of output
179
+ # objects containing all compute.googleapis.com/Disk assets. An INVALID_ARGUMENT
180
+ # error will be returned if file with the same name "gs://bucket_name/
181
+ # object_name_prefix" already exists.
182
+ # Corresponds to the JSON property `uriPrefix`
1914
183
  # @return [String]
1915
- attr_accessor :next_page_token
184
+ attr_accessor :uri_prefix
1916
185
 
1917
186
  def initialize(**args)
1918
187
  update!(**args)
@@ -1920,8 +189,8 @@ module Google
1920
189
 
1921
190
  # Update properties of this object
1922
191
  def update!(**args)
1923
- @export_settings = args[:export_settings] if args.key?(:export_settings)
1924
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
192
+ @uri = args[:uri] if args.key?(:uri)
193
+ @uri_prefix = args[:uri_prefix] if args.key?(:uri_prefix)
1925
194
  end
1926
195
  end
1927
196
 
@@ -2031,200 +300,6 @@ module Google
2031
300
  end
2032
301
  end
2033
302
 
2034
- # An Identity and Access Management (IAM) policy, which specifies access
2035
- # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
2036
- # A `binding` binds one or more `members` to a single `role`. Members can be
2037
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
2038
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
2039
- # role or a user-created custom role. For some types of Google Cloud resources,
2040
- # a `binding` can also specify a `condition`, which is a logical expression that
2041
- # allows access to a resource only if the expression evaluates to `true`. A
2042
- # condition can add constraints based on attributes of the request, the resource,
2043
- # or both. To learn which resources support conditions in their IAM policies,
2044
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
2045
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
2046
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
2047
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
2048
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
2049
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
2050
- # title": "expirable access", "description": "Does not grant access after Sep
2051
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
2052
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
2053
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
2054
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
2055
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
2056
- # roles/resourcemanager.organizationViewer condition: title: expirable access
2057
- # description: Does not grant access after Sep 2020 expression: request.time <
2058
- # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
2059
- # description of IAM and its features, see the [IAM documentation](https://cloud.
2060
- # google.com/iam/docs/).
2061
- class Policy
2062
- include Google::Apis::Core::Hashable
2063
-
2064
- # Specifies cloud audit logging configuration for this policy.
2065
- # Corresponds to the JSON property `auditConfigs`
2066
- # @return [Array<Google::Apis::CloudassetV1p7beta1::AuditConfig>]
2067
- attr_accessor :audit_configs
2068
-
2069
- # Associates a list of `members` to a `role`. Optionally, may specify a `
2070
- # condition` that determines how and when the `bindings` are applied. Each of
2071
- # the `bindings` must contain at least one member.
2072
- # Corresponds to the JSON property `bindings`
2073
- # @return [Array<Google::Apis::CloudassetV1p7beta1::Binding>]
2074
- attr_accessor :bindings
2075
-
2076
- # `etag` is used for optimistic concurrency control as a way to help prevent
2077
- # simultaneous updates of a policy from overwriting each other. It is strongly
2078
- # suggested that systems make use of the `etag` in the read-modify-write cycle
2079
- # to perform policy updates in order to avoid race conditions: An `etag` is
2080
- # returned in the response to `getIamPolicy`, and systems are expected to put
2081
- # that etag in the request to `setIamPolicy` to ensure that their change will be
2082
- # applied to the same version of the policy. **Important:** If you use IAM
2083
- # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
2084
- # If you omit this field, then IAM allows you to overwrite a version `3` policy
2085
- # with a version `1` policy, and all of the conditions in the version `3` policy
2086
- # are lost.
2087
- # Corresponds to the JSON property `etag`
2088
- # NOTE: Values are automatically base64 encoded/decoded in the client library.
2089
- # @return [String]
2090
- attr_accessor :etag
2091
-
2092
- # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
2093
- # Requests that specify an invalid value are rejected. Any operation that
2094
- # affects conditional role bindings must specify version `3`. This requirement
2095
- # applies to the following operations: * Getting a policy that includes a
2096
- # conditional role binding * Adding a conditional role binding to a policy *
2097
- # Changing a conditional role binding in a policy * Removing any role binding,
2098
- # with or without a condition, from a policy that includes conditions **
2099
- # Important:** If you use IAM Conditions, you must include the `etag` field
2100
- # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
2101
- # to overwrite a version `3` policy with a version `1` policy, and all of the
2102
- # conditions in the version `3` policy are lost. If a policy does not include
2103
- # any conditions, operations on that policy may specify any valid version or
2104
- # leave the field unset. To learn which resources support conditions in their
2105
- # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
2106
- # conditions/resource-policies).
2107
- # Corresponds to the JSON property `version`
2108
- # @return [Fixnum]
2109
- attr_accessor :version
2110
-
2111
- def initialize(**args)
2112
- update!(**args)
2113
- end
2114
-
2115
- # Update properties of this object
2116
- def update!(**args)
2117
- @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
2118
- @bindings = args[:bindings] if args.key?(:bindings)
2119
- @etag = args[:etag] if args.key?(:etag)
2120
- @version = args[:version] if args.key?(:version)
2121
- end
2122
- end
2123
-
2124
- # A representation of a Google Cloud resource.
2125
- class Resource
2126
- include Google::Apis::Core::Hashable
2127
-
2128
- # The content of the resource, in which some sensitive fields are removed and
2129
- # may not be present.
2130
- # Corresponds to the JSON property `data`
2131
- # @return [Hash<String,Object>]
2132
- attr_accessor :data
2133
-
2134
- # The URL of the discovery document containing the resource's JSON schema.
2135
- # Example: `https://www.googleapis.com/discovery/v1/apis/compute/v1/rest` This
2136
- # value is unspecified for resources that do not have an API based on a
2137
- # discovery document, such as Cloud Bigtable.
2138
- # Corresponds to the JSON property `discoveryDocumentUri`
2139
- # @return [String]
2140
- attr_accessor :discovery_document_uri
2141
-
2142
- # The JSON schema name listed in the discovery document. Example: `Project` This
2143
- # value is unspecified for resources that do not have an API based on a
2144
- # discovery document, such as Cloud Bigtable.
2145
- # Corresponds to the JSON property `discoveryName`
2146
- # @return [String]
2147
- attr_accessor :discovery_name
2148
-
2149
- # The location of the resource in Google Cloud, such as its zone and region. For
2150
- # more information, see https://cloud.google.com/about/locations/.
2151
- # Corresponds to the JSON property `location`
2152
- # @return [String]
2153
- attr_accessor :location
2154
-
2155
- # The full name of the immediate parent of this resource. See [Resource Names](
2156
- # https://cloud.google.com/apis/design/resource_names#full_resource_name) for
2157
- # more information. For Google Cloud assets, this value is the parent resource
2158
- # defined in the [Cloud IAM policy hierarchy](https://cloud.google.com/iam/docs/
2159
- # overview#policy_hierarchy). Example: `//cloudresourcemanager.googleapis.com/
2160
- # projects/my_project_123` For third-party assets, this field may be set
2161
- # differently.
2162
- # Corresponds to the JSON property `parent`
2163
- # @return [String]
2164
- attr_accessor :parent
2165
-
2166
- # The REST URL for accessing the resource. An HTTP `GET` request using this URL
2167
- # returns the resource itself. Example: `https://cloudresourcemanager.googleapis.
2168
- # com/v1/projects/my-project-123` This value is unspecified for resources
2169
- # without a REST API.
2170
- # Corresponds to the JSON property `resourceUrl`
2171
- # @return [String]
2172
- attr_accessor :resource_url
2173
-
2174
- # The API version. Example: `v1`
2175
- # Corresponds to the JSON property `version`
2176
- # @return [String]
2177
- attr_accessor :version
2178
-
2179
- def initialize(**args)
2180
- update!(**args)
2181
- end
2182
-
2183
- # Update properties of this object
2184
- def update!(**args)
2185
- @data = args[:data] if args.key?(:data)
2186
- @discovery_document_uri = args[:discovery_document_uri] if args.key?(:discovery_document_uri)
2187
- @discovery_name = args[:discovery_name] if args.key?(:discovery_name)
2188
- @location = args[:location] if args.key?(:location)
2189
- @parent = args[:parent] if args.key?(:parent)
2190
- @resource_url = args[:resource_url] if args.key?(:resource_url)
2191
- @version = args[:version] if args.key?(:version)
2192
- end
2193
- end
2194
-
2195
- # Schedule for scheduled export. This is used to configure scheduled export for
2196
- # both GCS and BigQuery.
2197
- class ScheduleConfig
2198
- include Google::Apis::Core::Hashable
2199
-
2200
- # Required. Cron-tab formatted schedule by which the job will execute Format:
2201
- # minute, hour, day of month, month, day of week e.g. 0 0 * * WED = every
2202
- # Wednesday More examples: https://crontab.guru/examples.html
2203
- # Corresponds to the JSON property `crontab`
2204
- # @return [String]
2205
- attr_accessor :crontab
2206
-
2207
- # Specifies the time zone to be used in interpreting [crontab]. The value of
2208
- # this field must be a time zone name from the [tz database](https://en.
2209
- # wikipedia.org/wiki/Tz_database). Note that some time zones include a provision
2210
- # for daylight savings time. The rules for daylight saving time are determined
2211
- # by the chosen tz. For UTC use the string "utc". If a time zone is not
2212
- # specified, the default will be in UTC (also known as GMT).
2213
- # Corresponds to the JSON property `timeZone`
2214
- # @return [String]
2215
- attr_accessor :time_zone
2216
-
2217
- def initialize(**args)
2218
- update!(**args)
2219
- end
2220
-
2221
- # Update properties of this object
2222
- def update!(**args)
2223
- @crontab = args[:crontab] if args.key?(:crontab)
2224
- @time_zone = args[:time_zone] if args.key?(:time_zone)
2225
- end
2226
- end
2227
-
2228
303
  # The `Status` type defines a logical error model that is suitable for different
2229
304
  # programming environments, including REST APIs and RPC APIs. It is used by [
2230
305
  # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
@@ -2263,57 +338,6 @@ module Google
2263
338
  @message = args[:message] if args.key?(:message)
2264
339
  end
2265
340
  end
2266
-
2267
- # A time window specified by its `start_time` and `end_time`.
2268
- class TimeWindow
2269
- include Google::Apis::Core::Hashable
2270
-
2271
- # End time of the time window (inclusive). If not specified, the current
2272
- # timestamp is used instead.
2273
- # Corresponds to the JSON property `endTime`
2274
- # @return [String]
2275
- attr_accessor :end_time
2276
-
2277
- # Start time of the time window (exclusive).
2278
- # Corresponds to the JSON property `startTime`
2279
- # @return [String]
2280
- attr_accessor :start_time
2281
-
2282
- def initialize(**args)
2283
- update!(**args)
2284
- end
2285
-
2286
- # Update properties of this object
2287
- def update!(**args)
2288
- @end_time = args[:end_time] if args.key?(:end_time)
2289
- @start_time = args[:start_time] if args.key?(:start_time)
2290
- end
2291
- end
2292
-
2293
- # Time window configuration for asset updates requests.
2294
- class UpdateTimeWindow
2295
- include Google::Apis::Core::Hashable
2296
-
2297
- # A time window specified by its `start_time` and `end_time`.
2298
- # Corresponds to the JSON property `timeWindow`
2299
- # @return [Google::Apis::CloudassetV1p7beta1::TimeWindow]
2300
- attr_accessor :time_window
2301
-
2302
- # The type of the time in time_window.
2303
- # Corresponds to the JSON property `type`
2304
- # @return [String]
2305
- attr_accessor :type
2306
-
2307
- def initialize(**args)
2308
- update!(**args)
2309
- end
2310
-
2311
- # Update properties of this object
2312
- def update!(**args)
2313
- @time_window = args[:time_window] if args.key?(:time_window)
2314
- @type = args[:type] if args.key?(:type)
2315
- end
2316
- end
2317
341
  end
2318
342
  end
2319
343
  end