/* * (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.policy.services.AutoscalePolicyModule; import com.centurylink.cloud.sdk.policy.services.dsl.AutoscalePolicyService; import com.centurylink.cloud.sdk.base.services.BaseModule; import com.centurylink.cloud.sdk.base.services.dsl.DataCenterService; import com.centurylink.cloud.sdk.core.auth.AuthModule; 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.core.injector.Inject; import com.centurylink.cloud.sdk.core.injector.SdkInjector; import com.centurylink.cloud.sdk.policy.services.FirewallPolicyModule; import com.centurylink.cloud.sdk.policy.services.dsl.FirewallPolicyService; import com.centurylink.cloud.sdk.loadbalancer.services.LoadBalancerModule; 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.PolicyModule; import com.centurylink.cloud.sdk.policy.services.dsl.PolicyService; import com.centurylink.cloud.sdk.server.services.NetworkModule; import com.centurylink.cloud.sdk.server.services.ServerModule; import com.centurylink.cloud.sdk.server.services.dsl.*; /** * @author ilya.drabenia */ public class ClcSdk { @Inject ServerService serverService; @Inject GroupService groupService; @Inject TemplateService templateService; @Inject DataCenterService dataCenterService; @Inject CredentialsProvider credentialsProvider; @Inject StatisticsService statisticsService; @Inject PolicyService policyService; @Inject InvoiceService invoiceService; @Inject LoadBalancerService loadBalancerService; @Inject LoadBalancerPoolService loadBalancerPoolService; @Inject LoadBalancerNodeService loadBalancerNodeService; @Inject FirewallPolicyService firewallPolicyService; @Inject AutoscalePolicyService autoscalePolicyService; @Inject NetworkService networkService; public ClcSdk() { this(new DefaultCredentialsProvider()); } public ClcSdk(CredentialsProvider credentialsProvider) { this(credentialsProvider, SdkConfiguration.builder().build()); } public ClcSdk(CredentialsProvider credentialsProvider, SdkConfiguration config) { SdkInjector .createInjector( config.asModule(), new BaseModule(), new AuthModule(credentialsProvider), new ServerModule(), new PolicyModule(), new LoadBalancerModule(), new FirewallPolicyModule(), new AutoscalePolicyModule(), new NetworkModule() ) .injectMembers(this); } public ServerService serverService() { return serverService; } public GroupService groupService() { return groupService; } public TemplateService templateService() { return templateService; } public DataCenterService dataCenterService() { return dataCenterService; } public CredentialsProvider getCredentialsProvider() { return credentialsProvider; } public StatisticsService statisticsService() { return statisticsService; } public PolicyService policyService() { return policyService; } public InvoiceService invoiceService() { return invoiceService; } public LoadBalancerService loadBalancerService() { return loadBalancerService; } public LoadBalancerPoolService loadBalancerPoolService() { return loadBalancerPoolService; } public LoadBalancerNodeService loadBalancerNodeService() { return loadBalancerNodeService; } public FirewallPolicyService firewallPolicyService() { return firewallPolicyService; } public AutoscalePolicyService autoscalePolicyService() { return autoscalePolicyService; } public NetworkService networkService() { return networkService; } }