google-api-client 0.40.2 → 0.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +66 -0
  3. data/generated/google/apis/androidmanagement_v1.rb +1 -1
  4. data/generated/google/apis/androidmanagement_v1/classes.rb +117 -0
  5. data/generated/google/apis/androidmanagement_v1/representations.rb +39 -0
  6. data/generated/google/apis/androidpublisher_v3.rb +1 -1
  7. data/generated/google/apis/appsmarket_v2.rb +1 -1
  8. data/generated/google/apis/artifactregistry_v1beta1.rb +1 -1
  9. data/generated/google/apis/artifactregistry_v1beta1/classes.rb +9 -0
  10. data/generated/google/apis/artifactregistry_v1beta1/representations.rb +1 -0
  11. data/generated/google/apis/bigquerydatatransfer_v1.rb +1 -1
  12. data/generated/google/apis/bigquerydatatransfer_v1/classes.rb +4 -4
  13. data/generated/google/apis/bigtableadmin_v1.rb +1 -1
  14. data/generated/google/apis/bigtableadmin_v1/classes.rb +5 -10
  15. data/generated/google/apis/bigtableadmin_v2.rb +1 -1
  16. data/generated/google/apis/bigtableadmin_v2/classes.rb +39 -31
  17. data/generated/google/apis/bigtableadmin_v2/service.rb +1 -5
  18. data/generated/google/apis/books_v1.rb +1 -1
  19. data/generated/google/apis/calendar_v3.rb +1 -1
  20. data/generated/google/apis/chat_v1.rb +1 -1
  21. data/generated/google/apis/chat_v1/classes.rb +2 -0
  22. data/generated/google/apis/cloudasset_v1.rb +1 -1
  23. data/generated/google/apis/cloudasset_v1/classes.rb +12 -3
  24. data/generated/google/apis/cloudasset_v1beta1.rb +1 -1
  25. data/generated/google/apis/cloudasset_v1beta1/classes.rb +948 -36
  26. data/generated/google/apis/cloudasset_v1beta1/representations.rb +241 -0
  27. data/generated/google/apis/cloudasset_v1beta1/service.rb +4 -4
  28. data/generated/google/apis/cloudasset_v1p4beta1.rb +1 -1
  29. data/generated/google/apis/cloudasset_v1p4beta1/classes.rb +18 -19
  30. data/generated/google/apis/cloudasset_v1p4beta1/service.rb +10 -6
  31. data/generated/google/apis/clouderrorreporting_v1beta1.rb +1 -1
  32. data/generated/google/apis/clouderrorreporting_v1beta1/classes.rb +1 -1
  33. data/generated/google/apis/clouderrorreporting_v1beta1/service.rb +5 -6
  34. data/generated/google/apis/cloudidentity_v1.rb +1 -1
  35. data/generated/google/apis/cloudidentity_v1beta1.rb +1 -1
  36. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  37. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +14 -9
  38. data/generated/google/apis/cloudresourcemanager_v1/service.rb +15 -6
  39. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  40. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +4 -2
  41. data/generated/google/apis/cloudresourcemanager_v2.rb +1 -1
  42. data/generated/google/apis/cloudresourcemanager_v2beta1.rb +1 -1
  43. data/generated/google/apis/compute_alpha.rb +1 -1
  44. data/generated/google/apis/compute_alpha/classes.rb +535 -43
  45. data/generated/google/apis/compute_alpha/representations.rb +167 -0
  46. data/generated/google/apis/compute_alpha/service.rb +922 -172
  47. data/generated/google/apis/compute_beta.rb +1 -1
  48. data/generated/google/apis/compute_beta/classes.rb +107 -42
  49. data/generated/google/apis/compute_beta/representations.rb +20 -0
  50. data/generated/google/apis/compute_v1.rb +1 -1
  51. data/generated/google/apis/compute_v1/classes.rb +22 -10
  52. data/generated/google/apis/compute_v1/representations.rb +1 -0
  53. data/generated/google/apis/container_v1beta1.rb +1 -1
  54. data/generated/google/apis/container_v1beta1/classes.rb +21 -7
  55. data/generated/google/apis/content_v2.rb +1 -1
  56. data/generated/google/apis/content_v2/classes.rb +7 -1
  57. data/generated/google/apis/content_v2/representations.rb +1 -0
  58. data/generated/google/apis/content_v2/service.rb +10 -5
  59. data/generated/google/apis/content_v2_1.rb +1 -1
  60. data/generated/google/apis/content_v2_1/classes.rb +93 -7
  61. data/generated/google/apis/content_v2_1/representations.rb +37 -0
  62. data/generated/google/apis/content_v2_1/service.rb +10 -5
  63. data/generated/google/apis/dataproc_v1.rb +1 -1
  64. data/generated/google/apis/dataproc_v1/classes.rb +46 -0
  65. data/generated/google/apis/dataproc_v1/representations.rb +17 -0
  66. data/generated/google/apis/dataproc_v1beta2.rb +1 -1
  67. data/generated/google/apis/dataproc_v1beta2/classes.rb +12 -0
  68. data/generated/google/apis/dataproc_v1beta2/representations.rb +1 -0
  69. data/generated/google/apis/dialogflow_v2.rb +1 -1
  70. data/generated/google/apis/dialogflow_v2/service.rb +14 -2
  71. data/generated/google/apis/dialogflow_v2beta1.rb +1 -1
  72. data/generated/google/apis/dialogflow_v2beta1/service.rb +28 -4
  73. data/generated/google/apis/documentai_v1beta2.rb +36 -0
  74. data/generated/google/apis/documentai_v1beta2/classes.rb +3284 -0
  75. data/generated/google/apis/documentai_v1beta2/representations.rb +1344 -0
  76. data/generated/google/apis/documentai_v1beta2/service.rb +269 -0
  77. data/generated/google/apis/drive_v2.rb +1 -1
  78. data/generated/google/apis/drive_v2/service.rb +26 -78
  79. data/generated/google/apis/drive_v3.rb +1 -1
  80. data/generated/google/apis/drive_v3/service.rb +18 -54
  81. data/generated/google/apis/fcm_v1.rb +1 -1
  82. data/generated/google/apis/fcm_v1/classes.rb +6 -0
  83. data/generated/google/apis/firebase_v1beta1.rb +1 -1
  84. data/generated/google/apis/firebase_v1beta1/classes.rb +7 -6
  85. data/generated/google/apis/firebase_v1beta1/service.rb +53 -49
  86. data/generated/google/apis/healthcare_v1.rb +1 -1
  87. data/generated/google/apis/healthcare_v1/service.rb +2 -0
  88. data/generated/google/apis/healthcare_v1beta1.rb +1 -1
  89. data/generated/google/apis/healthcare_v1beta1/classes.rb +910 -43
  90. data/generated/google/apis/healthcare_v1beta1/representations.rb +404 -0
  91. data/generated/google/apis/healthcare_v1beta1/service.rb +517 -0
  92. data/generated/google/apis/iam_v1.rb +1 -1
  93. data/generated/google/apis/iam_v1/classes.rb +5 -0
  94. data/generated/google/apis/iam_v1/service.rb +4 -0
  95. data/generated/google/apis/iamcredentials_v1.rb +2 -2
  96. data/generated/google/apis/iamcredentials_v1/service.rb +1 -1
  97. data/generated/google/apis/lifesciences_v2beta.rb +1 -1
  98. data/generated/google/apis/lifesciences_v2beta/classes.rb +10 -0
  99. data/generated/google/apis/lifesciences_v2beta/representations.rb +1 -0
  100. data/generated/google/apis/monitoring_v3.rb +1 -1
  101. data/generated/google/apis/monitoring_v3/classes.rb +56 -17
  102. data/generated/google/apis/people_v1.rb +1 -1
  103. data/generated/google/apis/people_v1/classes.rb +4 -4
  104. data/generated/google/apis/people_v1/service.rb +6 -5
  105. data/generated/google/apis/run_v1.rb +1 -1
  106. data/generated/google/apis/run_v1/classes.rb +6 -6
  107. data/generated/google/apis/run_v1alpha1.rb +1 -1
  108. data/generated/google/apis/run_v1alpha1/classes.rb +6 -6
  109. data/generated/google/apis/run_v1beta1.rb +1 -1
  110. data/generated/google/apis/secretmanager_v1.rb +1 -1
  111. data/generated/google/apis/secretmanager_v1beta1.rb +1 -1
  112. data/generated/google/apis/securitycenter_v1.rb +1 -1
  113. data/generated/google/apis/securitycenter_v1/classes.rb +10 -10
  114. data/generated/google/apis/securitycenter_v1/service.rb +10 -10
  115. data/generated/google/apis/securitycenter_v1p1beta1.rb +1 -1
  116. data/generated/google/apis/securitycenter_v1p1beta1/classes.rb +10 -10
  117. data/generated/google/apis/securitycenter_v1p1beta1/service.rb +10 -10
  118. data/generated/google/apis/serviceconsumermanagement_v1.rb +1 -1
  119. data/generated/google/apis/serviceconsumermanagement_v1/classes.rb +21 -2
  120. data/generated/google/apis/serviceconsumermanagement_v1/representations.rb +1 -0
  121. data/generated/google/apis/serviceconsumermanagement_v1beta1.rb +1 -1
  122. data/generated/google/apis/serviceconsumermanagement_v1beta1/classes.rb +21 -2
  123. data/generated/google/apis/serviceconsumermanagement_v1beta1/representations.rb +1 -0
  124. data/generated/google/apis/servicemanagement_v1.rb +1 -1
  125. data/generated/google/apis/servicemanagement_v1/classes.rb +117 -37
  126. data/generated/google/apis/servicenetworking_v1.rb +1 -1
  127. data/generated/google/apis/servicenetworking_v1/classes.rb +13 -2
  128. data/generated/google/apis/servicenetworking_v1beta.rb +1 -1
  129. data/generated/google/apis/servicenetworking_v1beta/classes.rb +13 -2
  130. data/generated/google/apis/serviceusage_v1.rb +1 -1
  131. data/generated/google/apis/serviceusage_v1/classes.rb +27 -2
  132. data/generated/google/apis/serviceusage_v1/representations.rb +2 -0
  133. data/generated/google/apis/serviceusage_v1beta1.rb +1 -1
  134. data/generated/google/apis/serviceusage_v1beta1/classes.rb +72 -2
  135. data/generated/google/apis/serviceusage_v1beta1/representations.rb +30 -0
  136. data/generated/google/apis/serviceusage_v1beta1/service.rb +37 -0
  137. data/generated/google/apis/slides_v1.rb +1 -1
  138. data/generated/google/apis/slides_v1/classes.rb +4 -0
  139. data/generated/google/apis/vision_v1.rb +1 -1
  140. data/generated/google/apis/vision_v1/classes.rb +18 -0
  141. data/generated/google/apis/vision_v1p1beta1.rb +1 -1
  142. data/generated/google/apis/vision_v1p1beta1/classes.rb +18 -0
  143. data/generated/google/apis/vision_v1p2beta1.rb +1 -1
  144. data/generated/google/apis/vision_v1p2beta1/classes.rb +18 -0
  145. data/generated/google/apis/youtube_v3.rb +1 -1
  146. data/generated/google/apis/youtube_v3/classes.rb +38 -0
  147. data/generated/google/apis/youtube_v3/representations.rb +27 -0
  148. data/generated/google/apis/youtube_v3/service.rb +32 -0
  149. data/lib/google/apis/version.rb +1 -1
  150. metadata +7 -7
  151. data/generated/google/apis/customsearch_v1.rb +0 -31
  152. data/generated/google/apis/customsearch_v1/classes.rb +0 -1606
  153. data/generated/google/apis/customsearch_v1/representations.rb +0 -372
  154. data/generated/google/apis/customsearch_v1/service.rb +0 -608
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://cloud.google.com/bigtable/
26
26
  module BigtableadminV1
