google-cloud-resource_manager-v3 0.4.0 → 0.5.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 (61) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/google/cloud/resource_manager/v3/folders/client.rb +47 -35
  4. data/lib/google/cloud/resource_manager/v3/folders/operations.rb +2 -2
  5. data/lib/google/cloud/resource_manager/v3/folders/rest/client.rb +47 -35
  6. data/lib/google/cloud/resource_manager/v3/folders/rest/operations.rb +2 -2
  7. data/lib/google/cloud/resource_manager/v3/organizations/client.rb +12 -10
  8. data/lib/google/cloud/resource_manager/v3/organizations/rest/client.rb +12 -10
  9. data/lib/google/cloud/resource_manager/v3/projects/client.rb +44 -39
  10. data/lib/google/cloud/resource_manager/v3/projects/operations.rb +2 -2
  11. data/lib/google/cloud/resource_manager/v3/projects/rest/client.rb +44 -39
  12. data/lib/google/cloud/resource_manager/v3/projects/rest/operations.rb +2 -2
  13. data/lib/google/cloud/resource_manager/v3/rest.rb +1 -0
  14. data/lib/google/cloud/resource_manager/v3/tag_bindings/client.rb +115 -17
  15. data/lib/google/cloud/resource_manager/v3/tag_bindings/operations.rb +2 -2
  16. data/lib/google/cloud/resource_manager/v3/tag_bindings/rest/client.rb +96 -17
  17. data/lib/google/cloud/resource_manager/v3/tag_bindings/rest/operations.rb +2 -2
  18. data/lib/google/cloud/resource_manager/v3/tag_bindings/rest/service_stub.rb +57 -0
  19. data/lib/google/cloud/resource_manager/v3/tag_bindings/rest.rb +1 -1
  20. data/lib/google/cloud/resource_manager/v3/tag_bindings.rb +1 -1
  21. data/lib/google/cloud/resource_manager/v3/tag_holds/client.rb +640 -0
  22. data/lib/google/cloud/resource_manager/v3/tag_holds/credentials.rb +52 -0
  23. data/lib/google/cloud/resource_manager/v3/tag_holds/operations.rb +768 -0
  24. data/lib/google/cloud/resource_manager/v3/tag_holds/paths.rb +64 -0
  25. data/lib/google/cloud/resource_manager/v3/tag_holds/rest/client.rb +533 -0
  26. data/lib/google/cloud/resource_manager/v3/tag_holds/rest/operations.rb +793 -0
  27. data/lib/google/cloud/resource_manager/v3/tag_holds/rest/service_stub.rb +226 -0
  28. data/lib/google/cloud/resource_manager/v3/tag_holds/rest.rb +57 -0
  29. data/lib/google/cloud/resource_manager/v3/tag_holds.rb +60 -0
  30. data/lib/google/cloud/resource_manager/v3/tag_keys/client.rb +111 -22
  31. data/lib/google/cloud/resource_manager/v3/tag_keys/operations.rb +2 -2
  32. data/lib/google/cloud/resource_manager/v3/tag_keys/rest/client.rb +96 -22
  33. data/lib/google/cloud/resource_manager/v3/tag_keys/rest/operations.rb +2 -2
  34. data/lib/google/cloud/resource_manager/v3/tag_keys/rest/service_stub.rb +57 -0
  35. data/lib/google/cloud/resource_manager/v3/tag_values/client.rb +123 -29
  36. data/lib/google/cloud/resource_manager/v3/tag_values/operations.rb +2 -2
  37. data/lib/google/cloud/resource_manager/v3/tag_values/rest/client.rb +108 -29
  38. data/lib/google/cloud/resource_manager/v3/tag_values/rest/operations.rb +2 -2
  39. data/lib/google/cloud/resource_manager/v3/tag_values/rest/service_stub.rb +57 -0
  40. data/lib/google/cloud/resource_manager/v3/version.rb +1 -1
  41. data/lib/google/cloud/resource_manager/v3.rb +1 -0
  42. data/lib/google/cloud/resourcemanager/v3/folders_services_pb.rb +23 -17
  43. data/lib/google/cloud/resourcemanager/v3/projects_services_pb.rb +16 -13
  44. data/lib/google/cloud/resourcemanager/v3/tag_bindings_pb.rb +22 -0
  45. data/lib/google/cloud/resourcemanager/v3/tag_bindings_services_pb.rb +7 -5
  46. data/lib/google/cloud/resourcemanager/v3/tag_holds_pb.rb +63 -0
  47. data/lib/google/cloud/resourcemanager/v3/tag_holds_services_pb.rb +54 -0
  48. data/lib/google/cloud/resourcemanager/v3/tag_keys_pb.rb +11 -0
  49. data/lib/google/cloud/resourcemanager/v3/tag_keys_services_pb.rb +6 -2
  50. data/lib/google/cloud/resourcemanager/v3/tag_values_pb.rb +4 -0
  51. data/lib/google/cloud/resourcemanager/v3/tag_values_services_pb.rb +7 -4
  52. data/proto_docs/google/api/client.rb +57 -3
  53. data/proto_docs/google/cloud/resourcemanager/v3/folders.rb +25 -19
  54. data/proto_docs/google/cloud/resourcemanager/v3/organizations.rb +13 -11
  55. data/proto_docs/google/cloud/resourcemanager/v3/projects.rb +32 -30
  56. data/proto_docs/google/cloud/resourcemanager/v3/tag_bindings.rb +101 -15
  57. data/proto_docs/google/cloud/resourcemanager/v3/tag_holds.rb +161 -0
  58. data/proto_docs/google/cloud/resourcemanager/v3/tag_keys.rb +81 -23
  59. data/proto_docs/google/cloud/resourcemanager/v3/tag_values.rb +52 -29
  60. data/proto_docs/google/iam/v1/policy.rb +8 -4
  61. metadata +14 -2
