package com.netflix.appinfo;
/**
* Config related to loading of amazon metadata from the EC2 metadata url.
*
* @author David Liu
*/
public interface AmazonInfoConfig {
/**
* @return the config namespace
*/
String getNamespace();
/**
* @return whether errors reading from the ec2 metadata url should be logged
*/
boolean shouldLogAmazonMetadataErrors();
/**
* @return the read timeout when connecting to the metadata url
*/
int getReadTimeout();
/**
* @return the connect timeout when connecting to the metadata url
*/
int getConnectTimeout();
/**
* @return the number of retries when unable to read a value from the metadata url
*/
int getNumRetries();
/**
* When creating an AmazonInfo via {@link com.netflix.appinfo.AmazonInfo.Builder#autoBuild(String)},
* a fail fast mechanism exist based on the below configuration.
* If enabled (default to true), the {@link com.netflix.appinfo.AmazonInfo.Builder#autoBuild(String)}
* method will exit early after failing to load the value for the first metadata key (instanceId),
* after the expected number of retries as defined by {@link #getNumRetries()}.
*
* @return whether autoloading should fail fast if loading has failed for the first field (after all retries)
*/
boolean shouldFailFastOnFirstLoad();
/**
* When AmazonInfo is specified, setting this to false allows progress on building the AmazonInfo even if
* the instanceId of the environment is not able to be validated.
*
* @return whether to progress with AmazonInfo construction if the instanceId cannot be validated.
*/
boolean shouldValidateInstanceId();
}