27
27
  VERSION = 'V1'
28
- REVISION = '20200424'
28
+ REVISION = '20200512'
29
29
  end
30
30
  end
31
31
  end
@@ -28,15 +28,14 @@ module Google
28
28
  class Cluster
29
29
  include Google::Apis::Core::Hashable
30
30
 
31
- # (`CreationOnly`)
32
- # The type of storage used by this cluster to serve its
31
+ # Immutable. The type of storage used by this cluster to serve its
33
32
  # parent instance's tables, unless explicitly overridden.
34
33
  # Corresponds to the JSON property `defaultStorageType`
35
34
  # @return [String]
36
35
  attr_accessor :default_storage_type
37
36
 
38
- # (`CreationOnly`)
39
- # The location where this cluster's nodes and storage reside. For best
37
+ # Immutable. The location where this cluster's nodes and storage reside. For
38
+ # best
40
39
  # performance, clients should be located as close as possible to this
41
40
  # cluster. Currently only zones are supported, so values should be of the
42
41
  # form `projects/`project`/locations/`zone``.
@@ -44,7 +43,6 @@ module Google
44
43
  # @return [String]
45
44
  attr_accessor :location
46
45
 
47
- # Required. (`OutputOnly`)
48
46
  # The unique name of the cluster. Values are of the form
49
47
  # `projects/`project`/instances/`instance`/clusters/a-z*`.
50
48
  # Corresponds to the JSON property `name`
@@ -58,8 +56,7 @@ module Google
58
56
  # @return [Fixnum]
59
57
  attr_accessor :serve_nodes
60
58
 
61
- # (`OutputOnly`)
62
- # The current state of the cluster.
59
+ # Output only. The current state of the cluster.
63
60
  # Corresponds to the JSON property `state`
64
61
  # @return [String]
65
62
  attr_accessor :state
@@ -266,15 +263,13 @@ module Google
266
263
  # @return [Hash<String,String>]
267
264
  attr_accessor :labels
268
265
 
269
- # Required. (`OutputOnly`)
270
266
  # The unique name of the instance. Values are of the form
271
267
  # `projects/`project`/instances/a-z+[a-z0-9]`.
272
268
  # Corresponds to the JSON property `name`
273
269
  # @return [String]
274
270
  attr_accessor :name
275
271
 
276
- # (`OutputOnly`)
277
- # The current state of the instance.
272
+ # Output only. The current state of the instance.
278
273
  # Corresponds to the JSON property `state`
279
274
  # @return [String]
280
275
  attr_accessor :state
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://cloud.google.com/bigtable/
26
26
  module BigtableadminV2
27
27
  VERSION = 'V2'
28
- REVISION = '20200424'
28
+ REVISION = '20200512'
29
29
 
30
30
  # Administer your Cloud Bigtable tables and clusters
31
31
  AUTH_BIGTABLE_ADMIN = 'https://www.googleapis.com/auth/bigtable.admin'
@@ -27,7 +27,7 @@ module Google
27
27
  class AppProfile
28
28
  include Google::Apis::Core::Hashable
29
29
 
30
- # Optional long form description of the use case for this AppProfile.
30
+ # Long form description of the use case for this AppProfile.
31
31
  # Corresponds to the JSON property `description`
32
32
  # @return [String]
33
33
  attr_accessor :description
@@ -53,9 +53,8 @@ module Google
53
53
  # @return [Google::Apis::BigtableadminV2::MultiClusterRoutingUseAny]
54
54
  attr_accessor :multi_cluster_routing_use_any
55
55
 
56
- # (`OutputOnly`)
57
56
  # The unique name of the app profile. Values are of the form
58
- # `projects/<project>/instances/<instance>/appProfiles/_a-zA-Z0-9*`.
57
+ # `projects/`project`/instances/`instance`/appProfiles/_a-zA-Z0-9*`.
59
58
  # Corresponds to the JSON property `name`
60
59
  # @return [String]
61
60
  attr_accessor :name
@@ -328,15 +327,14 @@ module Google
328
327
  class Cluster
329
328
  include Google::Apis::Core::Hashable
330
329
 
331
- # (`CreationOnly`)
332
- # The type of storage used by this cluster to serve its
330
+ # Immutable. The type of storage used by this cluster to serve its
333
331
  # parent instance's tables, unless explicitly overridden.
334
332
  # Corresponds to the JSON property `defaultStorageType`
335
333
  # @return [String]
336
334
  attr_accessor :default_storage_type
337
335
 
338
- # (`CreationOnly`)
339
- # The location where this cluster's nodes and storage reside. For best
336
+ # Immutable. The location where this cluster's nodes and storage reside. For
337
+ # best
340
338
  # performance, clients should be located as close as possible to this
341
339
  # cluster. Currently only zones are supported, so values should be of the
342
340
  # form `projects/`project`/locations/`zone``.
@@ -344,7 +342,6 @@ module Google
344
342
  # @return [String]
345
343
  attr_accessor :location
346
344
 
347
- # Required. (`OutputOnly`)
348
345
  # The unique name of the cluster. Values are of the form
349
346
  # `projects/`project`/instances/`instance`/clusters/a-z*`.
350
347
  # Corresponds to the JSON property `name`
@@ -358,8 +355,7 @@ module Google
358
355
  # @return [Fixnum]
359
356
  attr_accessor :serve_nodes
360
357
 
361
- # (`OutputOnly`)
362
- # The current state of the cluster.
358
+ # Output only. The current state of the cluster.
363
359
  # Corresponds to the JSON property `state`
364
360
  # @return [String]
365
361
  attr_accessor :state
@@ -838,6 +834,9 @@ module Google
838
834
  # Requests for policies with any conditional bindings must specify version 3.
839
835
  # Policies without any conditional bindings may specify any valid value or
840
836
  # leave the field unset.
837
+ # To learn which resources support conditions in their IAM policies, see the
838
+ # [IAM
839
+ # documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
841
840
  # Corresponds to the JSON property `requestedPolicyVersion`
842
841
  # @return [Fixnum]
843
842
  attr_accessor :requested_policy_version
@@ -880,15 +879,13 @@ module Google
880
879
  # @return [Hash<String,String>]
881
880
  attr_accessor :labels
882
881
 
883
- # Required. (`OutputOnly`)
884
882
  # The unique name of the instance. Values are of the form
885
883
  # `projects/`project`/instances/a-z+[a-z0-9]`.
886
884
  # Corresponds to the JSON property `name`
887
885
  # @return [String]
888
886
  attr_accessor :name
889
887
 
890
- # (`OutputOnly`)
891
- # The current state of the instance.
888
+ # Output only. The current state of the instance.
892
889
  # Corresponds to the JSON property `state`
893
890
  # @return [String]
894
891
  attr_accessor :state
@@ -1343,10 +1340,13 @@ module Google
1343
1340
  # Google groups, and domains (such as G Suite). A `role` is a named list of
1344
1341
  # permissions; each `role` can be an IAM predefined role or a user-created
1345
1342
  # custom role.
1346
- # Optionally, a `binding` can specify a `condition`, which is a logical
1347
- # expression that allows access to a resource only if the expression evaluates
1348
- # to `true`. A condition can add constraints based on attributes of the
1349
- # request, the resource, or both.
1343
+ # For some types of Google Cloud resources, a `binding` can also specify a
1344
+ # `condition`, which is a logical expression that allows access to a resource
1345
+ # only if the expression evaluates to `true`. A condition can add constraints
1346
+ # based on attributes of the request, the resource, or both. To learn which
1347
+ # resources support conditions in their IAM policies, see the
1348
+ # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-
1349
+ # policies).
1350
1350
  # **JSON example:**
1351
1351
  # `
1352
1352
  # "bindings": [
@@ -1361,7 +1361,9 @@ module Google
1361
1361
  # `,
1362
1362
  # `
1363
1363
  # "role": "roles/resourcemanager.organizationViewer",
1364
- # "members": ["user:eve@example.com"],
1364
+ # "members": [
1365
+ # "user:eve@example.com"
1366
+ # ],
1365
1367
  # "condition": `
1366
1368
  # "title": "expirable access",
1367
1369
  # "description": "Does not grant access after Sep 2020",
@@ -1439,6 +1441,9 @@ module Google
1439
1441
  # the conditions in the version `3` policy are lost.
1440
1442
  # If a policy does not include any conditions, operations on that policy may
1441
1443
  # specify any valid version or leave the field unset.
1444
+ # To learn which resources support conditions in their IAM policies, see the
1445
+ # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-
1446
+ # policies).
1442
1447
  # Corresponds to the JSON property `version`
1443
1448
  # @return [Fixnum]
1444
1449
  attr_accessor :version
@@ -1467,10 +1472,13 @@ module Google
1467
1472
  # Google groups, and domains (such as G Suite). A `role` is a named list of
1468
1473
  # permissions; each `role` can be an IAM predefined role or a user-created
1469
1474
  # custom role.
1470
- # Optionally, a `binding` can specify a `condition`, which is a logical
1471
- # expression that allows access to a resource only if the expression evaluates
1472
- # to `true`. A condition can add constraints based on attributes of the
1473
- # request, the resource, or both.
1475
+ # For some types of Google Cloud resources, a `binding` can also specify a
1476
+ # `condition`, which is a logical expression that allows access to a resource
1477
+ # only if the expression evaluates to `true`. A condition can add constraints
1478
+ # based on attributes of the request, the resource, or both. To learn which
1479
+ # resources support conditions in their IAM policies, see the
1480
+ # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-
1481
+ # policies).
1474
1482
  # **JSON example:**
1475
1483
  # `
1476
1484
  # "bindings": [
@@ -1485,7 +1493,9 @@ module Google
1485
1493
  # `,
1486
1494
  # `
1487
1495
  # "role": "roles/resourcemanager.organizationViewer",
