diff --git a/src/main/java/com/googlesource/gerrit/plugins/its/jira/JiraClient.java b/src/main/java/com/googlesource/gerrit/plugins/its/jira/JiraClient.java
index ab1ca48..9db7ed9 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/its/jira/JiraClient.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/its/jira/JiraClient.java
@@ -84,7 +84,7 @@
   public List<JiraTransition.Item> getTransitions(String issueKey) throws IOException {
 
     JiraRestApi<JiraTransition> api = apiBuilder.get(JiraTransition.class, "/issue");
-    return Arrays.asList(api.doGet("/" + issueKey + "/transitions", HTTP_OK).transitions);
+    return Arrays.asList(api.doGet("/" + issueKey + "/transitions", HTTP_OK).getTransitions());
   }
 
   /**
diff --git a/src/main/java/com/googlesource/gerrit/plugins/its/jira/restapi/JiraComment.java b/src/main/java/com/googlesource/gerrit/plugins/its/jira/restapi/JiraComment.java
index e3e2f0e..eb2755d 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/its/jira/restapi/JiraComment.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/its/jira/restapi/JiraComment.java
@@ -16,9 +16,13 @@
 
 public class JiraComment {
 
-  final String body;
+  private final String body;
 
   public JiraComment(String body) {
     this.body = body;
   }
+
+  public String getBody() {
+    return body;
+  }
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/its/jira/restapi/JiraIssue.java b/src/main/java/com/googlesource/gerrit/plugins/its/jira/restapi/JiraIssue.java
index 8a22098..0eab61b 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/its/jira/restapi/JiraIssue.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/its/jira/restapi/JiraIssue.java
@@ -15,6 +15,19 @@
 package com.googlesource.gerrit.plugins.its.jira.restapi;
 
 public class JiraIssue {
-  String id;
-  String key;
+  private final String id;
+  private final String key;
+
+  public JiraIssue(String id, String key) {
+    this.id = id;
+    this.key = key;
+  }
+
+  public String getId() {
+    return id;
+  }
+
+  public String getKey() {
+    return key;
+  }
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/its/jira/restapi/JiraProject.java b/src/main/java/com/googlesource/gerrit/plugins/its/jira/restapi/JiraProject.java
index d244cb4..fb4b3be 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/its/jira/restapi/JiraProject.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/its/jira/restapi/JiraProject.java
@@ -16,9 +16,15 @@
 
 public class JiraProject {
 
-  String id;
-  String key;
-  String name;
+  private final String id;
+  private final String key;
+  private final String name;
+
+  public JiraProject(String id, String key, String name) {
+    this.id = id;
+    this.key = key;
+    this.name = name;
+  }
 
   public String getId() {
     return id;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/its/jira/restapi/JiraTransition.java b/src/main/java/com/googlesource/gerrit/plugins/its/jira/restapi/JiraTransition.java
index 4bbad2c..b541217 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/its/jira/restapi/JiraTransition.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/its/jira/restapi/JiraTransition.java
@@ -17,18 +17,35 @@
 public class JiraTransition {
 
   // 'Get Transactions' require a list of items
-  public Item[] transitions;
+  private Item[] transitions;
 
   // 'Do Transaction' require a single item
-  Item transition;
+  private Item transition;
+
+  public JiraTransition(Item[] transitions) {
+    this.transitions = transitions;
+  }
 
   public JiraTransition(Item transition) {
     this.transition = transition;
   }
 
+  public Item[] getTransitions() {
+    return transitions;
+  }
+
+  public Item getTransition() {
+    return transition;
+  }
+
   public static class Item {
-    String name;
-    String id;
+    private final String name;
+    private final String id;
+
+    public Item(String name, String id) {
+      this.name = name;
+      this.id = id;
+    }
 
     public String getName() {
       return name;