@@ -299,21 +299,23 @@ module Google
299
299
  # the default parameter values, pass an empty Hash as a request object (see above).
300
300
  #
301
301
  # @param parent [::String]
302
- # Required. The name of the parent resource to list projects under.
302
+ # Required. The name of the parent resource whose projects are being listed.
303
+ # Only children of this parent resource are listed; descendants are not
304
+ # listed.
303
305
  #
304
- # For example, setting this field to 'folders/1234' would list all projects
305
- # directly under that folder.
306
+ # If the parent is a folder, use the value `folders/{folder_id}`. If the
307
+ # parent is an organization, use the value `organizations/{org_id}`.
306
308
  # @param page_token [::String]
307
- # Optional. A pagination token returned from a previous call to [ListProjects]
308
- # [google.cloud.resourcemanager.v3.Projects.ListProjects]
309
- # that indicates from where listing should continue.
309
+ # Optional. A pagination token returned from a previous call to
310
+ # [ListProjects] [google.cloud.resourcemanager.v3.Projects.ListProjects] that
311
+ # indicates from where listing should continue.
310
312
  # @param page_size [::Integer]
311
313
  # Optional. The maximum number of projects to return in the response.
312
314
  # The server can return fewer projects than requested.
313
315
  # If unspecified, server picks an appropriate default.
314
316
  # @param show_deleted [::Boolean]
315
- # Optional. Indicate that projects in the `DELETE_REQUESTED` state should also be
316
- # returned. Normally only `ACTIVE` projects are returned.
317
+ # Optional. Indicate that projects in the `DELETE_REQUESTED` state should
318
+ # also be returned. Normally only `ACTIVE` projects are returned.
317
319
  #
318
320
  # @yield [response, operation] Access the result along with the RPC operation
319
321
  # @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::ResourceManager::V3::Project>]
@@ -406,22 +408,22 @@ module Google
406
408
  # @param query [::String]
407
409
  # Optional. A query string for searching for projects that the caller has
408
410
  # `resourcemanager.projects.get` permission to. If multiple fields are
409
- # included in the query, the it will return results that match any of the
411
+ # included in the query, then it will return results that match any of the
410
412
  # fields. Some eligible fields are:
411
413
  #
412
414
  # ```
413
415
  # | Field | Description |
414
416
  # |-------------------------|----------------------------------------------|
415
417
  # | displayName, name | Filters by displayName. |
416
- # | parent | Project's parent. (for example: folders/123,
417
- # organizations/*) Prefer parent field over parent.type and parent.id. |
418
- # | parent.type | Parent's type: `folder` or `organization`. |
419
- # | parent.id | Parent's id number (for example: 123) |
420
- # | id, projectId | Filters by projectId. |
421
- # | state, lifecycleState | Filters by state. |
422
- # | labels | Filters by label name or value. |
423
- # | labels.<key> (where *key* is the name of a label) | Filters by label
424
- # name. |
418
+ # | parent | Project's parent (for example: folders/123,
419
+ # organizations/*). Prefer parent field over parent.type and parent.id.| |
420
+ # parent.type | Parent's type: `folder` or `organization`. | |
421
+ # parent.id | Parent's id number (for example: 123) | |
422
+ # id, projectId | Filters by projectId. | |
423
+ # state, lifecycleState | Filters by state. | |
424
+ # labels | Filters by label name or value. | |
425
+ # labels.\<key\> (where *key* is the name of a label) | Filters by label
426
+ # name.|
425
427
  # ```
426
428
  #
427
429
  # Search expressions are case insensitive.
@@ -437,16 +439,16 @@ module Google
437
439
  # | NAME:howl | Equivalent to above. |
438
440
  # | labels.color:* | The project has the label `color`. |
439
441
  # | labels.color:red | The project's label `color` has the value `red`. |