1488
- # "members": ["user:eve@example.com"],
1496
+ # "members": [
1497
+ # "user:eve@example.com"
1498
+ # ],
1489
1499
  # "condition": `
1490
1500
  # "title": "expirable access",
1491
1501
  # "description": "Does not grant access after Sep 2020",
@@ -1523,8 +1533,7 @@ module Google
1523
1533
  # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
1524
1534
  # the fields in the mask will be modified. If no mask is provided, the
1525
1535
  # following default mask is used:
1526
- # paths: "bindings, etag"
1527
- # This field is only used by Cloud IAM.
1536
+ # `paths: "bindings, etag"`
1528
1537
  # Corresponds to the JSON property `updateMask`
1529
1538
  # @return [String]
1530
1539
  attr_accessor :update_mask
@@ -1643,24 +1652,23 @@ module Google
1643
1652
  # @return [Hash<String,Google::Apis::BigtableadminV2::ClusterState>]
1644
1653
  attr_accessor :cluster_states
1645
1654
 
1646
- # (`CreationOnly`)
1647
1655
  # The column families configured for this table, mapped by column family ID.
1648
1656
  # Views: `SCHEMA_VIEW`, `FULL`
1649
1657
  # Corresponds to the JSON property `columnFamilies`
1650
1658
  # @return [Hash<String,Google::Apis::BigtableadminV2::ColumnFamily>]
1651
1659
  attr_accessor :column_families
1652
1660
 
1653
- # (`CreationOnly`)
1654
- # The granularity (i.e. `MILLIS`) at which timestamps are stored in
1655
- # this table. Timestamps not matching the granularity will be rejected.
1661
+ # Immutable. The granularity (i.e. `MILLIS`) at which timestamps are stored in
1662
+ # this
1663
+ # table. Timestamps not matching the granularity will be rejected.
1656
1664
  # If unspecified at creation time, the value will be set to `MILLIS`.
1657
1665
  # Views: `SCHEMA_VIEW`, `FULL`.
1658
1666
  # Corresponds to the JSON property `granularity`
1659
1667
  # @return [String]
1660
1668
  attr_accessor :granularity
1661
1669
 
1662
- # Output only. The unique name of the table. Values are of the form
1663
- # `projects/<project>/instances/<instance>/tables/_a-zA-Z0-9*`.
1670
+ # The unique name of the table. Values are of the form
1671
+ # `projects/`project`/instances/`instance`/tables/_a-zA-Z0-9*`.
1664
1672
  # Views: `NAME_ONLY`, `SCHEMA_VIEW`, `REPLICATION_VIEW`, `FULL`
1665
1673
  # Corresponds to the JSON property `name`
1666
1674
  # @return [String]
@@ -367,7 +367,6 @@ module Google
367
367
  # Partially updates an instance within a project. This method can modify all
368
368
  # fields of an Instance and is the preferred way to update an Instance.
369
369
  # @param [String] name
370
- # Required. (`OutputOnly`)
371
370
  # The unique name of the instance. Values are of the form
372
371
  # `projects/`project`/instances/a-z+[a-z0-9]`.
373
372
  # @param [Google::Apis::BigtableadminV2::Instance] instance_object
@@ -477,7 +476,6 @@ module Google
477
476
  # name and type for an Instance. To update other Instance properties, such as
478
477
  # labels, use PartialUpdateInstance.
479
478
  # @param [String] name
480
- # Required. (`OutputOnly`)
481
479
  # The unique name of the instance. Values are of the form
482
480
  # `projects/`project`/instances/a-z+[a-z0-9]`.
483
481
  # @param [Google::Apis::BigtableadminV2::Instance] instance_object
@@ -668,9 +666,8 @@ module Google
668
666
 
669
667
  # Updates an app profile within an instance.
670
668
  # @param [String] name
671
- # (`OutputOnly`)
672
669
  # The unique name of the app profile. Values are of the form
673
- # `projects/<project>/instances/<instance>/appProfiles/_a-zA-Z0-9*`.
670
+ # `projects/`project`/instances/`instance`/appProfiles/_a-zA-Z0-9*`.
674
671
  # @param [Google::Apis::BigtableadminV2::AppProfile] app_profile_object
675
672
  # @param [Boolean] ignore_warnings
676
673
  # If true, ignore safety checks when updating the app profile.
@@ -850,7 +847,6 @@ module Google
850
847
 
851
848
  # Updates a cluster within an instance.
852
849
  # @param [String] name
853
- # Required. (`OutputOnly`)
854
850
  # The unique name of the cluster. Values are of the form
855
851
  # `projects/`project`/instances/`instance`/clusters/a-z*`.
856
852
  # @param [Google::Apis::BigtableadminV2::Cluster] cluster_object
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://code.google.com/apis/books/docs/v1/getting_started.html
26
26
  module BooksV1
27
27
  VERSION = 'V1'
28
- REVISION = '20200606'
28
+ REVISION = '20200617'
29
29
 
30
30
  # Manage your books
31
31
  AUTH_BOOKS = 'https://www.googleapis.com/auth/books'
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://developers.google.com/google-apps/calendar/firstapp
26
26
  module CalendarV3
27
27
  VERSION = 'V3'
28
- REVISION = '20200517'
28
+ REVISION = '20200610'
29
29
 
30
30
  # See, edit, share, and permanently delete all the calendars you can access using Google Calendar
31
31
  AUTH_CALENDAR = 'https://www.googleapis.com/auth/calendar'
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://developers.google.com/hangouts/chat
26
26
  module ChatV1
27
27
  VERSION = 'V1'
28
- REVISION = '20200502'
28
+ REVISION = '20200617'
29
29
  end
30
30
  end
31
31
  end
@@ -787,6 +787,8 @@ module Google
787
787
  include Google::Apis::Core::Hashable
788
788
 
789
789
  # Output only. The display name (only if the space is a room).
790
+ # Please note that this field might not be populated in direct messages
791
+ # between humans.
790
792
  # Corresponds to the JSON property `displayName`
791
793
  # @return [String]
792
794
  attr_accessor :display_name
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://cloud.google.com/asset-inventory/docs/quickstart
26
26
  module CloudassetV1
27
27
  VERSION = 'V1'
28
- REVISION = '20200605'
28
+ REVISION = '20200613'
29
29
 
30
30
  # View and manage your data across Google Cloud Platform services
31
31
  AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
@@ -27,7 +27,10 @@ module Google
27
27
  # hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-
28
28
  # resource-hierarchy),
29
29
  # a resource outside the Google Cloud resource hierarchy (such as Google
30
- # Kubernetes Engine clusters and objects), or a Cloud IAM policy.
30
+ # Kubernetes Engine clusters and objects), or a policy (e.g. Cloud IAM policy).
31
+ # See [Supported asset
32
+ # types](https://cloud.google.com/asset-inventory/docs/supported-asset-types)
33
+ # for more information.
31
34
  class Asset
32
35
  include Google::Apis::Core::Hashable
33
36
 
@@ -834,7 +837,7 @@ module Google
834
837
  attr_accessor :denied_values
835
838
 
836
839
  # Determines the inheritance behavior for this `Policy`.
837
- # By default, a `ListPolicy` set at a resource supercedes any `Policy` set
840
+ # By default, a `ListPolicy` set at a resource supersedes any `Policy` set
838
841
  # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
839
842
  # set to `true`, then the values from the effective `Policy` of the parent
840
843
  # resource are inherited, meaning the values set in this `Policy` are
@@ -958,6 +961,9 @@ module Google
958
961
 
959
962
  # The name of the `Constraint` the `Policy` is configuring, for example,
960
963
  # `constraints/serviceuser.services`.
964
+ # A [list of available
965
+ # constraints](/resource-manager/docs/organization-policy/org-policy-constraints)
966
+ # is available.
961
967
  # Immutable after creation.
962
968
  # Corresponds to the JSON property `constraint`
963
969
  # @return [String]
@@ -1963,7 +1969,10 @@ module Google
1963
1969
  # hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-
1964
1970
  # resource-hierarchy),
1965
1971
  # a resource outside the Google Cloud resource hierarchy (such as Google
1966
- # Kubernetes Engine clusters and objects), or a Cloud IAM policy.
1972
+ # Kubernetes Engine clusters and objects), or a policy (e.g. Cloud IAM policy).
1973
+ # See [Supported asset
1974
+ # types](https://cloud.google.com/asset-inventory/docs/supported-asset-types)
1975
+ # for more information.
1967
1976
  # Corresponds to the JSON property `asset`
1968
1977
  # @return [Google::Apis::CloudassetV1::Asset]
1969
1978
  attr_accessor :asset
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://cloud.google.com/asset-inventory/docs/quickstart
26
26
  module CloudassetV1beta1
27
27
  VERSION = 'V1beta1'
28
- REVISION = '20200605'
28
+ REVISION = '20200613'
29
29
 
30
30
  # View and manage your data across Google Cloud Platform services
31
31
  AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
@@ -22,12 +22,38 @@ module Google
22
22
  module Apis
23
23
  module CloudassetV1beta1
24
24
 
25
- # Cloud asset. This includes all Google Cloud Platform resources,
26
- # Cloud IAM policies, and other non-GCP assets.
25
+ # An asset in Google Cloud. An asset can be any resource in the Google Cloud
26
+ # [resource
27
+ # hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-
28
+ # resource-hierarchy),
29
+ # a resource outside the Google Cloud resource hierarchy (such as Google
30
+ # Kubernetes Engine clusters and objects), or a policy (e.g. Cloud IAM policy).
31
+ # See [Supported asset
32
+ # types](https://cloud.google.com/asset-inventory/docs/supported-asset-types)
33
+ # for more information.
27
34
  class Asset
28
35
  include Google::Apis::Core::Hashable
29
36
 
30
- # Type of the asset. Example: "google.compute.Disk".
37
+ # An `AccessLevel` is a label that can be applied to requests to Google Cloud
38
+ # services, along with a list of requirements necessary for the label to be
39
+ # applied.
40
+ # Corresponds to the JSON property `accessLevel`
41
+ # @return [Google::Apis::CloudassetV1beta1::GoogleIdentityAccesscontextmanagerV1AccessLevel]
42
+ attr_accessor :access_level
43
+
44
+ # `AccessPolicy` is a container for `AccessLevels` (which define the necessary
45
+ # attributes to use Google Cloud services) and `ServicePerimeters` (which
46
+ # define regions of services able to freely pass data within a perimeter). An
47
+ # access policy is globally visible within an organization, and the
48
+ # restrictions it specifies apply to all projects within an organization.
49
+ # Corresponds to the JSON property `accessPolicy`
50
+ # @return [Google::Apis::CloudassetV1beta1::GoogleIdentityAccesscontextmanagerV1AccessPolicy]
51
+ attr_accessor :access_policy
52
+
53
+ # The type of the asset. Example: `compute.googleapis.com/Disk`
54
+ # See [Supported asset
55
+ # types](https://cloud.google.com/asset-inventory/docs/supported-asset-types)
56
+ # for more information.
31
57
  # Corresponds to the JSON property `assetType`
