// Path: dsm-webapi-client-filestation/src/main/java/com/github/gauthierj/dsm/webapi/client/filestation/common/TimeInformation.java
// public class TimeInformation {
// 
//     private final LocalDateTime lastAccessTime;
//     private final LocalDateTime lastModificationTime;
//     private final LocalDateTime lastChangeTime;
//     private final LocalDateTime creationTime;
// 
//     @JsonCreator
//     public TimeInformation(@JsonDeserialize(using = UnixTimeStampDeserializer.class) @JsonProperty("atime") LocalDateTime lastAccessTime,
//                            @JsonDeserialize(using = UnixTimeStampDeserializer.class) @JsonProperty("mtime") LocalDateTime lastModificationTime,
//                            @JsonDeserialize(using = UnixTimeStampDeserializer.class) @JsonProperty("ctime") LocalDateTime lastChangeTime,
//                            @JsonDeserialize(using = UnixTimeStampDeserializer.class) @JsonProperty("crtime") LocalDateTime creationTime) {
//         this.lastAccessTime = lastAccessTime;
//         this.lastModificationTime = lastModificationTime;
//         this.lastChangeTime = lastChangeTime;
//         this.creationTime = creationTime;
//     }
// 
//     public LocalDateTime getLastAccessTime() {
//         return lastAccessTime;
//     }
// 
//     public LocalDateTime getLastModificationTime() {
//         return lastModificationTime;
//     }
// 
//     public LocalDateTime getLastChangeTime() {
//         return lastChangeTime;
//     }
// 
//     public LocalDateTime getCreationTime() {
//         return creationTime;
//     }
// }
// 
// Path: dsm-webapi-client-filestation/src/main/java/com/github/gauthierj/dsm/webapi/client/filestation/common/User.java
// public class User {
// 
//     private final int gid;
//     private final String group;
//     private final int uid;
//     private final String username;
// 
//     @JsonCreator
//     public User(@JsonProperty("gid") int gid,
//                 @JsonProperty("group") String group,
//                 @JsonProperty("uid") int uid,
//                 @JsonProperty("user") String username) {
//         this.gid = gid;
//         this.group = group;
//         this.uid = uid;
//         this.username = username;
//     }
// 
//     public int getGid() {
//         return gid;
//     }
// 
//     public String getGroup() {
//         return group;
//     }
// 
//     public int getUid() {
//         return uid;
//     }
// 
//     public String getUsername() {
//         return username;
//     }
// }


import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.github.gauthierj.dsm.webapi.client.filestation.common.TimeInformation;
import com.github.gauthierj.dsm.webapi.client.filestation.common.User;
package com.github.gauthierj.dsm.webapi.client.filestation.filelist;


public class FileProperties {

    private final String realPath;
    private final int size;
    private final User owner;
    private final TimeInformation timeInformation;
    private final FilePermission filePermission;
    private final String mountPointType;
    private final String type;

    @JsonCreator
    public FileProperties(
            @JsonProperty("real_path") String realPath,
            @JsonProperty("size") int size,
// Path: dsm-webapi-client-filestation/src/main/java/com/github/gauthierj/dsm/webapi/client/filestation/common/TimeInformation.java
// public class TimeInformation {
// 
//     private final LocalDateTime lastAccessTime;
//     private final LocalDateTime lastModificationTime;
//     private final LocalDateTime lastChangeTime;
//     private final LocalDateTime creationTime;
// 
//     @JsonCreator
//     public TimeInformation(@JsonDeserialize(using = UnixTimeStampDeserializer.class) @JsonProperty("atime") LocalDateTime lastAccessTime,
//                            @JsonDeserialize(using = UnixTimeStampDeserializer.class) @JsonProperty("mtime") LocalDateTime lastModificationTime,
//                            @JsonDeserialize(using = UnixTimeStampDeserializer.class) @JsonProperty("ctime") LocalDateTime lastChangeTime,
//                            @JsonDeserialize(using = UnixTimeStampDeserializer.class) @JsonProperty("crtime") LocalDateTime creationTime) {
//         this.lastAccessTime = lastAccessTime;
//         this.lastModificationTime = lastModificationTime;
//         this.lastChangeTime = lastChangeTime;
//         this.creationTime = creationTime;
//     }
// 
//     public LocalDateTime getLastAccessTime() {
//         return lastAccessTime;
//     }
// 
//     public LocalDateTime getLastModificationTime() {
//         return lastModificationTime;
//     }
// 
//     public LocalDateTime getLastChangeTime() {
//         return lastChangeTime;
//     }
// 
//     public LocalDateTime getCreationTime() {
//         return creationTime;
//     }
// }
// 
// Path: dsm-webapi-client-filestation/src/main/java/com/github/gauthierj/dsm/webapi/client/filestation/common/User.java
// public class User {
// 
//     private final int gid;
//     private final String group;
//     private final int uid;
//     private final String username;
// 
//     @JsonCreator
//     public User(@JsonProperty("gid") int gid,
//                 @JsonProperty("group") String group,
//                 @JsonProperty("uid") int uid,
//                 @JsonProperty("user") String username) {
//         this.gid = gid;
//         this.group = group;
//         this.uid = uid;
//         this.username = username;
//     }
// 
//     public int getGid() {
//         return gid;
//     }
// 
//     public String getGroup() {
//         return group;
//     }
// 
//     public int getUid() {
//         return uid;
//     }
// 
//     public String getUsername() {
//         return username;
//     }
// }


// Path: dsm-webapi-client-filestation/src/main/java/com/github/gauthierj/dsm/webapi/client/filestation/filelist/FileProperties.java
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.github.gauthierj.dsm.webapi.client.filestation.common.TimeInformation;
import com.github.gauthierj.dsm.webapi.client.filestation.common.User;

package com.github.gauthierj.dsm.webapi.client.filestation.filelist;


public class FileProperties {

    private final String realPath;
    private final int size;
    private final User owner;
    private final TimeInformation timeInformation;
    private final FilePermission filePermission;
    private final String mountPointType;
    private final String type;

    @JsonCreator
    public FileProperties(
            @JsonProperty("real_path") String realPath,
            @JsonProperty("size") int size,
            @JsonProperty("owner") User owner,