440
- # | labels.color:red&nbsp;labels.size:big | The project's label `color` has
441
- # the value `red` and its label `size` has the value `big`. |
442
+ # | labels.color:red labels.size:big | The project's label `color` has the
443
+ # value `red` or its label `size` has the value `big`. |
442
444
  # ```
443
445
  #
444
446
  # If no query is specified, the call will return projects for which the user
445
447
  # has the `resourcemanager.projects.get` permission.
446
448
  # @param page_token [::String]
447
- # Optional. A pagination token returned from a previous call to [ListProjects]
448
- # [google.cloud.resourcemanager.v3.Projects.ListProjects]
449
- # that indicates from where listing should continue.
449
+ # Optional. A pagination token returned from a previous call to
450
+ # [ListProjects] [google.cloud.resourcemanager.v3.Projects.ListProjects] that
451
+ # indicates from where listing should continue.
450
452
  # @param page_size [::Integer]
451
453
  # Optional. The maximum number of projects to return in the response.
452
454
  # The server can return fewer projects than requested.
@@ -543,7 +545,7 @@ module Google
543
545
  #
544
546
  # If the `parent` field is set, the `resourcemanager.projects.create`
545
547
  # permission is checked on the parent resource. If no parent is set and
546
- # the authorization credentials belong to an Organziation, the parent
548
+ # the authorization credentials belong to an Organization, the parent
547
549
  # will be set to that Organization.
548
550
  #
549
551
  # @yield [response, operation] Access the result along with the RPC operation
@@ -719,9 +721,12 @@ module Google
719
721
  # Upon success, the `Operation.response` field will be populated with the
720
722
  # moved project.
721
723
  #
722
- # The caller must have `resourcemanager.projects.update` permission on the
723
- # project and have `resourcemanager.projects.move` permission on the
724
- # project's current and proposed new parent.
724
+ # The caller must have `resourcemanager.projects.move` permission on the
725
+ # project, on the project's current and proposed new parent.
726
+ #
727
+ # If project has no current parent, or it currently does not have an
728
+ # associated organization resource, you will also need the
729
+ # `resourcemanager.projects.setIamPolicy` permission in the project.
725
730
  #
726
731
  # @overload move_project(request, options = nil)
727
732
  # Pass arguments to `move_project` via a request object, either of type
@@ -824,7 +829,8 @@ module Google
824
829
  #
825
830
  # This method changes the Project's lifecycle state from
826
831
  # {::Google::Cloud::ResourceManager::V3::Project::State::ACTIVE ACTIVE}
827
- # to {::Google::Cloud::ResourceManager::V3::Project::State::DELETE_REQUESTED DELETE_REQUESTED}.
832
+ # to
833
+ # {::Google::Cloud::ResourceManager::V3::Project::State::DELETE_REQUESTED DELETE_REQUESTED}.
828
834
  # The deletion starts at an unspecified time,
829
835
  # at which point the Project is no longer accessible.
830
836
  #
@@ -1043,7 +1049,8 @@ module Google
1043
1049
  end
1044
1050
 
1045
1051
  ##
1046
- # Returns the IAM access control policy for the specified project.
1052
+ # Returns the IAM access control policy for the specified project, in the
1053
+ # format `projects/{ProjectIdOrNumber}` e.g. projects/123.
1047
1054
  # Permission is denied if the policy or the resource do not exist.
1048
1055
  #
1049
1056
  # @overload get_iam_policy(request, options = nil)
@@ -1133,7 +1140,8 @@ module Google
1133
1140
  end
1134
1141
 
1135
1142
  ##
1136
- # Sets the IAM access control policy for the specified project.
1143
+ # Sets the IAM access control policy for the specified project, in the
1144
+ # format `projects/{ProjectIdOrNumber}` e.g. projects/123.
1137
1145
  #
1138
1146
  # CAUTION: This method will replace the existing policy, and cannot be used
1139
1147
  # to append additional IAM settings.
@@ -1165,18 +1173,14 @@ module Google
1165
1173
  # `setIamPolicy()`;
1166
1174
  # they must be sent only using the Cloud Platform Console.
1167
1175
  #
1168
- # + Membership changes that leave the project without any owners that have
1169
- # accepted the Terms of Service (ToS) will be rejected.
1170
- #
1171
1176
  # + If the project is not part of an organization, there must be at least
1172
1177
  # one owner who has accepted the Terms of Service (ToS) agreement in the
1173
1178
  # policy. Calling `setIamPolicy()` to remove the last ToS-accepted owner
1174
1179
  # from the policy will fail. This restriction also applies to legacy
1175
1180
  # projects that no longer have owners who have accepted the ToS. Edits to
1176
1181
  # IAM policies will be rejected until the lack of a ToS-accepting owner is
1177
- # rectified.
1178
- #
1179
- # + Calling this method requires enabling the App Engine Admin API.
1182
+ # rectified. If the project is part of an organization, you can remove all
1183
+ # owners, potentially making the organization inaccessible.
1180
1184
  #
