Class FilesResource


  • @RestController
    @RequestMapping("/servers/{serverName}/open-metadata/access-services/data-manager/users/{userId}/filesystems")
    public class FilesResource
    extends Object
    FilesResource supports the server-side capture of REST calls to add new file-based asset definitions.
    • Constructor Detail

      • FilesResource

        public FilesResource()
        Default constructor
    • Method Detail

      • createFolderStructureInCatalog

        @PostMapping(path="/folders/parent/{parentGUID}")
        public GUIDListResponse createFolderStructureInCatalog​(@PathVariable
                                                               String serverName,
                                                               @PathVariable
                                                               String userId,
                                                               @PathVariable
                                                               String parentGUID,
                                                               @RequestBody
                                                               PathNameRequestBody requestBody)
        Creates a new folder asset for each element in the pathName that is linked from the file server capability entity. For example, a pathName of "one/two/three" creates 3 new folder assets, one called "one", the next called "one/two" and the last one called "one/two/three".
        Parameters:
        serverName - name of calling server
        userId - calling user
        parentGUID - root object to connect the folder to
        requestBody - pathname of the folder (or folders)
        Returns:
        list of GUIDs from the top level to the leaf of the supplied pathname or InvalidParameterException one of the parameters is null or invalid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem.
      • attachFolderToFileSystem

        @PostMapping(path="/{fileSystemGUID}/folders/{folderGUID}/attach")
        public VoidResponse attachFolderToFileSystem​(@PathVariable
                                                     String serverName,
                                                     @PathVariable
                                                     String userId,
                                                     @PathVariable
                                                     String fileSystemGUID,
                                                     @PathVariable
                                                     String folderGUID,
                                                     @RequestBody(required=false)
                                                     MetadataSourceRequestBody requestBody)
        Links a folder to a file system. The folder is not changed.
        Parameters:
        serverName - name of calling server
        userId - calling user
        fileSystemGUID - unique identifier of the file system in the catalog
        folderGUID - unique identifier of the folder in the catalog
        requestBody - external source identifiers - or null for local
        Returns:
        void or InvalidParameterException one of the parameters is null or invalid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem.
      • detachFolderFromFileSystem

        @PostMapping(path="/{fileSystemGUID}/folders/{folderGUID}/detach")
        public VoidResponse detachFolderFromFileSystem​(@PathVariable
                                                       String serverName,
                                                       @PathVariable
                                                       String userId,
                                                       @PathVariable
                                                       String fileSystemGUID,
                                                       @PathVariable
                                                       String folderGUID,
                                                       @RequestBody(required=false)
                                                       MetadataSourceRequestBody requestBody)
        Removed the link between a folder and a file system.
        Parameters:
        serverName - name of calling server
        userId - calling user
        fileSystemGUID - unique identifier of the file system in the catalog
        folderGUID - unique identifier of the folder in the catalog
        requestBody - external source identifiers - or null for local
        Returns:
        void or InvalidParameterException one of the parameters is null or invalid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem.
      • addDataFileToCatalog

        @PostMapping(path="/data-files")
        public GUIDListResponse addDataFileToCatalog​(@PathVariable
                                                     String serverName,
                                                     @PathVariable
                                                     String userId,
                                                     @RequestBody
                                                     DataFileRequestBody requestBody)
        Add a simple asset description linked to a connection object for a file and to the folder structure implied in the path name. If the folder structure is not catalogued already, this is created automatically using the createFolderStructureInCatalog() method. For example, a pathName of "one/two/three/MyFile.txt" potentially creates 3 new folder assets, one called "one", the next called "one/two" and the last one called "one/two/three" plus a file asset called "one/two/three/MyFile.txt".
        Parameters:
        serverName - name of calling server
        userId - calling user (assumed to be the owner)
        requestBody - properties for the asset
        Returns:
        list of GUIDs from the top level to the root of the pathname or InvalidParameterException full path or userId is null PropertyServerException problem accessing property server UserNotAuthorizedException security access problem
      • addDataFileToCatalogFromTemplate

        @PostMapping(path="/data-files/from-template/{templateGUID}")
        public GUIDListResponse addDataFileToCatalogFromTemplate​(@PathVariable
                                                                 String serverName,
                                                                 @PathVariable
                                                                 String userId,
                                                                 @PathVariable
                                                                 String templateGUID,
                                                                 @RequestBody
                                                                 TemplateRequestBody requestBody)
        Add an asset description a file based on the content of a template object. Link this new asset to the folder structure implied in the path name. If the folder structure is not catalogued already, this is created automatically using the createFolderStructureInCatalog() method. For example, a pathName of "one/two/three/MyFile.txt" potentially creates 3 new folder assets, one called "one", the next called "one/two" and the last one called "one/two/three" plus a file asset called "one/two/three/MyFile.txt".
        Parameters:
        serverName - name of calling server
        userId - calling user (assumed to be the owner)
        templateGUID - unique identifier of the file asset to copy
        requestBody - override properties for the asset
        Returns:
        list of GUIDs from the top level to the root of the pathname or InvalidParameterException full path or userId is null PropertyServerException problem accessing property server UserNotAuthorizedException security access problem
      • updateDataFileInCatalog

        @PostMapping(path="/data-files/{dataFileGUID}")
        public VoidResponse updateDataFileInCatalog​(@PathVariable
                                                    String serverName,
                                                    @PathVariable
                                                    String userId,
                                                    @PathVariable
                                                    String dataFileGUID,
                                                    @RequestParam
                                                    boolean isMergeUpdate,
                                                    @RequestBody
                                                    DataFileRequestBody requestBody)
        Update the file asset description in the catalog.
        Parameters:
        serverName - name of calling server
        userId - calling user (assumed to be the owner)
        dataFileGUID - unique identifier of the data file asset
        isMergeUpdate - should the supplied properties completely override the existing properties or augment them?
        requestBody - properties for the asset
        Returns:
        void or InvalidParameterException full path or userId is null PropertyServerException problem accessing property server UserNotAuthorizedException security access problem
      • archiveDataFileInCatalog

        @PostMapping(path="/data-files/{dataFileGUID}/archive")
        public VoidResponse archiveDataFileInCatalog​(@PathVariable
                                                     String serverName,
                                                     @PathVariable
                                                     String userId,
                                                     @PathVariable
                                                     String dataFileGUID,
                                                     @RequestBody
                                                     ArchiveRequestBody requestBody)
        Mark the file asset description in the catalog as archived.
        Parameters:
        serverName - name of calling server
        userId - calling user (assumed to be the owner)
        dataFileGUID - unique identifier of the data file asset
        requestBody - properties to help locate the archive copy
        Returns:
        void or InvalidParameterException one of the parameters is null or invalid PropertyServerException problem accessing property server UserNotAuthorizedException security access problem
      • deleteDataFileFromCatalog

        @PostMapping(path="/data-files/{dataFileGUID}/delete")
        public VoidResponse deleteDataFileFromCatalog​(@PathVariable
                                                      String serverName,
                                                      @PathVariable
                                                      String userId,
                                                      @PathVariable
                                                      String dataFileGUID,
                                                      @RequestBody
                                                      PathNameRequestBody requestBody)
        Remove the file asset description from the catalog.
        Parameters:
        serverName - name of calling server
        userId - calling user (assumed to be the owner)
        dataFileGUID - unique identifier of the data file asset
        requestBody - full pathname for the asset
        Returns:
        void or InvalidParameterException full path or userId is null PropertyServerException problem accessing property server UserNotAuthorizedException security access problem
      • addDataFolderAssetToCatalog

        @PostMapping(path="/data-folders")
        public GUIDListResponse addDataFolderAssetToCatalog​(@PathVariable
                                                            String serverName,
                                                            @PathVariable
                                                            String userId,
                                                            @RequestBody
                                                            DataFolderRequestBody requestBody)
        Creates a new folder asset that is identified as a data asset. This means the files and sub-folders within it collectively make up the contents of the data asset. As with other types of file-based asset, links are made to the folder structure implied in the path name. If the folder structure is not catalogued already, this is created automatically using the createFolderStructureInCatalog() method. For example, a pathName of "one/two/three/MyDataFolder" potentially creates 3 new folder assets, one called "one", the next called "one/two" and the last one called "one/two/three" plus a DataFolder asset called "one/two/three/MyDataFolder".
        Parameters:
        serverName - name of calling server
        userId - calling user
        requestBody - pathname of the data folder
        Returns:
        list of GUIDs from the top level to the root of the pathname or InvalidParameterException one of the parameters is null or invalid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem.
      • addDataFolderToCatalogFromTemplate

        @PostMapping(path="/data-folders/from-template/{templateGUID}")
        public GUIDListResponse addDataFolderToCatalogFromTemplate​(@PathVariable
                                                                   String serverName,
                                                                   @PathVariable
                                                                   String userId,
                                                                   @PathVariable
                                                                   String templateGUID,
                                                                   @RequestBody
                                                                   TemplateRequestBody requestBody)
        Creates a new folder asset that is identified as a data asset using a template. This means the files and sub-folders within it collectively make up the contents of the data asset. As with other types of file-based asset, links are made to the folder structure implied in the path name. If the folder structure is not catalogued already, this is created automatically using the createFolderStructureInCatalog() method. For example, a pathName of "one/two/three/MyDataFolder" potentially creates 3 new folder assets, one called "one", the next called "one/two" and the last one called "one/two/three" plus a DataFolder asset called "one/two/three/MyDataFolder".
        Parameters:
        serverName - name of calling server
        userId - calling user (assumed to be the owner)
        templateGUID - unique identifier of the file asset to copy
        requestBody - override properties for the asset
        Returns:
        list of GUIDs from the top level to the root of the pathname or InvalidParameterException full path or userId is null PropertyServerException problem accessing property server UserNotAuthorizedException security access problem
      • updateDataFolderInCatalog

        @PostMapping(path="/data-folders/{dataFolderGUID}")
        public VoidResponse updateDataFolderInCatalog​(@PathVariable
                                                      String serverName,
                                                      @PathVariable
                                                      String userId,
                                                      @PathVariable
                                                      String dataFolderGUID,
                                                      @RequestParam
                                                      boolean isMergeUpdate,
                                                      @RequestBody
                                                      DataFolderRequestBody requestBody)
        Update the DataFolder asset description in the catalog.
        Parameters:
        serverName - name of calling server
        userId - calling user (assumed to be the owner)
        dataFolderGUID - unique identifier of the data folder asset
        isMergeUpdate - should the supplied properties completely override the existing properties or augment them?
        requestBody - properties for the asset
        Returns:
        void or InvalidParameterException full path or userId is null PropertyServerException problem accessing property server UserNotAuthorizedException security access problem
      • archiveDataFolderInCatalog

        @PostMapping(path="/data-folders/{dataFolderGUID}/archive")
        public VoidResponse archiveDataFolderInCatalog​(@PathVariable
                                                       String serverName,
                                                       @PathVariable
                                                       String userId,
                                                       @PathVariable
                                                       String dataFolderGUID,
                                                       @RequestBody
                                                       ArchiveRequestBody requestBody)
        Mark the data folder asset description in the catalog as archived.
        Parameters:
        serverName - name of calling server
        userId - calling user (assumed to be the owner)
        dataFolderGUID - unique identifier of the data file asset
        requestBody - properties to help locate the archive copy
        Returns:
        void or InvalidParameterException one of the parameters is null or invalid PropertyServerException problem accessing property server UserNotAuthorizedException security access problem
      • deleteDataFolderFromCatalog

        @PostMapping(path="/data-folders/{dataFolderGUID}/delete")
        public VoidResponse deleteDataFolderFromCatalog​(@PathVariable
                                                        String serverName,
                                                        @PathVariable
                                                        String userId,
                                                        @PathVariable
                                                        String dataFolderGUID,
                                                        @RequestBody
                                                        PathNameRequestBody requestBody)
        Remove the data folder asset description from the catalog.
        Parameters:
        serverName - name of calling server
        userId - calling user (assumed to be the owner)
        dataFolderGUID - unique identifier of the data file asset
        requestBody - full pathname for the asset
        Returns:
        void or InvalidParameterException full path or userId is null PropertyServerException problem accessing property server UserNotAuthorizedException security access problem
      • attachDataFileAssetToFolder

        @PostMapping(path="/folders/{folderGUID}/data-files/{fileGUID}/attach")
        public VoidResponse attachDataFileAssetToFolder​(@PathVariable
                                                        String serverName,
                                                        @PathVariable
                                                        String userId,
                                                        @PathVariable
                                                        String folderGUID,
                                                        @PathVariable
                                                        String fileGUID,
                                                        @RequestBody(required=false)
                                                        MetadataSourceRequestBody requestBody)
        Link an existing file asset to a folder. The file is not changed as this is used to create a logical link to the folder.
        Parameters:
        serverName - name of calling server
        userId - calling user
        folderGUID - unique identifier of the folder
        fileGUID - unique identifier of the file
        requestBody - external source identifiers - or null for local
        Returns:
        void or InvalidParameterException one of the parameters is null or invalid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem.
      • detachDataFileAssetFromFolder

        @PostMapping(path="/folders/{folderGUID}/data-files/{fileGUID}/detach")
        public VoidResponse detachDataFileAssetFromFolder​(@PathVariable
                                                          String serverName,
                                                          @PathVariable
                                                          String userId,
                                                          @PathVariable
                                                          String folderGUID,
                                                          @PathVariable
                                                          String fileGUID,
                                                          @RequestBody(required=false)
                                                          MetadataSourceRequestBody requestBody)
        Remove a link between a file asset and a folder. The file is not changed. Use moveDataFileInCatalog to record the fact that the physical file has moved. Use attachDataFileAssetToFolder to create logical link to a new folder.
        Parameters:
        serverName - name of calling server
        userId - calling user
        folderGUID - unique identifier of the folder
        fileGUID - unique identifier of the file
        requestBody - external source identifiers - or null for local
        Returns:
        void or InvalidParameterException one of the parameters is null or invalid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem.
      • moveDataFileInCatalog

        @PostMapping(path="/folders/{folderGUID}/data-files/{fileGUID}/move-to")
        public VoidResponse moveDataFileInCatalog​(@PathVariable
                                                  String serverName,
                                                  @PathVariable
                                                  String userId,
                                                  @PathVariable
                                                  String folderGUID,
                                                  @PathVariable
                                                  String fileGUID,
                                                  @RequestBody(required=false)
                                                  MetadataSourceRequestBody requestBody)
        Move a data file from its current parent folder to a new parent folder - this changes the file's qualified name but not its unique identifier (guid). Also the the endpoint in the connection object.
        Parameters:
        serverName - name of calling server
        userId - calling user
        folderGUID - new parent folder
        fileGUID - unique identifier of the file to move
        requestBody - null request body to satisfy REST protocol
        Returns:
        void or InvalidParameterException one of the parameters is null or invalid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem.
      • moveDataFolderInCatalog

        @PostMapping(path="/folders/{folderGUID}/data-folders/{dataFolderGUID}/move-to")
        public VoidResponse moveDataFolderInCatalog​(@PathVariable
                                                    String serverName,
                                                    @PathVariable
                                                    String userId,
                                                    @PathVariable
                                                    String folderGUID,
                                                    @PathVariable
                                                    String dataFolderGUID,
                                                    @RequestBody(required=false)
                                                    MetadataSourceRequestBody requestBody)
        Move a data folder from its current parent folder to a new parent folder - this changes the folder's qualified name but not its unique identifier (guid). Also the the endpoint in the connection object.
        Parameters:
        serverName - name of calling server
        userId - calling user
        folderGUID - new parent folder
        dataFolderGUID - unique identifier of the data folder to move
        requestBody - null request body to satisfy REST protocol
        Returns:
        void or InvalidParameterException one of the parameters is null or invalid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem.
      • getFileSystemByGUID

        @GetMapping(path="/filesystems/{fileSystemGUID}")
        public FileSystemResponse getFileSystemByGUID​(@PathVariable
                                                      String serverName,
                                                      @PathVariable
                                                      String userId,
                                                      @PathVariable
                                                      String fileSystemGUID)
        Retrieve a FileSystemProperties asset by its unique identifier (GUID).
        Parameters:
        serverName - name of calling server
        userId - calling user
        fileSystemGUID - unique identifier used to locate the file system
        Returns:
        FileSystemProperties properties or InvalidParameterException one of the parameters is null or invalid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem.
      • getFileSystemByUniqueName

        @GetMapping(path="/filesystems/by-name/{uniqueName}")
        public FileSystemResponse getFileSystemByUniqueName​(@PathVariable
                                                            String serverName,
                                                            @PathVariable
                                                            String userId,
                                                            @PathVariable
                                                            String uniqueName)
        Retrieve a FileSystemProperties asset by its unique name.
        Parameters:
        serverName - name of calling server
        userId - calling user
        uniqueName - unique name for the filesystem
        Returns:
        Filesystem properties or InvalidParameterException one of the parameters is null or invalid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem.
      • getFileSystems

        @GetMapping(path="/filesystems")
        public GUIDListResponse getFileSystems​(@PathVariable
                                               String serverName,
                                               @PathVariable
                                               String userId,
                                               @RequestParam
                                               int startingFrom,
                                               @RequestParam
                                               int maxPageSize)
        Retrieve a list of defined FileSystems assets.
        Parameters:
        serverName - name of calling server
        userId - calling user
        startingFrom - starting point in the list
        maxPageSize - maximum number of results
        Returns:
        List of Filesystem unique identifiers or InvalidParameterException one of the parameters is null or invalid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem.
      • getFolderByGUID

        @GetMapping(path="/folders/{folderGUID}")
        public FileFolderResponse getFolderByGUID​(@PathVariable
                                                  String serverName,
                                                  @PathVariable
                                                  String userId,
                                                  @PathVariable
                                                  String folderGUID)
        Retrieve a folder asset by its unique identifier (GUID).
        Parameters:
        serverName - name of calling server
        userId - calling user
        folderGUID - unique identifier used to locate the folder
        Returns:
        folder properties or InvalidParameterException one of the parameters is null or invalid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem.
      • getFolderByPathName

        @PostMapping(path="/folders/by-path-name")
        public FileFolderResponse getFolderByPathName​(@PathVariable
                                                      String serverName,
                                                      @PathVariable
                                                      String userId,
                                                      @RequestBody
                                                      PathNameRequestBody requestBody)
        Retrieve a folder by its fully qualified path name.
        Parameters:
        serverName - name of calling server
        userId - calling user
        requestBody - path name
        Returns:
        folder properties or InvalidParameterException one of the parameters is null or invalid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem.
      • getTopLevelFolders

        @GetMapping(path="/{fileSystemGUID}/folders")
        public GUIDListResponse getTopLevelFolders​(@PathVariable
                                                   String serverName,
                                                   @PathVariable
                                                   String userId,
                                                   @PathVariable
                                                   String fileSystemGUID,
                                                   @RequestParam
                                                   int startingFrom,
                                                   @RequestParam
                                                   int maxPageSize)
        Return the list of folders nested inside a folder.
        Parameters:
        serverName - name of calling server
        userId - calling user
        fileSystemGUID - unique identifier of the anchor folder or Filesystem
        startingFrom - starting point in the list
        maxPageSize - maximum number of results
        Returns:
        list of folder unique identifiers (null means no nested folders) or InvalidParameterException one of the parameters is null or invalid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem.
      • getNestedFolders

        @GetMapping(path="/folders/{parentFolderGUID}/folders")
        public GUIDListResponse getNestedFolders​(@PathVariable
                                                 String serverName,
                                                 @PathVariable
                                                 String userId,
                                                 @PathVariable
                                                 String parentFolderGUID,
                                                 @RequestParam
                                                 int startingFrom,
                                                 @RequestParam
                                                 int maxPageSize)
        Return the list of folders nested inside a folder.
        Parameters:
        serverName - name of calling server
        userId - calling user
        parentFolderGUID - unique identifier of the parent folder
        startingFrom - starting point in the list
        maxPageSize - maximum number of results
        Returns:
        list of folder unique identifiers (null means no nested folders) or InvalidParameterException one of the parameters is null or invalid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem.
      • getFolderFiles

        @GetMapping(path="/folders/{folderGUID}/data-files")
        public GUIDListResponse getFolderFiles​(@PathVariable
                                               String serverName,
                                               @PathVariable
                                               String userId,
                                               @PathVariable
                                               String folderGUID,
                                               @RequestParam
                                               int startingFrom,
                                               @RequestParam
                                               int maxPageSize)
        Get the files inside a folder - both those that are nested and those that are linked.
        Parameters:
        serverName - name of calling server
        userId - calling user
        folderGUID - unique identifier of the anchor folder
        startingFrom - starting point in the list
        maxPageSize - maximum number of results
        Returns:
        list of file asset unique identifiers or InvalidParameterException one of the parameters is null or invalid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem.
      • getDataFileByGUID

        @GetMapping(path="/data-files/{dataFileGUID}")
        public DataFileResponse getDataFileByGUID​(@PathVariable
                                                  String serverName,
                                                  @PathVariable
                                                  String userId,
                                                  @PathVariable
                                                  String dataFileGUID)
        Retrieve a data file asset by its unique identifier (GUID).
        Parameters:
        serverName - name of calling server
        userId - calling user
        dataFileGUID - unique identifier used to locate the folder
        Returns:
        data file properties or InvalidParameterException one of the parameters is null or invalid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem.
      • getDataFileByPathName

        @PostMapping(path="/data-files/by-path-name")
        public DataFileResponse getDataFileByPathName​(@PathVariable
                                                      String serverName,
                                                      @PathVariable
                                                      String userId,
                                                      @RequestBody
                                                      PathNameRequestBody requestBody)
        Retrieve a data file by its fully qualified path name.
        Parameters:
        serverName - name of calling server
        userId - calling user
        requestBody - path name
        Returns:
        data file properties or InvalidParameterException one of the parameters is null or invalid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem.
      • findDataFilesByPathName

        @PostMapping(path="/data-files/by-search-path-name")
        public DataFilesResponse findDataFilesByPathName​(@PathVariable
                                                         String serverName,
                                                         @PathVariable
                                                         String userId,
                                                         @RequestParam
                                                         int startingFrom,
                                                         @RequestParam
                                                         int maxPageSize,
                                                         @RequestBody
                                                         PathNameRequestBody requestBody)
        Retrieve data files by the supplied wildcard name. The wildcard is specified using regular expressions (RegEx).
        Parameters:
        serverName - name of calling server
        userId - calling user
        startingFrom - starting point in the list
        maxPageSize - maximum number of results
        requestBody - path name
        Returns:
        data file properties or InvalidParameterException one of the parameters is null or invalid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem.