/* * (c) 2015 CenturyLink. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.centurylink.cloud.sdk; import com.centurylink.cloud.sdk.base.services.dsl.DataCenterService; import com.centurylink.cloud.sdk.core.auth.services.domain.credentials.CredentialsProvider; import com.centurylink.cloud.sdk.core.auth.services.domain.credentials.DefaultCredentialsProvider; import com.centurylink.cloud.sdk.core.config.SdkConfiguration; import com.centurylink.cloud.sdk.loadbalancer.services.dsl.LoadBalancerNodeService; import com.centurylink.cloud.sdk.loadbalancer.services.dsl.LoadBalancerPoolService; import com.centurylink.cloud.sdk.loadbalancer.services.dsl.LoadBalancerService; import com.centurylink.cloud.sdk.policy.services.dsl.AutoscalePolicyService; import com.centurylink.cloud.sdk.policy.services.dsl.FirewallPolicyService; import com.centurylink.cloud.sdk.policy.services.dsl.PolicyService; import com.centurylink.cloud.sdk.server.services.dsl.GroupService; import com.centurylink.cloud.sdk.server.services.dsl.InvoiceService; import com.centurylink.cloud.sdk.server.services.dsl.NetworkService; import com.centurylink.cloud.sdk.server.services.dsl.ServerService; import com.centurylink.cloud.sdk.server.services.dsl.StatisticsService; import com.centurylink.cloud.sdk.server.services.dsl.TemplateService; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class ClcSpringConfig implements InitializingBean { private CredentialsProvider credentialsProvider; private SdkConfiguration sdkConfig = SdkConfiguration.DEFAULT; private ClcSdk sdk; @Autowired(required = false) public void setClcSdkConfig(SdkConfiguration sdkConfig) { this.sdkConfig = sdkConfig; } @Autowired(required = false) public void setClcCredentialsProvider(CredentialsProvider provider) { this.credentialsProvider = provider; } @Override public void afterPropertiesSet() throws Exception { sdk = new ClcSdk( (credentialsProvider != null) ? credentialsProvider : new DefaultCredentialsProvider(), sdkConfig ); } @Bean public ServerService clcServerService() { return sdk.serverService(); } @Bean public GroupService clcGroupService() { return sdk.groupService(); } @Bean public TemplateService clcTemplateService() { return sdk.templateService(); } @Bean public DataCenterService clcDataCenterService() { return sdk.dataCenterService(); } @Bean public ClcSdk clcSdk() { return sdk; } @Bean public StatisticsService clcStatisticsService() { return sdk.statisticsService(); } @Bean public PolicyService clcPolicyService() { return sdk.policyService(); } @Bean public InvoiceService clcInvoiceService() { return sdk.invoiceService(); } @Bean public LoadBalancerService clcLoadBalancerService() { return sdk.loadBalancerService(); } @Bean public LoadBalancerPoolService clcLoadBalancerPoolService() { return sdk.loadBalancerPoolService(); } @Bean public LoadBalancerNodeService clcLoadBalancerNodeService() { return sdk.loadBalancerNodeService(); } @Bean public FirewallPolicyService clcFirewallPolicyService() { return sdk.firewallPolicyService(); } @Bean public AutoscalePolicyService clcAutoscalePolicyService() { return sdk.autoscalePolicyService(); } @Bean public NetworkService clcNetworkService() { return sdk.networkService(); } }