@Override public ResourceAction perform(ResourceAction resourceAction) throws Exception { AWSEC2SubnetRouteTableAssociationResourceAction action = (AWSEC2SubnetRouteTableAssociationResourceAction) resourceAction; ServiceConfiguration configuration = Topology.lookup(Compute.class); if (!Boolean.TRUE.equals(action.info.getCreatedEnoughToDelete())) return action; if (!action.associationIdExistsForDelete(configuration)) return action; if (!action.routeTableExistsForDelete(configuration)) return action; if (!action.subnetExistsForDelete(configuration)) return action; action.disassociateRouteTable(configuration, action.info.getPhysicalResourceId()); return action; }