syntax = "proto3";
package proto;
option java_package = "com.hederahashgraph.api.proto.java";
option java_multiple_files = true;
import "Timestamp.proto";
import "BasicTypes.proto";
import "QueryHeader.proto";
import "ResponseHeader.proto";
/* Get all of the information about a file, except for its contents. When a file expires, it no longer exists, and there will be no info about it, and the fileInfo field will be blank. If a transaction or smart contract deletes the file, but it has not yet expired, then the fileInfo field will be non-empty, the deleted field will be true, its size will be 0, and its contents will be empty. Note that each file has a FileID, but does not have a filename. */
message FileGetInfoQuery {
QueryHeader header = 1; // standard info sent from client to node, including the signed payment, and what kind of response is requested (cost, state proof, both, or neither).
FileID fileID = 2; // the file for which information is requested
}
/* Response when the client sends the node FileGetInfoQuery */
message FileGetInfoResponse {
ResponseHeader header = 1; //standard response from node to client, including the requested fields: cost, or state proof, or both, or neither
message FileInfo {
FileID fileID = 1; // the account for which information is requested
int64 size = 2; // number of bytes in contents
Timestamp expirationTime = 3; // the current time at which this account is set to expire
bool deleted = 4; // true if deleted but not yet expired
KeyList keys = 5; // one of these keys must sign in order to modify or delete the file
}
FileInfo fileInfo = 2; // the information about the file (a state proof can be generated for this)
}