32
58
  # @return [String]
33
59
  attr_accessor :asset_type
@@ -97,31 +123,58 @@ module Google
97
123
  # @return [Google::Apis::CloudassetV1beta1::Policy]
98
124
  attr_accessor :iam_policy
99
125
 
100
- # The full name of the asset. For example:
126
+ # The full name of the asset. Example:
101
127
  # `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/
102
- # instance1`.
128
+ # instance1`
103
129
  # See [Resource
104
- # Names](https://cloud.google.com/apis/design/resource_names#full_resource_name)
130
+ # names](https://cloud.google.com/apis/design/resource_names#full_resource_name)
105
131
  # for more information.
106
132
  # Corresponds to the JSON property `name`
107
133
  # @return [String]
108
134
  attr_accessor :name
109
135
 
110
- # Representation of a cloud resource.
136
+ # A representation of an [organization
137
+ # policy](https://cloud.google.com/resource-manager/docs/organization-policy/
138
+ # overview#organization_policy).
139
+ # There can be more than one organization policy with different constraints
140
+ # set on a given resource.
141
+ # Corresponds to the JSON property `orgPolicy`
142
+ # @return [Array<Google::Apis::CloudassetV1beta1::GoogleCloudOrgpolicyV1Policy>]
143
+ attr_accessor :org_policy
144
+
145
+ # A representation of a Google Cloud resource.
111
146
  # Corresponds to the JSON property `resource`
112
147
  # @return [Google::Apis::CloudassetV1beta1::Resource]
113
148
  attr_accessor :resource
114
149
 
150
+ # `ServicePerimeter` describes a set of Google Cloud resources which can freely
151
+ # import and export data amongst themselves, but not export outside of the
152
+ # `ServicePerimeter`. If a request with a source within this `ServicePerimeter`
153
+ # has a target outside of the `ServicePerimeter`, the request will be blocked.
154
+ # Otherwise the request is allowed. There are two types of Service Perimeter -
155
+ # Regular and Bridge. Regular Service Perimeters cannot overlap, a single
156
+ # Google Cloud project can only belong to a single regular Service Perimeter.
157
+ # Service Perimeter Bridges can contain only Google Cloud projects as members,
158
+ # a single Google Cloud project may belong to multiple Service Perimeter
159
+ # Bridges.
160
+ # Corresponds to the JSON property `servicePerimeter`
161
+ # @return [Google::Apis::CloudassetV1beta1::GoogleIdentityAccesscontextmanagerV1ServicePerimeter]
162
+ attr_accessor :service_perimeter
163
+
115
164
  def initialize(**args)
116
165
  update!(**args)
117
166
  end
118
167
 
119
168
  # Update properties of this object
120
169
  def update!(**args)
170
+ @access_level = args[:access_level] if args.key?(:access_level)
171
+ @access_policy = args[:access_policy] if args.key?(:access_policy)
121
172
  @asset_type = args[:asset_type] if args.key?(:asset_type)
122
173
  @iam_policy = args[:iam_policy] if args.key?(:iam_policy)
123
174
  @name = args[:name] if args.key?(:name)
175
+ @org_policy = args[:org_policy] if args.key?(:org_policy)
124
176
  @resource = args[:resource] if args.key?(:resource)
177
+ @service_perimeter = args[:service_perimeter] if args.key?(:service_perimeter)
125
178
  end
126
179
  end
127
180
 
@@ -489,6 +542,857 @@ module Google
489
542
  end
490
543
  end
491
544
 
