java.lang.Object
org.odpi.openmetadata.accessservices.datamanager.server.spring.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 Details

    • FilesResource

      public FilesResource()
      Default constructor
  • Method Details

    • 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) ExternalSourceRequestBody 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). Similarly to 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). Similarly to 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 startFrom, @RequestParam int pageSize)
      Retrieve a list of defined FileSystems assets.
      Parameters:
      serverName - name of calling server
      userId - calling user
      startFrom - starting point in the list
      pageSize - 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 startFrom, @RequestParam int pageSize)
      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
      startFrom - starting point in the list
      pageSize - maximum number of results
      Returns:
      list of folder unique identifiers (null value 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 startFrom, @RequestParam int pageSize)
      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
      startFrom - starting point in the list
      pageSize - maximum number of results
      Returns:
      list of folder unique identifiers (null value 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 DataFilesResponse getFolderFiles(@PathVariable String serverName, @PathVariable String userId, @PathVariable String folderGUID, @RequestParam int startFrom, @RequestParam int pageSize)
      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
      startFrom - starting point in the list
      pageSize - maximum number of results
      Returns:
      list of file assets 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.
    • getDataFilesByPathName

      @PostMapping(path="/data-files/by-search-path-name") public DataFilesResponse getDataFilesByPathName(@PathVariable String serverName, @PathVariable String userId, @RequestParam int startFrom, @RequestParam int pageSize, @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
      startFrom - starting point in the list
      pageSize - 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.
    • findDataFilesByPathName

      @PostMapping(path="/data-files/by-search-name") public DataFilesResponse findDataFilesByPathName(@PathVariable String serverName, @PathVariable String userId, @RequestParam int startFrom, @RequestParam int pageSize, @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
      startFrom - starting point in the list
      pageSize - 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.