class DynamicTable {

    @JsonProperty
    public String getTableName()
    {
        return tableName;
    }

    @JsonCreator public  DynamicTable(
            @JsonProperty("tableName") String tableName,
            @JsonProperty("suffix") Optional<String> suffix,
            @JsonProperty("selections") List<String> selections,
            @JsonProperty("groupingColumns") List<String> groupingColumns,
            @JsonProperty("filter") Optional<String> filter,
            @JsonProperty("aggregateColumns") List<AggregationExpression> aggregateColumns,
            @JsonProperty("orderBy") List<OrderByExpression> orderBy,
            @JsonProperty("limit") OptionalLong limit,
            @JsonProperty("offset") OptionalLong offset,
            @JsonProperty("query") String query);

}