164 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
			
		
		
	
	
			164 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
syntax = "proto3";
 | 
						|
 | 
						|
package v2alpha1;
 | 
						|
 | 
						|
option go_package = "github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v2alpha1";
 | 
						|
 | 
						|
service Filesystem {
 | 
						|
    // PathExists checks if the requested path exists in the host filesystem.
 | 
						|
    rpc PathExists(PathExistsRequest) returns (PathExistsResponse) {}
 | 
						|
 | 
						|
    // Mkdir creates a directory at the requested path in the host filesystem.
 | 
						|
    rpc Mkdir(MkdirRequest) returns (MkdirResponse) {}
 | 
						|
 | 
						|
    // Rmdir removes the directory at the requested path in the host filesystem.
 | 
						|
    // This may be used for unlinking a symlink created through CreateSymlink.
 | 
						|
    rpc Rmdir(RmdirRequest) returns (RmdirResponse) {}
 | 
						|
 | 
						|
    // RmdirContents removes the contents of a directory in the host filesystem.
 | 
						|
    // Unlike Rmdir it won't delete the requested path, it'll only delete its contents.
 | 
						|
    rpc RmdirContents(RmdirContentsRequest) returns (RmdirContentsResponse) {}
 | 
						|
 | 
						|
    // CreateSymlink creates a symbolic link called target_path that points to source_path
 | 
						|
    // in the host filesystem (target_path is the name of the symbolic link created,
 | 
						|
    // source_path is the existing path).
 | 
						|
    rpc CreateSymlink(CreateSymlinkRequest) returns (CreateSymlinkResponse) {}
 | 
						|
 | 
						|
    // IsSymlink checks if a given path is a symlink.
 | 
						|
    rpc IsSymlink(IsSymlinkRequest) returns (IsSymlinkResponse) {}
 | 
						|
}
 | 
						|
 | 
						|
message PathExistsRequest {
 | 
						|
    // The path whose existence we want to check in the host's filesystem
 | 
						|
    string path = 1;
 | 
						|
}
 | 
						|
 | 
						|
message PathExistsResponse {
 | 
						|
    // Indicates whether the path in PathExistsRequest exists in the host's filesystem
 | 
						|
    bool exists = 1;
 | 
						|
}
 | 
						|
 | 
						|
message MkdirRequest {
 | 
						|
    // The path to create in the host's filesystem.
 | 
						|
    // All special characters allowed by Windows in path names will be allowed
 | 
						|
    // except for restrictions noted below. For details, please check:
 | 
						|
    // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file
 | 
						|
    // Non-existent parent directories in the path will be automatically created.
 | 
						|
    // Directories will be created with Read and Write privileges of the Windows
 | 
						|
    // User account under which csi-proxy is started (typically LocalSystem).
 | 
						|
    //
 | 
						|
    // Restrictions:
 | 
						|
    // Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted.
 | 
						|
    // Depending on the context parameter of this function, the path prefix needs
 | 
						|
    // to match the paths specified either as kubelet-csi-plugins-path
 | 
						|
    // or as kubelet-pod-path parameters of csi-proxy.
 | 
						|
    // The path parameter cannot already exist in the host's filesystem.
 | 
						|
    // UNC paths of the form "\\server\share\path\file" are not allowed.
 | 
						|
    // All directory separators need to be backslash character: "\".
 | 
						|
    // Characters: .. / : | ? * in the path are not allowed.
 | 
						|
    // Maximum path length will be capped to 260 characters.
 | 
						|
    string path = 1;
 | 
						|
}
 | 
						|
 | 
						|
message MkdirResponse {
 | 
						|
    // Intentionally empty.
 | 
						|
}
 | 
						|
 | 
						|
message RmdirRequest {
 | 
						|
    // The path to remove in the host's filesystem.
 | 
						|
    // All special characters allowed by Windows in path names will be allowed
 | 
						|
    // except for restrictions noted below. For details, please check:
 | 
						|
    // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file
 | 
						|
    //
 | 
						|
    // Restrictions:
 | 
						|
    // Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted.
 | 
						|
    // Depending on the context parameter of this function, the path prefix needs
 | 
						|
    // to match the paths specified either as kubelet-csi-plugins-path
 | 
						|
    // or as kubelet-pod-path parameters of csi-proxy.
 | 
						|
    // UNC paths of the form "\\server\share\path\file" are not allowed.
 | 
						|
    // All directory separators need to be backslash character: "\".
 | 
						|
    // Characters: .. / : | ? * in the path are not allowed.
 | 
						|
    // Path cannot be a file of type symlink.
 | 
						|
    // Maximum path length will be capped to 260 characters.
 | 
						|
    string path = 1;
 | 
						|
 | 
						|
    // Force remove all contents under path (if any).
 | 
						|
    bool force = 2;
 | 
						|
}
 | 
						|
 | 
						|
