All Downloads are FREE. Search and download functionalities are using the official Maven repository.

brooklyn.entity.dns.geoscaling.GeoscalingDnsService Maven / Gradle / Ivy

package brooklyn.entity.dns.geoscaling;

import brooklyn.config.ConfigKey;
import brooklyn.entity.dns.AbstractGeoDnsService;
import brooklyn.entity.proxying.ImplementedBy;
import brooklyn.entity.webapp.WebAppServiceConstants;
import brooklyn.event.AttributeSensor;
import brooklyn.event.basic.BasicAttributeSensor;
import brooklyn.event.basic.BasicConfigKey;
import brooklyn.util.flags.SetFromFlag;

@ImplementedBy(GeoscalingDnsServiceImpl.class)
public interface GeoscalingDnsService extends AbstractGeoDnsService {
    
    @SetFromFlag("randomizeSubdomainName")
    public static final ConfigKey RANDOMIZE_SUBDOMAIN_NAME = new BasicConfigKey(
            Boolean.class, "randomize.subdomain.name");
    @SetFromFlag("username")
    public static final ConfigKey GEOSCALING_USERNAME = new BasicConfigKey(
            String.class, "geoscaling.username");
    @SetFromFlag("password")
    public static final ConfigKey GEOSCALING_PASSWORD = new BasicConfigKey(
            String.class, "geoscaling.password");
    @SetFromFlag("primaryDomainName")
    public static final ConfigKey GEOSCALING_PRIMARY_DOMAIN_NAME = new BasicConfigKey(
            String.class, "geoscaling.primary.domain.name");
    @SetFromFlag("smartSubdomainName")
    public static final ConfigKey GEOSCALING_SMART_SUBDOMAIN_NAME = new BasicConfigKey(
            String.class, "geoscaling.smart.subdomain.name");
    
    public static final AttributeSensor GEOSCALING_ACCOUNT = new BasicAttributeSensor(
            String.class, "geoscaling.account", "Active user account for the GeoScaling.com service");
    public static final AttributeSensor ROOT_URL = WebAppServiceConstants.ROOT_URL;
    public static final AttributeSensor MANAGED_DOMAIN = new BasicAttributeSensor(
            String.class, "geoscaling.managed.domain", "Fully qualified domain name that will be geo-redirected; " +
            		"this will be the same as "+ROOT_URL.getName()+" but the latter will only be set when the domain has active targets");
    
    public void applyConfig();
    
    /** minimum/default TTL here is 300s = 5m */
    public long getTimeToLiveSeconds();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy