diff --git a/core/api/src/main/java/org/onosproject/net/pi/runtime/PiActionParam.java b/core/api/src/main/java/org/onosproject/net/pi/runtime/PiActionParam.java
index 4498109..a8d565c 100644
--- a/core/api/src/main/java/org/onosproject/net/pi/runtime/PiActionParam.java
+++ b/core/api/src/main/java/org/onosproject/net/pi/runtime/PiActionParam.java
@@ -23,9 +23,11 @@
 
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
+import static org.onlab.util.ImmutableByteSequence.copyFrom;
 
 /**
- * Instance of an action runtime parameter in a match+action table of a protocol-independent pipeline.
+ * Instance of an action runtime parameter in a match+action table of a
+ * protocol-independent pipeline.
  */
 @Beta
 public final class PiActionParam {
@@ -34,7 +36,8 @@
     private final ImmutableByteSequence value;
 
     /**
-     * Creates an action's runtime parameter.
+     * Creates an action's runtime parameter for the given param ID and byte
+     * sequence value.
      *
      * @param id    parameter identifier
      * @param value value
@@ -46,6 +49,61 @@
     }
 
     /**
+     * Creates an action's runtime parameter for the given param ID and byte
+     * value.
+     *
+     * @param id    parameter identifier
+     * @param value value
+     */
+    public PiActionParam(PiActionParamId id, byte value) {
+        this(id, copyFrom(value));
+    }
+
+    /**
+     * Creates an action's runtime parameter for the given param ID and short
+     * value.
+     *
+     * @param id    parameter identifier
+     * @param value value
+     */
+    public PiActionParam(PiActionParamId id, short value) {
+        this(id, copyFrom(value));
+    }
+
+    /**
+     * Creates an action's runtime parameter for the given param ID and int
+     * value.
+     *
+     * @param id    parameter identifier
+     * @param value value
+     */
+    public PiActionParam(PiActionParamId id, int value) {
+        this(id, copyFrom(value));
+    }
+
+    /**
+     * Creates an action's runtime parameter for the given param ID and long
+     * value.
+     *
+     * @param id    parameter identifier
+     * @param value value
+     */
+    public PiActionParam(PiActionParamId id, long value) {
+        this(id, copyFrom(value));
+    }
+
+    /**
+     * Creates an action's runtime parameter for the given param ID and byte
+     * array value.
+     *
+     * @param id    parameter identifier
+     * @param value value
+     */
+    public PiActionParam(PiActionParamId id, byte[] value) {
+        this(id, copyFrom(value));
+    }
+
+    /**
      * Returns the identifier of this parameter.
      *
      * @return parameter identifier
