package com.bocloud.cmp.provider.common;

import java.util.List;

import com.bocloud.cmp.model.DataStoreModel;
import com.bocloud.cmp.model.HostModel;
import com.bocloud.cmp.model.LbListenerModel;
import com.bocloud.cmp.model.contentlibrary.LibraryModel;
import com.bocloud.cmp.provider.SuperProvider;
import com.bocloud.common.model.BocloudResult;

/**
 * 平台同步操作接口
 *
 * @author weiwei
 */
public interface LocationProvider extends SuperProvider {
	default BocloudResult sync() {
		return null;
	}

	default BocloudResult getHostModel(HostModel host) {
		return null;
	}

	default BocloudResult getManagedSystemSyncInfo(String uuid) {
		return new BocloudResult(false, "需要覆盖的方法");
	}

	default BocloudResult<List<DataStoreModel>> syncStoreImages(String vdcName) {
		return null;
	}

	default BocloudResult listRegions() {
		return null;
	}

	default BocloudResult listZones(String region) {
		return null;
	}

	default BocloudResult syncPortByNetworkUuid(String networkUuid) {
		return null;
	}

	default BocloudResult syncAwsImages() {
		return null;
	}

	default BocloudResult syncAwsCost() {
		return null;
	}

	default BocloudResult syncAwsLoadBalancer() {
		return null;
	}

	default BocloudResult syncHostAggregate() {
		return null;
	}

	default BocloudResult syncSecurityGroups() {
		return null;
	}

	default BocloudResult syncStack(LbListenerModel lbListenerModel) {
		return null;
	}

	default BocloudResult syncHostStatus() {
		return null;
	}

	default BocloudResult<List<LibraryModel>> listLibraries() {
		return null;
	}

	default BocloudResult syncAliCost(String billingCycle, String granularity, String billingDate) {
		return null;
	}

	default BocloudResult syncImages() {
		return null;
	}
}
