Class FoldersClient

  • All Implemented Interfaces:
    com.google.api.gax.core.BackgroundResource, AutoCloseable

    @Generated("by gapic-generator-java")
    public class FoldersClient
    extends Object
    implements com.google.api.gax.core.BackgroundResource
    Service Description: 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.

    This class provides the ability to make remote calls to the backing service through method calls that map to API methods. Sample code to get started:

    
     // This snippet has been automatically generated and should be regarded as a code template only.
     // It will require modifications to work:
     // - It may require correct/in-range values for request initialization.
     // - It may require specifying regional endpoints when creating the service client as shown in
     // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
     try (FoldersClient foldersClient = FoldersClient.create()) {
       FolderName name = FolderName.of("[FOLDER]");
       Folder response = foldersClient.getFolder(name);
     }
     

    Note: close() needs to be called on the FoldersClient object to clean up resources such as threads. In the example above, try-with-resources is used, which automatically calls close().

    The surface of this class includes several types of Java methods for each of the API's methods:

    1. A "flattened" method. With this type of method, the fields of the request type have been converted into function parameters. It may be the case that not all fields are available as parameters, and not every API method will have a flattened method entry point.
    2. A "request object" method. This type of method only takes one parameter, a request object, which must be constructed before the call. Not every API method will have a request object method.
    3. A "callable" method. This type of method takes no parameters and returns an immutable API callable object, which can be used to initiate calls to the service.

    See the individual methods for example code.

    Many parameters require resource names to be formatted in a particular way. To assist with these names, this class includes a format method for each type of name, and additionally a parse method to extract the individual identifiers contained within names that are returned.

    This class can be customized by passing in a custom instance of FoldersSettings to create(). For example:

    To customize credentials:

    
     // This snippet has been automatically generated and should be regarded as a code template only.
     // It will require modifications to work:
     // - It may require correct/in-range values for request initialization.
     // - It may require specifying regional endpoints when creating the service client as shown in
     // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
     FoldersSettings foldersSettings =
         FoldersSettings.newBuilder()
             .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
             .build();
     FoldersClient foldersClient = FoldersClient.create(foldersSettings);
     

    To customize the endpoint:

    
     // This snippet has been automatically generated and should be regarded as a code template only.
     // It will require modifications to work:
     // - It may require correct/in-range values for request initialization.
     // - It may require specifying regional endpoints when creating the service client as shown in
     // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
     FoldersSettings foldersSettings = FoldersSettings.newBuilder().setEndpoint(myEndpoint).build();
     FoldersClient foldersClient = FoldersClient.create(foldersSettings);
     

    To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over the wire:

    
     // This snippet has been automatically generated and should be regarded as a code template only.
     // It will require modifications to work:
     // - It may require correct/in-range values for request initialization.
     // - It may require specifying regional endpoints when creating the service client as shown in
     // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
     FoldersSettings foldersSettings = FoldersSettings.newHttpJsonBuilder().build();
     FoldersClient foldersClient = FoldersClient.create(foldersSettings);
     

    Please refer to the GitHub repository's samples for more quickstart code snippets.

    • Constructor Detail

      • FoldersClient

        protected FoldersClient​(FoldersSettings settings)
                         throws IOException
        Constructs an instance of FoldersClient, using the given settings. This is protected so that it is easy to make a subclass, but otherwise, the static factory methods should be preferred.
        Throws:
        IOException
      • FoldersClient

        protected FoldersClient​(FoldersStub stub)
    • Method Detail

      • create

        public static final FoldersClient create​(FoldersSettings settings)
                                          throws IOException
        Constructs an instance of FoldersClient, using the given settings. The channels are created based on the settings passed in, or defaults for any settings that are not set.
        Throws:
        IOException
      • create

        public static final FoldersClient create​(FoldersStub stub)
        Constructs an instance of FoldersClient, using the given stub for making calls. This is for advanced usage - prefer using create(FoldersSettings).
      • getOperationsClient

        public final com.google.longrunning.OperationsClient getOperationsClient()
        Returns the OperationsClient that can be used to query the status of a long-running operation returned by another API method call.
      • getHttpJsonOperationsClient

        @BetaApi
        public final com.google.api.gax.httpjson.longrunning.OperationsClient getHttpJsonOperationsClient()
        Returns the OperationsClient that can be used to query the status of a long-running operation returned by another API method call.
      • getFolder

        public final Folder getFolder​(FolderName name)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           FolderName name = FolderName.of("[FOLDER]");
           Folder response = foldersClient.getFolder(name);
         }
         
        Parameters:
        name - Required. The resource name of the folder to retrieve. Must be of the form `folders/{folder_id}`.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • getFolder

        public final Folder getFolder​(String name)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           String name = FolderName.of("[FOLDER]").toString();
           Folder response = foldersClient.getFolder(name);
         }
         
        Parameters:
        name - Required. The resource name of the folder to retrieve. Must be of the form `folders/{folder_id}`.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • getFolder

        public final Folder getFolder​(GetFolderRequest request)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           GetFolderRequest request =
               GetFolderRequest.newBuilder().setName(FolderName.of("[FOLDER]").toString()).build();
           Folder response = foldersClient.getFolder(request);
         }
         
        Parameters:
        request - The request object containing all of the parameters for the API call.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • getFolderCallable

        public final com.google.api.gax.rpc.UnaryCallable<GetFolderRequest,​Folder> getFolderCallable()
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           GetFolderRequest request =
               GetFolderRequest.newBuilder().setName(FolderName.of("[FOLDER]").toString()).build();
           ApiFuture<Folder> future = foldersClient.getFolderCallable().futureCall(request);
           // Do something.
           Folder response = future.get();
         }
         
      • listFolders

        public final FoldersClient.ListFoldersPagedResponse listFolders​(com.google.api.resourcenames.ResourceName parent)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           ResourceName parent = FolderName.of("[FOLDER]");
           for (Folder element : foldersClient.listFolders(parent).iterateAll()) {
             // doThingsWith(element);
           }
         }
         
        Parameters:
        parent - Required. The name of the parent resource whose folders are being listed. Only children of this parent resource are listed; descendants are not listed.

        If the parent is a folder, use the value `folders/{folder_id}`. If the parent is an organization, use the value `organizations/{org_id}`.

        Access to this method is controlled by checking the `resourcemanager.folders.list` permission on the `parent`.

        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • listFolders

        public final FoldersClient.ListFoldersPagedResponse listFolders​(String parent)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           String parent = FolderName.of("[FOLDER]").toString();
           for (Folder element : foldersClient.listFolders(parent).iterateAll()) {
             // doThingsWith(element);
           }
         }
         
        Parameters:
        parent - Required. The name of the parent resource whose folders are being listed. Only children of this parent resource are listed; descendants are not listed.

        If the parent is a folder, use the value `folders/{folder_id}`. If the parent is an organization, use the value `organizations/{org_id}`.

        Access to this method is controlled by checking the `resourcemanager.folders.list` permission on the `parent`.

        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • listFolders

        public final FoldersClient.ListFoldersPagedResponse listFolders​(ListFoldersRequest request)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           ListFoldersRequest request =
               ListFoldersRequest.newBuilder()
                   .setParent(FolderName.of("[FOLDER]").toString())
                   .setPageSize(883849137)
                   .setPageToken("pageToken873572522")
                   .setShowDeleted(true)
                   .build();
           for (Folder element : foldersClient.listFolders(request).iterateAll()) {
             // doThingsWith(element);
           }
         }
         
        Parameters:
        request - The request object containing all of the parameters for the API call.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • listFoldersPagedCallable

        public final com.google.api.gax.rpc.UnaryCallable<ListFoldersRequest,​FoldersClient.ListFoldersPagedResponse> listFoldersPagedCallable()
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           ListFoldersRequest request =
               ListFoldersRequest.newBuilder()
                   .setParent(FolderName.of("[FOLDER]").toString())
                   .setPageSize(883849137)
                   .setPageToken("pageToken873572522")
                   .setShowDeleted(true)
                   .build();
           ApiFuture<Folder> future = foldersClient.listFoldersPagedCallable().futureCall(request);
           // Do something.
           for (Folder element : future.get().iterateAll()) {
             // doThingsWith(element);
           }
         }
         
      • listFoldersCallable

        public final com.google.api.gax.rpc.UnaryCallable<ListFoldersRequest,​ListFoldersResponse> listFoldersCallable()
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           ListFoldersRequest request =
               ListFoldersRequest.newBuilder()
                   .setParent(FolderName.of("[FOLDER]").toString())
                   .setPageSize(883849137)
                   .setPageToken("pageToken873572522")
                   .setShowDeleted(true)
                   .build();
           while (true) {
             ListFoldersResponse response = foldersClient.listFoldersCallable().call(request);
             for (Folder element : response.getFoldersList()) {
               // doThingsWith(element);
             }
             String nextPageToken = response.getNextPageToken();
             if (!Strings.isNullOrEmpty(nextPageToken)) {
               request = request.toBuilder().setPageToken(nextPageToken).build();
             } else {
               break;
             }
           }
         }
         
      • searchFolders

        public final FoldersClient.SearchFoldersPagedResponse searchFolders​(String query)
        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`.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           String query = "query107944136";
           for (Folder element : foldersClient.searchFolders(query).iterateAll()) {
             // doThingsWith(element);
           }
         }
         
        Parameters:
        query - Optional. Search criteria used to select the folders to return. If no search criteria is specified then all accessible folders will be returned.

        Query expressions can be used to restrict results based upon displayName, state and parent, where the operators `=` (`:`) `NOT`, `AND` and `OR` can be used along with the suffix wildcard symbol `*`.

        The `displayName` field in a query expression should use escaped quotes for values that include whitespace to prevent unexpected behavior.

        ``` | Field | Description | |-------------------------|----------------------------------------| | displayName | Filters by displayName. | | parent | Filters by parent (for example: folders/123). | | state, lifecycleState | Filters by state. | ```

        Some example queries are:

        • Query `displayName=Test*` returns Folder resources whose display name starts with "Test".
        • Query `state=ACTIVE` returns Folder resources with `state` set to `ACTIVE`.
        • Query `parent=folders/123` returns Folder resources that have `folders/123` as a parent resource.
        • Query `parent=folders/123 AND state=ACTIVE` returns active Folder resources that have `folders/123` as a parent resource.
        • Query `displayName=\\\\"Test String\\\\"` returns Folder resources with display names that include both "Test" and "String".
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • searchFolders

        public final FoldersClient.SearchFoldersPagedResponse searchFolders​(SearchFoldersRequest request)
        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`.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           SearchFoldersRequest request =
               SearchFoldersRequest.newBuilder()
                   .setPageSize(883849137)
                   .setPageToken("pageToken873572522")
                   .setQuery("query107944136")
                   .build();
           for (Folder element : foldersClient.searchFolders(request).iterateAll()) {
             // doThingsWith(element);
           }
         }
         
        Parameters:
        request - The request object containing all of the parameters for the API call.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • searchFoldersPagedCallable

        public final com.google.api.gax.rpc.UnaryCallable<SearchFoldersRequest,​FoldersClient.SearchFoldersPagedResponse> searchFoldersPagedCallable()
        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`.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           SearchFoldersRequest request =
               SearchFoldersRequest.newBuilder()
                   .setPageSize(883849137)
                   .setPageToken("pageToken873572522")
                   .setQuery("query107944136")
                   .build();
           ApiFuture<Folder> future = foldersClient.searchFoldersPagedCallable().futureCall(request);
           // Do something.
           for (Folder element : future.get().iterateAll()) {
             // doThingsWith(element);
           }
         }
         
      • searchFoldersCallable

        public final com.google.api.gax.rpc.UnaryCallable<SearchFoldersRequest,​SearchFoldersResponse> searchFoldersCallable()
        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`.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           SearchFoldersRequest request =
               SearchFoldersRequest.newBuilder()
                   .setPageSize(883849137)
                   .setPageToken("pageToken873572522")
                   .setQuery("query107944136")
                   .build();
           while (true) {
             SearchFoldersResponse response = foldersClient.searchFoldersCallable().call(request);
             for (Folder element : response.getFoldersList()) {
               // doThingsWith(element);
             }
             String nextPageToken = response.getNextPageToken();
             if (!Strings.isNullOrEmpty(nextPageToken)) {
               request = request.toBuilder().setPageToken(nextPageToken).build();
             } else {
               break;
             }
           }
         }
         
      • createFolderAsync

        public final com.google.api.gax.longrunning.OperationFuture<Folder,​CreateFolderMetadata> createFolderAsync​(Folder folder)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           Folder folder = Folder.newBuilder().build();
           Folder response = foldersClient.createFolderAsync(folder).get();
         }
         
        Parameters:
        folder - Required. The folder being created, only the display name and parent will be consulted. All other fields will be ignored.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • createFolderAsync

        public final com.google.api.gax.longrunning.OperationFuture<Folder,​CreateFolderMetadata> createFolderAsync​(CreateFolderRequest request)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           CreateFolderRequest request =
               CreateFolderRequest.newBuilder().setFolder(Folder.newBuilder().build()).build();
           Folder response = foldersClient.createFolderAsync(request).get();
         }
         
        Parameters:
        request - The request object containing all of the parameters for the API call.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • createFolderOperationCallable

        public final com.google.api.gax.rpc.OperationCallable<CreateFolderRequest,​Folder,​CreateFolderMetadata> createFolderOperationCallable()
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           CreateFolderRequest request =
               CreateFolderRequest.newBuilder().setFolder(Folder.newBuilder().build()).build();
           OperationFuture<Folder, CreateFolderMetadata> future =
               foldersClient.createFolderOperationCallable().futureCall(request);
           // Do something.
           Folder response = future.get();
         }
         
      • createFolderCallable

        public final com.google.api.gax.rpc.UnaryCallable<CreateFolderRequest,​com.google.longrunning.Operation> createFolderCallable()
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           CreateFolderRequest request =
               CreateFolderRequest.newBuilder().setFolder(Folder.newBuilder().build()).build();
           ApiFuture<Operation> future = foldersClient.createFolderCallable().futureCall(request);
           // Do something.
           Operation response = future.get();
         }
         
      • updateFolderAsync

        public final com.google.api.gax.longrunning.OperationFuture<Folder,​UpdateFolderMetadata> updateFolderAsync​(Folder folder,
                                                                                                                         com.google.protobuf.FieldMask updateMask)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           Folder folder = Folder.newBuilder().build();
           FieldMask updateMask = FieldMask.newBuilder().build();
           Folder response = foldersClient.updateFolderAsync(folder, updateMask).get();
         }
         
        Parameters:
        folder - Required. The new definition of the Folder. It must include the `name` field, which cannot be changed.
        updateMask - Required. Fields to be updated. Only the `display_name` can be updated.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • updateFolderAsync

        public final com.google.api.gax.longrunning.OperationFuture<Folder,​UpdateFolderMetadata> updateFolderAsync​(UpdateFolderRequest request)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           UpdateFolderRequest request =
               UpdateFolderRequest.newBuilder()
                   .setFolder(Folder.newBuilder().build())
                   .setUpdateMask(FieldMask.newBuilder().build())
                   .build();
           Folder response = foldersClient.updateFolderAsync(request).get();
         }
         
        Parameters:
        request - The request object containing all of the parameters for the API call.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • updateFolderOperationCallable

        public final com.google.api.gax.rpc.OperationCallable<UpdateFolderRequest,​Folder,​UpdateFolderMetadata> updateFolderOperationCallable()
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           UpdateFolderRequest request =
               UpdateFolderRequest.newBuilder()
                   .setFolder(Folder.newBuilder().build())
                   .setUpdateMask(FieldMask.newBuilder().build())
                   .build();
           OperationFuture<Folder, UpdateFolderMetadata> future =
               foldersClient.updateFolderOperationCallable().futureCall(request);
           // Do something.
           Folder response = future.get();
         }
         
      • updateFolderCallable

        public final com.google.api.gax.rpc.UnaryCallable<UpdateFolderRequest,​com.google.longrunning.Operation> updateFolderCallable()
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           UpdateFolderRequest request =
               UpdateFolderRequest.newBuilder()
                   .setFolder(Folder.newBuilder().build())
                   .setUpdateMask(FieldMask.newBuilder().build())
                   .build();
           ApiFuture<Operation> future = foldersClient.updateFolderCallable().futureCall(request);
           // Do something.
           Operation response = future.get();
         }
         
      • moveFolderAsync

        public final com.google.api.gax.longrunning.OperationFuture<Folder,​MoveFolderMetadata> moveFolderAsync​(FolderName name,
                                                                                                                     com.google.api.resourcenames.ResourceName destinationParent)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           FolderName name = FolderName.of("[FOLDER]");
           ResourceName destinationParent = FolderName.of("[FOLDER]");
           Folder response = foldersClient.moveFolderAsync(name, destinationParent).get();
         }
         
        Parameters:
        name - Required. The resource name of the Folder to move. Must be of the form folders/{folder_id}
        destinationParent - Required. The resource name of the folder or organization which should be the folder's new parent. Must be of the form `folders/{folder_id}` or `organizations/{org_id}`.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • moveFolderAsync

        public final com.google.api.gax.longrunning.OperationFuture<Folder,​MoveFolderMetadata> moveFolderAsync​(FolderName name,
                                                                                                                     String destinationParent)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           FolderName name = FolderName.of("[FOLDER]");
           String destinationParent = FolderName.of("[FOLDER]").toString();
           Folder response = foldersClient.moveFolderAsync(name, destinationParent).get();
         }
         
        Parameters:
        name - Required. The resource name of the Folder to move. Must be of the form folders/{folder_id}
        destinationParent - Required. The resource name of the folder or organization which should be the folder's new parent. Must be of the form `folders/{folder_id}` or `organizations/{org_id}`.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • moveFolderAsync

        public final com.google.api.gax.longrunning.OperationFuture<Folder,​MoveFolderMetadata> moveFolderAsync​(String name,
                                                                                                                     com.google.api.resourcenames.ResourceName destinationParent)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           String name = FolderName.of("[FOLDER]").toString();
           ResourceName destinationParent = FolderName.of("[FOLDER]");
           Folder response = foldersClient.moveFolderAsync(name, destinationParent).get();
         }
         
        Parameters:
        name - Required. The resource name of the Folder to move. Must be of the form folders/{folder_id}
        destinationParent - Required. The resource name of the folder or organization which should be the folder's new parent. Must be of the form `folders/{folder_id}` or `organizations/{org_id}`.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • moveFolderAsync

        public final com.google.api.gax.longrunning.OperationFuture<Folder,​MoveFolderMetadata> moveFolderAsync​(String name,
                                                                                                                     String destinationParent)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           String name = FolderName.of("[FOLDER]").toString();
           String destinationParent = FolderName.of("[FOLDER]").toString();
           Folder response = foldersClient.moveFolderAsync(name, destinationParent).get();
         }
         
        Parameters:
        name - Required. The resource name of the Folder to move. Must be of the form folders/{folder_id}
        destinationParent - Required. The resource name of the folder or organization which should be the folder's new parent. Must be of the form `folders/{folder_id}` or `organizations/{org_id}`.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • moveFolderAsync

        public final com.google.api.gax.longrunning.OperationFuture<Folder,​MoveFolderMetadata> moveFolderAsync​(MoveFolderRequest request)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           MoveFolderRequest request =
               MoveFolderRequest.newBuilder()
                   .setName(FolderName.of("[FOLDER]").toString())
                   .setDestinationParent(FolderName.of("[FOLDER]").toString())
                   .build();
           Folder response = foldersClient.moveFolderAsync(request).get();
         }
         
        Parameters:
        request - The request object containing all of the parameters for the API call.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • moveFolderOperationCallable

        public final com.google.api.gax.rpc.OperationCallable<MoveFolderRequest,​Folder,​MoveFolderMetadata> moveFolderOperationCallable()
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           MoveFolderRequest request =
               MoveFolderRequest.newBuilder()
                   .setName(FolderName.of("[FOLDER]").toString())
                   .setDestinationParent(FolderName.of("[FOLDER]").toString())
                   .build();
           OperationFuture<Folder, MoveFolderMetadata> future =
               foldersClient.moveFolderOperationCallable().futureCall(request);
           // Do something.
           Folder response = future.get();
         }
         
      • moveFolderCallable

        public final com.google.api.gax.rpc.UnaryCallable<MoveFolderRequest,​com.google.longrunning.Operation> moveFolderCallable()
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           MoveFolderRequest request =
               MoveFolderRequest.newBuilder()
                   .setName(FolderName.of("[FOLDER]").toString())
                   .setDestinationParent(FolderName.of("[FOLDER]").toString())
                   .build();
           ApiFuture<Operation> future = foldersClient.moveFolderCallable().futureCall(request);
           // Do something.
           Operation response = future.get();
         }
         
      • deleteFolderAsync

        public final com.google.api.gax.longrunning.OperationFuture<Folder,​DeleteFolderMetadata> deleteFolderAsync​(FolderName name)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           FolderName name = FolderName.of("[FOLDER]");
           Folder response = foldersClient.deleteFolderAsync(name).get();
         }
         
        Parameters:
        name - Required. The resource name of the folder to be deleted. Must be of the form `folders/{folder_id}`.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • deleteFolderAsync

        public final com.google.api.gax.longrunning.OperationFuture<Folder,​DeleteFolderMetadata> deleteFolderAsync​(String name)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           String name = FolderName.of("[FOLDER]").toString();
           Folder response = foldersClient.deleteFolderAsync(name).get();
         }
         
        Parameters:
        name - Required. The resource name of the folder to be deleted. Must be of the form `folders/{folder_id}`.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • deleteFolderAsync

        public final com.google.api.gax.longrunning.OperationFuture<Folder,​DeleteFolderMetadata> deleteFolderAsync​(DeleteFolderRequest request)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           DeleteFolderRequest request =
               DeleteFolderRequest.newBuilder().setName(FolderName.of("[FOLDER]").toString()).build();
           Folder response = foldersClient.deleteFolderAsync(request).get();
         }
         
        Parameters:
        request - The request object containing all of the parameters for the API call.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • deleteFolderOperationCallable

        public final com.google.api.gax.rpc.OperationCallable<DeleteFolderRequest,​Folder,​DeleteFolderMetadata> deleteFolderOperationCallable()
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           DeleteFolderRequest request =
               DeleteFolderRequest.newBuilder().setName(FolderName.of("[FOLDER]").toString()).build();
           OperationFuture<Folder, DeleteFolderMetadata> future =
               foldersClient.deleteFolderOperationCallable().futureCall(request);
           // Do something.
           Folder response = future.get();
         }
         
      • deleteFolderCallable

        public final com.google.api.gax.rpc.UnaryCallable<DeleteFolderRequest,​com.google.longrunning.Operation> deleteFolderCallable()
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           DeleteFolderRequest request =
               DeleteFolderRequest.newBuilder().setName(FolderName.of("[FOLDER]").toString()).build();
           ApiFuture<Operation> future = foldersClient.deleteFolderCallable().futureCall(request);
           // Do something.
           Operation response = future.get();
         }
         
      • undeleteFolderAsync

        public final com.google.api.gax.longrunning.OperationFuture<Folder,​UndeleteFolderMetadata> undeleteFolderAsync​(FolderName name)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           FolderName name = FolderName.of("[FOLDER]");
           Folder response = foldersClient.undeleteFolderAsync(name).get();
         }
         
        Parameters:
        name - Required. The resource name of the folder to undelete. Must be of the form `folders/{folder_id}`.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • undeleteFolderAsync

        public final com.google.api.gax.longrunning.OperationFuture<Folder,​UndeleteFolderMetadata> undeleteFolderAsync​(String name)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           String name = FolderName.of("[FOLDER]").toString();
           Folder response = foldersClient.undeleteFolderAsync(name).get();
         }
         
        Parameters:
        name - Required. The resource name of the folder to undelete. Must be of the form `folders/{folder_id}`.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • undeleteFolderAsync

        public final com.google.api.gax.longrunning.OperationFuture<Folder,​UndeleteFolderMetadata> undeleteFolderAsync​(UndeleteFolderRequest request)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           UndeleteFolderRequest request =
               UndeleteFolderRequest.newBuilder().setName(FolderName.of("[FOLDER]").toString()).build();
           Folder response = foldersClient.undeleteFolderAsync(request).get();
         }
         
        Parameters:
        request - The request object containing all of the parameters for the API call.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • undeleteFolderOperationCallable

        public final com.google.api.gax.rpc.OperationCallable<UndeleteFolderRequest,​Folder,​UndeleteFolderMetadata> undeleteFolderOperationCallable()
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           UndeleteFolderRequest request =
               UndeleteFolderRequest.newBuilder().setName(FolderName.of("[FOLDER]").toString()).build();
           OperationFuture<Folder, UndeleteFolderMetadata> future =
               foldersClient.undeleteFolderOperationCallable().futureCall(request);
           // Do something.
           Folder response = future.get();
         }
         
      • undeleteFolderCallable

        public final com.google.api.gax.rpc.UnaryCallable<UndeleteFolderRequest,​com.google.longrunning.Operation> undeleteFolderCallable()
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           UndeleteFolderRequest request =
               UndeleteFolderRequest.newBuilder().setName(FolderName.of("[FOLDER]").toString()).build();
           ApiFuture<Operation> future = foldersClient.undeleteFolderCallable().futureCall(request);
           // Do something.
           Operation response = future.get();
         }
         
      • getIamPolicy

        public final com.google.iam.v1.Policy getIamPolicy​(com.google.api.resourcenames.ResourceName resource)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           ResourceName resource = FolderName.of("[FOLDER]");
           Policy response = foldersClient.getIamPolicy(resource);
         }
         
        Parameters:
        resource - REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • getIamPolicy

        public final com.google.iam.v1.Policy getIamPolicy​(String resource)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           String resource = FolderName.of("[FOLDER]").toString();
           Policy response = foldersClient.getIamPolicy(resource);
         }
         
        Parameters:
        resource - REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • getIamPolicy

        public final com.google.iam.v1.Policy getIamPolicy​(com.google.iam.v1.GetIamPolicyRequest request)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           GetIamPolicyRequest request =
               GetIamPolicyRequest.newBuilder()
                   .setResource(FolderName.of("[FOLDER]").toString())
                   .setOptions(GetPolicyOptions.newBuilder().build())
                   .build();
           Policy response = foldersClient.getIamPolicy(request);
         }
         
        Parameters:
        request - The request object containing all of the parameters for the API call.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • getIamPolicyCallable

        public final com.google.api.gax.rpc.UnaryCallable<com.google.iam.v1.GetIamPolicyRequest,​com.google.iam.v1.Policy> getIamPolicyCallable()
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           GetIamPolicyRequest request =
               GetIamPolicyRequest.newBuilder()
                   .setResource(FolderName.of("[FOLDER]").toString())
                   .setOptions(GetPolicyOptions.newBuilder().build())
                   .build();
           ApiFuture<Policy> future = foldersClient.getIamPolicyCallable().futureCall(request);
           // Do something.
           Policy response = future.get();
         }
         
      • setIamPolicy

        public final com.google.iam.v1.Policy setIamPolicy​(com.google.api.resourcenames.ResourceName resource,
                                                           com.google.iam.v1.Policy 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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           ResourceName resource = FolderName.of("[FOLDER]");
           Policy policy = Policy.newBuilder().build();
           Policy response = foldersClient.setIamPolicy(resource, policy);
         }
         
        Parameters:
        resource - REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.
        policy - REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • setIamPolicy

        public final com.google.iam.v1.Policy setIamPolicy​(String resource,
                                                           com.google.iam.v1.Policy 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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           String resource = FolderName.of("[FOLDER]").toString();
           Policy policy = Policy.newBuilder().build();
           Policy response = foldersClient.setIamPolicy(resource, policy);
         }
         
        Parameters:
        resource - REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.
        policy - REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • setIamPolicy

        public final com.google.iam.v1.Policy setIamPolicy​(com.google.iam.v1.SetIamPolicyRequest request)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           SetIamPolicyRequest request =
               SetIamPolicyRequest.newBuilder()
                   .setResource(FolderName.of("[FOLDER]").toString())
                   .setPolicy(Policy.newBuilder().build())
                   .setUpdateMask(FieldMask.newBuilder().build())
                   .build();
           Policy response = foldersClient.setIamPolicy(request);
         }
         
        Parameters:
        request - The request object containing all of the parameters for the API call.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • setIamPolicyCallable

        public final com.google.api.gax.rpc.UnaryCallable<com.google.iam.v1.SetIamPolicyRequest,​com.google.iam.v1.Policy> setIamPolicyCallable()
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           SetIamPolicyRequest request =
               SetIamPolicyRequest.newBuilder()
                   .setResource(FolderName.of("[FOLDER]").toString())
                   .setPolicy(Policy.newBuilder().build())
                   .setUpdateMask(FieldMask.newBuilder().build())
                   .build();
           ApiFuture<Policy> future = foldersClient.setIamPolicyCallable().futureCall(request);
           // Do something.
           Policy response = future.get();
         }
         
      • testIamPermissions

        public final com.google.iam.v1.TestIamPermissionsResponse testIamPermissions​(com.google.api.resourcenames.ResourceName resource,
                                                                                     List<String> permissions)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           ResourceName resource = FolderName.of("[FOLDER]");
           List<String> permissions = new ArrayList<>();
           TestIamPermissionsResponse response = foldersClient.testIamPermissions(resource, permissions);
         }
         
        Parameters:
        resource - REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.
        permissions - The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • testIamPermissions

        public final com.google.iam.v1.TestIamPermissionsResponse testIamPermissions​(String resource,
                                                                                     List<String> permissions)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           String resource = FolderName.of("[FOLDER]").toString();
           List<String> permissions = new ArrayList<>();
           TestIamPermissionsResponse response = foldersClient.testIamPermissions(resource, permissions);
         }
         
        Parameters:
        resource - REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.
        permissions - The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • testIamPermissions

        public final com.google.iam.v1.TestIamPermissionsResponse testIamPermissions​(com.google.iam.v1.TestIamPermissionsRequest request)
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           TestIamPermissionsRequest request =
               TestIamPermissionsRequest.newBuilder()
                   .setResource(FolderName.of("[FOLDER]").toString())
                   .addAllPermissions(new ArrayList<String>())
                   .build();
           TestIamPermissionsResponse response = foldersClient.testIamPermissions(request);
         }
         
        Parameters:
        request - The request object containing all of the parameters for the API call.
        Throws:
        com.google.api.gax.rpc.ApiException - if the remote call fails
      • testIamPermissionsCallable

        public final com.google.api.gax.rpc.UnaryCallable<com.google.iam.v1.TestIamPermissionsRequest,​com.google.iam.v1.TestIamPermissionsResponse> testIamPermissionsCallable()
        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.

        Sample code:

        
         // This snippet has been automatically generated and should be regarded as a code template only.
         // It will require modifications to work:
         // - It may require correct/in-range values for request initialization.
         // - It may require specifying regional endpoints when creating the service client as shown in
         // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
         try (FoldersClient foldersClient = FoldersClient.create()) {
           TestIamPermissionsRequest request =
               TestIamPermissionsRequest.newBuilder()
                   .setResource(FolderName.of("[FOLDER]").toString())
                   .addAllPermissions(new ArrayList<String>())
                   .build();
           ApiFuture<TestIamPermissionsResponse> future =
               foldersClient.testIamPermissionsCallable().futureCall(request);
           // Do something.
           TestIamPermissionsResponse response = future.get();
         }
         
      • shutdown

        public void shutdown()
        Specified by:
        shutdown in interface com.google.api.gax.core.BackgroundResource
      • isShutdown

        public boolean isShutdown()
        Specified by:
        isShutdown in interface com.google.api.gax.core.BackgroundResource
      • isTerminated

        public boolean isTerminated()
        Specified by:
        isTerminated in interface com.google.api.gax.core.BackgroundResource
      • shutdownNow

        public void shutdownNow()
        Specified by:
        shutdownNow in interface com.google.api.gax.core.BackgroundResource