package com.bocloud.cmp.provider.network;

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

public interface SubnetProvider extends SuperProvider {
    public BocloudResult list();

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

    default BocloudResult associateIpv6CidrBlock(String subnetId, String ipv6CidrBlock) {
        return null;
    }

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

    BocloudResult create(SubnetModel subnet);

    BocloudResult modify(SubnetModel subnet);

    BocloudResult remove(String subnetId);

    BocloudResult detail(String subnetId);

    BocloudResult remove(SubnetModel subnet);

    default BocloudResult associate(SubnetModel model) {
        return new BocloudResult(false, "need implement");
    }

    default BocloudResult release(SubnetModel model) {
        return new BocloudResult(false, "need implement");
    }

}