545
+ # Used in `policy_type` to specify how `boolean_policy` will behave at this
546
+ # resource.
547
+ class GoogleCloudOrgpolicyV1BooleanPolicy
548
+ include Google::Apis::Core::Hashable
549
+
550
+ # If `true`, then the `Policy` is enforced. If `false`, then any
551
+ # configuration is acceptable.
552
+ # Suppose you have a `Constraint`
553
+ # `constraints/compute.disableSerialPortAccess` with `constraint_default`
554
+ # set to `ALLOW`. A `Policy` for that `Constraint` exhibits the following
555
+ # behavior:
556
+ # - If the `Policy` at this resource has enforced set to `false`, serial
557
+ # port connection attempts will be allowed.
558
+ # - If the `Policy` at this resource has enforced set to `true`, serial
559
+ # port connection attempts will be refused.
560
+ # - If the `Policy` at this resource is `RestoreDefault`, serial port
561
+ # connection attempts will be allowed.
562
+ # - If no `Policy` is set at this resource or anywhere higher in the
563
+ # resource hierarchy, serial port connection attempts will be allowed.
564
+ # - If no `Policy` is set at this resource, but one exists higher in the
565
+ # resource hierarchy, the behavior is as if the`Policy` were set at
566
+ # this resource.
567
+ # The following examples demonstrate the different possible layerings:
568
+ # Example 1 (nearest `Constraint` wins):
569
+ # `organizations/foo` has a `Policy` with:
570
+ # `enforced: false`
571
+ # `projects/bar` has no `Policy` set.
572
+ # The constraint at `projects/bar` and `organizations/foo` will not be
573
+ # enforced.
574
+ # Example 2 (enforcement gets replaced):
575
+ # `organizations/foo` has a `Policy` with:
576
+ # `enforced: false`
577
+ # `projects/bar` has a `Policy` with:
578
+ # `enforced: true`
579
+ # The constraint at `organizations/foo` is not enforced.
580
+ # The constraint at `projects/bar` is enforced.
581
+ # Example 3 (RestoreDefault):
582
+ # `organizations/foo` has a `Policy` with:
583
+ # `enforced: true`
584
+ # `projects/bar` has a `Policy` with:
585
+ # `RestoreDefault: ```
586
+ # The constraint at `organizations/foo` is enforced.
587
+ # The constraint at `projects/bar` is not enforced, because
588
+ # `constraint_default` for the `Constraint` is `ALLOW`.
589
+ # Corresponds to the JSON property `enforced`
590
+ # @return [Boolean]
591
+ attr_accessor :enforced
592
+ alias_method :enforced?, :enforced
593
+
594
+ def initialize(**args)
595
+ update!(**args)
596
+ end
597
+
598
+ # Update properties of this object
599
+ def update!(**args)
600
+ @enforced = args[:enforced] if args.key?(:enforced)
601
+ end
602
+ end
603
+
604
+ # Used in `policy_type` to specify how `list_policy` behaves at this
605
+ # resource.
606
+ # `ListPolicy` can define specific values and subtrees of Cloud Resource
607
+ # Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that
608
+ # are allowed or denied by setting the `allowed_values` and `denied_values`
609
+ # fields. This is achieved by using the `under:` and optional `is:` prefixes.
610
+ # The `under:` prefix is used to denote resource subtree values.
611
+ # The `is:` prefix is used to denote specific values, and is required only
612
+ # if the value contains a ":". Values prefixed with "is:" are treated the
613
+ # same as values with no prefix.
614
+ # Ancestry subtrees must be in one of the following formats:
615
+ # - "projects/<project-id>", e.g. "projects/tokyo-rain-123"
616
+ # - "folders/<folder-id>", e.g. "folders/1234"
617
+ # - "organizations/<organization-id>", e.g. "organizations/1234"
618
+ # The `supports_under` field of the associated `Constraint` defines whether
619
+ # ancestry prefixes can be used. You can set `allowed_values` and
620
+ # `denied_values` in the same `Policy` if `all_values` is
621
+ # `ALL_VALUES_UNSPECIFIED`. `ALLOW` or `DENY` are used to allow or deny all
622
+ # values. If `all_values` is set to either `ALLOW` or `DENY`,
623
+ # `allowed_values` and `denied_values` must be unset.
624
+ class GoogleCloudOrgpolicyV1ListPolicy
625
+ include Google::Apis::Core::Hashable
626
+
627
+ # The policy all_values state.
628
+ # Corresponds to the JSON property `allValues`
629
+ # @return [String]
630
+ attr_accessor :all_values
631
+
632
+ # List of values allowed at this resource. Can only be set if `all_values`
633
+ # is set to `ALL_VALUES_UNSPECIFIED`.
634
+ # Corresponds to the JSON property `allowedValues`
635
+ # @return [Array<String>]
636
+ attr_accessor :allowed_values
637
+
638
+ # List of values denied at this resource. Can only be set if `all_values`
639
+ # is set to `ALL_VALUES_UNSPECIFIED`.
640
+ # Corresponds to the JSON property `deniedValues`
641
+ # @return [Array<String>]
642
+ attr_accessor :denied_values
643
+
644
+ # Determines the inheritance behavior for this `Policy`.
645
+ # By default, a `ListPolicy` set at a resource supersedes any `Policy` set
646
+ # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
647
+ # set to `true`, then the values from the effective `Policy` of the parent
648
+ # resource are inherited, meaning the values set in this `Policy` are
649
+ # added to the values inherited up the hierarchy.
650
+ # Setting `Policy` hierarchies that inherit both allowed values and denied
651
+ # values isn't recommended in most circumstances to keep the configuration
652
+ # simple and understandable. However, it is possible to set a `Policy` with
653
+ # `allowed_values` set that inherits a `Policy` with `denied_values` set.
654
+ # In this case, the values that are allowed must be in `allowed_values` and
655
+ # not present in `denied_values`.
656
+ # For example, suppose you have a `Constraint`
657
+ # `constraints/serviceuser.services`, which has a `constraint_type` of
658
+ # `list_constraint`, and with `constraint_default` set to `ALLOW`.
659
+ # Suppose that at the Organization level, a `Policy` is applied that
660
+ # restricts the allowed API activations to ``E1`, `E2``. Then, if a
661
+ # `Policy` is applied to a project below the Organization that has
662
+ # `inherit_from_parent` set to `false` and field all_values set to DENY,
663
+ # then an attempt to activate any API will be denied.
664
+ # The following examples demonstrate different possible layerings for
665
+ # `projects/bar` parented by `organizations/foo`:
666
+ # Example 1 (no inherited values):
667
+ # `organizations/foo` has a `Policy` with values:
668
+ # `allowed_values: "E1" allowed_values:"E2"`
669
+ # `projects/bar` has `inherit_from_parent` `false` and values:
670
+ # `allowed_values: "E3" allowed_values: "E4"`
671
+ # The accepted values at `organizations/foo` are `E1`, `E2`.
672
+ # The accepted values at `projects/bar` are `E3`, and `E4`.
673
+ # Example 2 (inherited values):
674
+ # `organizations/foo` has a `Policy` with values:
675
+ # `allowed_values: "E1" allowed_values:"E2"`
676
+ # `projects/bar` has a `Policy` with values:
677
+ # `value: "E3" value: "E4" inherit_from_parent: true`
678
+ # The accepted values at `organizations/foo` are `E1`, `E2`.
679
+ # The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
680
+ # Example 3 (inheriting both allowed and denied values):
681
+ # `organizations/foo` has a `Policy` with values:
682
+ # `allowed_values: "E1" allowed_values: "E2"`
683
+ # `projects/bar` has a `Policy` with:
684
+ # `denied_values: "E1"`
685
+ # The accepted values at `organizations/foo` are `E1`, `E2`.
686
+ # The value accepted at `projects/bar` is `E2`.
687
+ # Example 4 (RestoreDefault):
688
+ # `organizations/foo` has a `Policy` with values:
689
+ # `allowed_values: "E1" allowed_values:"E2"`
690
+ # `projects/bar` has a `Policy` with values:
691
+ # `RestoreDefault: ```
692
+ # The accepted values at `organizations/foo` are `E1`, `E2`.
693
+ # The accepted values at `projects/bar` are either all or none depending on
694
+ # the value of `constraint_default` (if `ALLOW`, all; if
695
+ # `DENY`, none).
696
+ # Example 5 (no policy inherits parent policy):
697
+ # `organizations/foo` has no `Policy` set.
698
+ # `projects/bar` has no `Policy` set.
699
+ # The accepted values at both levels are either all or none depending on
700
+ # the value of `constraint_default` (if `ALLOW`, all; if
701
+ # `DENY`, none).
702
+ # Example 6 (ListConstraint allowing all):
703
+ # `organizations/foo` has a `Policy` with values:
704
+ # `allowed_values: "E1" allowed_values: "E2"`
705
+ # `projects/bar` has a `Policy` with:
706
+ # `all: ALLOW`
707
+ # The accepted values at `organizations/foo` are `E1`, E2`.
708
+ # Any value is accepted at `projects/bar`.
709
+ # Example 7 (ListConstraint allowing none):
710
+ # `organizations/foo` has a `Policy` with values:
711
+ # `allowed_values: "E1" allowed_values: "E2"`
712
+ # `projects/bar` has a `Policy` with:
713
+ # `all: DENY`
714
+ # The accepted values at `organizations/foo` are `E1`, E2`.
715
+ # No value is accepted at `projects/bar`.
716
+ # Example 10 (allowed and denied subtrees of Resource Manager hierarchy):
717
+ # Given the following resource hierarchy
718
+ # O1->`F1, F2`; F1->`P1`; F2->`P2, P3`,
719
+ # `organizations/foo` has a `Policy` with values:
720
+ # `allowed_values: "under:organizations/O1"`
721
+ # `projects/bar` has a `Policy` with:
722
+ # `allowed_values: "under:projects/P3"`
723
+ # `denied_values: "under:folders/F2"`
724
+ # The accepted values at `organizations/foo` are `organizations/O1`,
725
+ # `folders/F1`, `folders/F2`, `projects/P1`, `projects/P2`,
726
+ # `projects/P3`.
727
+ # The accepted values at `projects/bar` are `organizations/O1`,
728
+ # `folders/F1`, `projects/P1`.
729
+ # Corresponds to the JSON property `inheritFromParent`
730
+ # @return [Boolean]
731
+ attr_accessor :inherit_from_parent
732
+ alias_method :inherit_from_parent?, :inherit_from_parent
733
+
734
+ # Optional. The Google Cloud Console will try to default to a configuration
735
+ # that matches the value specified in this `Policy`. If `suggested_value`
736
+ # is not set, it will inherit the value specified higher in the hierarchy,
737
+ # unless `inherit_from_parent` is `false`.
738
+ # Corresponds to the JSON property `suggestedValue`
739
+ # @return [String]
740
+ attr_accessor :suggested_value
741
+
742
+ def initialize(**args)
743
+ update!(**args)
744
+ end
745
+
746
+ # Update properties of this object
747
+ def update!(**args)
748
+ @all_values = args[:all_values] if args.key?(:all_values)
749
+ @allowed_values = args[:allowed_values] if args.key?(:allowed_values)
750
+ @denied_values = args[:denied_values] if args.key?(:denied_values)
751
+ @inherit_from_parent = args[:inherit_from_parent] if args.key?(:inherit_from_parent)
752
+ @suggested_value = args[:suggested_value] if args.key?(:suggested_value)
753
+ end
754
+ end
755
+
756
+ # Defines a Cloud Organization `Policy` which is used to specify `Constraints`
757
+ # for configurations of Cloud Platform resources.
758
+ class GoogleCloudOrgpolicyV1Policy
759
+ include Google::Apis::Core::Hashable
760
+
761
+ # Used in `policy_type` to specify how `boolean_policy` will behave at this
762
+ # resource.
763
+ # Corresponds to the JSON property `booleanPolicy`
764
+ # @return [Google::Apis::CloudassetV1beta1::GoogleCloudOrgpolicyV1BooleanPolicy]
765
+ attr_accessor :boolean_policy
766
+
767
+ # The name of the `Constraint` the `Policy` is configuring, for example,
768
+ # `constraints/serviceuser.services`.
769
+ # A [list of available
770
+ # constraints](/resource-manager/docs/organization-policy/org-policy-constraints)
771
+ # is available.
772
+ # Immutable after creation.
773
+ # Corresponds to the JSON property `constraint`
774
+ # @return [String]
775
+ attr_accessor :constraint
776
+
777
+ # An opaque tag indicating the current version of the `Policy`, used for
778
+ # concurrency control.
779
+ # When the `Policy` is returned from either a `GetPolicy` or a
780
+ # `ListOrgPolicy` request, this `etag` indicates the version of the current
781
+ # `Policy` to use when executing a read-modify-write loop.
782
+ # When the `Policy` is returned from a `GetEffectivePolicy` request, the
783
+ # `etag` will be unset.
784
+ # When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
785
+ # that was returned from a `GetOrgPolicy` request as part of a
786
+ # read-modify-write loop for concurrency control. Not setting the `etag`in a
787
+ # `SetOrgPolicy` request will result in an unconditional write of the
788
+ # `Policy`.
789
+ # Corresponds to the JSON property `etag`
790
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
791
+ # @return [String]
792
+ attr_accessor :etag
793
+
794
+ # Used in `policy_type` to specify how `list_policy` behaves at this
795
+ # resource.
796
+ # `ListPolicy` can define specific values and subtrees of Cloud Resource
797
+ # Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that
798
+ # are allowed or denied by setting the `allowed_values` and `denied_values`
799
+ # fields. This is achieved by using the `under:` and optional `is:` prefixes.
800
+ # The `under:` prefix is used to denote resource subtree values.
801
+ # The `is:` prefix is used to denote specific values, and is required only
802
+ # if the value contains a ":". Values prefixed with "is:" are treated the
803
+ # same as values with no prefix.
804
+ # Ancestry subtrees must be in one of the following formats:
805
+ # - "projects/<project-id>", e.g. "projects/tokyo-rain-123"
806
+ # - "folders/<folder-id>", e.g. "folders/1234"
807
+ # - "organizations/<organization-id>", e.g. "organizations/1234"
808
+ # The `supports_under` field of the associated `Constraint` defines whether
809
+ # ancestry prefixes can be used. You can set `allowed_values` and
810
+ # `denied_values` in the same `Policy` if `all_values` is
811
+ # `ALL_VALUES_UNSPECIFIED`. `ALLOW` or `DENY` are used to allow or deny all
812
+ # values. If `all_values` is set to either `ALLOW` or `DENY`,
813
+ # `allowed_values` and `denied_values` must be unset.
814
+ # Corresponds to the JSON property `listPolicy`
815
+ # @return [Google::Apis::CloudassetV1beta1::GoogleCloudOrgpolicyV1ListPolicy]
816
+ attr_accessor :list_policy
817
+
818
+ # Ignores policies set above this resource and restores the
819
+ # `constraint_default` enforcement behavior of the specific `Constraint` at
820
+ # this resource.
821
+ # Suppose that `constraint_default` is set to `ALLOW` for the
822
+ # `Constraint` `constraints/serviceuser.services`. Suppose that organization
823
+ # foo.com sets a `Policy` at their Organization resource node that restricts
824
+ # the allowed service activations to deny all service activations. They
825
+ # could then set a `Policy` with the `policy_type` `restore_default` on
826
+ # several experimental projects, restoring the `constraint_default`
827
+ # enforcement of the `Constraint` for only those projects, allowing those
828
+ # projects to have all services activated.
829
+ # Corresponds to the JSON property `restoreDefault`
830
+ # @return [Google::Apis::CloudassetV1beta1::GoogleCloudOrgpolicyV1RestoreDefault]
831
+ attr_accessor :restore_default
832
+
833
+ # The time stamp the `Policy` was previously updated. This is set by the
834
+ # server, not specified by the caller, and represents the last time a call to
835
+ # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
836
+ # be ignored.
837
+ # Corresponds to the JSON property `updateTime`
838
+ # @return [String]
839
+ attr_accessor :update_time
840
+
841
+ # Version of the `Policy`. Default version is 0;
842
+ # Corresponds to the JSON property `version`
843
+ # @return [Fixnum]
844
+ attr_accessor :version
845
+
846
+ def initialize(**args)
847
+ update!(**args)
848
+ end
849
+
850
+ # Update properties of this object
851
+ def update!(**args)
852
+ @boolean_policy = args[:boolean_policy] if args.key?(:boolean_policy)
853
+ @constraint = args[:constraint] if args.key?(:constraint)
854
+ @etag = args[:etag] if args.key?(:etag)
855
+ @list_policy = args[:list_policy] if args.key?(:list_policy)
856
+ @restore_default = args[:restore_default] if args.key?(:restore_default)
857
+ @update_time = args[:update_time] if args.key?(:update_time)
858
+ @version = args[:version] if args.key?(:version)
859
+ end
860
+ end
861
+
862
+ # Ignores policies set above this resource and restores the
863
+ # `constraint_default` enforcement behavior of the specific `Constraint` at
864
+ # this resource.
865
+ # Suppose that `constraint_default` is set to `ALLOW` for the
866
+ # `Constraint` `constraints/serviceuser.services`. Suppose that organization
867
+ # foo.com sets a `Policy` at their Organization resource node that restricts
868
+ # the allowed service activations to deny all service activations. They
869
+ # could then set a `Policy` with the `policy_type` `restore_default` on
870
+ # several experimental projects, restoring the `constraint_default`
871
+ # enforcement of the `Constraint` for only those projects, allowing those
872
+ # projects to have all services activated.
873
+ class GoogleCloudOrgpolicyV1RestoreDefault
874
+ include Google::Apis::Core::Hashable
875
+
876
+ def initialize(**args)
877
+ update!(**args)
878
+ end
879
+
880
+ # Update properties of this object
881
+ def update!(**args)
882
+ end
883
+ end
884
+
885
+ # An `AccessLevel` is a label that can be applied to requests to Google Cloud
886
+ # services, along with a list of requirements necessary for the label to be
887
+ # applied.
888
+ class GoogleIdentityAccesscontextmanagerV1AccessLevel
889
+ include Google::Apis::Core::Hashable
890
+
891
+ # `BasicLevel` is an `AccessLevel` using a set of recommended features.
892
+ # Corresponds to the JSON property `basic`
893
+ # @return [Google::Apis::CloudassetV1beta1::GoogleIdentityAccesscontextmanagerV1BasicLevel]
894
+ attr_accessor :basic
895
+
896
+ # `CustomLevel` is an `AccessLevel` using the Cloud Common Expression Language
897
+ # to represent the necessary conditions for the level to apply to a request.
898
+ # See CEL spec at: https://github.com/google/cel-spec
899
+ # Corresponds to the JSON property `custom`
900
+ # @return [Google::Apis::CloudassetV1beta1::GoogleIdentityAccesscontextmanagerV1CustomLevel]
901
+ attr_accessor :custom
902
+
903
+ # Description of the `AccessLevel` and its use. Does not affect behavior.
904
+ # Corresponds to the JSON property `description`
905
+ # @return [String]
906
+ attr_accessor :description
907
+
908
+ # Required. Resource name for the Access Level. The `short_name` component
909
+ # must begin with a letter and only include alphanumeric and '_'. Format:
910
+ # `accessPolicies/`policy_id`/accessLevels/`short_name``. The maximum length
911
+ # of the `short_name` component is 50 characters.
912
+ # Corresponds to the JSON property `name`
913
+ # @return [String]
914
+ attr_accessor :name
915
+
916
+ # Human readable title. Must be unique within the Policy.
917
+ # Corresponds to the JSON property `title`
918
+ # @return [String]
919
+ attr_accessor :title
920
+
921
+ def initialize(**args)
922
+ update!(**args)
923
+ end
924
+
925
+ # Update properties of this object
926
+ def update!(**args)
927
+ @basic = args[:basic] if args.key?(:basic)
928
+ @custom = args[:custom] if args.key?(:custom)
929
+ @description = args[:description] if args.key?(:description)
930
+ @name = args[:name] if args.key?(:name)
931
+ @title = args[:title] if args.key?(:title)
932
+ end
933
+ end
934
+
935
+ # `AccessPolicy` is a container for `AccessLevels` (which define the necessary
936
+ # attributes to use Google Cloud services) and `ServicePerimeters` (which
937
+ # define regions of services able to freely pass data within a perimeter). An
938
+ # access policy is globally visible within an organization, and the
939
+ # restrictions it specifies apply to all projects within an organization.
940
+ class GoogleIdentityAccesscontextmanagerV1AccessPolicy
941
+ include Google::Apis::Core::Hashable
942
+
943
+ # Output only. An opaque identifier for the current version of the
944
+ # `AccessPolicy`. This will always be a strongly validated etag, meaning that
945
+ # two Access Polices will be identical if and only if their etags are
946
+ # identical. Clients should not expect this to be in any specific format.
947
+ # Corresponds to the JSON property `etag`
948
+ # @return [String]
949
+ attr_accessor :etag
950
+
951
+ # Output only. Resource name of the `AccessPolicy`. Format:
952
+ # `accessPolicies/`policy_id``
953
+ # Corresponds to the JSON property `name`
954
+ # @return [String]
955
+ attr_accessor :name
956
+
957
+ # Required. The parent of this `AccessPolicy` in the Cloud Resource
958
+ # Hierarchy. Currently immutable once created. Format:
959
+ # `organizations/`organization_id``
960
+ # Corresponds to the JSON property `parent`
961
+ # @return [String]
962
+ attr_accessor :parent
963
+
964
+ # Required. Human readable title. Does not affect behavior.
965
+ # Corresponds to the JSON property `title`
966
+ # @return [String]
967
+ attr_accessor :title
968
+
969
+ def initialize(**args)
970
+ update!(**args)
971
+ end
972
+
973
+ # Update properties of this object
974
+ def update!(**args)
975
+ @etag = args[:etag] if args.key?(:etag)
976
+ @name = args[:name] if args.key?(:name)
977
+ @parent = args[:parent] if args.key?(:parent)
978
+ @title = args[:title] if args.key?(:title)
979
+ end
980
+ end
981
+
982
+ # `BasicLevel` is an `AccessLevel` using a set of recommended features.
983
+ class GoogleIdentityAccesscontextmanagerV1BasicLevel
984
+ include Google::Apis::Core::Hashable
985
+
986
+ # How the `conditions` list should be combined to determine if a request is
987
+ # granted this `AccessLevel`. If AND is used, each `Condition` in
988
+ # `conditions` must be satisfied for the `AccessLevel` to be applied. If OR
989
+ # is used, at least one `Condition` in `conditions` must be satisfied for the
990
+ # `AccessLevel` to be applied. Default behavior is AND.
991
+ # Corresponds to the JSON property `combiningFunction`
992
+ # @return [String]
993
+ attr_accessor :combining_function
994
+
995
+ # Required. A list of requirements for the `AccessLevel` to be granted.
996
+ # Corresponds to the JSON property `conditions`
997
+ # @return [Array<Google::Apis::CloudassetV1beta1::GoogleIdentityAccesscontextmanagerV1Condition>]
998
+ attr_accessor :conditions
999
+
1000
+ def initialize(**args)
1001
+ update!(**args)
1002
+ end
1003
+
1004
+ # Update properties of this object
1005
+ def update!(**args)
1006
+ @combining_function = args[:combining_function] if args.key?(:combining_function)
1007
+ @conditions = args[:conditions] if args.key?(:conditions)
1008
+ end
1009
+ end
1010
+
1011
+ # A condition necessary for an `AccessLevel` to be granted. The Condition is an
1012
+ # AND over its fields. So a Condition is true if: 1) the request IP is from one
1013
+ # of the listed subnetworks AND 2) the originating device complies with the
1014
+ # listed device policy AND 3) all listed access levels are granted AND 4) the
1015
+ # request was sent at a time allowed by the DateTimeRestriction.
1016
+ class GoogleIdentityAccesscontextmanagerV1Condition
1017
+ include Google::Apis::Core::Hashable
1018
+
1019
+ # `DevicePolicy` specifies device specific restrictions necessary to acquire a
1020
+ # given access level. A `DevicePolicy` specifies requirements for requests from
1021
+ # devices to be granted access levels, it does not do any enforcement on the
1022
+ # device. `DevicePolicy` acts as an AND over all specified fields, and each
1023
+ # repeated field is an OR over its elements. Any unset fields are ignored. For
1024
+ # example, if the proto is ` os_type : DESKTOP_WINDOWS, os_type :
1025
+ # DESKTOP_LINUX, encryption_status: ENCRYPTED`, then the DevicePolicy will be
1026
+ # true for requests originating from encrypted Linux desktops and encrypted
1027
+ # Windows desktops.
1028
+ # Corresponds to the JSON property `devicePolicy`
1029
+ # @return [Google::Apis::CloudassetV1beta1::GoogleIdentityAccesscontextmanagerV1DevicePolicy]
1030
+ attr_accessor :device_policy
1031
+
1032
+ # CIDR block IP subnetwork specification. May be IPv4 or IPv6. Note that for
1033
+ # a CIDR IP address block, the specified IP address portion must be properly
1034
+ # truncated (i.e. all the host bits must be zero) or the input is considered
1035
+ # malformed. For example, "192.0.2.0/24" is accepted but "192.0.2.1/24" is
1036
+ # not. Similarly, for IPv6, "2001:db8::/32" is accepted whereas
1037
+ # "2001:db8::1/32" is not. The originating IP of a request must be in one of
1038
+ # the listed subnets in order for this Condition to be true. If empty, all IP
1039
+ # addresses are allowed.
1040
+ # Corresponds to the JSON property `ipSubnetworks`
1041
+ # @return [Array<String>]
1042
+ attr_accessor :ip_subnetworks
1043
+
1044
+ # The request must be made by one of the provided user or service
1045
+ # accounts. Groups are not supported.
1046
+ # Syntax:
1047
+ # `user:`emailid``
1048
+ # `serviceAccount:`emailid``
1049
+ # If not specified, a request may come from any user.
1050
+ # Corresponds to the JSON property `members`
1051
+ # @return [Array<String>]
1052
+ attr_accessor :members
1053
+
1054
+ # Whether to negate the Condition. If true, the Condition becomes a NAND over
1055
+ # its non-empty fields, each field must be false for the Condition overall to
1056
+ # be satisfied. Defaults to false.
1057
+ # Corresponds to the JSON property `negate`
1058
+ # @return [Boolean]
1059
+ attr_accessor :negate
1060
+ alias_method :negate?, :negate
1061
+
1062
+ # The request must originate from one of the provided countries/regions.
1063
+ # Must be valid ISO 3166-1 alpha-2 codes.
1064
+ # Corresponds to the JSON property `regions`
1065
+ # @return [Array<String>]
1066
+ attr_accessor :regions
1067
+
1068
+ # A list of other access levels defined in the same `Policy`, referenced by
1069
+ # resource name. Referencing an `AccessLevel` which does not exist is an
1070
+ # error. All access levels listed must be granted for the Condition
1071
+ # to be true. Example:
1072
+ # "`accessPolicies/MY_POLICY/accessLevels/LEVEL_NAME"`
1073
+ # Corresponds to the JSON property `requiredAccessLevels`
1074
+ # @return [Array<String>]
1075
+ attr_accessor :required_access_levels
1076
+
1077
+ def initialize(**args)
1078
+ update!(**args)
1079
+ end
1080
+
1081
+ # Update properties of this object
1082
+ def update!(**args)
1083
+ @device_policy = args[:device_policy] if args.key?(:device_policy)
1084
+ @ip_subnetworks = args[:ip_subnetworks] if args.key?(:ip_subnetworks)
1085
+ @members = args[:members] if args.key?(:members)
1086
+ @negate = args[:negate] if args.key?(:negate)
1087
+ @regions = args[:regions] if args.key?(:regions)
1088
+ @required_access_levels = args[:required_access_levels] if args.key?(:required_access_levels)
1089
+ end
1090
+ end
1091
+
1092
+ # `CustomLevel` is an `AccessLevel` using the Cloud Common Expression Language
1093
+ # to represent the necessary conditions for the level to apply to a request.
1094
+ # See CEL spec at: https://github.com/google/cel-spec
1095
+ class GoogleIdentityAccesscontextmanagerV1CustomLevel
1096
+ include Google::Apis::Core::Hashable
1097
+
1098
+ # Represents a textual expression in the Common Expression Language (CEL)
1099
+ # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
1100
+ # are documented at https://github.com/google/cel-spec.
1101
+ # Example (Comparison):
1102
+ # title: "Summary size limit"
1103
+ # description: "Determines if a summary is less than 100 chars"
1104
+ # expression: "document.summary.size() < 100"
1105
+ # Example (Equality):
1106
+ # title: "Requestor is owner"
1107
+ # description: "Determines if requestor is the document owner"
1108
+ # expression: "document.owner == request.auth.claims.email"
1109
+ # Example (Logic):
1110
+ # title: "Public documents"
1111
+ # description: "Determine whether the document should be publicly visible"
1112
+ # expression: "document.type != 'private' && document.type != 'internal'"
1113
+ # Example (Data Manipulation):
1114
+ # title: "Notification string"
1115
+ # description: "Create a notification string with a timestamp."
1116
+ # expression: "'New message received at ' + string(document.create_time)"
1117
+ # The exact variables and functions that may be referenced within an expression
1118
+ # are determined by the service that evaluates it. See the service
1119
+ # documentation for additional information.
1120
+ # Corresponds to the JSON property `expr`
1121
+ # @return [Google::Apis::CloudassetV1beta1::Expr]
1122
+ attr_accessor :expr
1123
+
1124
+ def initialize(**args)
1125
+ update!(**args)
1126
+ end
1127
+
1128
+ # Update properties of this object
1129
+ def update!(**args)
1130
+ @expr = args[:expr] if args.key?(:expr)
1131
+ end
1132
+ end
1133
+
1134
+ # `DevicePolicy` specifies device specific restrictions necessary to acquire a
1135
+ # given access level. A `DevicePolicy` specifies requirements for requests from
1136
+ # devices to be granted access levels, it does not do any enforcement on the
1137
+ # device. `DevicePolicy` acts as an AND over all specified fields, and each
1138
+ # repeated field is an OR over its elements. Any unset fields are ignored. For
1139
+ # example, if the proto is ` os_type : DESKTOP_WINDOWS, os_type :
1140
+ # DESKTOP_LINUX, encryption_status: ENCRYPTED`, then the DevicePolicy will be
1141
+ # true for requests originating from encrypted Linux desktops and encrypted
1142
+ # Windows desktops.
1143
+ class GoogleIdentityAccesscontextmanagerV1DevicePolicy
1144
+ include Google::Apis::Core::Hashable
1145
+
1146
+ # Allowed device management levels, an empty list allows all management
1147
+ # levels.
1148
+ # Corresponds to the JSON property `allowedDeviceManagementLevels`
1149
+ # @return [Array<String>]
1150
+ attr_accessor :allowed_device_management_levels
1151
+
1152
+ # Allowed encryptions statuses, an empty list allows all statuses.
1153
+ # Corresponds to the JSON property `allowedEncryptionStatuses`
1154
+ # @return [Array<String>]
1155
+ attr_accessor :allowed_encryption_statuses
1156
+
1157
+ # Allowed OS versions, an empty list allows all types and all versions.
1158
+ # Corresponds to the JSON property `osConstraints`
1159
+ # @return [Array<Google::Apis::CloudassetV1beta1::GoogleIdentityAccesscontextmanagerV1OsConstraint>]
1160
+ attr_accessor :os_constraints
1161
+
1162
+ # Whether the device needs to be approved by the customer admin.
1163
+ # Corresponds to the JSON property `requireAdminApproval`
1164
+ # @return [Boolean]
1165
+ attr_accessor :require_admin_approval
1166
+ alias_method :require_admin_approval?, :require_admin_approval
1167
+
1168
+ # Whether the device needs to be corp owned.
1169
+ # Corresponds to the JSON property `requireCorpOwned`
1170
+ # @return [Boolean]
1171
+ attr_accessor :require_corp_owned
1172
+ alias_method :require_corp_owned?, :require_corp_owned
1173
+
1174
+ # Whether or not screenlock is required for the DevicePolicy to be true.
1175
+ # Defaults to `false`.
1176
+ # Corresponds to the JSON property `requireScreenlock`
1177
+ # @return [Boolean]
1178
+ attr_accessor :require_screenlock
1179
+ alias_method :require_screenlock?, :require_screenlock
1180
+
1181
+ def initialize(**args)
1182
+ update!(**args)
1183
+ end
1184
+
1185
+ # Update properties of this object
1186
+ def update!(**args)
1187
+ @allowed_device_management_levels = args[:allowed_device_management_levels] if args.key?(:allowed_device_management_levels)
1188
+ @allowed_encryption_statuses = args[:allowed_encryption_statuses] if args.key?(:allowed_encryption_statuses)
1189
+ @os_constraints = args[:os_constraints] if args.key?(:os_constraints)
1190
+ @require_admin_approval = args[:require_admin_approval] if args.key?(:require_admin_approval)
1191
+ @require_corp_owned = args[:require_corp_owned] if args.key?(:require_corp_owned)
1192
+ @require_screenlock = args[:require_screenlock] if args.key?(:require_screenlock)
1193
+ end
1194
+ end
1195
+
1196
+ # A restriction on the OS type and version of devices making requests.
1197
+ class GoogleIdentityAccesscontextmanagerV1OsConstraint
1198
+ include Google::Apis::Core::Hashable
1199
+
1200
+ # The minimum allowed OS version. If not set, any version of this OS
1201
+ # satisfies the constraint. Format: `"major.minor.patch"`.
1202
+ # Examples: `"10.5.301"`, `"9.2.1"`.
1203
+ # Corresponds to the JSON property `minimumVersion`
1204
+ # @return [String]
1205
+ attr_accessor :minimum_version
1206
+
1207
+ # Required. The allowed OS type.
1208
+ # Corresponds to the JSON property `osType`
1209
+ # @return [String]
1210
+ attr_accessor :os_type
1211
+
1212
+ # Only allows requests from devices with a verified Chrome OS.
1213
+ # Verifications includes requirements that the device is enterprise-managed,
1214
+ # conformant to domain policies, and the caller has permission to call
1215
+ # the API targeted by the request.
1216
+ # Corresponds to the JSON property `requireVerifiedChromeOs`
1217
+ # @return [Boolean]
1218
+ attr_accessor :require_verified_chrome_os
1219
+ alias_method :require_verified_chrome_os?, :require_verified_chrome_os
1220
+
1221
+ def initialize(**args)
1222
+ update!(**args)
1223
+ end
1224
+
1225
+ # Update properties of this object
1226
+ def update!(**args)
1227
+ @minimum_version = args[:minimum_version] if args.key?(:minimum_version)
1228
+ @os_type = args[:os_type] if args.key?(:os_type)
1229
+ @require_verified_chrome_os = args[:require_verified_chrome_os] if args.key?(:require_verified_chrome_os)
1230
+ end
1231
+ end
1232
+
1233
+ # `ServicePerimeter` describes a set of Google Cloud resources which can freely
1234
+ # import and export data amongst themselves, but not export outside of the
1235
+ # `ServicePerimeter`. If a request with a source within this `ServicePerimeter`
1236
+ # has a target outside of the `ServicePerimeter`, the request will be blocked.
1237
+ # Otherwise the request is allowed. There are two types of Service Perimeter -
1238
+ # Regular and Bridge. Regular Service Perimeters cannot overlap, a single
1239
+ # Google Cloud project can only belong to a single regular Service Perimeter.
1240
+ # Service Perimeter Bridges can contain only Google Cloud projects as members,
1241
+ # a single Google Cloud project may belong to multiple Service Perimeter
1242
+ # Bridges.
1243
+ class GoogleIdentityAccesscontextmanagerV1ServicePerimeter
1244
+ include Google::Apis::Core::Hashable
1245
+
1246
+ # Description of the `ServicePerimeter` and its use. Does not affect
1247
+ # behavior.
1248
+ # Corresponds to the JSON property `description`
1249
+ # @return [String]
1250
+ attr_accessor :description
1251
+
1252
+ # Required. Resource name for the ServicePerimeter. The `short_name`
1253
+ # component must begin with a letter and only include alphanumeric and '_'.
1254
+ # Format: `accessPolicies/`policy_id`/servicePerimeters/`short_name``
1255
+ # Corresponds to the JSON property `name`
1256
+ # @return [String]
1257
+ attr_accessor :name
1258
+
1259
+ # Perimeter type indicator. A single project is
1260
+ # allowed to be a member of single regular perimeter, but multiple service
1261
+ # perimeter bridges. A project cannot be a included in a perimeter bridge
1262
+ # without being included in regular perimeter. For perimeter bridges,
1263
+ # the restricted service list as well as access level lists must be
1264
+ # empty.
1265
+ # Corresponds to the JSON property `perimeterType`
1266
+ # @return [String]
1267
+ attr_accessor :perimeter_type
1268
+
1269
+ # `ServicePerimeterConfig` specifies a set of Google Cloud resources that
1270
+ # describe specific Service Perimeter configuration.
1271
+ # Corresponds to the JSON property `spec`
1272
+ # @return [Google::Apis::CloudassetV1beta1::GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig]
1273
+ attr_accessor :spec
1274
+
1275
+ # `ServicePerimeterConfig` specifies a set of Google Cloud resources that
1276
+ # describe specific Service Perimeter configuration.
1277
+ # Corresponds to the JSON property `status`
1278
+ # @return [Google::Apis::CloudassetV1beta1::GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig]
1279
+ attr_accessor :status
1280
+
1281
+ # Human readable title. Must be unique within the Policy.
1282
+ # Corresponds to the JSON property `title`
1283
+ # @return [String]
1284
+ attr_accessor :title
1285
+
1286
+ # Use explicit dry run spec flag. Ordinarily, a dry-run spec implicitly
1287
+ # exists for all Service Perimeters, and that spec is identical to the
1288
+ # status for those Service Perimeters. When this flag is set, it inhibits the
1289
+ # generation of the implicit spec, thereby allowing the user to explicitly
1290
+ # provide a configuration ("spec") to use in a dry-run version of the Service
1291
+ # Perimeter. This allows the user to test changes to the enforced config
1292
+ # ("status") without actually enforcing them. This testing is done through
1293
+ # analyzing the differences between currently enforced and suggested
1294
+ # restrictions. use_explicit_dry_run_spec must bet set to True if any of the
1295
+ # fields in the spec are set to non-default values.
1296
+ # Corresponds to the JSON property `useExplicitDryRunSpec`
1297
+ # @return [Boolean]
1298
+ attr_accessor :use_explicit_dry_run_spec
1299
+ alias_method :use_explicit_dry_run_spec?, :use_explicit_dry_run_spec
1300
+
1301
+ def initialize(**args)
1302
+ update!(**args)
1303
+ end
1304
+
1305
+ # Update properties of this object
1306
+ def update!(**args)
1307
+ @description = args[:description] if args.key?(:description)
1308
+ @name = args[:name] if args.key?(:name)
1309
+ @perimeter_type = args[:perimeter_type] if args.key?(:perimeter_type)
1310
+ @spec = args[:spec] if args.key?(:spec)
1311
+ @status = args[:status] if args.key?(:status)
1312
+ @title = args[:title] if args.key?(:title)
1313
+ @use_explicit_dry_run_spec = args[:use_explicit_dry_run_spec] if args.key?(:use_explicit_dry_run_spec)
1314
+ end
1315
+ end
1316
+
1317
+ # `ServicePerimeterConfig` specifies a set of Google Cloud resources that
1318
+ # describe specific Service Perimeter configuration.
1319
+ class GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig
1320
+ include Google::Apis::Core::Hashable
1321
+
1322
+ # A list of `AccessLevel` resource names that allow resources within the
1323
+ # `ServicePerimeter` to be accessed from the internet. `AccessLevels` listed
1324
+ # must be in the same policy as this `ServicePerimeter`. Referencing a
1325
+ # nonexistent `AccessLevel` is a syntax error. If no `AccessLevel` names are
1326
+ # listed, resources within the perimeter can only be accessed via Google
1327
+ # Cloud calls with request origins within the perimeter. Example:
1328
+ # `"accessPolicies/MY_POLICY/accessLevels/MY_LEVEL"`.
1329
+ # For Service Perimeter Bridge, must be empty.
1330
+ # Corresponds to the JSON property `accessLevels`
1331
+ # @return [Array<String>]
1332
+ attr_accessor :access_levels
1333
+
1334
+ # A list of Google Cloud resources that are inside of the service perimeter.
1335
+ # Currently only projects are allowed. Format: `projects/`project_number``
1336
+ # Corresponds to the JSON property `resources`
1337
+ # @return [Array<String>]
1338
+ attr_accessor :resources
1339
+
1340
+ # Google Cloud services that are subject to the Service Perimeter
1341
+ # restrictions. For example, if `storage.googleapis.com` is specified, access
1342
+ # to the storage buckets inside the perimeter must meet the perimeter's
1343
+ # access restrictions.
1344
+ # Corresponds to the JSON property `restrictedServices`
1345
+ # @return [Array<String>]
1346
+ attr_accessor :restricted_services
1347
+
1348
+ # Specifies how APIs are allowed to communicate within the Service
1349
+ # Perimeter.
1350
+ # Corresponds to the JSON property `vpcAccessibleServices`
1351
+ # @return [Google::Apis::CloudassetV1beta1::GoogleIdentityAccesscontextmanagerV1VpcAccessibleServices]
1352
+ attr_accessor :vpc_accessible_services
1353
+
1354
+ def initialize(**args)
1355
+ update!(**args)
1356
+ end
1357
+
1358
+ # Update properties of this object
1359
+ def update!(**args)
1360
+ @access_levels = args[:access_levels] if args.key?(:access_levels)
1361
+ @resources = args[:resources] if args.key?(:resources)
1362
+ @restricted_services = args[:restricted_services] if args.key?(:restricted_services)
1363
+ @vpc_accessible_services = args[:vpc_accessible_services] if args.key?(:vpc_accessible_services)
1364
+ end
1365
+ end
1366
+
1367
+ # Specifies how APIs are allowed to communicate within the Service
1368
+ # Perimeter.
1369
+ class GoogleIdentityAccesscontextmanagerV1VpcAccessibleServices
1370
+ include Google::Apis::Core::Hashable
1371
+
1372
+ # The list of APIs usable within the Service Perimeter. Must be empty
1373
+ # unless 'enable_restriction' is True.
1374
+ # Corresponds to the JSON property `allowedServices`
1375
+ # @return [Array<String>]
1376
+ attr_accessor :allowed_services
1377
+
1378
+ # Whether to restrict API calls within the Service Perimeter to the list of
1379
+ # APIs specified in 'allowed_services'.
1380
+ # Corresponds to the JSON property `enableRestriction`
1381
+ # @return [Boolean]
1382
+ attr_accessor :enable_restriction
1383
+ alias_method :enable_restriction?, :enable_restriction
1384
+
1385
+ def initialize(**args)
1386
+ update!(**args)
1387
+ end
1388
+
1389
+ # Update properties of this object
1390
+ def update!(**args)
1391
+ @allowed_services = args[:allowed_services] if args.key?(:allowed_services)
1392
+ @enable_restriction = args[:enable_restriction] if args.key?(:enable_restriction)
1393
+ end
1394
+ end
1395
+
492
1396
  # This resource represents a long-running operation that is the result of a