1181
1185
  # @overload set_iam_policy(request, options = nil)
1182
1186
  # Pass arguments to `set_iam_policy` via a request object, either of type
@@ -1273,7 +1277,8 @@ module Google
1273
1277
  end
1274
1278
 
1275
1279
  ##
1276
- # Returns permissions that a caller has on the specified project.
1280
+ # Returns permissions that a caller has on the specified project, in the
1281
+ # format `projects/{ProjectIdOrNumber}` e.g. projects/123..
1277
1282
  #
1278
1283
  # @overload test_iam_permissions(request, options = nil)
1279
1284
  # Pass arguments to `test_iam_permissions` via a request object, either of type
@@ -1401,9 +1406,9 @@ module Google
1401
1406
  # * (`String`) The path to a service account key file in JSON format
1402
1407
  # * (`Hash`) A service account key as a Hash
1403
1408
  # * (`Google::Auth::Credentials`) A googleauth credentials object
1404
- # (see the [googleauth docs](https://googleapis.dev/ruby/googleauth/latest/index.html))
1409
+ # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials))
1405
1410
  # * (`Signet::OAuth2::Client`) A signet oauth2 client object
1406
- # (see the [signet docs](https://googleapis.dev/ruby/signet/latest/Signet/OAuth2/Client.html))
1411
+ # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
1407
1412
  # * (`GRPC::Core::Channel`) a gRPC channel with included credentials
1408
1413
  # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object
1409
1414
  # * (`nil`) indicating no credentials
@@ -620,9 +620,9 @@ module Google
620
620
  # * (`String`) The path to a service account key file in JSON format
621
621
  # * (`Hash`) A service account key as a Hash
622
622
  # * (`Google::Auth::Credentials`) A googleauth credentials object
623
- # (see the [googleauth docs](https://googleapis.dev/ruby/googleauth/latest/index.html))
623
+ # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials))
624
624
  # * (`Signet::OAuth2::Client`) A signet oauth2 client object
625
- # (see the [signet docs](https://googleapis.dev/ruby/signet/latest/Signet/OAuth2/Client.html))
625
+ # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
626
626
  # * (`GRPC::Core::Channel`) a gRPC channel with included credentials
627
627
  # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object
628
628
  # * (`nil`) indicating no credentials
@@ -267,21 +267,23 @@ module Google
267
267
  # the default parameter values, pass an empty Hash as a request object (see above).
268
268
  #
269
269
  # @param parent [::String]
270
- # Required. The name of the parent resource to list projects under.
270
+ # Required. The name of the parent resource whose projects are being listed.
271
+ # Only children of this parent resource are listed; descendants are not
272
+ # listed.
271
273
  #
272
- # For example, setting this field to 'folders/1234' would list all projects
273
- # directly under that folder.
274
+ # If the parent is a folder, use the value `folders/{folder_id}`. If the
275
+ # parent is an organization, use the value `organizations/{org_id}`.
274
276
  # @param page_token [::String]
275
- # Optional. A pagination token returned from a previous call to [ListProjects]
276
- # [google.cloud.resourcemanager.v3.Projects.ListProjects]
277
- # that indicates from where listing should continue.
277
+ # Optional. A pagination token returned from a previous call to
278
+ # [ListProjects] [google.cloud.resourcemanager.v3.Projects.ListProjects] that
279
+ # indicates from where listing should continue.
278
280
  # @param page_size [::Integer]
279
281
  # Optional. The maximum number of projects to return in the response.
280
282
  # The server can return fewer projects than requested.
281
283
  # If unspecified, server picks an appropriate default.
282
284
  # @param show_deleted [::Boolean]
283
- # Optional. Indicate that projects in the `DELETE_REQUESTED` state should also be
284
- # returned. Normally only `ACTIVE` projects are returned.
285
+ # Optional. Indicate that projects in the `DELETE_REQUESTED` state should
286
+ # also be returned. Normally only `ACTIVE` projects are returned.
285
287
  # @yield [result, operation] Access the result along with the TransportOperation object
286
288
  # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::ResourceManager::V3::Project>]
287
289
  # @yieldparam operation [::Gapic::Rest::TransportOperation]
@@ -355,22 +357,22 @@ module Google
355
357
  # @param query [::String]
356
358
  # Optional. A query string for searching for projects that the caller has
357
359
  # `resourcemanager.projects.get` permission to. If multiple fields are
358
- # included in the query, the it will return results that match any of the
360
+ # included in the query, then it will return results that match any of the
359
361
  # fields. Some eligible fields are:
360
362
  #
361
363
  # ```
362
364
  # | Field | Description |
363
365
  # |-------------------------|----------------------------------------------|
364
366
  # | displayName, name | Filters by displayName. |
