package io.fathom.cloud.compute.scheduler; import io.fathom.cloud.CloudException; import io.fathom.cloud.compute.networks.VirtualIp; import io.fathom.cloud.protobuf.CloudModel.InstanceData; import io.fathom.cloud.protobuf.CloudModel.SecurityGroupData; import java.io.Closeable; import java.util.List; import java.util.Set; public interface ConfigurationOperation extends Closeable { void configureFirewall(InstanceData instance, List<SecurityGroupData> securityGroups) throws CloudException; void removeFirewallConfig(InstanceData instance) throws CloudException; boolean applyChanges() throws CloudException; void attachVip(InstanceData instance, VirtualIp vip) throws CloudException; void detachVip(InstanceData instance, VirtualIp vip) throws CloudException; void configureIpset(long securityGroupId, Set<String> ips) throws CloudException; }