package com.bocloud.cmp.provider.network;

import com.bocloud.cmp.model.VpcModel;
import com.bocloud.cmp.provider.SuperProvider;
import com.bocloud.common.model.BocloudResult;

public interface VpcProvider extends SuperProvider {
	public BocloudResult create(VpcModel model);

	public BocloudResult remove(String vpcId);

	public BocloudResult list();

	default BocloudResult list(String zone) {
		return null;
	}

	public BocloudResult detail(String vpcId, String regionId);

	public BocloudResult update(VpcModel model);

	default BocloudResult associateCidrBlock(String vpcId, String cidrBlock) {
		return null;
	}

	default BocloudResult associateIpv6CidrBlock(String vpcId) {
		return null;
	}

	default BocloudResult disassociateCidrBlock(String associationId) {
		return null;
	}

	default BocloudResult disassociateVpcCidrBlock(String vpcId, String cidrBlock) {
		return null;
	}

	default BocloudResult withDdos(String vpcId,String planId) {
		return null;
	}

	default BocloudResult withoutDdos(String vpcId) {
		return null;
	}

	default BocloudResult dnsServer(VpcModel model) {
		return new BocloudResult(false, "need implement");
	}

	default BocloudResult addAddressSpace(VpcModel model) {
		return new BocloudResult(false, "need implement");
	}

	default BocloudResult removeAddressSpace(VpcModel model) {
		return new BocloudResult(false, "need implement");
	}

}
