# Generated by the protocol buffer compiler. DO NOT EDIT! # Source: google/cloud/resourcemanager/v3/folders.proto for package 'Google.Cloud.ResourceManager.V3' # Original file comments: # Copyright 2021 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # require 'grpc' require 'google/cloud/resourcemanager/v3/folders_pb' module Google module Cloud module ResourceManager module V3 module Folders # Manages Cloud Platform folder resources. # Folders can be used to organize the resources under an # organization and to control the policies applied to groups of resources. class Service include ::GRPC::GenericService self.marshal_class_method = :encode self.unmarshal_class_method = :decode self.service_name = 'google.cloud.resourcemanager.v3.Folders' # Retrieves a folder identified by the supplied resource name. # Valid folder resource names have the format `folders/{folder_id}` # (for example, `folders/1234`). # The caller must have `resourcemanager.folders.get` permission on the # identified folder. rpc :GetFolder, ::Google::Cloud::ResourceManager::V3::GetFolderRequest, ::Google::Cloud::ResourceManager::V3::Folder # Lists the folders that are direct descendants of supplied parent resource. # `list()` provides a strongly consistent view of the folders underneath # the specified parent resource. # `list()` returns folders sorted based upon the (ascending) lexical ordering # of their display_name. # The caller must have `resourcemanager.folders.list` permission on the # identified parent. rpc :ListFolders, ::Google::Cloud::ResourceManager::V3::ListFoldersRequest, ::Google::Cloud::ResourceManager::V3::ListFoldersResponse # Search for folders that match specific filter criteria. # `search()` provides an eventually consistent view of the folders a user has # access to which meet the specified filter criteria. # # This will only return folders on which the caller has the # permission `resourcemanager.folders.get`. rpc :SearchFolders, ::Google::Cloud::ResourceManager::V3::SearchFoldersRequest, ::Google::Cloud::ResourceManager::V3::SearchFoldersResponse # Creates a folder in the resource hierarchy. # Returns an `Operation` which can be used to track the progress of the # folder creation workflow. # Upon success, the `Operation.response` field will be populated with the # created Folder. # # In order to succeed, the addition of this new folder must not violate # the folder naming, height, or fanout constraints. # # + The folder's `display_name` must be distinct from all other folders that # share its parent. # + The addition of the folder must not cause the active folder hierarchy # to exceed a height of 10. Note, the full active + deleted folder hierarchy # is allowed to reach a height of 20; this provides additional headroom when # moving folders that contain deleted folders. # + The addition of the folder must not cause the total number of folders # under its parent to exceed 300. # # If the operation fails due to a folder constraint violation, some errors # may be returned by the `CreateFolder` request, with status code # `FAILED_PRECONDITION` and an error description. Other folder constraint # violations will be communicated in the `Operation`, with the specific # `PreconditionFailure` returned in the details list in the `Operation.error` # field. # # The caller must have `resourcemanager.folders.create` permission on the # identified parent. rpc :CreateFolder, ::Google::Cloud::ResourceManager::V3::CreateFolderRequest, ::Google::Longrunning::Operation # Updates a folder, changing its `display_name`. # Changes to the folder `display_name` will be rejected if they violate # either the `display_name` formatting rules or the naming constraints # described in the [CreateFolder][google.cloud.resourcemanager.v3.Folders.CreateFolder] documentation. # # The folder's `display_name` must start and end with a letter or digit, # may contain letters, digits, spaces, hyphens and underscores and can be # between 3 and 30 characters. This is captured by the regular expression: # `[\p{L}\p{N}][\p{L}\p{N}_- ]{1,28}[\p{L}\p{N}]`. # The caller must have `resourcemanager.folders.update` permission on the # identified folder. # # If the update fails due to the unique name constraint then a # `PreconditionFailure` explaining this violation will be returned # in the Status.details field. rpc :UpdateFolder, ::Google::Cloud::ResourceManager::V3::UpdateFolderRequest, ::Google::Longrunning::Operation # Moves a folder under a new resource parent. # Returns an `Operation` which can be used to track the progress of the # folder move workflow. # Upon success, the `Operation.response` field will be populated with the # moved folder. # Upon failure, a `FolderOperationError` categorizing the failure cause will # be returned - if the failure occurs synchronously then the # `FolderOperationError` will be returned in the `Status.details` field. # If it occurs asynchronously, then the FolderOperation will be returned # in the `Operation.error` field. # In addition, the `Operation.metadata` field will be populated with a # `FolderOperation` message as an aid to stateless clients. # Folder moves will be rejected if they violate either the naming, height, # or fanout constraints described in the # [CreateFolder][google.cloud.resourcemanager.v3.Folders.CreateFolder] documentation. # The caller must have `resourcemanager.folders.move` permission on the # folder's current and proposed new parent. rpc :MoveFolder, ::Google::Cloud::ResourceManager::V3::MoveFolderRequest, ::Google::Longrunning::Operation # Requests deletion of a folder. The folder is moved into the # [DELETE_REQUESTED][google.cloud.resourcemanager.v3.Folder.State.DELETE_REQUESTED] state # immediately, and is deleted approximately 30 days later. This method may # only be called on an empty folder, where a folder is empty if it doesn't # contain any folders or projects in the [ACTIVE][google.cloud.resourcemanager.v3.Folder.State.ACTIVE] state. # If called on a folder in [DELETE_REQUESTED][google.cloud.resourcemanager.v3.Folder.State.DELETE_REQUESTED] # state the operation will result in a no-op success. # The caller must have `resourcemanager.folders.delete` permission on the # identified folder. rpc :DeleteFolder, ::Google::Cloud::ResourceManager::V3::DeleteFolderRequest, ::Google::Longrunning::Operation # Cancels the deletion request for a folder. This method may be called on a # folder in any state. If the folder is in the [ACTIVE][google.cloud.resourcemanager.v3.Folder.State.ACTIVE] # state the result will be a no-op success. In order to succeed, the folder's # parent must be in the [ACTIVE][google.cloud.resourcemanager.v3.Folder.State.ACTIVE] state. In addition, # reintroducing the folder into the tree must not violate folder naming, # height, and fanout constraints described in the # [CreateFolder][google.cloud.resourcemanager.v3.Folders.CreateFolder] documentation. # The caller must have `resourcemanager.folders.undelete` permission on the # identified folder. rpc :UndeleteFolder, ::Google::Cloud::ResourceManager::V3::UndeleteFolderRequest, ::Google::Longrunning::Operation # Gets the access control policy for a folder. The returned policy may be # empty if no such policy or resource exists. The `resource` field should # be the folder's resource name, for example: "folders/1234". # The caller must have `resourcemanager.folders.getIamPolicy` permission # on the identified folder. rpc :GetIamPolicy, ::Google::Iam::V1::GetIamPolicyRequest, ::Google::Iam::V1::Policy # Sets the access control policy on a folder, replacing any existing policy. # The `resource` field should be the folder's resource name, for example: # "folders/1234". # The caller must have `resourcemanager.folders.setIamPolicy` permission # on the identified folder. rpc :SetIamPolicy, ::Google::Iam::V1::SetIamPolicyRequest, ::Google::Iam::V1::Policy # Returns permissions that a caller has on the specified folder. # The `resource` field should be the folder's resource name, # for example: "folders/1234". # # There are no permissions required for making this API call. rpc :TestIamPermissions, ::Google::Iam::V1::TestIamPermissionsRequest, ::Google::Iam::V1::TestIamPermissionsResponse end Stub = Service.rpc_stub_class end end end end end