hedera 0.4.0

Hedera SDK for Rust
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)
}