content: package com.airbnb.airpal;
  
  import com.fasterxml.jackson.annotation.JsonProperty;
  import io.airlift.units.DataSize;
  import io.dropwizard.Configuration;
  import io.dropwizard.db.DataSourceFactory;
  import io.dropwizard.flyway.FlywayFactory;
  import io.dropwizard.util.Duration;
  import lombok.Getter;
  import lombok.Setter;
  import org.secnod.dropwizard.shiro.ShiroConfiguration;
  
  import javax.validation.Valid;
  import javax.validation.constraints.NotNull;
  
  import java.net.URI;
  
  public class AirpalConfiguration extends Configuration
  {
      @Getter
      @Setter
      @JsonProperty
      private URI prestoCoordinator = null;
  
      @Getter
      @Setter
      @JsonProperty
      @NotNull
      private String prestoUser = "airpalChangeMe";
  
      @Getter
      @Setter
      @JsonProperty
      @NotNull
      private String prestoSource = "airpal";
  
      @Getter
      @Setter
      @JsonProperty
      @NotNull
      private String prestoCatalog = "hive";
  
      @Getter
      @Setter
      @JsonProperty
      @NotNull
      private String prestoSchema = "default";
  
      @Getter
      @Setter
      @JsonProperty
      @NotNull
      private boolean prestoDebug = false;
  
      @Getter
      @Setter
      @JsonProperty
      @NotNull
      private Duration usageWindow = Duration.hours(6);
  
      @Getter
      @Setter
      @JsonProperty
      private String s3SecretKey;
  
      @Getter
      @Setter
      @JsonProperty
      private String s3AccessKey;
  
      @Getter
      @Setter
      @JsonProperty
      private String s3Bucket;
  
      @Getter
      @Setter
      @JsonProperty
      private String s3EncryptionMaterialsProvider;
  
      @Getter
      @Setter
      @JsonProperty
      private String createTableDestinationSchema = "airpal";
  
      @Getter
      @Setter
      private DataSize bufferSize = DataSize.valueOf("512kB");
  
      @Getter
      @Setter
      @JsonProperty
      @NotNull
      private DataSize maxOutputSize = DataSize.valueOf("1GB");
  
      @Getter
      @Setter
      @Valid
      @JsonProperty
      @NotNull
      private DataSourceFactory dataSourceFactory = new DataSourceFactory();
  
      @Getter
      @Setter
      @Valid
      @JsonProperty
      @NotNull
      private FlywayFactory flywayFactory = new FlywayFactory();
  
      @Getter
      @Setter
      @Valid
      @JsonProperty
      @NotNull
      private ShiroConfiguration shiro;
  
      @Getter
      @Setter
      @Valid
      @JsonProperty
      @NotNull
      private boolean useS3 = false;
  
      @Getter
      @Setter
      @Valid
      @JsonProperty
      @NotNull
      private boolean compressedOutput = false;
  }
  