493
1397
  # network API call.
494
1398
  class Operation
@@ -700,28 +1604,29 @@ module Google
700
1604
  end
701
1605
  end
702
1606
 
703
- # Representation of a cloud resource.
1607
+ # A representation of a Google Cloud resource.
704
1608
  class Resource
705
1609
  include Google::Apis::Core::Hashable
706
1610
 
707
- # The content of the resource, in which some sensitive fields are scrubbed
708
- # away and may not be present.
1611
+ # The content of the resource, in which some sensitive fields are removed
1612
+ # and may not be present.
709
1613
  # Corresponds to the JSON property `data`
710
1614
  # @return [Hash<String,Object>]
711
1615
  attr_accessor :data
712
1616
 
713
1617
  # The URL of the discovery document containing the resource's JSON schema.
714
- # For example:
715
- # `"https://www.googleapis.com/discovery/v1/apis/compute/v1/rest"`.
716
- # It will be left unspecified for resources without a discovery-based API,
717
- # such as Cloud Bigtable.
1618
+ # Example:
1619
+ # `https://www.googleapis.com/discovery/v1/apis/compute/v1/rest`
1620
+ # This value is unspecified for resources that do not have an API based on a
1621
+ # discovery document, such as Cloud Bigtable.
718
1622
  # Corresponds to the JSON property `discoveryDocumentUri`
