// Path: src/main/java/eu/luminis/elastic/document/response/Hits.java
// public class Hits<T> {
// 
//     private List<Hit<T>> hits;
// 
//     @JsonProperty("total")
//     private Long total;
// 
//     @JsonProperty("max_score")
//     private Double maxScore;
// 
//     public List<Hit<T>> getHits() {
//         return hits;
//     }
// 
//     public void setHits(List<Hit<T>> hits) {
//         this.hits = hits;
//     }
// 
//     public Long getTotal() {
//         return total;
//     }
// 
//     public void setTotal(Long total) {
//         this.total = total;
//     }
// 
//     public Double getMaxScore() {
//         return maxScore;
//     }
// 
//     public void setMaxScore(Double maxScore) {
//         this.maxScore = maxScore;
//     }
// }
// 
// Path: src/main/java/eu/luminis/elastic/document/response/Shards.java
// public class Shards {
//     private Integer total;
// 
//     private Integer successful;
// 
//     private Integer failed;
// 
//     private Integer skipped;
// 
//     public Integer getFailed() {
//         return failed;
//     }
// 
//     public void setFailed(Integer failed) {
//         this.failed = failed;
//     }
// 
//     public Integer getSuccessful() {
//         return successful;
//     }
// 
//     public void setSuccessful(Integer successful) {
//         this.successful = successful;
//     }
// 
//     public Integer getTotal() {
//         return total;
//     }
// 
//     public void setTotal(Integer total) {
//         this.total = total;
//     }
// 
//     public Integer getSkipped() {
//         return skipped;
//     }
// 
//     public void setSkipped(Integer skipped) {
//         this.skipped = skipped;
//     }
// }
// 
// Path: src/main/java/eu/luminis/elastic/search/response/aggregations/Aggregation.java
// public class Aggregation {
//     private String name;
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// }


import com.fasterxml.jackson.annotation.JsonProperty;
import eu.luminis.elastic.document.response.Hits;
import eu.luminis.elastic.document.response.Shards;
import eu.luminis.elastic.search.response.aggregations.Aggregation;
import java.util.Map;
package eu.luminis.elastic.search.response.query;




public class ElasticQueryResponse<T> {
    private Long took;

    @JsonProperty(value = "timed_out")
    private Boolean timedOut;

    @JsonProperty(value = "_shards")
    private Shards shards;

    private Hits<T> hits;

// Path: src/main/java/eu/luminis/elastic/document/response/Hits.java
// public class Hits<T> {
// 
//     private List<Hit<T>> hits;
// 
//     @JsonProperty("total")
//     private Long total;
// 
//     @JsonProperty("max_score")
//     private Double maxScore;
// 
//     public List<Hit<T>> getHits() {
//         return hits;
//     }
// 
//     public void setHits(List<Hit<T>> hits) {
//         this.hits = hits;
//     }
// 
//     public Long getTotal() {
//         return total;
//     }
// 
//     public void setTotal(Long total) {
//         this.total = total;
//     }
// 
//     public Double getMaxScore() {
//         return maxScore;
//     }
// 
//     public void setMaxScore(Double maxScore) {
//         this.maxScore = maxScore;
//     }
// }
// 
// Path: src/main/java/eu/luminis/elastic/document/response/Shards.java
// public class Shards {
//     private Integer total;
// 
//     private Integer successful;
// 
//     private Integer failed;
// 
//     private Integer skipped;
// 
//     public Integer getFailed() {
//         return failed;
//     }
// 
//     public void setFailed(Integer failed) {
//         this.failed = failed;
//     }
// 
//     public Integer getSuccessful() {
//         return successful;
//     }
// 
//     public void setSuccessful(Integer successful) {
//         this.successful = successful;
//     }
// 
//     public Integer getTotal() {
//         return total;
//     }
// 
//     public void setTotal(Integer total) {
//         this.total = total;
//     }
// 
//     public Integer getSkipped() {
//         return skipped;
//     }
// 
//     public void setSkipped(Integer skipped) {
//         this.skipped = skipped;
//     }
// }
// 
// Path: src/main/java/eu/luminis/elastic/search/response/aggregations/Aggregation.java
// public class Aggregation {
//     private String name;
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// }


// Path: src/main/java/eu/luminis/elastic/search/response/query/ElasticQueryResponse.java
import com.fasterxml.jackson.annotation.JsonProperty;
import eu.luminis.elastic.document.response.Hits;
import eu.luminis.elastic.document.response.Shards;
import eu.luminis.elastic.search.response.aggregations.Aggregation;
import java.util.Map;

package eu.luminis.elastic.search.response.query;




public class ElasticQueryResponse<T> {
    private Long took;

    @JsonProperty(value = "timed_out")
    private Boolean timedOut;

    @JsonProperty(value = "_shards")
    private Shards shards;

    private Hits<T> hits;

    private Map<String,Aggregation> aggregations;