package com.datasift.client.pylon;

import com.datasift.client.BaseDataSiftResult;
import com.fasterxml.jackson.annotation.JsonProperty;

public class PylonRecording extends BaseDataSiftResult {
    @JsonProperty("id")
    protected String recordingId;
    @JsonProperty
    protected String hash;
    @JsonProperty
    protected int start;
    @JsonProperty
    protected int end;
    @JsonProperty
    protected int volume;
    @JsonProperty
    protected String name;
    @JsonProperty
    protected String status;
    @JsonProperty("remaining_index_capacity")
    protected int remainingIndexCapacity;
    @JsonProperty("remaining_account_capacity")
    protected int remainingAccountCapacity;
    @JsonProperty("reached_capacity")
    protected boolean reachedCapacity;

    public static class PylonRecordingId extends BaseDataSiftResult {

        @JsonProperty
        protected String id;

        public PylonRecordingId() {
        }

        public PylonRecordingId(String id) {
            this.id = id;
        }

        public String getId() {
            return id;
        }
    }

    public PylonRecording() {
    }

    public PylonRecordingId getRecordingId() { return new PylonRecordingId(this.recordingId); }

    public String getHash() { return this.hash; }

    public int getStart() { return this.start; }

    public int getEnd() { return this.end; }

    public String getName() { return this.name; }

    public int getVolume() { return this.volume; }

    public String getStatus() { return this.status; }

    public int getRemainingIndexCapacity() { return this.remainingIndexCapacity; }

    public int getRemainingAccountCapacity() { return this.remainingAccountCapacity; }

    public boolean isReachedCapacity() { return this.reachedCapacity; }
}

@@ -120,24 +120,180 @@
 ion.Json
-Property
+Getter;%0Aimport com.fasterxml.jackson.annotation.JsonIgnore;%0Aimport com.fasterxml.jackson.annotation.JsonProperty;%0Aimport com.fasterxml.jackson.annotation.JsonSetter
 ;%0A%0Apubli
@@ -357,22 +357,14 @@
 Json
-Property(%22id%22)
+Ignore
 %0A   
@@ -374,22 +374,32 @@
 otected 
-Str
+PylonRecord
 ing
+Id
  recordi
@@ -404,16 +404,17 @@
 dingId;%0A
+%0A
     @Jso
@@ -450,16 +450,17 @@
 g hash;%0A
+%0A
     @Jso
@@ -494,16 +494,17 @@
  start;%0A
+%0A
     @Jso
@@ -536,16 +536,17 @@
 nt end;%0A
+%0A
     @Jso
@@ -577,24 +577,25 @@
 int volume;%0A
+%0A
     @JsonPro
@@ -627,16 +627,17 @@
 g name;%0A
+%0A
     @Jso
@@ -675,16 +675,17 @@
 status;%0A
+%0A
     @Jso
@@ -756,32 +756,33 @@
 gIndexCapacity;%0A
+%0A
     @JsonPropert
@@ -857,16 +857,17 @@
 pacity;%0A
+%0A
     @Jso
@@ -1293,32 +1293,208 @@
 () %7B%0A    %7D%0A%0A    
+@JsonGetter%0A    private String getId() %7B return this.recordingId.id; %7D%0A%0A    @JsonSetter%0A    private void setId(String id) %7B this.recordingId = new PylonRecordingId(id); %7D%0A%0A    
 public PylonReco
@@ -1527,37 +1527,16 @@
  return 
-new PylonRecordingId(
 this.rec
@@ -1543,17 +1543,16 @@
 ordingId
-)
 ; %7D%0A%0A   

Update PylonRecording to use strongly typed PylonRecordingId