package org.bitionaire.elbombillo.account;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.dropwizard.Configuration;
import io.dropwizard.client.JerseyClientConfiguration;
import io.dropwizard.db.DataSourceFactory;
import io.federecio.dropwizard.swagger.SwaggerBundleConfiguration;
import lombok.Getter;
import org.bitionaire.elbombillo.account.core.registry.RegistryService;
import org.bitionaire.elbombillo.account.core.registry.model.ServiceInformation;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
/** This class represents the configuration for the {@link AccountServiceApplication}. */
public class AccountServiceConfiguration extends Configuration {
/** The database configuration. */
@JsonProperty("database")
@Valid @NotNull
@Getter private DataSourceFactory database = new DataSourceFactory();
/** Initialized configuration for a HTTP client. */
@JsonProperty("httpClient")
@Valid @NotNull
@Getter private JerseyClientConfiguration httpClient = new JerseyClientConfiguration();
/** The information about this service. */
@JsonProperty("service")
@Valid @NotNull
@Getter private ServiceInformation serviceInformation;
/** The information about the registry service. */
@JsonProperty("registry")
@Valid @NotNull
@Getter private RegistryService registryService;
/** The Swagger API-Doc configuration. */
@JsonProperty("swagger")
@Valid @NotNull
@Getter private SwaggerBundleConfiguration swaggerBundleConfiguration;
}