package com.sequenceiq.cloudbreak.cloud.aws;
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 AwsConnector implements CloudConnector {
@Inject
private AwsResourceConnector awsResourceConnector;
@Inject
private AwsInstanceConnector awsInstanceConnector;
@Inject
private AwsMetadataCollector awsMetadataCollector;
@Inject
private AwsCredentialConnector awsCredentialConnector;
@Inject
private AwsPlatformParameters awsPlatformParameters;
@Inject
private AwsSetup awsSetup;
@Inject
private AwsTagValidator awsTagValidator;
@Inject
private AwsAuthenticator awsAuthenticator;
@Override
public Platform platform() {
return AwsConstants.AWS_PLATFORM;
}
@Override
public Variant variant() {
return AwsConstants.AWS_VARIANT;
}
@Override
public Authenticator authentication() {
return awsAuthenticator;
}
@Override
public ResourceConnector resources() {
return awsResourceConnector;
}
@Override
public InstanceConnector instances() {
return awsInstanceConnector;
}
@Override
public MetadataCollector metadata() {
return awsMetadataCollector;
}
@Override
public PlatformParameters parameters() {
return awsPlatformParameters;
}
@Override
public Setup setup() {
return awsSetup;
}
@Override
public List<Validator> validators() {
return Collections.singletonList(awsTagValidator);
}
@Override
public CredentialConnector credentials() {
return awsCredentialConnector;
}
}