// Path: src/main/java/nl/esciencecenter/ahn/pointcloud/job/XenonConfiguration.java
// public class XenonConfiguration {
//     /**
//      * Scheduler configuration used to submit jobs
//      */
//     @Valid
//     @JsonProperty
//     private SchedulerConfiguration scheduler;
// 
//     /**
//      * Xenon global properties
//      */
//     @JsonProperty
//     private ImmutableMap<String, String> properties = ImmutableMap.of();
// 
//     private XenonConfiguration() {
//     }
// 
//     public XenonConfiguration(SchedulerConfiguration scheduler, ImmutableMap<String, String> properties) {
//         this.scheduler = scheduler;
//         this.properties = properties;
//     }
// 
//     public SchedulerConfiguration getScheduler() {
//         return scheduler;
//     }
// 
//     public Map<String, String> getProperties() {
//         return properties;
//     }
// }


import com.fasterxml.jackson.annotation.JsonProperty;
import io.dropwizard.Configuration;
import io.dropwizard.db.DataSourceFactory;
import io.federecio.dropwizard.swagger.SwaggerBundleConfiguration;
import nl.esciencecenter.ahn.pointcloud.job.XenonConfiguration;
import org.hibernate.validator.constraints.Range;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
package nl.esciencecenter.ahn.pointcloud;



public class ViewerConfiguration extends Configuration {

    @Valid
    @Range(min=1)
    @JsonProperty
    private long pointsLimit;

    @Valid
    @NotNull
    @JsonProperty
    private DataSourceFactory database = new DataSourceFactory();

    @Valid
    @NotNull
    @JsonProperty
// Path: src/main/java/nl/esciencecenter/ahn/pointcloud/job/XenonConfiguration.java
// public class XenonConfiguration {
//     /**
//      * Scheduler configuration used to submit jobs
//      */
//     @Valid
//     @JsonProperty
//     private SchedulerConfiguration scheduler;
// 
//     /**
//      * Xenon global properties
//      */
//     @JsonProperty
//     private ImmutableMap<String, String> properties = ImmutableMap.of();
// 
//     private XenonConfiguration() {
//     }
// 
//     public XenonConfiguration(SchedulerConfiguration scheduler, ImmutableMap<String, String> properties) {
//         this.scheduler = scheduler;
//         this.properties = properties;
//     }
// 
//     public SchedulerConfiguration getScheduler() {
//         return scheduler;
//     }
// 
//     public Map<String, String> getProperties() {
//         return properties;
//     }
// }


// Path: src/main/java/nl/esciencecenter/ahn/pointcloud/ViewerConfiguration.java
import com.fasterxml.jackson.annotation.JsonProperty;
import io.dropwizard.Configuration;
import io.dropwizard.db.DataSourceFactory;
import io.federecio.dropwizard.swagger.SwaggerBundleConfiguration;
import nl.esciencecenter.ahn.pointcloud.job.XenonConfiguration;
import org.hibernate.validator.constraints.Range;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;

package nl.esciencecenter.ahn.pointcloud;



public class ViewerConfiguration extends Configuration {

    @Valid
    @Range(min=1)
    @JsonProperty
    private long pointsLimit;

    @Valid
    @NotNull
    @JsonProperty
    private DataSourceFactory database = new DataSourceFactory();

    @Valid
    @NotNull
    @JsonProperty
    private XenonConfiguration xenon;