package com.sequenceiq.cloudbreak.cloud.azure;
import java.util.Collections;
import java.util.List;
import javax.inject.Inject;
import org.springframework.stereotype.Service;
import com.sequenceiq.cloudbreak.cloud.Authenticator;
import com.sequenceiq.cloudbreak.cloud.CloudConnector;
import com.sequenceiq.cloudbreak.cloud.CredentialConnector;
import com.sequenceiq.cloudbreak.cloud.InstanceConnector;
import com.sequenceiq.cloudbreak.cloud.MetadataCollector;
import com.sequenceiq.cloudbreak.cloud.PlatformParameters;
import com.sequenceiq.cloudbreak.cloud.ResourceConnector;
import com.sequenceiq.cloudbreak.cloud.Setup;
import com.sequenceiq.cloudbreak.cloud.Validator;
import com.sequenceiq.cloudbreak.cloud.model.Platform;
import com.sequenceiq.cloudbreak.cloud.model.Variant;
@Service
public class AzureConnector implements CloudConnector {
@Inject
private AzureAuthenticator azureAuthenticator;
@Inject
private AzureSetup azureSetup;
@Inject
private AzureTagValidator azureTagValidator;
@Inject
private AzureCredentialConnector azureCredentialConnector;
@Inject
private AzureResourceConnector azureResourceConnector;
@Inject
private AzureInstanceConnector azureInstanceConnector;
@Inject
private AzureMetadataCollector azureMetadataCollector;
@Inject
private AzurePlatformParameters azurePlatformParameters;
public Authenticator authentication() {
return azureAuthenticator;
}
public Setup setup() {
return azureSetup;
}
@Override
public List<Validator> validators() {
return Collections.singletonList(azureTagValidator);
}
public CredentialConnector credentials() {
return azureCredentialConnector;
}
public ResourceConnector resources() {
return azureResourceConnector;
}
public InstanceConnector instances() {
return azureInstanceConnector;
}
public MetadataCollector metadata() {
return azureMetadataCollector;
}
public PlatformParameters parameters() {
return azurePlatformParameters;
}
public Platform platform() {
return AzureConstants.PLATFORM;
}
public Variant variant() {
return AzureConstants.VARIANT;
}
}