google-cloud-resource_manager-v3 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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