message RmdirResponse {
 | 
						|
    // Intentionally empty.
 | 
						|
}
 | 
						|
 | 
						|
message RmdirContentsRequest {
 | 
						|
    // The path whose contents will be removed in the host's filesystem.
 | 
						|
    // All special characters allowed by Windows in path names will be allowed
 | 
						|
    // except for restrictions noted below. For details, please check:
 | 
						|
    // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file
 | 
						|
    //
 | 
						|
    // Restrictions:
 | 
						|
    // Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted.
 | 
						|
    // Depending on the context parameter of this function, the path prefix needs
 | 
						|
    // to match the paths specified either as kubelet-csi-plugins-path
 | 
						|
    // or as kubelet-pod-path parameters of csi-proxy.
 | 
						|
    // UNC paths of the form "\\server\share\path\file" are not allowed.
 | 
						|
    // All directory separators need to be backslash character: "\".
 | 
						|
    // Characters: .. / : | ? * in the path are not allowed.
 | 
						|
    // Path cannot be a file of type symlink.
 | 
						|
    // Maximum path length will be capped to 260 characters.
 | 
						|
    string path = 1;
 | 
						|
}
 | 
						|
 | 
						|
message RmdirContentsResponse {
 | 
						|
    // Intentionally empty.
 | 
						|
}
 | 
						|
 | 
						|
message CreateSymlinkRequest {
 | 
						|
    // The path of the existing directory to be linked.
 | 
						|
    // All special characters allowed by Windows in path names will be allowed
 | 
						|
    // except for restrictions noted below. For details, please check:
 | 
						|
    // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file
 | 
						|
    //
 | 
						|
    // Restrictions:
 | 
						|
    // Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted.
 | 
						|
    // The path prefix needs needs to match the paths specified as
 | 
						|
    // kubelet-csi-plugins-path parameter of csi-proxy.
 | 
						|
    // UNC paths of the form "\\server\share\path\file" are not allowed.
 | 
						|
    // All directory separators need to be backslash character: "\".
 | 
						|
    // Characters: .. / : | ? * in the path are not allowed.
 | 
						|
    // source_path cannot already exist in the host filesystem.
 | 
						|
    // Maximum path length will be capped to 260 characters.
 | 
						|
    string source_path = 1;
 | 
						|
 | 
						|
    // Target path is the location of the new directory entry to be created in the host's filesystem.
 | 
						|
    // All special characters allowed by Windows in path names will be allowed
 | 
						|
    // except for restrictions noted below. For details, please check:
 | 
						|
    // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file
 | 
						|
    //
 | 
						|
    // Restrictions:
 | 
						|
    // Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted.
 | 
						|
    // The path prefix needs to match the paths specified as
 | 
						|
    // kubelet-pod-path parameter of csi-proxy.
 | 
						|
    // UNC paths of the form "\\server\share\path\file" are not allowed.
 | 
						|
    // All directory separators need to be backslash character: "\".
 | 
						|
    // Characters: .. / : | ? * in the path are not allowed.
 | 
						|
    // target_path needs to exist as a directory in the host that is empty.
 | 
						|
    // target_path cannot be a symbolic link.
 | 
						|
    // Maximum path length will be capped to 260 characters.
 | 
						|
    string target_path = 2;
 | 
						|
}
 | 
						|
 | 
						|
message CreateSymlinkResponse {
 | 
						|
    // Intentionally empty.
 | 
						|
}
 | 
						|
 | 
						|
message IsSymlinkRequest {
 | 
						|
    // The path whose existence as a symlink we want to check in the host's filesystem.
 | 
						|
    string path = 1;
 | 
						|
}
 | 
						|
 | 
						|
message IsSymlinkResponse {
 | 
						|
    // Indicates whether the path in IsSymlinkRequest is a symlink.
 | 
						|
    bool is_symlink = 1;
 | 
						|
}
 |