719
1623
  # @return [String]
720
1624
  attr_accessor :discovery_document_uri
721
1625
 
722
- # The JSON schema name listed in the discovery document.
723
- # Example: "Project". It will be left unspecified for resources (such as
724
- # Cloud Bigtable) without a discovery-based API.
1626
+ # The JSON schema name listed in the discovery document. Example:
1627
+ # `Project`
1628
+ # This value is unspecified for resources that do not have an API based on a
1629
+ # discovery document, such as Cloud Bigtable.
725
1630
  # Corresponds to the JSON property `discoveryName`
726
1631
  # @return [String]
727
1632
  attr_accessor :discovery_name
@@ -730,25 +1635,25 @@ module Google
730
1635
  # [Resource
731
1636
  # Names](https://cloud.google.com/apis/design/resource_names#full_resource_name)
732
1637
  # for more information.
733
- # For GCP assets, it is the parent resource defined in the [Cloud IAM policy
1638
+ # For Google Cloud assets, this value is the parent resource defined in the
1639
+ # [Cloud IAM policy
734
1640
  # hierarchy](https://cloud.google.com/iam/docs/overview#policy_hierarchy).
735
- # For example:
736
- # `"//cloudresourcemanager.googleapis.com/projects/my_project_123"`.
737
- # For third-party assets, it is up to the users to define.
1641
+ # Example:
1642
+ # `//cloudresourcemanager.googleapis.com/projects/my_project_123`
1643
+ # For third-party assets, this field may be set differently.
738
1644
  # Corresponds to the JSON property `parent`