365
- # | parent | Project's parent. (for example: folders/123,
366
- # organizations/*) Prefer parent field over parent.type and parent.id. |
367
- # | parent.type | Parent's type: `folder` or `organization`. |
368
- # | parent.id | Parent's id number (for example: 123) |
369
- # | id, projectId | Filters by projectId. |
370
- # | state, lifecycleState | Filters by state. |
371
- # | labels | Filters by label name or value. |
372
- # | labels.<key> (where *key* is the name of a label) | Filters by label
373
- # name. |
367
+ # | parent | Project's parent (for example: folders/123,
368
+ # organizations/*). Prefer parent field over parent.type and parent.id.| |
369
+ # parent.type | Parent's type: `folder` or `organization`. | |
370
+ # parent.id | Parent's id number (for example: 123) | |
371
+ # id, projectId | Filters by projectId. | |
372
+ # state, lifecycleState | Filters by state. | |
373
+ # labels | Filters by label name or value. | |
374
+ # labels.\<key\> (where *key* is the name of a label) | Filters by label
375
+ # name.|
374
376
  # ```
375
377
  #
376
378
  # Search expressions are case insensitive.
@@ -386,16 +388,16 @@ module Google
386
388
  # | NAME:howl | Equivalent to above. |
387
389
  # | labels.color:* | The project has the label `color`. |
388
390
  # | labels.color:red | The project's label `color` has the value `red`. |
389
- # | labels.color:red&nbsp;labels.size:big | The project's label `color` has
390
- # the value `red` and its label `size` has the value `big`. |
391
+ # | labels.color:red labels.size:big | The project's label `color` has the
392
+ # value `red` or its label `size` has the value `big`. |
391
393
  # ```
392
394
  #
393
395
  # If no query is specified, the call will return projects for which the user
394
396
  # has the `resourcemanager.projects.get` permission.
395
397
  # @param page_token [::String]
396
- # Optional. A pagination token returned from a previous call to [ListProjects]
397
- # [google.cloud.resourcemanager.v3.Projects.ListProjects]
398
- # that indicates from where listing should continue.
398
+ # Optional. A pagination token returned from a previous call to
399
+ # [ListProjects] [google.cloud.resourcemanager.v3.Projects.ListProjects] that
400
+ # indicates from where listing should continue.
399
401
  # @param page_size [::Integer]
400
402
  # Optional. The maximum number of projects to return in the response.
401
403
  # The server can return fewer projects than requested.
@@ -473,7 +475,7 @@ module Google
473
475
  #
474
476
  # If the `parent` field is set, the `resourcemanager.projects.create`
475
477
  # permission is checked on the parent resource. If no parent is set and
476
- # the authorization credentials belong to an Organziation, the parent
478
+ # the authorization credentials belong to an Organization, the parent
477
479
  # will be set to that Organization.
478
480
  # @yield [result, operation] Access the result along with the TransportOperation object
479
481
  # @yieldparam result [::Gapic::Operation]
@@ -597,9 +599,12 @@ module Google
597
599
  # Upon success, the `Operation.response` field will be populated with the
598
600
  # moved project.
599
601
  #
600
- # The caller must have `resourcemanager.projects.update` permission on the
601
- # project and have `resourcemanager.projects.move` permission on the
602
- # project's current and proposed new parent.
602
+ # The caller must have `resourcemanager.projects.move` permission on the
603
+ # project, on the project's current and proposed new parent.
604
+ #
605
+ # If project has no current parent, or it currently does not have an
606
+ # associated organization resource, you will also need the
607
+ # `resourcemanager.projects.setIamPolicy` permission in the project.
603
608
  #
604
609
  # @overload move_project(request, options = nil)
605
610
  # Pass arguments to `move_project` via a request object, either of type
@@ -672,7 +677,8 @@ module Google
672
677
  #
673
678
  # This method changes the Project's lifecycle state from
674
679
  # {::Google::Cloud::ResourceManager::V3::Project::State::ACTIVE ACTIVE}
675
- # to {::Google::Cloud::ResourceManager::V3::Project::State::DELETE_REQUESTED DELETE_REQUESTED}.
680
+ # to
681
+ # {::Google::Cloud::ResourceManager::V3::Project::State::DELETE_REQUESTED DELETE_REQUESTED}.
676
682
  # The deletion starts at an unspecified time,
677
683
  # at which point the Project is no longer accessible.
678
684
  #
@@ -831,7 +837,8 @@ module Google
831
837
  end
832
838
 
833
839
  ##
834
- # Returns the IAM access control policy for the specified project.
840
+ # Returns the IAM access control policy for the specified project, in the
841
+ # format `projects/{ProjectIdOrNumber}` e.g. projects/123.
835
842
  # Permission is denied if the policy or the resource do not exist.
836
843
  #
837
844
  # @overload get_iam_policy(request, options = nil)
@@ -898,7 +905,8 @@ module Google
898
905
  end
899
906
 
900
907
  ##
901
- # Sets the IAM access control policy for the specified project.
908
+ # Sets the IAM access control policy for the specified project, in the
909
+ # format `projects/{ProjectIdOrNumber}` e.g. projects/123.
902
910
  #
