diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/provenance/ProvenanceEventRecord.java b/nifi/nifi-api/src/main/java/org/apache/nifi/provenance/ProvenanceEventRecord.java
index 4b1b1a0..4e83e30 100644
--- a/nifi/nifi-api/src/main/java/org/apache/nifi/provenance/ProvenanceEventRecord.java
+++ b/nifi/nifi-api/src/main/java/org/apache/nifi/provenance/ProvenanceEventRecord.java
@@ -98,6 +98,14 @@
      * @return
      */
     Map<String, String> getAttributes();
+    
+    /**
+     * Returns the value of FlowFile attribute with the given name, or <code>null</code>
+     * if no attribute exists with that name
+     * 
+     * @return
+     */
+    String getAttribute(String attributeName);
 
     /**
      * Returns all FlowFile attributes that existed on the FlowFile before this
diff --git a/nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/IdEnrichedProvenanceEvent.java b/nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/IdEnrichedProvenanceEvent.java
index 4ef0e5d..85ce91c 100644
--- a/nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/IdEnrichedProvenanceEvent.java
+++ b/nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/IdEnrichedProvenanceEvent.java
@@ -80,6 +80,10 @@
         return event.getEventType();
     }
 
+    public String getAttribute(final String attributeName) {
+        return event.getAttribute(attributeName);
+    }
+    
     public Map<String, String> getAttributes() {
         return event.getAttributes();
     }
diff --git a/nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardProvenanceEventRecord.java b/nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardProvenanceEventRecord.java
index cfbae88..bd2c2ad 100644
--- a/nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardProvenanceEventRecord.java
+++ b/nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardProvenanceEventRecord.java
@@ -161,6 +161,15 @@
     }
 
     @Override
+    public String getAttribute(final String attributeName) {
+        if ( updatedAttributes.containsKey(attributeName) ) {
+            return updatedAttributes.get(attributeName);
+        }
+        
+        return previousAttributes.get(attributeName);
+    }
+    
+    @Override
     public Map<String, String> getAttributes() {
         final Map<String, String> allAttrs = new HashMap<>(previousAttributes.size() + updatedAttributes.size());
         allAttrs.putAll(previousAttributes);
@@ -424,7 +433,6 @@
         private String uuid = null;
         private List<String> parentUuids = null;
         private List<String> childrenUuids = null;
-        private String contentType = null;
         private String alternateIdentifierUri = null;
         private String details = null;
         private String relationship = null;
@@ -631,11 +639,6 @@
             return this;
         }
 
-        public Builder setContentType(String contentType) {
-            this.contentType = contentType;
-            return this;
-        }
-
         @Override
         public Builder setAlternateIdentifierUri(String alternateIdentifierUri) {
             this.alternateIdentifierUri = alternateIdentifierUri;
diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-journaling-provenance-repository/src/main/java/org/apache/nifi/provenance/journaling/IdEnrichedProvenanceEvent.java b/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-journaling-provenance-repository/src/main/java/org/apache/nifi/provenance/journaling/IdEnrichedProvenanceEvent.java
index f9bc76a..0e070d8 100644
--- a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-journaling-provenance-repository/src/main/java/org/apache/nifi/provenance/journaling/IdEnrichedProvenanceEvent.java
+++ b/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-journaling-provenance-repository/src/main/java/org/apache/nifi/provenance/journaling/IdEnrichedProvenanceEvent.java
@@ -75,6 +75,11 @@
         return event.getEventType();
     }
 
+    @Override
+    public String getAttribute(final String attributeName) {
+        return event.getAttribute(attributeName);
+    }
+    
     public Map<String, String> getAttributes() {
         return event.getAttributes();
     }
diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-journaling-provenance-repository/src/main/java/org/apache/nifi/provenance/journaling/JournaledProvenanceEvent.java b/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-journaling-provenance-repository/src/main/java/org/apache/nifi/provenance/journaling/JournaledProvenanceEvent.java
index ac68495..55749f9 100644
--- a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-journaling-provenance-repository/src/main/java/org/apache/nifi/provenance/journaling/JournaledProvenanceEvent.java
+++ b/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-journaling-provenance-repository/src/main/java/org/apache/nifi/provenance/journaling/JournaledProvenanceEvent.java
@@ -74,6 +74,10 @@
     public ProvenanceEventType getEventType() {
         return event.getEventType();
     }
+    
+    public String getAttribute(final String attributeName) {
+        return event.getAttribute(attributeName);
+    }
 
     public Map<String, String> getAttributes() {
         return event.getAttributes();