739
1645
  # @return [String]
740
1646
  attr_accessor :parent
741
1647
 
742
- # The REST URL for accessing the resource. An HTTP GET operation using this
743
- # URL returns the resource itself.
744
- # Example:
745
- # `https://cloudresourcemanager.googleapis.com/v1/projects/my-project-123`.
746
- # It will be left unspecified for resources without a REST API.
1648
+ # The REST URL for accessing the resource. An HTTP `GET` request using this
1649
+ # URL returns the resource itself. Example:
1650
+ # `https://cloudresourcemanager.googleapis.com/v1/projects/my-project-123`
1651
+ # This value is unspecified for resources without a REST API.
747
1652
  # Corresponds to the JSON property `resourceUrl`
748
1653
  # @return [String]
749
1654
  attr_accessor :resource_url
750
1655
 
751
- # The API version. Example: "v1".
1656
+ # The API version. Example: `v1`
752
1657
  # Corresponds to the JSON property `version`
753
1658
  # @return [String]
754
1659
  attr_accessor :version
@@ -807,24 +1712,31 @@ module Google
807
1712
  end
808
1713
  end
809
1714
 
810
- # Temporal asset. In addition to the asset, the temporal asset includes the
811
- # status of the asset and valid from and to time of it.
1715
+ # An asset in Google Cloud and its temporal metadata, including the time window
1716
+ # when it was observed and its status during that window.
812
1717
  class TemporalAsset
813
1718
  include Google::Apis::Core::Hashable
814
1719
 
815
- # Cloud asset. This includes all Google Cloud Platform resources,
816
- # Cloud IAM policies, and other non-GCP assets.
1720
+ # An asset in Google Cloud. An asset can be any resource in the Google Cloud
1721
+ # [resource
1722
+ # hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-
1723
+ # resource-hierarchy),
1724
+ # a resource outside the Google Cloud resource hierarchy (such as Google
1725
+ # Kubernetes Engine clusters and objects), or a policy (e.g. Cloud IAM policy).
1726
+ # See [Supported asset
1727
+ # types](https://cloud.google.com/asset-inventory/docs/supported-asset-types)
1728
+ # for more information.
817
1729
  # Corresponds to the JSON property `asset`
818
1730
  # @return [Google::Apis::CloudassetV1beta1::Asset]
819
1731
  attr_accessor :asset
820
1732
 
821
- # If the asset is deleted or not.
1733
+ # Whether the asset has been deleted or not.
822
1734
  # Corresponds to the JSON property `deleted`
823
1735
  # @return [Boolean]
824
1736
  attr_accessor :deleted
825
1737
  alias_method :deleted?, :deleted
826
1738
 
827
- # A time window of (start_time, end_time].
1739
+ # A time window specified by its `start_time` and `end_time`.
828
1740
  # Corresponds to the JSON property `window`
829
1741
  # @return [Google::Apis::CloudassetV1beta1::TimeWindow]
830
1742
  attr_accessor :window
@@ -841,12 +1753,12 @@ module Google
841
1753
  end
842
1754
  end
843
1755
 
844
- # A time window of (start_time, end_time].
1756
+ # A time window specified by its `start_time` and `end_time`.
845
1757
  class TimeWindow
846
1758
  include Google::Apis::Core::Hashable
847
1759
 
848
- # End time of the time window (inclusive).
849
- # Current timestamp if not specified.
1760
+ # End time of the time window (inclusive). If not specified, the current
1761
+ # timestamp is used instead.
850
1762
  # Corresponds to the JSON property `endTime`
851
1763
  # @return [String]
852
1764
  attr_accessor :end_time