903
911
  # CAUTION: This method will replace the existing policy, and cannot be used
904
912
  # to append additional IAM settings.
@@ -930,18 +938,14 @@ module Google
930
938
  # `setIamPolicy()`;
931
939
  # they must be sent only using the Cloud Platform Console.
932
940
  #
933
- # + Membership changes that leave the project without any owners that have
934
- # accepted the Terms of Service (ToS) will be rejected.
935
- #
936
941
  # + If the project is not part of an organization, there must be at least
937
942
  # one owner who has accepted the Terms of Service (ToS) agreement in the
938
943
  # policy. Calling `setIamPolicy()` to remove the last ToS-accepted owner
939
944
  # from the policy will fail. This restriction also applies to legacy
940
945
  # projects that no longer have owners who have accepted the ToS. Edits to
941
946
  # IAM policies will be rejected until the lack of a ToS-accepting owner is
942
- # rectified.
943
- #
944
- # + Calling this method requires enabling the App Engine Admin API.
947
+ # rectified. If the project is part of an organization, you can remove all
948
+ # owners, potentially making the organization inaccessible.
945
949
  #
946
950
  # @overload set_iam_policy(request, options = nil)
947
951
  # Pass arguments to `set_iam_policy` via a request object, either of type
@@ -1015,7 +1019,8 @@ module Google
1015
1019
  end
1016
1020
 
1017
1021
  ##
1018
- # Returns permissions that a caller has on the specified project.
1022
+ # Returns permissions that a caller has on the specified project, in the
1023
+ # format `projects/{ProjectIdOrNumber}` e.g. projects/123..
1019
1024
  #
1020
1025
  # @overload test_iam_permissions(request, options = nil)
1021
1026
  # Pass arguments to `test_iam_permissions` via a request object, either of type
@@ -1120,9 +1125,9 @@ module Google
1120
1125
  # * (`String`) The path to a service account key file in JSON format
1121
1126
  # * (`Hash`) A service account key as a Hash
1122
1127
  # * (`Google::Auth::Credentials`) A googleauth credentials object
1123
- # (see the [googleauth docs](https://googleapis.dev/ruby/googleauth/latest/index.html))
1128
+ # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials))
1124
1129
  # * (`Signet::OAuth2::Client`) A signet oauth2 client object
1125
- # (see the [signet docs](https://googleapis.dev/ruby/signet/latest/Signet/OAuth2/Client.html))
1130
+ # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
1126
1131
  # * (`nil`) indicating no credentials
1127
1132
  # @return [::Object]
1128
1133
  # @!attribute [rw] scope
@@ -411,9 +411,9 @@ module Google
411
411
  # * (`String`) The path to a service account key file in JSON format
412
412
  # * (`Hash`) A service account key as a Hash
413
413
  # * (`Google::Auth::Credentials`) A googleauth credentials object
414
- # (see the [googleauth docs](https://googleapis.dev/ruby/googleauth/latest/index.html))
414
+ # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials))
415
415
  # * (`Signet::OAuth2::Client`) A signet oauth2 client object
416
- # (see the [signet docs](https://googleapis.dev/ruby/signet/latest/Signet/OAuth2/Client.html))
416
+ # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
417
417
  # * (`nil`) indicating no credentials
418
418
  # @return [::Object]
419
419
  # @!attribute [rw] scope
@@ -20,6 +20,7 @@ require "google/cloud/resource_manager/v3/folders/rest"
20
20
  require "google/cloud/resource_manager/v3/organizations/rest"
21
21
  require "google/cloud/resource_manager/v3/projects/rest"
22
22
  require "google/cloud/resource_manager/v3/tag_bindings/rest"
23
+ require "google/cloud/resource_manager/v3/tag_holds/rest"
23
24
  require "google/cloud/resource_manager/v3/tag_keys/rest"
24
25
  require "google/cloud/resource_manager/v3/tag_values/rest"
25
26
  require "google/cloud/resource_manager/v3/version"
@@ -28,7 +28,7 @@ module Google
28
28
  # Client for the TagBindings service.
29
29
  #
30
30
  # Allow users to create and manage TagBindings between TagValues and
31
- # different cloud resources throughout the GCP resource hierarchy.
31
+ # different Google Cloud resources throughout the GCP resource hierarchy.
32
32
  #
33
33
  class Client
34
34
  include Paths
@@ -168,8 +168,8 @@ module Google
168
168
  # Service calls
169
169
 
170
170
  ##
171
- # Lists the TagBindings for the given cloud resource, as specified with
172
- # `parent`.
171
+ # Lists the TagBindings for the given Google Cloud resource, as specified
172
+ # with `parent`.
173
173
  #
174
174
  # NOTE: The `parent` field is expected to be a full resource name:
175
175
  # https://cloud.google.com/apis/design/resource_names#full_resource_name
