// Path: harahachibu/src/main/java/uk/co/flax/harahachibu/config/DiskSpaceConfiguration.java
// public class DiskSpaceConfiguration {
// 
// 	public static final String ELASTICSEARCH_CHECKER = "elasticsearch";
// 	public static final String SOLR_LOCAL_CHECKER = "solr";
// 	public static final String CLUSTER_CHECKER = "cluster";
// 
// 	@NotNull
// 	private String checkerType;
// 
// 	@NotNull
// 	private String threshold;
// 
// 	@NotNull
// 	private Map<String, Object> configuration = new HashMap<>();
// 
// 
// 	public String getCheckerType() {
// 		return checkerType;
// 	}
// 
// 	public void setCheckerType(String checkerType) {
// 		this.checkerType = checkerType;
// 	}
// 
// 	public String getThreshold() {
// 		return threshold;
// 	}
// 
// 	public void setThreshold(String threshold) {
// 		this.threshold = threshold;
// 	}
// 
// 	public Map<String, Object> getConfiguration() {
// 		return configuration;
// 	}
// 
// 	public void setConfiguration(Map<String, Object> configuration) {
// 		this.configuration = configuration;
// 	}
// }
// 
// Path: harahachibu/src/main/java/uk/co/flax/harahachibu/config/ProxyConfiguration.java
// public class ProxyConfiguration {
// 
// 	private int errorStatus = 503;
// 
// 	@NotNull
// 	private String destinationServer;
// 
// 	private List<String> checkUrls = new ArrayList<>();
// 
// 	public int getErrorStatus() {
// 		return errorStatus;
// 	}
// 
// 	public void setErrorStatus(int status) {
// 		this.errorStatus = status;
// 	}
// 
// 	public String getDestinationServer() {
// 		return destinationServer;
// 	}
// 
// 	public void setDestinationServer(String destinationServer) {
// 		this.destinationServer = destinationServer;
// 	}
// 
// 	public List<String> getCheckUrls() {
// 		return checkUrls;
// 	}
// 
// 	public void setCheckUrls(List<String> checkUrls) {
// 		this.checkUrls = checkUrls;
// 	}
// }


import io.dropwizard.Configuration;
import io.dropwizard.client.JerseyClientConfiguration;
import uk.co.flax.harahachibu.config.DiskSpaceConfiguration;
import uk.co.flax.harahachibu.config.ProxyConfiguration;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
/**
 * Copyright (c) 2016 Lemur Consulting Ltd.
 * <p/>
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * <p/>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p/>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package uk.co.flax.harahachibu;



/**
 * Base configuration class for the Hara Hachi Bu proxy application.
 *
 * Created by mlp on 13/04/16.
 */
public class HaraHachiBuConfiguration extends Configuration {

	@Valid @NotNull
	private ProxyConfiguration proxy;

	@Valid @NotNull
	private JerseyClientConfiguration jerseyClient = new JerseyClientConfiguration();

	@Valid @NotNull
	private DiskSpaceConfiguration diskSpace;

	public ProxyConfiguration getProxy() {
		return proxy;
	}

// Path: harahachibu/src/main/java/uk/co/flax/harahachibu/config/DiskSpaceConfiguration.java
// public class DiskSpaceConfiguration {
// 
// 	public static final String ELASTICSEARCH_CHECKER = "elasticsearch";
// 	public static final String SOLR_LOCAL_CHECKER = "solr";
// 	public static final String CLUSTER_CHECKER = "cluster";
// 
// 	@NotNull
// 	private String checkerType;
// 
// 	@NotNull
// 	private String threshold;
// 
// 	@NotNull
// 	private Map<String, Object> configuration = new HashMap<>();
// 
// 
// 	public String getCheckerType() {
// 		return checkerType;
// 	}
// 
// 	public void setCheckerType(String checkerType) {
// 		this.checkerType = checkerType;
// 	}
// 
// 	public String getThreshold() {
// 		return threshold;
// 	}
// 
// 	public void setThreshold(String threshold) {
// 		this.threshold = threshold;
// 	}
// 
// 	public Map<String, Object> getConfiguration() {
// 		return configuration;
// 	}
// 
// 	public void setConfiguration(Map<String, Object> configuration) {
// 		this.configuration = configuration;
// 	}
// }
// 
// Path: harahachibu/src/main/java/uk/co/flax/harahachibu/config/ProxyConfiguration.java
// public class ProxyConfiguration {
// 
// 	private int errorStatus = 503;
// 
// 	@NotNull
// 	private String destinationServer;
// 
// 	private List<String> checkUrls = new ArrayList<>();
// 
// 	public int getErrorStatus() {
// 		return errorStatus;
// 	}
// 
// 	public void setErrorStatus(int status) {
// 		this.errorStatus = status;
// 	}
// 
// 	public String getDestinationServer() {
// 		return destinationServer;
// 	}
// 
// 	public void setDestinationServer(String destinationServer) {
// 		this.destinationServer = destinationServer;
// 	}
// 
// 	public List<String> getCheckUrls() {
// 		return checkUrls;
// 	}
// 
// 	public void setCheckUrls(List<String> checkUrls) {
// 		this.checkUrls = checkUrls;
// 	}
// }


// Path: harahachibu/src/main/java/uk/co/flax/harahachibu/HaraHachiBuConfiguration.java
import io.dropwizard.Configuration;
import io.dropwizard.client.JerseyClientConfiguration;
import uk.co.flax.harahachibu.config.DiskSpaceConfiguration;
import uk.co.flax.harahachibu.config.ProxyConfiguration;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;

/**
 * Copyright (c) 2016 Lemur Consulting Ltd.
 * <p/>
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * <p/>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p/>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package uk.co.flax.harahachibu;



/**
 * Base configuration class for the Hara Hachi Bu proxy application.
 *
 * Created by mlp on 13/04/16.
 */
public class HaraHachiBuConfiguration extends Configuration {

	@Valid @NotNull
	private ProxyConfiguration proxy;

	@Valid @NotNull
	private JerseyClientConfiguration jerseyClient = new JerseyClientConfiguration();

	@Valid @NotNull
	private DiskSpaceConfiguration diskSpace;

	public ProxyConfiguration getProxy() {
		return proxy;
	}

	public void setProxy(ProxyConfiguration proxy) {