diff --git a/src/main/java/net/onrc/onos/apps/segmentrouting/SegmentRoutingManager.java b/src/main/java/net/onrc/onos/apps/segmentrouting/SegmentRoutingManager.java
index 53eb67f..11eab2f 100644
--- a/src/main/java/net/onrc/onos/apps/segmentrouting/SegmentRoutingManager.java
+++ b/src/main/java/net/onrc/onos/apps/segmentrouting/SegmentRoutingManager.java
@@ -1062,18 +1062,24 @@
     // Policy routing classes and functions
     // ************************************
 
+    /**
+     * Enums for policy type
+     *
+     */
+    public enum PolicyType{
+        TUNNEL_FLOW,
+        LOADBALANCE,
+        AVOID,
+        DENY
+    }
     public class PolicyInfo {
-
-        public final int TYPE_EXPLICIT = 1;
-        public final int TYPE_AVOID = 2;
-
         private String policyId;
         private PacketMatch match;
         private int priority;
         private String tunnelId;
-        private int type;
+        private PolicyType type;
 
-        public PolicyInfo(String pid, int type, PacketMatch match, int priority,
+        public PolicyInfo(String pid, PolicyType type, PacketMatch match, int priority,
                 String tid) {
             this.policyId = pid;
             this.match = match;
@@ -1088,7 +1094,7 @@
             this.match = match;
             this.priority = priority;
             this.tunnelId = tid;
-            this.type = 0;
+            this.type = PolicyType.TUNNEL_FLOW;
         }
         public String getPolicyId(){
             return this.policyId;
@@ -1102,7 +1108,7 @@
         public String getTunnelId(){
             return this.tunnelId;
         }
-        public int getType(){
+        public PolicyType getType(){
             return this.type;
         }
     }
diff --git a/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterPolicyInfo.java b/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterPolicyInfo.java
index 3a27267..7129a86 100644
--- a/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterPolicyInfo.java
+++ b/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterPolicyInfo.java
@@ -10,12 +10,12 @@
 
 public class SegmentRouterPolicyInfo {
     private String policyId;
-    private int policyType;
+    private String policyType;
     private int priority;
     private String tunnelId = null;
     private PacketMatch match;
     
-    public SegmentRouterPolicyInfo(String Id,int type,String tunnelUsed, int ppriority,PacketMatch flowEntries){
+    public SegmentRouterPolicyInfo(String Id,String type,String tunnelUsed, int ppriority,PacketMatch flowEntries){
         this.policyId = Id;
         this.policyType = type;
         this.tunnelId =tunnelUsed;
@@ -25,7 +25,7 @@
     public String getPolicyId(){
         return this.policyId;
     }
-    public int getPolicyType(){
+    public String getPolicyType(){
         return this.policyType;
     }
     public String getTunnelId(){
diff --git a/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterPolicyResource.java b/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterPolicyResource.java
index 8106173..a1a8a71 100644
--- a/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterPolicyResource.java
+++ b/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterPolicyResource.java
@@ -118,7 +118,7 @@
             String policyId = policy.getPolicyId();
             String tunnelId = policy.getTunnelId();
             int priority = policy.getPriority();
-            int policyType = policy.getType();
+            String policyType = policy.getType().name();
             PacketMatch flowEntries = policy.getMatch();
             SegmentRouterPolicyInfo pInfo = new SegmentRouterPolicyInfo(policyId, policyType, tunnelId,
                     priority,  flowEntries);