@@ -190,16 +190,16 @@ module Google
190
190
  # the default parameter values, pass an empty Hash as a request object (see above).
191
191
  #
192
192
  # @param parent [::String]
193
- # Required. The full resource name of a resource for which you want to list existing
194
- # TagBindings.
195
- # E.g. "//cloudresourcemanager.googleapis.com/projects/123"
193
+ # Required. The full resource name of a resource for which you want to list
194
+ # existing TagBindings. E.g.
195
+ # "//cloudresourcemanager.googleapis.com/projects/123"
196
196
  # @param page_size [::Integer]
197
- # Optional. The maximum number of TagBindings to return in the response. The server
198
- # allows a maximum of 300 TagBindings to return. If unspecified, the server
199
- # will use 100 as the default.
197
+ # Optional. The maximum number of TagBindings to return in the response. The
198
+ # server allows a maximum of 300 TagBindings to return. If unspecified, the
199
+ # server will use 100 as the default.
200
200
  # @param page_token [::String]
201
- # Optional. A pagination token returned from a previous call to `ListTagBindings`
202
- # that indicates where this listing should continue from.
201
+ # Optional. A pagination token returned from a previous call to
202
+ # `ListTagBindings` that indicates where this listing should continue from.
203
203
  #
204
204
  # @yield [response, operation] Access the result along with the RPC operation
205
205
  # @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::ResourceManager::V3::TagBinding>]
@@ -263,8 +263,7 @@ module Google
263
263
  end
264
264
 
265
265
  ##
266
- # Creates a TagBinding between a TagValue and a cloud resource
267
- # (currently project, folder, or organization).
266
+ # Creates a TagBinding between a TagValue and a Google Cloud resource.
268
267
  #
269
268
  # @overload create_tag_binding(request, options = nil)
270
269
  # Pass arguments to `create_tag_binding` via a request object, either of type
@@ -284,8 +283,8 @@ module Google
284
283
  # @param tag_binding [::Google::Cloud::ResourceManager::V3::TagBinding, ::Hash]
285
284
  # Required. The TagBinding to be created.
286
285
  # @param validate_only [::Boolean]
287
- # Optional. Set to true to perform the validations necessary for creating the resource,
288
- # but not actually perform the action.
286
+ # Optional. Set to true to perform the validations necessary for creating the
287
+ # resource, but not actually perform the action.
289
288
  #
290
289
  # @yield [response, operation] Access the result along with the RPC operation
291
290
  # @yieldparam response [::Gapic::Operation]
@@ -446,6 +445,98 @@ module Google
446
445
  raise ::Google::Cloud::Error.from_error(e)
447
446
  end
448
447
 
448
+ ##
449
+ # Return a list of effective tags for the given Google Cloud resource, as
450
+ # specified in `parent`.
451
+ #
452
+ # @overload list_effective_tags(request, options = nil)
453
+ # Pass arguments to `list_effective_tags` via a request object, either of type
454
+ # {::Google::Cloud::ResourceManager::V3::ListEffectiveTagsRequest} or an equivalent Hash.
455
+ #
456
+ # @param request [::Google::Cloud::ResourceManager::V3::ListEffectiveTagsRequest, ::Hash]
457
+ # A request object representing the call parameters. Required. To specify no
458
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
459
+ # @param options [::Gapic::CallOptions, ::Hash]
460
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
461
+ #
462
+ # @overload list_effective_tags(parent: nil, page_size: nil, page_token: nil)
463
+ # Pass arguments to `list_effective_tags` via keyword arguments. Note that at
464
+ # least one keyword argument is required. To specify no parameters, or to keep all
465
+ # the default parameter values, pass an empty Hash as a request object (see above).
466
+ #
467
+ # @param parent [::String]
468
+ # Required. The full resource name of a resource for which you want to list
469
+ # the effective tags. E.g.
470
+ # "//cloudresourcemanager.googleapis.com/projects/123"
471
+ # @param page_size [::Integer]
472
+ # Optional. The maximum number of effective tags to return in the response.
473
+ # The server allows a maximum of 300 effective tags to return in a single
474
+ # page. If unspecified, the server will use 100 as the default.
475
+ # @param page_token [::String]
476
+ # Optional. A pagination token returned from a previous call to
477
+ # `ListEffectiveTags` that indicates from where this listing should continue.
478
+ #
479
+ # @yield [response, operation] Access the result along with the RPC operation
480
+ # @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::ResourceManager::V3::EffectiveTag>]
481
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
482
+ #
483
+ # @return [::Gapic::PagedEnumerable<::Google::Cloud::ResourceManager::V3::EffectiveTag>]
484
+ #
485
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
486
+ #
487
+ # @example Basic example
488
+ # require "google/cloud/resource_manager/v3"
489
+ #
490
+ # # Create a client object. The client can be reused for multiple calls.
491
+ # client = Google::Cloud::ResourceManager::V3::TagBindings::Client.new
492
+ #
493
+ # # Create a request. To set request fields, pass in keyword arguments.
494
+ # request = Google::Cloud::ResourceManager::V3::ListEffectiveTagsRequest.new
495
+ #
496
+ # # Call the list_effective_tags method.
497
+ # result = client.list_effective_tags request
498
+ #
499
+ # # The returned object is of type Gapic::PagedEnumerable. You can iterate
500
+ # # over elements, and API calls will be issued to fetch pages as needed.
501
+ # result.each do |item|
502
+ # # Each element is of type ::Google::Cloud::ResourceManager::V3::EffectiveTag.
503
+ # p item
504
+ # end
505
+ #
506
+ def list_effective_tags request, options = nil
507
+ raise ::ArgumentError, "request must be provided" if request.nil?
508
+
509
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ResourceManager::V3::ListEffectiveTagsRequest
510
+
511
+ # Converts hash and nil to an options object
512
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
513
+
514
+ # Customize the options with defaults
515
+ metadata = @config.rpcs.list_effective_tags.metadata.to_h
516
+
517
+ # Set x-goog-api-client and x-goog-user-project headers
518
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
519
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
520
+ gapic_version: ::Google::Cloud::ResourceManager::V3::VERSION
521
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
522
+
523
+ options.apply_defaults timeout: @config.rpcs.list_effective_tags.timeout,
524
+ metadata: metadata,
525
+ retry_policy: @config.rpcs.list_effective_tags.retry_policy
526
+
527
+ options.apply_defaults timeout: @config.timeout,
528
+ metadata: @config.metadata,
529
+ retry_policy: @config.retry_policy
530
+
531
+ @tag_bindings_stub.call_rpc :list_effective_tags, request, options: options do |response, operation|
532
+ response = ::Gapic::PagedEnumerable.new @tag_bindings_stub, :list_effective_tags, request, response, operation, options
533
+ yield response, operation if block_given?
534
+ return response
535
+ end
536
+ rescue ::GRPC::BadStatus => e
537
+ raise ::Google::Cloud::Error.from_error(e)
538
+ end
539
+
449
540
  ##
450
541
  # Configuration class for the TagBindings API.
451
542
  #
@@ -484,9 +575,9 @@ module Google
484
575
  # * (`String`) The path to a service account key file in JSON format
485
576
  # * (`Hash`) A service account key as a Hash
486
577
  # * (`Google::Auth::Credentials`) A googleauth credentials object
487
- # (see the [googleauth docs](https://googleapis.dev/ruby/googleauth/latest/index.html))
578
+ # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials))
488
579
  # * (`Signet::OAuth2::Client`) A signet oauth2 client object
489
- # (see the [signet docs](https://googleapis.dev/ruby/signet/latest/Signet/OAuth2/Client.html))
580
+ # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
490
581
  # * (`GRPC::Core::Channel`) a gRPC channel with included credentials
491
582
  # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object
492
583
  # * (`nil`) indicating no credentials
@@ -596,6 +687,11 @@ module Google
596
687
  # @return [::Gapic::Config::Method]
597
688
  #
598
689
  attr_reader :delete_tag_binding
690
+ ##
691
+ # RPC-specific configuration for `list_effective_tags`
692
+ # @return [::Gapic::Config::Method]
693
+ #
694
+ attr_reader :list_effective_tags
599
695
 
600
696
  # @private
601
697
  def initialize parent_rpcs = nil
@@ -605,6 +701,8 @@ module Google
605
701
  @create_tag_binding = ::Gapic::Config::Method.new create_tag_binding_config
606
702
  delete_tag_binding_config = parent_rpcs.delete_tag_binding if parent_rpcs.respond_to? :delete_tag_binding
607
703
  @delete_tag_binding = ::Gapic::Config::Method.new delete_tag_binding_config
704
+ list_effective_tags_config = parent_rpcs.list_effective_tags if parent_rpcs.respond_to? :list_effective_tags
705
+ @list_effective_tags = ::Gapic::Config::Method.new list_effective_tags_config
608
706
 
609
707
  yield self if block_given?
610
708
  end
@@ -620,9 +620,9 @@ module Google
620
620
  # * (`String`) The path to a service account key file in JSON format
621
621
  # * (`Hash`) A service account key as a Hash
622
622
  # * (`Google::Auth::Credentials`) A googleauth credentials object
623
- # (see the [googleauth docs](https://googleapis.dev/ruby/googleauth/latest/index.html))
623
+ # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials))
624
624
  # * (`Signet::OAuth2::Client`) A signet oauth2 client object
625
- # (see the [signet docs](https://googleapis.dev/ruby/signet/latest/Signet/OAuth2/Client.html))
625
+ # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
626
626
  # * (`GRPC::Core::Channel`) a gRPC channel with included credentials
627
627
  # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object
628
628
  # * (`nil`) indicating no credentials