You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2021/05/26 16:25:02 UTC

[camel-quarkus] 04/04: Increase Jira extension test coverage

This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git

commit 58aab303ff0da5aff74fc15aea3fe1d17dae938b
Author: James Netherton <ja...@gmail.com>
AuthorDate: Tue May 25 13:14:16 2021 +0100

    Increase Jira extension test coverage
---
 integration-tests/jira/README.adoc                 |  25 +-
 integration-tests/jira/pom.xml                     |  31 ++
 .../component/jira/it/FakeJiraResource.java        |  56 ---
 .../quarkus/component/jira/it/JiraResource.java    | 208 +++++++++-
 .../quarkus/component/jira/it/JiraRoutes.java      |  48 +++
 .../jira/src/main/resources/application.properties |  27 --
 .../jira/src/main/resources/mock/createIssue.json  |   5 -
 .../jira/src/main/resources/mock/getIssue.json     |  38 --
 .../jira/src/main/resources/mock/issueType.json    |  11 -
 .../camel/quarkus/component/jira/it/JiraTest.java  | 452 ++++++++++++++++++++-
 .../component/jira/it/JiraTestResource.java        |  88 ++++
 ...st-67-0e1e85c8-d0b1-42b3-9a7d-2aa604b82ac7.json |   1 +
 ...st-67-940c0b21-7d1a-4963-9cbf-cc9d1f607dbd.json |   1 +
 ...st-67-be652193-8a26-42ec-bb0d-7115cd37f3cd.json |   1 +
 ...st-67-c56637eb-f7dc-4d5b-8471-e518046ed496.json |   1 +
 ...st-68-15047dda-1b77-48f5-97c7-79c43e0a3665.json |   1 +
 ...st-68-17c49ae9-16b4-48d6-abfd-7e2ace597a08.json |   1 +
 ...st-68-28c61bd1-5321-4eb4-8aee-1056001b18a6.json |   1 +
 ...st-68-c09a3e23-4fee-4ee5-9d8b-426c0aa1004c.json |   1 +
 ...st-69-a114dae3-19a3-486d-8c6a-18fd26d9a80f.json |   1 +
 ...st-69-a8c98e7e-0414-4b4e-8fae-bb248a8feab8.json |   1 +
 ...st-69-b577e1c5-cc4e-436b-9c57-50a8d0d605c1.json |   1 +
 ...st-69-ebe35966-c69e-453f-af61-b7d1fd5407c9.json |   1 +
 ...st-70-288f33f8-ff30-42e6-91cc-27469a454c1f.json |   1 +
 ...st-71-09b7636c-39fa-4cb3-8fe1-43afb1034924.json |   1 +
 ...st-71-0e6a77cf-578a-4421-b0e6-9e75f9015ffc.json |   1 +
 ...st-71-2470cded-eff1-4696-b664-c6a6afb48352.json |   1 +
 ...st-71-95392d7a-cee3-4493-808c-f7db7b8c5f9b.json |   1 +
 ...st-71-b6cc2884-c9ed-4161-a671-3413813b4db2.json |   1 +
 ...st-72-baa1260a-1c45-43aa-b4d1-9a5a2f296d7a.json |   1 +
 ...st-72-bb4bde6d-b387-4cd6-a308-aacf38d6fd5d.json |   1 +
 ...st-73-97967053-b459-441a-9f03-b603ca69c22e.json |   1 +
 ...st-74-75c0d24d-5575-490f-a590-020bd992afe4.json |   1 +
 ...st-74-920e8e36-2afc-438d-bca6-d1d28116988c.json |   1 +
 ...st-74-a9022ea4-4500-4fa8-9638-b8ac76464b4f.json |   1 +
 ...earch-2eb3eb45-a63a-4655-9d1f-ef82f4d3b825.json |   1 +
 ...earch-4dc289c5-0522-4632-813f-295f4be67eaf.json |   1 +
 ...earch-5a3ae50c-9eee-45ea-bb4e-28b2864e392d.json |   1 +
 ...earch-a8497662-b947-4b46-9815-9e04995588c8.json |   1 +
 ...earch-ce09e8e1-0c2f-4646-a58a-dcf55e4de092.json |   1 +
 ...earch-ea789be6-5899-46e7-ab02-8ec3692596f5.json |   1 +
 ...issue-467257d0-dc2a-4066-8eb8-1e91b1a95cc4.json |  39 ++
 ...issue-4846b302-a78c-4342-9770-fe311569d92d.json |  39 ++
 ...issue-6d80c43a-e688-4e0c-a26f-6b44a32b3ba3.json |  39 ++
 ...issue-956a8664-2312-4fdd-b9db-978df0bd8595.json |  38 ++
 ...issue-bae70b60-36da-4aef-954f-0d8dfc2230b5.json |  39 ++
 ...issue-bd873ed1-07bb-44e7-b0b9-2030420211aa.json |  39 ++
 ...issue-c2c8d72a-625e-4759-9878-5bc9babfca2e.json |  39 ++
 ...issue-d88f3854-1abc-4c19-a94b-faefb8e119a1.json |  39 ++
 ...st-67-0e1e85c8-d0b1-42b3-9a7d-2aa604b82ac7.json |  33 ++
 ...st-67-7b93fd68-1f69-4005-ae76-056af9123977.json |  30 ++
 ...st-67-940c0b21-7d1a-4963-9cbf-cc9d1f607dbd.json |  35 ++
 ...st-67-be652193-8a26-42ec-bb0d-7115cd37f3cd.json |  34 ++
 ...st-67-c56637eb-f7dc-4d5b-8471-e518046ed496.json |  35 ++
 ...st-68-05a2b7b2-8906-433a-a35d-02d96bacf022.json |  30 ++
 ...st-68-15047dda-1b77-48f5-97c7-79c43e0a3665.json |  35 ++
 ...st-68-17c49ae9-16b4-48d6-abfd-7e2ace597a08.json |  34 ++
 ...st-68-28c61bd1-5321-4eb4-8aee-1056001b18a6.json |  33 ++
 ...st-68-c09a3e23-4fee-4ee5-9d8b-426c0aa1004c.json |  34 ++
 ...st-69-450baa09-6b3f-4c51-8f58-a69e72aedb41.json |  30 ++
 ...st-69-a114dae3-19a3-486d-8c6a-18fd26d9a80f.json |  34 ++
 ...st-69-a8c98e7e-0414-4b4e-8fae-bb248a8feab8.json |  33 ++
 ...st-69-b577e1c5-cc4e-436b-9c57-50a8d0d605c1.json |  34 ++
 ...st-69-ebe35966-c69e-453f-af61-b7d1fd5407c9.json |  35 ++
 ...st-70-288f33f8-ff30-42e6-91cc-27469a454c1f.json |  34 ++
 ...st-70-4d938ceb-5f17-4574-bfde-bb47eea5bb59.json |  36 ++
 ...st-70-f2ab1813-65c5-494f-a5ac-da9e340b3d94.json |  31 ++
 ...st-71-09b7636c-39fa-4cb3-8fe1-43afb1034924.json |  35 ++
 ...st-71-0e6a77cf-578a-4421-b0e6-9e75f9015ffc.json |  34 ++
 ...st-71-2470cded-eff1-4696-b664-c6a6afb48352.json |  33 ++
 ...st-71-95392d7a-cee3-4493-808c-f7db7b8c5f9b.json |  34 ++
 ...st-71-993fe3b6-a347-4014-b3a7-a182c1fa25ed.json |  30 ++
 ...st-71-b6cc2884-c9ed-4161-a671-3413813b4db2.json |  34 ++
 ...st-72-baa1260a-1c45-43aa-b4d1-9a5a2f296d7a.json |  34 ++
 ...st-72-bb4bde6d-b387-4cd6-a308-aacf38d6fd5d.json |  33 ++
 ...st-72-c3063e9e-b57a-4de5-8d84-b458a8f7f0fe.json |  30 ++
 ...st-73-786cfa20-75d3-43f7-b5b8-8ea926dce7c2.json |  30 ++
 ...st-73-97967053-b459-441a-9f03-b603ca69c22e.json |  31 ++
 ...st-74-75c0d24d-5575-490f-a590-020bd992afe4.json |  33 ++
 ...st-74-920e8e36-2afc-438d-bca6-d1d28116988c.json |  34 ++
 ...st-74-a9022ea4-4500-4fa8-9638-b8ac76464b4f.json |  35 ++
 ...st-74-ab1fb946-6445-448d-a80f-f67165920733.json |  30 ++
 ...elink-b86486cf-179d-4eff-ab59-fd2621cd2fe2.json |  36 ++
 ...etype-1a4dffb2-212a-4e5c-a6ed-b07e6c22df97.json |  33 ++
 ...etype-3c28d7c5-48e0-4e10-9c33-2b7302766869.json |  34 ++
 ...etype-5862081c-2012-4240-835c-cf0ce937c567.json |  34 ++
 ...etype-65c3b34b-0095-416f-9667-9fe5996560bf.json |  34 ++
 ...etype-9a5ac9eb-f82e-4b5e-8372-729815645934.json |  34 ++
 ...etype-b97e3430-3397-4d6c-9782-b572d203f785.json |  34 ++
 ...etype-bb895fc4-8785-45cd-93f3-24f74ff8bef8.json |  34 ++
 ...etype-deb1fb17-f060-4866-bc5b-af2464195e25.json |  35 ++
 ...earch-2eb3eb45-a63a-4655-9d1f-ef82f4d3b825.json |  34 ++
 ...earch-4dc289c5-0522-4632-813f-295f4be67eaf.json |  35 ++
 ...earch-5a3ae50c-9eee-45ea-bb4e-28b2864e392d.json |  33 ++
 ...earch-a8497662-b947-4b46-9815-9e04995588c8.json |  31 ++
 ...earch-ce09e8e1-0c2f-4646-a58a-dcf55e4de092.json |  35 ++
 ...earch-ea789be6-5899-46e7-ab02-8ec3692596f5.json |  32 ++
 ...rinfo-5384f8bb-181d-41ae-bc02-2c13a4c67e15.json |  34 ++
 ...rinfo-94c1f66d-8a68-4485-8669-fbd75b55c45a.json |  34 ++
 ...rinfo-dd1a6803-f1ea-4002-a959-356e8d642920.json |  34 ++
 ...rinfo-ec14f05b-707b-4a51-a6a1-64b462a2c020.json |  34 ++
 ...ssion-ff621014-dbe1-499a-88cb-e659bec3ffa9.json |  31 ++
 102 files changed, 2932 insertions(+), 163 deletions(-)

diff --git a/integration-tests/jira/README.adoc b/integration-tests/jira/README.adoc
index 6118143..d183308 100644
--- a/integration-tests/jira/README.adoc
+++ b/integration-tests/jira/README.adoc
@@ -1,6 +1,6 @@
 == Camel Quarkus Jira Integration Tests
 
-By default integration tests are performed against a mock Jira JAX-RS endpoint which is defined in class `FakeJiraResource`.
+By default integration tests use WireMock to stub the Jira API interactions.
 
 To run `camel-quarkus-jira` integration tests against a real Jira instance, set the environment variables described below.
 
@@ -8,8 +8,31 @@ To run `camel-quarkus-jira` integration tests against a real Jira instance, set
 ----
 export JIRA_ISSUES_PROJECT_KEY=TEST
 export JIRA_URL=http://localhost:8080/
+
+# If your Jira server requires basic authentication
 export JIRA_USERNAME=my-jira-username
 export JIRA_PASSWORD=my-jira-password
+
+# If your Jira server requires OAuth authentication
+export JIRA_OAUTH_ACCESS_TOKEN=your-access-token
+export JIRA_OAUTH_CONSUMER_KEY=your-consumer-key
+export JIRA_OAUTH_PRIVATE_KEY=your-private-key
+export JIRA_OAUTH_VERIFICATION_CODE=your-code
+----
+
+If you want to test the issue transition producer, you may need to override the default a workflow transition id for your Jira instance.
+
+[source,shell]
+----
+export JIRA_TRANSITION_ID=10
 ----
 
 A simple way of setting up a Jira server is to use the https://hub.docker.com/r/atlassian/jira-software[Jira Docker image].
+
+If the WireMock stub recordings need updating, then remove the existing files from `src/test/resources/mappings` and run tests with either:
+
+System property `-Dwiremock.record=true`
+
+Or
+
+Set environment variable `WIREMOCK_RECORD=true`
diff --git a/integration-tests/jira/pom.xml b/integration-tests/jira/pom.xml
index d0f0d35..bc79e67 100644
--- a/integration-tests/jira/pom.xml
+++ b/integration-tests/jira/pom.xml
@@ -35,9 +35,17 @@
             <artifactId>camel-quarkus-jira</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-seda</artifactId>
+        </dependency>
+        <dependency>
             <groupId>io.quarkus</groupId>
             <artifactId>quarkus-resteasy</artifactId>
         </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy-jsonb</artifactId>
+        </dependency>
 
         <!-- test dependencies -->
         <dependency>
@@ -56,6 +64,16 @@
             <artifactId>rest-assured</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-integration-wiremock-support</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.awaitility</groupId>
+            <artifactId>awaitility</artifactId>
+            <scope>test</scope>
+        </dependency>
 
         <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory -->
         <dependency>
@@ -71,6 +89,19 @@
                 </exclusion>
             </exclusions>
         </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-seda-deployment</artifactId>
+            <version>${project.version}</version>
+            <type>pom</type>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
     </dependencies>
 
 
diff --git a/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/FakeJiraResource.java b/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/FakeJiraResource.java
deleted file mode 100644
index add3bde..0000000
--- a/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/FakeJiraResource.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.quarkus.component.jira.it;
-
-import java.io.InputStream;
-import java.net.URI;
-import java.net.URISyntaxException;
-
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.Response;
-
-/**
- * A set of stubbed service endpoints for the Jira REST API
- */
-@Path("/jira/rest/api/latest")
-public class FakeJiraResource {
-
-    @Path("/issuetype")
-    @GET
-    public Response getIssueType() {
-        return Response.ok(getResource("issueType.json")).build();
-    }
-
-    @Path("/issue")
-    @POST
-    public Response createIssue() throws URISyntaxException {
-        return Response.created(new URI("/rest/api/latest/issue/1")).entity(getResource("createIssue.json")).build();
-    }
-
-    @Path("/issue/{id}")
-    @GET
-    public Response getIssue(@PathParam("id") String id) throws URISyntaxException {
-        return Response.created(new URI("/rest/api/latest/issue/1")).entity(getResource("getIssue.json")).build();
-    }
-
-    private InputStream getResource(String name) {
-        return getClass().getResourceAsStream("/mock/" + name);
-    }
-}
diff --git a/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraResource.java b/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraResource.java
index de9fa52..75e2e74 100644
--- a/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraResource.java
+++ b/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraResource.java
@@ -17,54 +17,234 @@
 package org.apache.camel.quarkus.component.jira.it;
 
 import java.net.URI;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.util.Collections;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import javax.inject.Inject;
+import javax.json.Json;
+import javax.json.JsonObject;
+import javax.json.JsonObjectBuilder;
 import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.PATCH;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
 import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
+import com.atlassian.jira.rest.client.api.domain.Comment;
 import com.atlassian.jira.rest.client.api.domain.Issue;
+import org.apache.camel.CamelContext;
+import org.apache.camel.ConsumerTemplate;
 import org.apache.camel.ProducerTemplate;
-import org.apache.camel.component.jira.JiraConstants;
 import org.eclipse.microprofile.config.inject.ConfigProperty;
-import org.jboss.logging.Logger;
+
+import static org.apache.camel.component.jira.JiraConstants.CHILD_ISSUE_KEY;
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_KEY;
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_PROJECT_KEY;
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_SUMMARY;
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_TRANSITION_ID;
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_TYPE_NAME;
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_WATCHERS_ADD;
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_WATCHERS_REMOVE;
+import static org.apache.camel.component.jira.JiraConstants.LINK_TYPE;
+import static org.apache.camel.component.jira.JiraConstants.MINUTES_SPENT;
+import static org.apache.camel.component.jira.JiraConstants.PARENT_ISSUE_KEY;
 
 @Path("/jira")
 public class JiraResource {
 
-    private static final Logger log = Logger.getLogger(JiraResource.class);
+    @Inject
+    ConsumerTemplate consumerTemplate;
 
     @Inject
     ProducerTemplate producerTemplate;
 
+    @Inject
+    CamelContext context;
+
     @ConfigProperty(name = "jira.issues.project-key")
     String projectKey;
 
-    @Path("/post")
+    @Path("/issue")
     @POST
     @Consumes(MediaType.TEXT_PLAIN)
-    @Produces(MediaType.TEXT_PLAIN)
-    public Response post(@QueryParam("jiraUrl") String jiraUrl, String message) throws Exception {
+    @Produces(MediaType.APPLICATION_JSON)
+    public Response createIssue(
+            @QueryParam("type") String type,
+            @QueryParam("summary") String summary,
+            String description) throws Exception {
         Map<String, Object> headers = new HashMap<>();
-        headers.put(JiraConstants.ISSUE_PROJECT_KEY, projectKey);
-        headers.put(JiraConstants.ISSUE_TYPE_NAME, "Task");
-        headers.put(JiraConstants.ISSUE_SUMMARY, "Demo Bug");
-
-        log.infof("Sending to jira: %s", message);
+        headers.put(ISSUE_PROJECT_KEY, projectKey);
+        headers.put(ISSUE_TYPE_NAME, type);
+        headers.put(ISSUE_SUMMARY, summary);
 
-        Issue issue = producerTemplate.requestBodyAndHeaders("jira:addIssue?jiraUrl=" + jiraUrl, message, headers, Issue.class);
+        Issue issue = producerTemplate.requestBodyAndHeaders("jira:addIssue", description, headers, Issue.class);
 
-        log.infof("Created new issue: %s", issue.getKey());
         return Response
                 .created(new URI("https://camel.apache.org/"))
-                .entity(issue.getKey())
+                .entity(issueToJson(issue))
                 .status(201)
                 .build();
     }
+
+    @Path("/issue/{key}")
+    @GET
+    @Produces(MediaType.APPLICATION_JSON)
+    public Response readIssueByKey(@PathParam("key") String key) {
+        try {
+            Issue issue = producerTemplate.requestBodyAndHeader("jira:fetchIssue", null, ISSUE_KEY, key, Issue.class);
+            return Response.ok(issueToJson(issue)).build();
+        } catch (Exception e) {
+            return Response.status(404).build();
+        }
+    }
+
+    @Path("/issue")
+    @GET
+    @Produces(MediaType.APPLICATION_JSON)
+    public Response readIssue(@QueryParam("source") String source) {
+        String uriSuffix = "jiraIssues";
+        if (source.equals("update")) {
+            uriSuffix = "jiraUpdates";
+        }
+
+        Issue issue = consumerTemplate.receiveBody("seda:" + uriSuffix, 10000L, Issue.class);
+        if (issue == null) {
+            return Response.noContent().build();
+        }
+        return Response.ok(issueToJson(issue)).build();
+    }
+
+    @Path("/issue/{key}")
+    @PATCH
+    public Response updateIssue(@PathParam("key") String key, String issueSummary) {
+        Map<String, Object> headers = new HashMap<>();
+        headers.put(ISSUE_KEY, key);
+        headers.put(ISSUE_SUMMARY, issueSummary);
+        producerTemplate.requestBodyAndHeaders("jira:updateIssue", null, headers);
+        return Response.ok().build();
+    }
+
+    @Path("/issue/{key}")
+    @DELETE
+    public Response deleteIssue(@PathParam("key") String key) {
+        producerTemplate.requestBodyAndHeader("jira:deleteIssue", null, ISSUE_KEY, key);
+        return Response.noContent().build();
+    }
+
+    @Path("/issue/{key}/comment")
+    @POST
+    @Consumes(MediaType.TEXT_PLAIN)
+    public Response createIssueComment(@PathParam("key") String key, String comment) throws Exception {
+        producerTemplate.requestBodyAndHeader("jira:addComment", comment, ISSUE_KEY, key);
+        return Response.created(new URI("https://camel.apache.org/")).build();
+    }
+
+    @Path("/issue/comment")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response getIssueComment() {
+        Comment comment = consumerTemplate.receiveBody("seda:jiraComments", 10000L, Comment.class);
+        if (comment == null) {
+            return Response.noContent().build();
+        }
+        return Response.ok(comment.getBody()).build();
+    }
+
+    @Path("/issue/{key}/attach")
+    @POST
+    @Consumes(MediaType.TEXT_PLAIN)
+    public Response createIssueAttachment(@PathParam("key") String key, String content) throws Exception {
+        java.nio.file.Path tempFile = Files.createTempFile("cq-jira", ".txt");
+        Files.write(tempFile, content.getBytes(StandardCharsets.UTF_8));
+        producerTemplate.requestBodyAndHeader("jira:attach", tempFile.toFile(), ISSUE_KEY, key);
+        return Response.created(new URI("https://camel.apache.org/")).build();
+    }
+
+    @Path("/issue/{key}/watch")
+    @POST
+    @Consumes(MediaType.TEXT_PLAIN)
+    public Response watchIssue(@PathParam("key") String key, @QueryParam("action") String action, String watchers) {
+        List<String> watchList = Collections.singletonList(watchers);
+        Map<String, Object> headers = new HashMap<>();
+        headers.put(ISSUE_KEY, key);
+        if (action.equals("watch")) {
+            headers.put(ISSUE_WATCHERS_ADD, watchList);
+        } else if (action.equals("unwatch")) {
+            headers.put(ISSUE_WATCHERS_REMOVE, watchList);
+        } else {
+            throw new IllegalArgumentException("Unknown watch action: " + action);
+        }
+        producerTemplate.requestBodyAndHeaders("jira:watchers", null, headers);
+        return Response.ok().build();
+    }
+
+    @Path("/issue/link")
+    @POST
+    public Response linkIssues(@QueryParam("parentKey") String parentKey, @QueryParam("childKey") String childKey) {
+        Map<String, Object> headers = new HashMap<>();
+        headers.put(PARENT_ISSUE_KEY, parentKey);
+        headers.put(CHILD_ISSUE_KEY, childKey);
+        headers.put(LINK_TYPE, "Relates");
+
+        producerTemplate.requestBodyAndHeaders("jira:addIssueLink", null, headers);
+
+        return Response.ok().build();
+    }
+
+    @Path("/issue/{key}/log/work")
+    @POST
+    @Consumes(MediaType.TEXT_PLAIN)
+    public Response logWork(@PathParam("key") String key, String minutes) {
+        Map<String, Object> headers = new HashMap<>();
+        headers.put(ISSUE_KEY, key);
+        headers.put(MINUTES_SPENT, Integer.valueOf(minutes));
+
+        producerTemplate.requestBodyAndHeaders("jira:addWorkLog", "Work logged: " + minutes, headers);
+
+        return Response.ok().build();
+    }
+
+    @Path("/issue/{key}/transition")
+    @POST
+    @Consumes(MediaType.TEXT_PLAIN)
+    public Response transition(@PathParam("key") String key, String workflowId) {
+        Map<String, Object> headers = new HashMap<>();
+        headers.put(ISSUE_KEY, key);
+        headers.put(ISSUE_TRANSITION_ID, Integer.valueOf(workflowId));
+
+        producerTemplate.requestBodyAndHeaders("jira:transitionIssue", null, headers);
+
+        return Response.ok().build();
+    }
+
+    @Path("/route/{routeId}/{action}")
+    @POST
+    public void manageRoute(@PathParam("routeId") String routeId, @PathParam("action") String action) throws Exception {
+        if (action.equals("start")) {
+            context.getRouteController().startRoute(routeId);
+        } else if (action.equals("stop")) {
+            context.getRouteController().stopRoute(routeId);
+        } else {
+            throw new IllegalArgumentException("Unknown action: " + action);
+        }
+    }
+
+    private JsonObject issueToJson(Issue issue) {
+        JsonObjectBuilder builder = Json.createObjectBuilder();
+        builder.add("description", issue.getDescription());
+        builder.add("key", issue.getKey());
+        builder.add("summary", issue.getSummary());
+        builder.add("type", issue.getIssueType().getName());
+        return builder.build();
+    }
 }
diff --git a/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraRoutes.java b/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraRoutes.java
new file mode 100644
index 0000000..fce4d5d
--- /dev/null
+++ b/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraRoutes.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.jira.it;
+
+import javax.enterprise.context.ApplicationScoped;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.eclipse.microprofile.config.inject.ConfigProperty;
+
+@ApplicationScoped
+public class JiraRoutes extends RouteBuilder {
+
+    @ConfigProperty(name = "jira.issues.project-key")
+    String projectKey;
+
+    @Override
+    public void configure() throws Exception {
+        from("jira:newIssues?jql=RAW(project=" + projectKey + ")&maxResults=1")
+                .id("jiraIssues")
+                .autoStartup(false)
+                .to("seda:jiraIssues");
+
+        from("jira:watchUpdates?jql=RAW(project=" + projectKey
+                + ")&watchedFields=Summary&sendOnlyUpdatedField=false&maxResults=1")
+                        .id("jiraUpdates")
+                        .autoStartup(false)
+                        .to("seda:jiraUpdates");
+
+        from("jira:newComments?jql=RAW(project=" + projectKey + ")&maxResults=1")
+                .id("jiraComments")
+                .autoStartup(false)
+                .to("seda:jiraComments");
+    }
+}
diff --git a/integration-tests/jira/src/main/resources/application.properties b/integration-tests/jira/src/main/resources/application.properties
deleted file mode 100644
index 4917a9f..0000000
--- a/integration-tests/jira/src/main/resources/application.properties
+++ /dev/null
@@ -1,27 +0,0 @@
-## ---------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-##      http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ---------------------------------------------------------------------------
-
-#
-# Camel :: Jira
-#
-jira.issues.project-key={{env:JIRA_ISSUES_PROJECT_KEY:TEST}}
-
-camel.component.jira.username={{env:JIRA_USERNAME:testing}}
-camel.component.jira.password={{env:JIRA_PASSWORD:s3cr3t}}
-
-# Mock responses for integration tests
-quarkus.camel.native.resources.include-patterns = mock/*.json
diff --git a/integration-tests/jira/src/main/resources/mock/createIssue.json b/integration-tests/jira/src/main/resources/mock/createIssue.json
deleted file mode 100644
index 1f95896..0000000
--- a/integration-tests/jira/src/main/resources/mock/createIssue.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  "id": "1",
-  "key": "TEST-01",
-  "self": ""
-}
diff --git a/integration-tests/jira/src/main/resources/mock/getIssue.json b/integration-tests/jira/src/main/resources/mock/getIssue.json
deleted file mode 100644
index eb3540d..0000000
--- a/integration-tests/jira/src/main/resources/mock/getIssue.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
-  "expand": "",
-  "id": "1",
-  "self": "",
-  "key": "TEST-01",
-  "fields": {
-    "summary": "Demo bug",
-    "description": "Demo issue body",
-    "issuetype": {
-      "id": 1,
-      "name": "Task",
-      "subtask": false,
-      "description": "Task",
-      "self": ""
-    },
-    "created": "2020-03-19T15:29:21.773+0000",
-    "project": {
-      "self": "",
-      "id": "1",
-      "key": "TEST",
-      "name": "Test"
-    },
-    "status": {
-      "self": "",
-      "id": "1",
-      "description": "Open",
-      "name": "Open",
-      "iconUrl": ""
-    },
-    "updated": "2020-03-19T15:29:21.773+0000"
-  },
-  "names": {
-    "description": "description",
-    "project": "project",
-    "updated": "updated"
-  },
-  "schema": {}
-}
diff --git a/integration-tests/jira/src/main/resources/mock/issueType.json b/integration-tests/jira/src/main/resources/mock/issueType.json
deleted file mode 100644
index 1ac3903..0000000
--- a/integration-tests/jira/src/main/resources/mock/issueType.json
+++ /dev/null
@@ -1,11 +0,0 @@
-[
-  {
-    "self": "",
-    "id": "1",
-    "description": "A task that needs to be done.",
-    "iconUrl": "",
-    "name": "Task",
-    "subtask": false,
-    "avatarId": 1
-  }
-]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTest.java b/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTest.java
index e34fdd6..b008422 100644
--- a/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTest.java
+++ b/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTest.java
@@ -16,33 +16,463 @@
  */
 package org.apache.camel.quarkus.component.jira.it;
 
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+import java.util.concurrent.TimeUnit;
+
+import com.atlassian.jira.rest.client.api.JiraRestClient;
+import com.atlassian.jira.rest.client.api.JiraRestClientFactory;
+import com.atlassian.jira.rest.client.api.domain.Attachment;
+import com.atlassian.jira.rest.client.api.domain.BasicWatchers;
+import com.atlassian.jira.rest.client.api.domain.Issue;
+import com.atlassian.jira.rest.client.api.domain.IssueLink;
+import com.atlassian.jira.rest.client.api.domain.Resolution;
+import com.atlassian.jira.rest.client.api.domain.Worklog;
+import io.quarkus.test.common.QuarkusTestResource;
 import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
 import io.restassured.http.ContentType;
+import io.restassured.path.json.JsonPath;
+import org.apache.camel.component.jira.oauth.JiraOAuthAuthenticationHandler;
+import org.apache.camel.component.jira.oauth.OAuthAsynchronousJiraRestClientFactory;
+import org.eclipse.microprofile.config.Config;
+import org.eclipse.microprofile.config.ConfigProvider;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
+import static org.awaitility.Awaitility.await;
+import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.matchesPattern;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 @QuarkusTest
+@QuarkusTestResource(JiraTestResource.class)
 public class JiraTest {
 
+    private static final String ISSUE_ATTACHMENT = "Camel Quarkus Test Issue Attachment";
+    private static final String ISSUE_COMMENT = "Camel Quarkus Test Issue Comment";
+    private static final String ISSUE_DESCRIPTION = "Camel Quarkus Test Issue Description";
+    private static final String ISSUE_SUMMARY = "Camel Quarkus Test Issue Summary";
+    private static final String ISSUE_TYPE = "Task";
+    private static final String UPDATED_ISSUE_SUMMARY = "Updated summary";
+    private static JiraRestClient REST_CLIENT;
+
+    @BeforeAll
+    public static void beforeAll() {
+        Config config = ConfigProvider.getConfig();
+        String jiraUrl = config.getValue("camel.component.jira.jira-url", String.class);
+        Optional<String> username = config.getOptionalValue("camel.component.jira.username", String.class);
+        Optional<String> password = config.getOptionalValue("camel.component.jira.password", String.class);
+        Optional<String> accessToken = config.getOptionalValue("camel.component.jira.access-token", String.class);
+        Optional<String> consumerKey = config.getOptionalValue("camel.component.jira.consumer-key", String.class);
+        Optional<String> privateKey = config.getOptionalValue("camel.component.jira.private-key", String.class);
+        Optional<String> verificationCode = config.getOptionalValue("camel.component.jira.verification-code", String.class);
+
+        JiraRestClientFactory factory = new OAuthAsynchronousJiraRestClientFactory();
+        URI jiraServerUri = URI.create(jiraUrl);
+        if (username.isPresent() && password.isPresent()) {
+            REST_CLIENT = factory.createWithBasicHttpAuthentication(jiraServerUri, username.get(), password.get());
+        } else if (accessToken.isPresent() && consumerKey.isPresent() && privateKey.isPresent()
+                && verificationCode.isPresent()) {
+            JiraOAuthAuthenticationHandler oAuthHandler = new JiraOAuthAuthenticationHandler(
+                    consumerKey.get(),
+                    verificationCode.get(),
+                    privateKey.get(),
+                    accessToken.get(),
+                    jiraUrl);
+            REST_CLIENT = factory.create(jiraServerUri, oAuthHandler);
+        } else {
+            throw new IllegalStateException("Unable to create Jira client");
+        }
+    }
+
+    @Test
+    public void issueCrud() {
+        // Start issue consumer
+        RestAssured.given()
+                .pathParam("routeId", "jiraIssues")
+                .pathParam("action", "start")
+                .post("/jira/route/{routeId}/{action}")
+                .then()
+                .statusCode(204);
+
+        // Create issue
+        RestAssured.given()
+                .contentType(ContentType.TEXT)
+                .queryParam("summary", ISSUE_SUMMARY)
+                .queryParam("type", ISSUE_TYPE)
+                .body(ISSUE_DESCRIPTION)
+                .when()
+                .post("/jira/issue")
+                .then()
+                .statusCode(201)
+                .body(
+                        "description", equalTo(ISSUE_DESCRIPTION),
+                        "key", matchesPattern("[A-Z]+-[0-9]+"),
+                        "summary", equalTo(ISSUE_SUMMARY),
+                        "type", equalTo(ISSUE_TYPE));
+
+        // Read issue
+        JsonPath issueJson = RestAssured.given()
+                .queryParam("source", "new")
+                .get("/jira/issue")
+                .then()
+                .statusCode(200)
+                .body(
+                        "description", equalTo(ISSUE_DESCRIPTION),
+                        "key", matchesPattern("[A-Z]+-[0-9]+"),
+                        "summary", equalTo(ISSUE_SUMMARY),
+                        "type", equalTo(ISSUE_TYPE))
+                .extract()
+                .jsonPath();
+
+        String issueKey = issueJson.getString("key");
+
+        // Stop issue consumer
+        RestAssured.given()
+                .pathParam("routeId", "jiraIssues")
+                .pathParam("action", "stop")
+                .post("/jira/route/{routeId}/{action}")
+                .then()
+                .statusCode(204);
+
+        // Start updates consumer
+        RestAssured.given()
+                .pathParam("routeId", "jiraUpdates")
+                .pathParam("action", "start")
+                .post("/jira/route/{routeId}/{action}")
+                .then()
+                .statusCode(204);
+
+        // Update issue summary
+        RestAssured.given()
+                .pathParam("key", issueKey)
+                .body(UPDATED_ISSUE_SUMMARY)
+                .patch("/jira/issue/{key}")
+                .then()
+                .statusCode(200);
+
+        // Verify update
+        RestAssured.given()
+                .queryParam("source", "update")
+                .get("/jira/issue")
+                .then()
+                .statusCode(200)
+                .body(
+                        "description", equalTo(ISSUE_DESCRIPTION),
+                        "key", matchesPattern("[A-Z]+-[0-9]+"),
+                        "summary", equalTo(UPDATED_ISSUE_SUMMARY),
+                        "type", equalTo(ISSUE_TYPE));
+
+        // Stop updates consumer
+        RestAssured.given()
+                .pathParam("routeId", "jiraUpdates")
+                .pathParam("action", "stop")
+                .post("/jira/route/{routeId}/{action}")
+                .then()
+                .statusCode(204);
+
+        // Delete issue
+        RestAssured.given()
+                .pathParam("key", issueKey)
+                .delete("/jira/issue/{key}")
+                .then()
+                .statusCode(204);
+
+        // Verify deletion
+        await().atMost(10, TimeUnit.SECONDS).pollDelay(1, TimeUnit.SECONDS).until(() -> {
+            return RestAssured.given()
+                    .pathParam("key", issueKey)
+                    .get("/jira/issue/{key}")
+                    .then()
+                    .extract()
+                    .statusCode() == 404;
+        });
+    }
+
+    @Test
+    public void comments() {
+        // Create issue
+        String issueKey = createIssue();
+        try {
+            // Start comments consumer
+            RestAssured.given()
+                    .pathParam("routeId", "jiraComments")
+                    .pathParam("action", "start")
+                    .post("/jira/route/{routeId}/{action}")
+                    .then()
+                    .statusCode(204);
+
+            // Add comment
+            RestAssured.given()
+                    .pathParam("key", issueKey)
+                    .body(ISSUE_COMMENT)
+                    .post("/jira/issue/{key}/comment")
+                    .then()
+                    .statusCode(201);
+
+            // Verify comment
+            RestAssured.get("/jira/issue/comment")
+                    .then()
+                    .statusCode(200)
+                    .body(equalTo(ISSUE_COMMENT));
+
+            // Stop comments consumer
+            RestAssured.given()
+                    .pathParam("routeId", "jiraComments")
+                    .pathParam("action", "stop")
+                    .post("/jira/route/{routeId}/{action}")
+                    .then()
+                    .statusCode(204);
+        } finally {
+            deleteIssue(issueKey);
+        }
+    }
+
+    @Test
+    public void attachments() {
+        // Create issue
+        String issueKey = createIssue();
+        try {
+            // Create attachment
+            RestAssured.given()
+                    .contentType(ContentType.TEXT)
+                    .pathParam("key", issueKey)
+                    .body(ISSUE_ATTACHMENT)
+                    .when()
+                    .post("/jira/issue/{key}/attach")
+                    .then()
+                    .statusCode(201);
+
+            // Verify attachment
+            await().atMost(10, TimeUnit.SECONDS).pollDelay(1, TimeUnit.SECONDS).until(() -> {
+                Issue issue = getClient().getIssueClient().getIssue(issueKey).claim();
+                assertNotNull(issue);
+
+                Iterable<Attachment> iterable = issue.getAttachments();
+                return iterable != null && iterable.iterator().hasNext();
+            });
+
+            Issue issue = getClient().getIssueClient().getIssue(issueKey).claim();
+            Attachment attachment = issue.getAttachments().iterator().next();
+            assertTrue(attachment.getFilename().startsWith("cq-jira"));
+        } finally {
+            deleteIssue(issueKey);
+        }
+    }
+
+    @Test
+    public void watchers() {
+        // Create issue
+        String issueKey = createIssue();
+        try {
+            // Unwatch issue
+            JiraRestClient client = getClient();
+            String username = client.getSessionClient().getCurrentSession().claim().getUsername();
+            RestAssured.given()
+                    .contentType(ContentType.TEXT)
+                    .pathParam("key", issueKey)
+                    .queryParam("action", "unwatch")
+                    .body(username)
+                    .when()
+                    .post("/jira/issue/{key}/watch")
+                    .then()
+                    .statusCode(200);
+
+            // Verify unwatch
+            await().atMost(10, TimeUnit.SECONDS).pollDelay(1, TimeUnit.SECONDS).until(() -> {
+                Issue issue = getClient().getIssueClient().getIssue(issueKey).claim();
+                assertNotNull(issue);
+
+                BasicWatchers watchers = issue.getWatchers();
+                return watchers != null && !watchers.isWatching();
+            });
+
+            // Watch issue
+            RestAssured.given()
+                    .contentType(ContentType.TEXT)
+                    .pathParam("key", issueKey)
+                    .queryParam("action", "watch")
+                    .body(username)
+                    .when()
+                    .post("/jira/issue/{key}/watch")
+                    .then()
+                    .statusCode(200);
+
+            // Verify unwatch
+            await().atMost(10, TimeUnit.SECONDS).pollDelay(1, TimeUnit.SECONDS).until(() -> {
+                Issue issue = getClient().getIssueClient().getIssue(issueKey).claim();
+                assertNotNull(issue);
+
+                BasicWatchers watchers = issue.getWatchers();
+                return watchers != null && watchers.isWatching();
+            });
+        } finally {
+            deleteIssue(issueKey);
+        }
+    }
+
     @Test
-    public void testJiraComponent() {
-        String jiraUrl = System.getenv("JIRA_URL");
-        if (jiraUrl == null) {
-            jiraUrl = String.format("http://localhost:%s/jira",
-                    System.getProperty("quarkus.http.test-port", System.getProperty("quarkus.http.port")));
+    public void issueLinks() {
+        List<String> issueKeys = new ArrayList<>();
+
+        // Create issues
+        for (int i = 0; i < 2; i++) {
+            issueKeys.add(createIssue());
         }
 
-        RestAssured
-                .given()
+        try {
+            // Link issues
+            String parentKey = issueKeys.get(0);
+            String childKey = issueKeys.get(1);
+            RestAssured.given()
+                    .contentType(ContentType.TEXT)
+                    .queryParam("parentKey", parentKey)
+                    .queryParam("childKey", childKey)
+                    .when()
+                    .post("/jira/issue/link")
+                    .then()
+                    .statusCode(200);
+
+            // Verify link
+            await().atMost(10, TimeUnit.SECONDS).pollDelay(1, TimeUnit.SECONDS).until(() -> {
+                Issue parent = getClient().getIssueClient().getIssue(parentKey).claim();
+                assertNotNull(parent);
+
+                Iterable<IssueLink> issueLinks = parent.getIssueLinks();
+                assertNotNull(issueLinks);
+
+                IssueLink link = issueLinks.iterator().next();
+                assertNotNull(link);
+
+                return childKey.equals(link.getTargetIssueKey());
+            });
+        } finally {
+            issueKeys.forEach(this::deleteIssue);
+        }
+    }
+
+    @Test
+    public void workLog() {
+        // Create issue
+        String issueKey = createIssue();
+        try {
+            // Log work
+            RestAssured.given()
+                    .contentType(ContentType.TEXT)
+                    .pathParam("key", issueKey)
+                    .body("30")
+                    .when()
+                    .post("/jira/issue/{key}/log/work")
+                    .then()
+                    .statusCode(200);
+
+            // Verify logged work
+            await().atMost(10, TimeUnit.SECONDS).pollDelay(1, TimeUnit.SECONDS).until(() -> {
+                Issue issue = getClient().getIssueClient().getIssue(issueKey).claim();
+                assertNotNull(issue);
+
+                Iterable<Worklog> workLogs = issue.getWorklogs();
+                assertNotNull(workLogs);
+
+                Worklog workLog = workLogs.iterator().next();
+                assertNotNull(workLog);
+
+                return workLog.getMinutesSpent() == 30 && workLog.getComment().equals("Work logged: 30");
+            });
+        } finally {
+            deleteIssue(issueKey);
+        }
+    }
+
+    @Test
+    public void workflowTransition() {
+        // Create issue
+        String issueKey = createIssue();
+        try {
+            Issue originalIssue = getClient().getIssueClient().getIssue(issueKey).claim();
+            assertNotNull(originalIssue);
+
+            Resolution originalResolution = originalIssue.getResolution();
+            assertNull(originalResolution);
+
+            String transitionId = System.getenv("JIRA_TRANSITION_ID");
+            if (transitionId == null) {
+                // The default for the Jira docker server
+                transitionId = "31";
+            }
+
+            // Transition issue
+            RestAssured.given()
+                    .contentType(ContentType.TEXT)
+                    .pathParam("key", issueKey)
+                    .body(transitionId)
+                    .when()
+                    .post("/jira/issue/{key}/transition")
+                    .then()
+                    .statusCode(200);
+
+            // Verify issue workflow transition
+            await().atMost(10, TimeUnit.SECONDS).pollDelay(1, TimeUnit.SECONDS).until(() -> {
+                Issue issue = getClient().getIssueClient().getIssue(issueKey).claim();
+                assertNotNull(issue);
+
+                Resolution resolution = issue.getResolution();
+                return resolution != null;
+            });
+        } finally {
+            deleteIssue(issueKey);
+        }
+    }
+
+    private String createIssue() {
+        return RestAssured.given()
                 .contentType(ContentType.TEXT)
-                .queryParam("jiraUrl", jiraUrl)
-                .body("Demo issue body")
+                .queryParam("summary", ISSUE_SUMMARY)
+                .queryParam("type", ISSUE_TYPE)
+                .body(ISSUE_DESCRIPTION)
                 .when()
-                .post("/jira/post")
+                .post("/jira/issue")
                 .then()
                 .statusCode(201)
-                .body(matchesPattern("[A-Z]+-[0-9]+"));
+                .body(
+                        "description", equalTo(ISSUE_DESCRIPTION),
+                        "key", matchesPattern("[A-Z]+-[0-9]+"),
+                        "summary", equalTo(ISSUE_SUMMARY),
+                        "type", equalTo(ISSUE_TYPE))
+                .extract()
+                .jsonPath()
+                .getString("key");
+    }
+
+    private void deleteIssue(String issueKey) {
+        try {
+            getClient().getIssueClient()
+                    .deleteIssue(issueKey, true)
+                    .claim();
+        } catch (Exception e) {
+            // Ignore - issue may not exist
+        }
+    }
+
+    private static JiraRestClient getClient() {
+        if (REST_CLIENT == null) {
+            Config config = ConfigProvider.getConfig();
+            String jiraUrl = config.getValue("camel.component.jira.jira-url", String.class);
+            Optional<String> username = config.getOptionalValue("camel.component.jira.username", String.class);
+            Optional<String> password = config.getOptionalValue("camel.component.jira.password", String.class);
+
+            JiraRestClientFactory factory = new OAuthAsynchronousJiraRestClientFactory();
+            URI jiraServerUri = URI.create(jiraUrl);
+            if (username.isPresent() && password.isPresent()) {
+                return factory.createWithBasicHttpAuthentication(jiraServerUri, username.get(), password.get());
+            }
+            throw new IllegalStateException("Unable to create Jira client");
+        }
+        return REST_CLIENT;
     }
 }
diff --git a/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTestResource.java b/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTestResource.java
new file mode 100644
index 0000000..ba66759
--- /dev/null
+++ b/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTestResource.java
@@ -0,0 +1,88 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.jira.it;
+
+import java.util.Map;
+
+import org.apache.camel.quarkus.test.wiremock.WireMockTestResourceLifecycleManager;
+
+public class JiraTestResource extends WireMockTestResourceLifecycleManager {
+
+    private static final String JIRA_ENV_URL = "JIRA_URL";
+    private static final String JIRA_ENV_USERNAME = "JIRA_USERNAME";
+    private static final String JIRA_ENV_PASSWORD = "JIRA_PASSWORD";
+    private static final String JIRA_ENV_ISSUES_PROJECT_KEY = "JIRA_ISSUES_PROJECT_KEY";
+    private static final String JIRA_ENV_OAUTH_ACCESS_TOKEN = "JIRA_OAUTH_ACCESS_TOKEN";
+    private static final String JIRA_ENV_OAUTH_CONSUMER_KEY = "JIRA_OAUTH_CONSUMER_KEY";
+    private static final String JIRA_ENV_OAUTH_PRIVATE_KEY = "JIRA_OAUTH_PRIVATE_KEY";
+    private static final String JIRA_ENV_OAUTH_VERIFICATION_CODE = "JIRA_OAUTH_VERIFICATION_CODE";
+
+    @Override
+    public Map<String, String> start() {
+        Map<String, String> options = super.start();
+        String jiraUrl = envOrDefault(JIRA_ENV_URL, "http://localhost:8080");
+        if (options.containsKey("wiremock.url")) {
+            jiraUrl = options.get("wiremock.url");
+        }
+
+        options.put("jira.issues.project-key", envOrDefault(JIRA_ENV_ISSUES_PROJECT_KEY, "TEST"));
+        options.put("camel.component.jira.jira-url", jiraUrl);
+
+        if (isOauth()) {
+            options.put("camel.component.jira.access-token", envOrDefault(JIRA_ENV_OAUTH_ACCESS_TOKEN, ""));
+            options.put("camel.component.jira.consumer-key", envOrDefault(JIRA_ENV_OAUTH_CONSUMER_KEY, ""));
+            options.put("camel.component.jira.private-key", envOrDefault(JIRA_ENV_OAUTH_PRIVATE_KEY, ""));
+            options.put("camel.component.jira.verification-code", envOrDefault(JIRA_ENV_OAUTH_VERIFICATION_CODE, ""));
+        } else {
+            options.put("camel.component.jira.username", envOrDefault(JIRA_ENV_USERNAME, "jiratester"));
+            options.put("camel.component.jira.password", envOrDefault(JIRA_ENV_PASSWORD, "tester123"));
+        }
+
+        return options;
+    }
+
+    @Override
+    protected String getRecordTargetBaseUrl() {
+        return envOrDefault(JIRA_ENV_URL, null);
+    }
+
+    @Override
+    protected boolean isMockingEnabled() {
+        if (isOauth()) {
+            return !envVarsPresent(
+                    JIRA_ENV_URL,
+                    JIRA_ENV_ISSUES_PROJECT_KEY,
+                    JIRA_ENV_OAUTH_ACCESS_TOKEN,
+                    JIRA_ENV_OAUTH_CONSUMER_KEY,
+                    JIRA_ENV_OAUTH_PRIVATE_KEY,
+                    JIRA_ENV_OAUTH_VERIFICATION_CODE);
+        }
+        return !envVarsPresent(
+                JIRA_ENV_URL,
+                JIRA_ENV_USERNAME,
+                JIRA_ENV_PASSWORD,
+                JIRA_ENV_ISSUES_PROJECT_KEY);
+    }
+
+    private boolean isOauth() {
+        return envVarsPresent(
+                JIRA_ENV_OAUTH_ACCESS_TOKEN,
+                JIRA_ENV_OAUTH_CONSUMER_KEY,
+                JIRA_ENV_OAUTH_PRIVATE_KEY,
+                JIRA_ENV_OAUTH_VERIFICATION_CODE);
+    }
+}
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-67-0e1e85c8-d0b1-42b3-9a7d-2aa604b82ac7.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-67-0e1e85c8-d0b1-42b3-9a7d-2aa604b82ac7.json
new file mode 100644
index 0000000..37d3d50
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-67-0e1e85c8-d0b1-42b3-9a7d-2aa604b82ac7.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10348","self":"http://localhost:8080/rest/api/latest/issue/10348","key":"TEST-67","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-67-940c0b21-7d1a-4963-9cbf-cc9d1f607dbd.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-67-940c0b21-7d1a-4963-9cbf-cc9d1f607dbd.json
new file mode 100644
index 0000000..5b1056b
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-67-940c0b21-7d1a-4963-9cbf-cc9d1f607dbd.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10348","self":"http://localhost:8080/rest/api/latest/issue/10348","key":"TEST-67","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-67-be652193-8a26-42ec-bb0d-7115cd37f3cd.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-67-be652193-8a26-42ec-bb0d-7115cd37f3cd.json
new file mode 100644
index 0000000..926dbc0
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-67-be652193-8a26-42ec-bb0d-7115cd37f3cd.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10348","self":"http://localhost:8080/rest/api/latest/issue/10348","key":"TEST-67","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-67-c56637eb-f7dc-4d5b-8471-e518046ed496.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-67-c56637eb-f7dc-4d5b-8471-e518046ed496.json
new file mode 100644
index 0000000..f8f8a41
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-67-c56637eb-f7dc-4d5b-8471-e518046ed496.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10348","self":"http://localhost:8080/rest/api/latest/issue/10348","key":"TEST-67","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-68-15047dda-1b77-48f5-97c7-79c43e0a3665.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-68-15047dda-1b77-48f5-97c7-79c43e0a3665.json
new file mode 100644
index 0000000..a3035f2
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-68-15047dda-1b77-48f5-97c7-79c43e0a3665.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10349","self":"http://localhost:8080/rest/api/latest/issue/10349","key":"TEST-68","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-68-17c49ae9-16b4-48d6-abfd-7e2ace597a08.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-68-17c49ae9-16b4-48d6-abfd-7e2ace597a08.json
new file mode 100644
index 0000000..baa5cf8
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-68-17c49ae9-16b4-48d6-abfd-7e2ace597a08.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10349","self":"http://localhost:8080/rest/api/latest/issue/10349","key":"TEST-68","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-68-28c61bd1-5321-4eb4-8aee-1056001b18a6.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-68-28c61bd1-5321-4eb4-8aee-1056001b18a6.json
new file mode 100644
index 0000000..ab5157d
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-68-28c61bd1-5321-4eb4-8aee-1056001b18a6.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10349","self":"http://localhost:8080/rest/api/latest/issue/10349","key":"TEST-68","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-68-c09a3e23-4fee-4ee5-9d8b-426c0aa1004c.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-68-c09a3e23-4fee-4ee5-9d8b-426c0aa1004c.json
new file mode 100644
index 0000000..8814d46
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-68-c09a3e23-4fee-4ee5-9d8b-426c0aa1004c.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10349","self":"http://localhost:8080/rest/api/latest/issue/10349","key":"TEST-68","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-69-a114dae3-19a3-486d-8c6a-18fd26d9a80f.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-69-a114dae3-19a3-486d-8c6a-18fd26d9a80f.json
new file mode 100644
index 0000000..d7a135d
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-69-a114dae3-19a3-486d-8c6a-18fd26d9a80f.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10350","self":"http://localhost:8080/rest/api/latest/issue/10350","key":"TEST-69","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-69-a8c98e7e-0414-4b4e-8fae-bb248a8feab8.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-69-a8c98e7e-0414-4b4e-8fae-bb248a8feab8.json
new file mode 100644
index 0000000..3ed17b3
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-69-a8c98e7e-0414-4b4e-8fae-bb248a8feab8.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10350","self":"http://localhost:8080/rest/api/latest/issue/10350","key":"TEST-69","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-69-b577e1c5-cc4e-436b-9c57-50a8d0d605c1.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-69-b577e1c5-cc4e-436b-9c57-50a8d0d605c1.json
new file mode 100644
index 0000000..7cf07de
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-69-b577e1c5-cc4e-436b-9c57-50a8d0d605c1.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10350","self":"http://localhost:8080/rest/api/latest/issue/10350","key":"TEST-69","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-69-ebe35966-c69e-453f-af61-b7d1fd5407c9.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-69-ebe35966-c69e-453f-af61-b7d1fd5407c9.json
new file mode 100644
index 0000000..7d2a4e3
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-69-ebe35966-c69e-453f-af61-b7d1fd5407c9.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10350","self":"http://localhost:8080/rest/api/latest/issue/10350","key":"TEST-69","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-70-288f33f8-ff30-42e6-91cc-27469a454c1f.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-70-288f33f8-ff30-42e6-91cc-27469a454c1f.json
new file mode 100644
index 0000000..5b951a1
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-70-288f33f8-ff30-42e6-91cc-27469a454c1f.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10351","self":"http://localhost:8080/rest/api/latest/issue/10351","key":"TEST-70","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-09b7636c-39fa-4cb3-8fe1-43afb1034924.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-09b7636c-39fa-4cb3-8fe1-43afb1034924.json
new file mode 100644
index 0000000..e21d409
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-09b7636c-39fa-4cb3-8fe1-43afb1034924.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10352","self":"http://localhost:8080/rest/api/latest/issue/10352","key":"TEST-71","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-0e6a77cf-578a-4421-b0e6-9e75f9015ffc.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-0e6a77cf-578a-4421-b0e6-9e75f9015ffc.json
new file mode 100644
index 0000000..19c7298
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-0e6a77cf-578a-4421-b0e6-9e75f9015ffc.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10352","self":"http://localhost:8080/rest/api/latest/issue/10352","key":"TEST-71","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-2470cded-eff1-4696-b664-c6a6afb48352.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-2470cded-eff1-4696-b664-c6a6afb48352.json
new file mode 100644
index 0000000..22001c0
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-2470cded-eff1-4696-b664-c6a6afb48352.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10352","self":"http://localhost:8080/rest/api/latest/issue/10352","key":"TEST-71","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-95392d7a-cee3-4493-808c-f7db7b8c5f9b.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-95392d7a-cee3-4493-808c-f7db7b8c5f9b.json
new file mode 100644
index 0000000..5764755
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-95392d7a-cee3-4493-808c-f7db7b8c5f9b.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10352","self":"http://localhost:8080/rest/api/latest/issue/10352","key":"TEST-71","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-b6cc2884-c9ed-4161-a671-3413813b4db2.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-b6cc2884-c9ed-4161-a671-3413813b4db2.json
new file mode 100644
index 0000000..7e99ea7
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-b6cc2884-c9ed-4161-a671-3413813b4db2.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10352","self":"http://localhost:8080/rest/api/latest/issue/10352","key":"TEST-71","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-72-baa1260a-1c45-43aa-b4d1-9a5a2f296d7a.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-72-baa1260a-1c45-43aa-b4d1-9a5a2f296d7a.json
new file mode 100644
index 0000000..f4302f1
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-72-baa1260a-1c45-43aa-b4d1-9a5a2f296d7a.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10353","self":"http://localhost:8080/rest/api/latest/issue/10353","key":"TEST-72","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-72-bb4bde6d-b387-4cd6-a308-aacf38d6fd5d.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-72-bb4bde6d-b387-4cd6-a308-aacf38d6fd5d.json
new file mode 100644
index 0000000..c61ead4
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-72-bb4bde6d-b387-4cd6-a308-aacf38d6fd5d.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10353","self":"http://localhost:8080/rest/api/latest/issue/10353","key":"TEST-72","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-73-97967053-b459-441a-9f03-b603ca69c22e.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-73-97967053-b459-441a-9f03-b603ca69c22e.json
new file mode 100644
index 0000000..5f2aabc
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-73-97967053-b459-441a-9f03-b603ca69c22e.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10354","self":"http://localhost:8080/rest/api/latest/issue/10354","key":"TEST-73","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-74-75c0d24d-5575-490f-a590-020bd992afe4.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-74-75c0d24d-5575-490f-a590-020bd992afe4.json
new file mode 100644
index 0000000..ab62657
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-74-75c0d24d-5575-490f-a590-020bd992afe4.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10355","self":"http://localhost:8080/rest/api/latest/issue/10355","key":"TEST-74","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-74-920e8e36-2afc-438d-bca6-d1d28116988c.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-74-920e8e36-2afc-438d-bca6-d1d28116988c.json
new file mode 100644
index 0000000..7061e40
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-74-920e8e36-2afc-438d-bca6-d1d28116988c.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10355","self":"http://localhost:8080/rest/api/latest/issue/10355","key":"TEST-74","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-74-a9022ea4-4500-4fa8-9638-b8ac76464b4f.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-74-a9022ea4-4500-4fa8-9638-b8ac76464b4f.json
new file mode 100644
index 0000000..66d91f1
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-74-a9022ea4-4500-4fa8-9638-b8ac76464b4f.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10355","self":"http://localhost:8080/rest/api/latest/issue/10355","key":"TEST-74","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-2eb3eb45-a63a-4655-9d1f-ef82f4d3b825.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-2eb3eb45-a63a-4655-9d1f-ef82f4d3b825.json
new file mode 100644
index 0000000..23cbaf8
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-2eb3eb45-a63a-4655-9d1f-ef82f4d3b825.json
@@ -0,0 +1 @@
+{"expand":"names,schema","startAt":0,"maxResults":1,"total":2,"issues":[{"expand":"operations,versionedRepresentations,editmeta,changelog,renderedFields","id":"10350","self":"http://localhost:8080/rest/api/latest/issue/10350","key":"TEST-69","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Ta [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-4dc289c5-0522-4632-813f-295f4be67eaf.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-4dc289c5-0522-4632-813f-295f4be67eaf.json
new file mode 100644
index 0000000..e7b38c0
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-4dc289c5-0522-4632-813f-295f4be67eaf.json
@@ -0,0 +1 @@
+{"expand":"names,schema","startAt":0,"maxResults":1,"total":2,"issues":[{"expand":"operations,versionedRepresentations,editmeta,changelog,renderedFields","id":"10350","self":"http://localhost:8080/rest/api/latest/issue/10350","key":"TEST-69","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Ta [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-5a3ae50c-9eee-45ea-bb4e-28b2864e392d.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-5a3ae50c-9eee-45ea-bb4e-28b2864e392d.json
new file mode 100644
index 0000000..6177532
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-5a3ae50c-9eee-45ea-bb4e-28b2864e392d.json
@@ -0,0 +1 @@
+{"expand":"names,schema","startAt":0,"maxResults":1,"total":2,"issues":[{"expand":"operations,versionedRepresentations,editmeta,changelog,renderedFields","id":"10351","self":"http://localhost:8080/rest/api/latest/issue/10351","key":"TEST-70","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Ta [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-a8497662-b947-4b46-9815-9e04995588c8.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-a8497662-b947-4b46-9815-9e04995588c8.json
new file mode 100644
index 0000000..74480ba
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-a8497662-b947-4b46-9815-9e04995588c8.json
@@ -0,0 +1 @@
+{"expand":"names,schema","startAt":0,"maxResults":1,"total":1,"issues":[{"expand":"operations,versionedRepresentations,editmeta,changelog,renderedFields","id":"10351","self":"http://localhost:8080/rest/api/latest/issue/10351","key":"TEST-70","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Ta [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-ce09e8e1-0c2f-4646-a58a-dcf55e4de092.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-ce09e8e1-0c2f-4646-a58a-dcf55e4de092.json
new file mode 100644
index 0000000..ecb6893
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-ce09e8e1-0c2f-4646-a58a-dcf55e4de092.json
@@ -0,0 +1 @@
+{"expand":"names,schema","startAt":0,"maxResults":1,"total":2,"issues":[{"expand":"operations,versionedRepresentations,editmeta,changelog,renderedFields","id":"10351","self":"http://localhost:8080/rest/api/latest/issue/10351","key":"TEST-70","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Ta [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-ea789be6-5899-46e7-ab02-8ec3692596f5.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-ea789be6-5899-46e7-ab02-8ec3692596f5.json
new file mode 100644
index 0000000..d7c54dc
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-ea789be6-5899-46e7-ab02-8ec3692596f5.json
@@ -0,0 +1 @@
+{"expand":"names,schema","startAt":0,"maxResults":1,"total":1,"issues":[{"expand":"operations,versionedRepresentations,editmeta,changelog,renderedFields","id":"10304","self":"http://localhost:8080/rest/api/latest/issue/10304","key":"TEST-23","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10002","id":"10002","description":"Created by Jira Software - do not edit or delete. Issue type for a user story.","iconUrl":"http://localhost:8080/images/icons/issuetypes/stor [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-467257d0-dc2a-4066-8eb8-1e91b1a95cc4.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-467257d0-dc2a-4066-8eb8-1e91b1a95cc4.json
new file mode 100644
index 0000000..e21ba40
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-467257d0-dc2a-4066-8eb8-1e91b1a95cc4.json
@@ -0,0 +1,39 @@
+{
+  "id" : "467257d0-dc2a-4066-8eb8-1e91b1a95cc4",
+  "name" : "rest_api_latest_issue",
+  "request" : {
+    "url" : "/rest/api/latest/issue",
+    "method" : "POST",
+    "bodyPatterns" : [ {
+      "equalToJson" : "{\"fields\":{\"summary\":\"Camel Quarkus Test Issue Summary\",\"issuetype\":{\"id\":\"10003\"},\"project\":{\"key\":\"TEST\"},\"description\":\"Camel Quarkus Test Issue Description\"},\"properties\":[]}",
+      "ignoreArrayOrder" : true,
+      "ignoreExtraElements" : true
+    } ]
+  },
+  "response" : {
+    "status" : 201,
+    "body" : "{\"id\":\"10353\",\"key\":\"TEST-72\",\"self\":\"http://localhost:8080/rest/api/latest/issue/10353\"}",
+    "headers" : {
+      "X-AREQUESTID" : "667x2745x1",
+      "X-ASESSIONID" : "2te3mh",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:54 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "467257d0-dc2a-4066-8eb8-1e91b1a95cc4",
+  "persistent" : true,
+  "scenarioName" : "scenario-2-rest-api-latest-issue",
+  "requiredScenarioState" : "scenario-2-rest-api-latest-issue-6",
+  "newScenarioState" : "scenario-2-rest-api-latest-issue-7",
+  "insertionIndex" : 47
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-4846b302-a78c-4342-9770-fe311569d92d.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-4846b302-a78c-4342-9770-fe311569d92d.json
new file mode 100644
index 0000000..be8627a
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-4846b302-a78c-4342-9770-fe311569d92d.json
@@ -0,0 +1,39 @@
+{
+  "id" : "4846b302-a78c-4342-9770-fe311569d92d",
+  "name" : "rest_api_latest_issue",
+  "request" : {
+    "url" : "/rest/api/latest/issue",
+    "method" : "POST",
+    "bodyPatterns" : [ {
+      "equalToJson" : "{\"fields\":{\"summary\":\"Camel Quarkus Test Issue Summary\",\"issuetype\":{\"id\":\"10003\"},\"project\":{\"key\":\"TEST\"},\"description\":\"Camel Quarkus Test Issue Description\"},\"properties\":[]}",
+      "ignoreArrayOrder" : true,
+      "ignoreExtraElements" : true
+    } ]
+  },
+  "response" : {
+    "status" : 201,
+    "body" : "{\"id\":\"10351\",\"key\":\"TEST-70\",\"self\":\"http://localhost:8080/rest/api/latest/issue/10351\"}",
+    "headers" : {
+      "X-AREQUESTID" : "667x2724x1",
+      "X-ASESSIONID" : "2te3mh",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:48 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "4846b302-a78c-4342-9770-fe311569d92d",
+  "persistent" : true,
+  "scenarioName" : "scenario-2-rest-api-latest-issue",
+  "requiredScenarioState" : "scenario-2-rest-api-latest-issue-4",
+  "newScenarioState" : "scenario-2-rest-api-latest-issue-5",
+  "insertionIndex" : 28
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-6d80c43a-e688-4e0c-a26f-6b44a32b3ba3.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-6d80c43a-e688-4e0c-a26f-6b44a32b3ba3.json
new file mode 100644
index 0000000..f9170c4
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-6d80c43a-e688-4e0c-a26f-6b44a32b3ba3.json
@@ -0,0 +1,39 @@
+{
+  "id" : "6d80c43a-e688-4e0c-a26f-6b44a32b3ba3",
+  "name" : "rest_api_latest_issue",
+  "request" : {
+    "url" : "/rest/api/latest/issue",
+    "method" : "POST",
+    "bodyPatterns" : [ {
+      "equalToJson" : "{\"fields\":{\"summary\":\"Camel Quarkus Test Issue Summary\",\"issuetype\":{\"id\":\"10003\"},\"project\":{\"key\":\"TEST\"},\"description\":\"Camel Quarkus Test Issue Description\"},\"properties\":[]}",
+      "ignoreArrayOrder" : true,
+      "ignoreExtraElements" : true
+    } ]
+  },
+  "response" : {
+    "status" : 201,
+    "body" : "{\"id\":\"10348\",\"key\":\"TEST-67\",\"self\":\"http://localhost:8080/rest/api/latest/issue/10348\"}",
+    "headers" : {
+      "X-AREQUESTID" : "667x2695x1",
+      "X-ASESSIONID" : "2te3mh",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:43 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "6d80c43a-e688-4e0c-a26f-6b44a32b3ba3",
+  "persistent" : true,
+  "scenarioName" : "scenario-2-rest-api-latest-issue",
+  "requiredScenarioState" : "Started",
+  "newScenarioState" : "scenario-2-rest-api-latest-issue-2",
+  "insertionIndex" : 2
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-956a8664-2312-4fdd-b9db-978df0bd8595.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-956a8664-2312-4fdd-b9db-978df0bd8595.json
new file mode 100644
index 0000000..96b68ad
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-956a8664-2312-4fdd-b9db-978df0bd8595.json
@@ -0,0 +1,38 @@
+{
+  "id" : "956a8664-2312-4fdd-b9db-978df0bd8595",
+  "name" : "rest_api_latest_issue",
+  "request" : {
+    "url" : "/rest/api/latest/issue",
+    "method" : "POST",
+    "bodyPatterns" : [ {
+      "equalToJson" : "{\"fields\":{\"summary\":\"Camel Quarkus Test Issue Summary\",\"issuetype\":{\"id\":\"10003\"},\"project\":{\"key\":\"TEST\"},\"description\":\"Camel Quarkus Test Issue Description\"},\"properties\":[]}",
+      "ignoreArrayOrder" : true,
+      "ignoreExtraElements" : true
+    } ]
+  },
+  "response" : {
+    "status" : 201,
+    "body" : "{\"id\":\"10355\",\"key\":\"TEST-74\",\"self\":\"http://localhost:8080/rest/api/latest/issue/10355\"}",
+    "headers" : {
+      "X-AREQUESTID" : "667x2756x1",
+      "X-ASESSIONID" : "2te3mh",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:55 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "956a8664-2312-4fdd-b9db-978df0bd8595",
+  "persistent" : true,
+  "scenarioName" : "scenario-2-rest-api-latest-issue",
+  "requiredScenarioState" : "scenario-2-rest-api-latest-issue-8",
+  "insertionIndex" : 58
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-bae70b60-36da-4aef-954f-0d8dfc2230b5.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-bae70b60-36da-4aef-954f-0d8dfc2230b5.json
new file mode 100644
index 0000000..19d344a
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-bae70b60-36da-4aef-954f-0d8dfc2230b5.json
@@ -0,0 +1,39 @@
+{
+  "id" : "bae70b60-36da-4aef-954f-0d8dfc2230b5",
+  "name" : "rest_api_latest_issue",
+  "request" : {
+    "url" : "/rest/api/latest/issue",
+    "method" : "POST",
+    "bodyPatterns" : [ {
+      "equalToJson" : "{\"fields\":{\"summary\":\"Camel Quarkus Test Issue Summary\",\"issuetype\":{\"id\":\"10003\"},\"project\":{\"key\":\"TEST\"},\"description\":\"Camel Quarkus Test Issue Description\"},\"properties\":[]}",
+      "ignoreArrayOrder" : true,
+      "ignoreExtraElements" : true
+    } ]
+  },
+  "response" : {
+    "status" : 201,
+    "body" : "{\"id\":\"10354\",\"key\":\"TEST-73\",\"self\":\"http://localhost:8080/rest/api/latest/issue/10354\"}",
+    "headers" : {
+      "X-AREQUESTID" : "667x2748x1",
+      "X-ASESSIONID" : "2te3mh",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:54 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "bae70b60-36da-4aef-954f-0d8dfc2230b5",
+  "persistent" : true,
+  "scenarioName" : "scenario-2-rest-api-latest-issue",
+  "requiredScenarioState" : "scenario-2-rest-api-latest-issue-7",
+  "newScenarioState" : "scenario-2-rest-api-latest-issue-8",
+  "insertionIndex" : 50
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-bd873ed1-07bb-44e7-b0b9-2030420211aa.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-bd873ed1-07bb-44e7-b0b9-2030420211aa.json
new file mode 100644
index 0000000..6a8cccc
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-bd873ed1-07bb-44e7-b0b9-2030420211aa.json
@@ -0,0 +1,39 @@
+{
+  "id" : "bd873ed1-07bb-44e7-b0b9-2030420211aa",
+  "name" : "rest_api_latest_issue",
+  "request" : {
+    "url" : "/rest/api/latest/issue",
+    "method" : "POST",
+    "bodyPatterns" : [ {
+      "equalToJson" : "{\"fields\":{\"summary\":\"Camel Quarkus Test Issue Summary\",\"issuetype\":{\"id\":\"10003\"},\"project\":{\"key\":\"TEST\"},\"description\":\"Camel Quarkus Test Issue Description\"},\"properties\":[]}",
+      "ignoreArrayOrder" : true,
+      "ignoreExtraElements" : true
+    } ]
+  },
+  "response" : {
+    "status" : 201,
+    "body" : "{\"id\":\"10349\",\"key\":\"TEST-68\",\"self\":\"http://localhost:8080/rest/api/latest/issue/10349\"}",
+    "headers" : {
+      "X-AREQUESTID" : "667x2704x1",
+      "X-ASESSIONID" : "2te3mh",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:45 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "bd873ed1-07bb-44e7-b0b9-2030420211aa",
+  "persistent" : true,
+  "scenarioName" : "scenario-2-rest-api-latest-issue",
+  "requiredScenarioState" : "scenario-2-rest-api-latest-issue-2",
+  "newScenarioState" : "scenario-2-rest-api-latest-issue-3",
+  "insertionIndex" : 10
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-c2c8d72a-625e-4759-9878-5bc9babfca2e.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-c2c8d72a-625e-4759-9878-5bc9babfca2e.json
new file mode 100644
index 0000000..acadb74
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-c2c8d72a-625e-4759-9878-5bc9babfca2e.json
@@ -0,0 +1,39 @@
+{
+  "id" : "c2c8d72a-625e-4759-9878-5bc9babfca2e",
+  "name" : "rest_api_latest_issue",
+  "request" : {
+    "url" : "/rest/api/latest/issue",
+    "method" : "POST",
+    "bodyPatterns" : [ {
+      "equalToJson" : "{\"fields\":{\"summary\":\"Camel Quarkus Test Issue Summary\",\"issuetype\":{\"id\":\"10003\"},\"project\":{\"key\":\"TEST\"},\"description\":\"Camel Quarkus Test Issue Description\"},\"properties\":[]}",
+      "ignoreArrayOrder" : true,
+      "ignoreExtraElements" : true
+    } ]
+  },
+  "response" : {
+    "status" : 201,
+    "body" : "{\"id\":\"10350\",\"key\":\"TEST-69\",\"self\":\"http://localhost:8080/rest/api/latest/issue/10350\"}",
+    "headers" : {
+      "X-AREQUESTID" : "667x2712x1",
+      "X-ASESSIONID" : "2te3mh",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:46 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "c2c8d72a-625e-4759-9878-5bc9babfca2e",
+  "persistent" : true,
+  "scenarioName" : "scenario-2-rest-api-latest-issue",
+  "requiredScenarioState" : "scenario-2-rest-api-latest-issue-3",
+  "newScenarioState" : "scenario-2-rest-api-latest-issue-4",
+  "insertionIndex" : 17
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-d88f3854-1abc-4c19-a94b-faefb8e119a1.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-d88f3854-1abc-4c19-a94b-faefb8e119a1.json
new file mode 100644
index 0000000..76f16d2
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-d88f3854-1abc-4c19-a94b-faefb8e119a1.json
@@ -0,0 +1,39 @@
+{
+  "id" : "d88f3854-1abc-4c19-a94b-faefb8e119a1",
+  "name" : "rest_api_latest_issue",
+  "request" : {
+    "url" : "/rest/api/latest/issue",
+    "method" : "POST",
+    "bodyPatterns" : [ {
+      "equalToJson" : "{\"fields\":{\"summary\":\"Camel Quarkus Test Issue Summary\",\"issuetype\":{\"id\":\"10003\"},\"project\":{\"key\":\"TEST\"},\"description\":\"Camel Quarkus Test Issue Description\"},\"properties\":[]}",
+      "ignoreArrayOrder" : true,
+      "ignoreExtraElements" : true
+    } ]
+  },
+  "response" : {
+    "status" : 201,
+    "body" : "{\"id\":\"10352\",\"key\":\"TEST-71\",\"self\":\"http://localhost:8080/rest/api/latest/issue/10352\"}",
+    "headers" : {
+      "X-AREQUESTID" : "667x2733x1",
+      "X-ASESSIONID" : "2te3mh",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:51 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "d88f3854-1abc-4c19-a94b-faefb8e119a1",
+  "persistent" : true,
+  "scenarioName" : "scenario-2-rest-api-latest-issue",
+  "requiredScenarioState" : "scenario-2-rest-api-latest-issue-5",
+  "newScenarioState" : "scenario-2-rest-api-latest-issue-6",
+  "insertionIndex" : 37
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-0e1e85c8-d0b1-42b3-9a7d-2aa604b82ac7.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-0e1e85c8-d0b1-42b3-9a7d-2aa604b82ac7.json
new file mode 100644
index 0000000..f0da67a
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-0e1e85c8-d0b1-42b3-9a7d-2aa604b82ac7.json
@@ -0,0 +1,33 @@
+{
+  "id" : "0e1e85c8-d0b1-42b3-9a7d-2aa604b82ac7",
+  "name" : "rest_api_latest_issue_test-67",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-67?expand=schema%2Cnames%2Ctransitions",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_issue_test-67-0e1e85c8-d0b1-42b3-9a7d-2aa604b82ac7.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2701x1",
+      "X-ASESSIONID" : "kpb0b3",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:45 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "0e1e85c8-d0b1-42b3-9a7d-2aa604b82ac7",
+  "persistent" : true,
+  "scenarioName" : "scenario-3-rest-api-latest-issue-TEST-67",
+  "requiredScenarioState" : "scenario-3-rest-api-latest-issue-TEST-67-4",
+  "insertionIndex" : 7
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-7b93fd68-1f69-4005-ae76-056af9123977.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-7b93fd68-1f69-4005-ae76-056af9123977.json
new file mode 100644
index 0000000..61ecf40
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-7b93fd68-1f69-4005-ae76-056af9123977.json
@@ -0,0 +1,30 @@
+{
+  "id" : "7b93fd68-1f69-4005-ae76-056af9123977",
+  "name" : "rest_api_latest_issue_test-67",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-67?deleteSubtasks=true",
+    "method" : "DELETE"
+  },
+  "response" : {
+    "status" : 204,
+    "headers" : {
+      "X-AREQUESTID" : "667x2702x1",
+      "X-ASESSIONID" : "kpb0b3",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:45 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "7b93fd68-1f69-4005-ae76-056af9123977",
+  "persistent" : true,
+  "insertionIndex" : 8
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-940c0b21-7d1a-4963-9cbf-cc9d1f607dbd.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-940c0b21-7d1a-4963-9cbf-cc9d1f607dbd.json
new file mode 100644
index 0000000..90c3035
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-940c0b21-7d1a-4963-9cbf-cc9d1f607dbd.json
@@ -0,0 +1,35 @@
+{
+  "id" : "940c0b21-7d1a-4963-9cbf-cc9d1f607dbd",
+  "name" : "rest_api_latest_issue_test-67",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-67?expand=schema%2Cnames%2Ctransitions",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_issue_test-67-940c0b21-7d1a-4963-9cbf-cc9d1f607dbd.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2698x1",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "Set-Cookie" : [ "JSESSIONID=0A1BA17702F331A1131F88F0A9670C53; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_6785f3cf7ba44e8a23f1bd918f70b845333cab65_lin; Path=/" ],
+      "X-Seraph-LoginReason" : "OK",
+      "X-ASESSIONID" : "1lz67bf",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:44 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "940c0b21-7d1a-4963-9cbf-cc9d1f607dbd",
+  "persistent" : true,
+  "scenarioName" : "scenario-3-rest-api-latest-issue-TEST-67",
+  "requiredScenarioState" : "scenario-3-rest-api-latest-issue-TEST-67-3",
+  "newScenarioState" : "scenario-3-rest-api-latest-issue-TEST-67-4",
+  "insertionIndex" : 5
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-be652193-8a26-42ec-bb0d-7115cd37f3cd.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-be652193-8a26-42ec-bb0d-7115cd37f3cd.json
new file mode 100644
index 0000000..0b3aa0d
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-be652193-8a26-42ec-bb0d-7115cd37f3cd.json
@@ -0,0 +1,34 @@
+{
+  "id" : "be652193-8a26-42ec-bb0d-7115cd37f3cd",
+  "name" : "rest_api_latest_issue_test-67",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-67?expand=schema%2Cnames%2Ctransitions",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_issue_test-67-be652193-8a26-42ec-bb0d-7115cd37f3cd.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2696x1",
+      "X-ASESSIONID" : "2te3mh",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:43 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "be652193-8a26-42ec-bb0d-7115cd37f3cd",
+  "persistent" : true,
+  "scenarioName" : "scenario-3-rest-api-latest-issue-TEST-67",
+  "requiredScenarioState" : "Started",
+  "newScenarioState" : "scenario-3-rest-api-latest-issue-TEST-67-2",
+  "insertionIndex" : 3
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-c56637eb-f7dc-4d5b-8471-e518046ed496.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-c56637eb-f7dc-4d5b-8471-e518046ed496.json
new file mode 100644
index 0000000..79f223d
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-c56637eb-f7dc-4d5b-8471-e518046ed496.json
@@ -0,0 +1,35 @@
+{
+  "id" : "c56637eb-f7dc-4d5b-8471-e518046ed496",
+  "name" : "rest_api_latest_issue_test-67",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-67?expand=schema%2Cnames%2Ctransitions",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_issue_test-67-c56637eb-f7dc-4d5b-8471-e518046ed496.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2697x1",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "Set-Cookie" : [ "JSESSIONID=6A722810FDCCEAD61563CBBF01E373D0; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_25f2bebc3af1e6c714d079c7f05acfc0e53013b2_lin; Path=/" ],
+      "X-Seraph-LoginReason" : "OK",
+      "X-ASESSIONID" : "kpb0b3",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:43 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "c56637eb-f7dc-4d5b-8471-e518046ed496",
+  "persistent" : true,
+  "scenarioName" : "scenario-3-rest-api-latest-issue-TEST-67",
+  "requiredScenarioState" : "scenario-3-rest-api-latest-issue-TEST-67-2",
+  "newScenarioState" : "scenario-3-rest-api-latest-issue-TEST-67-3",
+  "insertionIndex" : 4
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-05a2b7b2-8906-433a-a35d-02d96bacf022.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-05a2b7b2-8906-433a-a35d-02d96bacf022.json
new file mode 100644
index 0000000..28f2a0e
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-05a2b7b2-8906-433a-a35d-02d96bacf022.json
@@ -0,0 +1,30 @@
+{
+  "id" : "05a2b7b2-8906-433a-a35d-02d96bacf022",
+  "name" : "rest_api_latest_issue_test-68",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-68?deleteSubtasks=true",
+    "method" : "DELETE"
+  },
+  "response" : {
+    "status" : 204,
+    "headers" : {
+      "X-AREQUESTID" : "667x2710x1",
+      "X-ASESSIONID" : "kpb0b3",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:46 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "05a2b7b2-8906-433a-a35d-02d96bacf022",
+  "persistent" : true,
+  "insertionIndex" : 15
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-15047dda-1b77-48f5-97c7-79c43e0a3665.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-15047dda-1b77-48f5-97c7-79c43e0a3665.json
new file mode 100644
index 0000000..c7e0d61
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-15047dda-1b77-48f5-97c7-79c43e0a3665.json
@@ -0,0 +1,35 @@
+{
+  "id" : "15047dda-1b77-48f5-97c7-79c43e0a3665",
+  "name" : "rest_api_latest_issue_test-68",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-68?expand=schema%2Cnames%2Ctransitions",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_issue_test-68-15047dda-1b77-48f5-97c7-79c43e0a3665.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2706x1",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "Set-Cookie" : [ "JSESSIONID=C37E464FF373B9685137588546070B5A; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_6ae8dfb9f968afa891e6cae36068469a0cf762da_lin; Path=/" ],
+      "X-Seraph-LoginReason" : "OK",
+      "X-ASESSIONID" : "1mivwiw",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:45 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "15047dda-1b77-48f5-97c7-79c43e0a3665",
+  "persistent" : true,
+  "scenarioName" : "scenario-5-rest-api-latest-issue-TEST-68",
+  "requiredScenarioState" : "scenario-5-rest-api-latest-issue-TEST-68-2",
+  "newScenarioState" : "scenario-5-rest-api-latest-issue-TEST-68-3",
+  "insertionIndex" : 12
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-17c49ae9-16b4-48d6-abfd-7e2ace597a08.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-17c49ae9-16b4-48d6-abfd-7e2ace597a08.json
new file mode 100644
index 0000000..f4715a8
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-17c49ae9-16b4-48d6-abfd-7e2ace597a08.json
@@ -0,0 +1,34 @@
+{
+  "id" : "17c49ae9-16b4-48d6-abfd-7e2ace597a08",
+  "name" : "rest_api_latest_issue_test-68",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-68?expand=schema%2Cnames%2Ctransitions",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_issue_test-68-17c49ae9-16b4-48d6-abfd-7e2ace597a08.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2708x1",
+      "X-ASESSIONID" : "kpb0b3",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:46 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "17c49ae9-16b4-48d6-abfd-7e2ace597a08",
+  "persistent" : true,
+  "scenarioName" : "scenario-5-rest-api-latest-issue-TEST-68",
+  "requiredScenarioState" : "scenario-5-rest-api-latest-issue-TEST-68-3",
+  "newScenarioState" : "scenario-5-rest-api-latest-issue-TEST-68-4",
+  "insertionIndex" : 13
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-28c61bd1-5321-4eb4-8aee-1056001b18a6.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-28c61bd1-5321-4eb4-8aee-1056001b18a6.json
new file mode 100644
index 0000000..d4b9359
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-28c61bd1-5321-4eb4-8aee-1056001b18a6.json
@@ -0,0 +1,33 @@
+{
+  "id" : "28c61bd1-5321-4eb4-8aee-1056001b18a6",
+  "name" : "rest_api_latest_issue_test-68",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-68?expand=schema%2Cnames%2Ctransitions",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_issue_test-68-28c61bd1-5321-4eb4-8aee-1056001b18a6.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2709x1",
+      "X-ASESSIONID" : "kpb0b3",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:46 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "28c61bd1-5321-4eb4-8aee-1056001b18a6",
+  "persistent" : true,
+  "scenarioName" : "scenario-5-rest-api-latest-issue-TEST-68",
+  "requiredScenarioState" : "scenario-5-rest-api-latest-issue-TEST-68-4",
+  "insertionIndex" : 14
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-c09a3e23-4fee-4ee5-9d8b-426c0aa1004c.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-c09a3e23-4fee-4ee5-9d8b-426c0aa1004c.json
new file mode 100644
index 0000000..4a564a4
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-c09a3e23-4fee-4ee5-9d8b-426c0aa1004c.json
@@ -0,0 +1,34 @@
+{
+  "id" : "c09a3e23-4fee-4ee5-9d8b-426c0aa1004c",
+  "name" : "rest_api_latest_issue_test-68",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-68?expand=schema%2Cnames%2Ctransitions",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_issue_test-68-c09a3e23-4fee-4ee5-9d8b-426c0aa1004c.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2705x1",
+      "X-ASESSIONID" : "2te3mh",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:45 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "c09a3e23-4fee-4ee5-9d8b-426c0aa1004c",
+  "persistent" : true,
+  "scenarioName" : "scenario-5-rest-api-latest-issue-TEST-68",
+  "requiredScenarioState" : "Started",
+  "newScenarioState" : "scenario-5-rest-api-latest-issue-TEST-68-2",
+  "insertionIndex" : 11
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-450baa09-6b3f-4c51-8f58-a69e72aedb41.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-450baa09-6b3f-4c51-8f58-a69e72aedb41.json
new file mode 100644
index 0000000..8a61d6e
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-450baa09-6b3f-4c51-8f58-a69e72aedb41.json
@@ -0,0 +1,30 @@
+{
+  "id" : "450baa09-6b3f-4c51-8f58-a69e72aedb41",
+  "name" : "rest_api_latest_issue_test-69",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-69?deleteSubtasks=true",
+    "method" : "DELETE"
+  },
+  "response" : {
+    "status" : 204,
+    "headers" : {
+      "X-AREQUESTID" : "667x2721x1",
+      "X-ASESSIONID" : "kpb0b3",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:48 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "450baa09-6b3f-4c51-8f58-a69e72aedb41",
+  "persistent" : true,
+  "insertionIndex" : 25
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-a114dae3-19a3-486d-8c6a-18fd26d9a80f.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-a114dae3-19a3-486d-8c6a-18fd26d9a80f.json
new file mode 100644
index 0000000..cb0dd0f
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-a114dae3-19a3-486d-8c6a-18fd26d9a80f.json
@@ -0,0 +1,34 @@
+{
+  "id" : "a114dae3-19a3-486d-8c6a-18fd26d9a80f",
+  "name" : "rest_api_latest_issue_test-69",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-69?expand=schema%2Cnames%2Ctransitions",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_issue_test-69-a114dae3-19a3-486d-8c6a-18fd26d9a80f.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2713x1",
+      "X-ASESSIONID" : "2te3mh",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:46 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "a114dae3-19a3-486d-8c6a-18fd26d9a80f",
+  "persistent" : true,
+  "scenarioName" : "scenario-6-rest-api-latest-issue-TEST-69",
+  "requiredScenarioState" : "Started",
+  "newScenarioState" : "scenario-6-rest-api-latest-issue-TEST-69-2",
+  "insertionIndex" : 18
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-a8c98e7e-0414-4b4e-8fae-bb248a8feab8.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-a8c98e7e-0414-4b4e-8fae-bb248a8feab8.json
new file mode 100644
index 0000000..d79f2a0
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-a8c98e7e-0414-4b4e-8fae-bb248a8feab8.json
@@ -0,0 +1,33 @@
+{
+  "id" : "a8c98e7e-0414-4b4e-8fae-bb248a8feab8",
+  "name" : "rest_api_latest_issue_test-69",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-69?expand=schema%2Cnames%2Ctransitions",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_issue_test-69-a8c98e7e-0414-4b4e-8fae-bb248a8feab8.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2720x1",
+      "X-ASESSIONID" : "r44kdk",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:48 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "a8c98e7e-0414-4b4e-8fae-bb248a8feab8",
+  "persistent" : true,
+  "scenarioName" : "scenario-6-rest-api-latest-issue-TEST-69",
+  "requiredScenarioState" : "scenario-6-rest-api-latest-issue-TEST-69-4",
+  "insertionIndex" : 24
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-b577e1c5-cc4e-436b-9c57-50a8d0d605c1.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-b577e1c5-cc4e-436b-9c57-50a8d0d605c1.json
new file mode 100644
index 0000000..4769a3b
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-b577e1c5-cc4e-436b-9c57-50a8d0d605c1.json
@@ -0,0 +1,34 @@
+{
+  "id" : "b577e1c5-cc4e-436b-9c57-50a8d0d605c1",
+  "name" : "rest_api_latest_issue_test-69",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-69?expand=schema%2Cnames%2Ctransitions",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_issue_test-69-b577e1c5-cc4e-436b-9c57-50a8d0d605c1.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2715x1",
+      "X-ASESSIONID" : "r44kdk",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:46 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "b577e1c5-cc4e-436b-9c57-50a8d0d605c1",
+  "persistent" : true,
+  "scenarioName" : "scenario-6-rest-api-latest-issue-TEST-69",
+  "requiredScenarioState" : "scenario-6-rest-api-latest-issue-TEST-69-2",
+  "newScenarioState" : "scenario-6-rest-api-latest-issue-TEST-69-3",
+  "insertionIndex" : 20
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-ebe35966-c69e-453f-af61-b7d1fd5407c9.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-ebe35966-c69e-453f-af61-b7d1fd5407c9.json
new file mode 100644
index 0000000..2b0717d
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-ebe35966-c69e-453f-af61-b7d1fd5407c9.json
@@ -0,0 +1,35 @@
+{
+  "id" : "ebe35966-c69e-453f-af61-b7d1fd5407c9",
+  "name" : "rest_api_latest_issue_test-69",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-69?expand=schema%2Cnames%2Ctransitions",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_issue_test-69-ebe35966-c69e-453f-af61-b7d1fd5407c9.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2716x1",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "Set-Cookie" : [ "JSESSIONID=6D701B098688AA4ADEEC713530F899AF; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_fee522b47ca21f10b3320d5b25bb93c8c6105cf7_lin; Path=/" ],
+      "X-Seraph-LoginReason" : "OK",
+      "X-ASESSIONID" : "179pd4f",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:46 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "ebe35966-c69e-453f-af61-b7d1fd5407c9",
+  "persistent" : true,
+  "scenarioName" : "scenario-6-rest-api-latest-issue-TEST-69",
+  "requiredScenarioState" : "scenario-6-rest-api-latest-issue-TEST-69-3",
+  "newScenarioState" : "scenario-6-rest-api-latest-issue-TEST-69-4",
+  "insertionIndex" : 21
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-70-288f33f8-ff30-42e6-91cc-27469a454c1f.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-70-288f33f8-ff30-42e6-91cc-27469a454c1f.json
new file mode 100644
index 0000000..16af962
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-70-288f33f8-ff30-42e6-91cc-27469a454c1f.json
@@ -0,0 +1,34 @@
+{
+  "id" : "288f33f8-ff30-42e6-91cc-27469a454c1f",
+  "name" : "rest_api_latest_issue_test-70",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-70?expand=schema%2Cnames%2Ctransitions",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_issue_test-70-288f33f8-ff30-42e6-91cc-27469a454c1f.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2725x1",
+      "X-ASESSIONID" : "2te3mh",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:48 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "288f33f8-ff30-42e6-91cc-27469a454c1f",
+  "persistent" : true,
+  "scenarioName" : "scenario-8-rest-api-latest-issue-TEST-70",
+  "requiredScenarioState" : "Started",
+  "newScenarioState" : "scenario-8-rest-api-latest-issue-TEST-70-2",
+  "insertionIndex" : 29
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-70-4d938ceb-5f17-4574-bfde-bb47eea5bb59.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-70-4d938ceb-5f17-4574-bfde-bb47eea5bb59.json
new file mode 100644
index 0000000..96a1a82
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-70-4d938ceb-5f17-4574-bfde-bb47eea5bb59.json
@@ -0,0 +1,36 @@
+{
+  "id" : "4d938ceb-5f17-4574-bfde-bb47eea5bb59",
+  "name" : "rest_api_latest_issue_test-70",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-70",
+    "method" : "PUT",
+    "bodyPatterns" : [ {
+      "equalToJson" : "{\"fields\":{\"summary\":\"Updated summary\"},\"properties\":[]}",
+      "ignoreArrayOrder" : true,
+      "ignoreExtraElements" : true
+    } ]
+  },
+  "response" : {
+    "status" : 204,
+    "headers" : {
+      "X-AREQUESTID" : "667x2728x1",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "Set-Cookie" : [ "JSESSIONID=CBDA5E31358010134C7571D26044A12E; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_23f86beb2b668eca49fbe9e6bd307cf445552a6a_lin; Path=/" ],
+      "X-Seraph-LoginReason" : "OK",
+      "X-ASESSIONID" : "1ocfnpn",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:49 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "4d938ceb-5f17-4574-bfde-bb47eea5bb59",
+  "persistent" : true,
+  "insertionIndex" : 32
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-70-f2ab1813-65c5-494f-a5ac-da9e340b3d94.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-70-f2ab1813-65c5-494f-a5ac-da9e340b3d94.json
new file mode 100644
index 0000000..e39fc6f
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-70-f2ab1813-65c5-494f-a5ac-da9e340b3d94.json
@@ -0,0 +1,31 @@
+{
+  "id" : "f2ab1813-65c5-494f-a5ac-da9e340b3d94",
+  "name" : "rest_api_latest_issue_test-70",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-70?deleteSubtasks=true",
+    "method" : "DELETE"
+  },
+  "response" : {
+    "status" : 204,
+    "headers" : {
+      "X-AREQUESTID" : "667x2730x1",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "Set-Cookie" : [ "JSESSIONID=7F03072CA15D0722C0BB6D475C467A2B; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_b308717a587a80414390630b0468a1d76a98f5cd_lin; Path=/" ],
+      "X-Seraph-LoginReason" : "OK",
+      "X-ASESSIONID" : "yuhl16",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:50 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "f2ab1813-65c5-494f-a5ac-da9e340b3d94",
+  "persistent" : true,
+  "insertionIndex" : 34
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-09b7636c-39fa-4cb3-8fe1-43afb1034924.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-09b7636c-39fa-4cb3-8fe1-43afb1034924.json
new file mode 100644
index 0000000..83c5494
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-09b7636c-39fa-4cb3-8fe1-43afb1034924.json
@@ -0,0 +1,35 @@
+{
+  "id" : "09b7636c-39fa-4cb3-8fe1-43afb1034924",
+  "name" : "rest_api_latest_issue_test-71",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-71?expand=schema%2Cnames%2Ctransitions",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_issue_test-71-09b7636c-39fa-4cb3-8fe1-43afb1034924.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2736x1",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "Set-Cookie" : [ "JSESSIONID=B2405E53FD9A2836F2C704515701A1F3; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_53ccddf323419625044139ad0f9d21bb985d9c0d_lin; Path=/" ],
+      "X-Seraph-LoginReason" : "OK",
+      "X-ASESSIONID" : "q6uf1d",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:51 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "09b7636c-39fa-4cb3-8fe1-43afb1034924",
+  "persistent" : true,
+  "scenarioName" : "scenario-9-rest-api-latest-issue-TEST-71",
+  "requiredScenarioState" : "scenario-9-rest-api-latest-issue-TEST-71-2",
+  "newScenarioState" : "scenario-9-rest-api-latest-issue-TEST-71-3",
+  "insertionIndex" : 40
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-0e6a77cf-578a-4421-b0e6-9e75f9015ffc.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-0e6a77cf-578a-4421-b0e6-9e75f9015ffc.json
new file mode 100644
index 0000000..cceb596
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-0e6a77cf-578a-4421-b0e6-9e75f9015ffc.json
@@ -0,0 +1,34 @@
+{
+  "id" : "0e6a77cf-578a-4421-b0e6-9e75f9015ffc",
+  "name" : "rest_api_latest_issue_test-71",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-71?expand=schema%2Cnames%2Ctransitions",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_issue_test-71-0e6a77cf-578a-4421-b0e6-9e75f9015ffc.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2739x1",
+      "X-ASESSIONID" : "kpb0b3",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:53 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "0e6a77cf-578a-4421-b0e6-9e75f9015ffc",
+  "persistent" : true,
+  "scenarioName" : "scenario-9-rest-api-latest-issue-TEST-71",
+  "requiredScenarioState" : "scenario-9-rest-api-latest-issue-TEST-71-3",
+  "newScenarioState" : "scenario-9-rest-api-latest-issue-TEST-71-4",
+  "insertionIndex" : 42
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-2470cded-eff1-4696-b664-c6a6afb48352.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-2470cded-eff1-4696-b664-c6a6afb48352.json
new file mode 100644
index 0000000..cb4780b
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-2470cded-eff1-4696-b664-c6a6afb48352.json
@@ -0,0 +1,33 @@
+{
+  "id" : "2470cded-eff1-4696-b664-c6a6afb48352",
+  "name" : "rest_api_latest_issue_test-71",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-71?expand=schema%2Cnames%2Ctransitions",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_issue_test-71-2470cded-eff1-4696-b664-c6a6afb48352.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2742x1",
+      "X-ASESSIONID" : "kpb0b3",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:54 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "2470cded-eff1-4696-b664-c6a6afb48352",
+  "persistent" : true,
+  "scenarioName" : "scenario-9-rest-api-latest-issue-TEST-71",
+  "requiredScenarioState" : "scenario-9-rest-api-latest-issue-TEST-71-5",
+  "insertionIndex" : 44
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-95392d7a-cee3-4493-808c-f7db7b8c5f9b.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-95392d7a-cee3-4493-808c-f7db7b8c5f9b.json
new file mode 100644
index 0000000..55e3f7f
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-95392d7a-cee3-4493-808c-f7db7b8c5f9b.json
@@ -0,0 +1,34 @@
+{
+  "id" : "95392d7a-cee3-4493-808c-f7db7b8c5f9b",
+  "name" : "rest_api_latest_issue_test-71",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-71?expand=schema%2Cnames%2Ctransitions",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_issue_test-71-95392d7a-cee3-4493-808c-f7db7b8c5f9b.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2740x1",
+      "X-ASESSIONID" : "q6uf1d",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:53 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "95392d7a-cee3-4493-808c-f7db7b8c5f9b",
+  "persistent" : true,
+  "scenarioName" : "scenario-9-rest-api-latest-issue-TEST-71",
+  "requiredScenarioState" : "scenario-9-rest-api-latest-issue-TEST-71-4",
+  "newScenarioState" : "scenario-9-rest-api-latest-issue-TEST-71-5",
+  "insertionIndex" : 43
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-993fe3b6-a347-4014-b3a7-a182c1fa25ed.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-993fe3b6-a347-4014-b3a7-a182c1fa25ed.json
new file mode 100644
index 0000000..80f5880
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-993fe3b6-a347-4014-b3a7-a182c1fa25ed.json
@@ -0,0 +1,30 @@
+{
+  "id" : "993fe3b6-a347-4014-b3a7-a182c1fa25ed",
+  "name" : "rest_api_latest_issue_test-71",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-71?deleteSubtasks=true",
+    "method" : "DELETE"
+  },
+  "response" : {
+    "status" : 204,
+    "headers" : {
+      "X-AREQUESTID" : "667x2743x1",
+      "X-ASESSIONID" : "kpb0b3",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:54 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "993fe3b6-a347-4014-b3a7-a182c1fa25ed",
+  "persistent" : true,
+  "insertionIndex" : 45
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-b6cc2884-c9ed-4161-a671-3413813b4db2.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-b6cc2884-c9ed-4161-a671-3413813b4db2.json
new file mode 100644
index 0000000..90bc9af
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-b6cc2884-c9ed-4161-a671-3413813b4db2.json
@@ -0,0 +1,34 @@
+{
+  "id" : "b6cc2884-c9ed-4161-a671-3413813b4db2",
+  "name" : "rest_api_latest_issue_test-71",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-71?expand=schema%2Cnames%2Ctransitions",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_issue_test-71-b6cc2884-c9ed-4161-a671-3413813b4db2.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2734x1",
+      "X-ASESSIONID" : "2te3mh",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:51 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "b6cc2884-c9ed-4161-a671-3413813b4db2",
+  "persistent" : true,
+  "scenarioName" : "scenario-9-rest-api-latest-issue-TEST-71",
+  "requiredScenarioState" : "Started",
+  "newScenarioState" : "scenario-9-rest-api-latest-issue-TEST-71-2",
+  "insertionIndex" : 38
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-72-baa1260a-1c45-43aa-b4d1-9a5a2f296d7a.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-72-baa1260a-1c45-43aa-b4d1-9a5a2f296d7a.json
new file mode 100644
index 0000000..1c07e6e
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-72-baa1260a-1c45-43aa-b4d1-9a5a2f296d7a.json
@@ -0,0 +1,34 @@
+{
+  "id" : "baa1260a-1c45-43aa-b4d1-9a5a2f296d7a",
+  "name" : "rest_api_latest_issue_test-72",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-72?expand=schema%2Cnames%2Ctransitions",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_issue_test-72-baa1260a-1c45-43aa-b4d1-9a5a2f296d7a.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2746x1",
+      "X-ASESSIONID" : "2te3mh",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:54 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "baa1260a-1c45-43aa-b4d1-9a5a2f296d7a",
+  "persistent" : true,
+  "scenarioName" : "scenario-10-rest-api-latest-issue-TEST-72",
+  "requiredScenarioState" : "Started",
+  "newScenarioState" : "scenario-10-rest-api-latest-issue-TEST-72-2",
+  "insertionIndex" : 48
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-72-bb4bde6d-b387-4cd6-a308-aacf38d6fd5d.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-72-bb4bde6d-b387-4cd6-a308-aacf38d6fd5d.json
new file mode 100644
index 0000000..abf56a5
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-72-bb4bde6d-b387-4cd6-a308-aacf38d6fd5d.json
@@ -0,0 +1,33 @@
+{
+  "id" : "bb4bde6d-b387-4cd6-a308-aacf38d6fd5d",
+  "name" : "rest_api_latest_issue_test-72",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-72?expand=schema%2Cnames%2Ctransitions",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_issue_test-72-bb4bde6d-b387-4cd6-a308-aacf38d6fd5d.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2752x1",
+      "X-ASESSIONID" : "kpb0b3",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:55 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "bb4bde6d-b387-4cd6-a308-aacf38d6fd5d",
+  "persistent" : true,
+  "scenarioName" : "scenario-10-rest-api-latest-issue-TEST-72",
+  "requiredScenarioState" : "scenario-10-rest-api-latest-issue-TEST-72-2",
+  "insertionIndex" : 54
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-72-c3063e9e-b57a-4de5-8d84-b458a8f7f0fe.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-72-c3063e9e-b57a-4de5-8d84-b458a8f7f0fe.json
new file mode 100644
index 0000000..6b8b928
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-72-c3063e9e-b57a-4de5-8d84-b458a8f7f0fe.json
@@ -0,0 +1,30 @@
+{
+  "id" : "c3063e9e-b57a-4de5-8d84-b458a8f7f0fe",
+  "name" : "rest_api_latest_issue_test-72",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-72?deleteSubtasks=true",
+    "method" : "DELETE"
+  },
+  "response" : {
+    "status" : 204,
+    "headers" : {
+      "X-AREQUESTID" : "667x2753x1",
+      "X-ASESSIONID" : "kpb0b3",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:55 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "c3063e9e-b57a-4de5-8d84-b458a8f7f0fe",
+  "persistent" : true,
+  "insertionIndex" : 55
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-73-786cfa20-75d3-43f7-b5b8-8ea926dce7c2.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-73-786cfa20-75d3-43f7-b5b8-8ea926dce7c2.json
new file mode 100644
index 0000000..b244750
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-73-786cfa20-75d3-43f7-b5b8-8ea926dce7c2.json
@@ -0,0 +1,30 @@
+{
+  "id" : "786cfa20-75d3-43f7-b5b8-8ea926dce7c2",
+  "name" : "rest_api_latest_issue_test-73",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-73?deleteSubtasks=true",
+    "method" : "DELETE"
+  },
+  "response" : {
+    "status" : 204,
+    "headers" : {
+      "X-AREQUESTID" : "667x2754x1",
+      "X-ASESSIONID" : "kpb0b3",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:55 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "786cfa20-75d3-43f7-b5b8-8ea926dce7c2",
+  "persistent" : true,
+  "insertionIndex" : 56
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-73-97967053-b459-441a-9f03-b603ca69c22e.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-73-97967053-b459-441a-9f03-b603ca69c22e.json
new file mode 100644
index 0000000..8199622
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-73-97967053-b459-441a-9f03-b603ca69c22e.json
@@ -0,0 +1,31 @@
+{
+  "id" : "97967053-b459-441a-9f03-b603ca69c22e",
+  "name" : "rest_api_latest_issue_test-73",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-73?expand=schema%2Cnames%2Ctransitions",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_issue_test-73-97967053-b459-441a-9f03-b603ca69c22e.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2749x1",
+      "X-ASESSIONID" : "2te3mh",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:54 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "97967053-b459-441a-9f03-b603ca69c22e",
+  "persistent" : true,
+  "insertionIndex" : 51
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-74-75c0d24d-5575-490f-a590-020bd992afe4.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-74-75c0d24d-5575-490f-a590-020bd992afe4.json
new file mode 100644
index 0000000..b3a9796
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-74-75c0d24d-5575-490f-a590-020bd992afe4.json
@@ -0,0 +1,33 @@
+{
+  "id" : "75c0d24d-5575-490f-a590-020bd992afe4",
+  "name" : "rest_api_latest_issue_test-74",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-74?expand=schema%2Cnames%2Ctransitions",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_issue_test-74-75c0d24d-5575-490f-a590-020bd992afe4.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2760x1",
+      "X-ASESSIONID" : "kpb0b3",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:56 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "75c0d24d-5575-490f-a590-020bd992afe4",
+  "persistent" : true,
+  "scenarioName" : "scenario-11-rest-api-latest-issue-TEST-74",
+  "requiredScenarioState" : "scenario-11-rest-api-latest-issue-TEST-74-3",
+  "insertionIndex" : 61
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-74-920e8e36-2afc-438d-bca6-d1d28116988c.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-74-920e8e36-2afc-438d-bca6-d1d28116988c.json
new file mode 100644
index 0000000..f5708cd
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-74-920e8e36-2afc-438d-bca6-d1d28116988c.json
@@ -0,0 +1,34 @@
+{
+  "id" : "920e8e36-2afc-438d-bca6-d1d28116988c",
+  "name" : "rest_api_latest_issue_test-74",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-74?expand=schema%2Cnames%2Ctransitions",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_issue_test-74-920e8e36-2afc-438d-bca6-d1d28116988c.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2757x1",
+      "X-ASESSIONID" : "2te3mh",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:55 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "920e8e36-2afc-438d-bca6-d1d28116988c",
+  "persistent" : true,
+  "scenarioName" : "scenario-11-rest-api-latest-issue-TEST-74",
+  "requiredScenarioState" : "Started",
+  "newScenarioState" : "scenario-11-rest-api-latest-issue-TEST-74-2",
+  "insertionIndex" : 59
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-74-a9022ea4-4500-4fa8-9638-b8ac76464b4f.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-74-a9022ea4-4500-4fa8-9638-b8ac76464b4f.json
new file mode 100644
index 0000000..5c38323
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-74-a9022ea4-4500-4fa8-9638-b8ac76464b4f.json
@@ -0,0 +1,35 @@
+{
+  "id" : "a9022ea4-4500-4fa8-9638-b8ac76464b4f",
+  "name" : "rest_api_latest_issue_test-74",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-74?expand=schema%2Cnames%2Ctransitions",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_issue_test-74-a9022ea4-4500-4fa8-9638-b8ac76464b4f.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2758x1",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "Set-Cookie" : [ "JSESSIONID=8620FC628DE65F006AE1ADAB379D1827; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_b94f0b96df765fe07c7353b0ffff8781f25a08a0_lin; Path=/" ],
+      "X-Seraph-LoginReason" : "OK",
+      "X-ASESSIONID" : "4owfuq",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:55 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "a9022ea4-4500-4fa8-9638-b8ac76464b4f",
+  "persistent" : true,
+  "scenarioName" : "scenario-11-rest-api-latest-issue-TEST-74",
+  "requiredScenarioState" : "scenario-11-rest-api-latest-issue-TEST-74-2",
+  "newScenarioState" : "scenario-11-rest-api-latest-issue-TEST-74-3",
+  "insertionIndex" : 60
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-74-ab1fb946-6445-448d-a80f-f67165920733.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-74-ab1fb946-6445-448d-a80f-f67165920733.json
new file mode 100644
index 0000000..42e8eba
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-74-ab1fb946-6445-448d-a80f-f67165920733.json
@@ -0,0 +1,30 @@
+{
+  "id" : "ab1fb946-6445-448d-a80f-f67165920733",
+  "name" : "rest_api_latest_issue_test-74",
+  "request" : {
+    "url" : "/rest/api/latest/issue/TEST-74?deleteSubtasks=true",
+    "method" : "DELETE"
+  },
+  "response" : {
+    "status" : 204,
+    "headers" : {
+      "X-AREQUESTID" : "667x2761x1",
+      "X-ASESSIONID" : "kpb0b3",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:56 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "ab1fb946-6445-448d-a80f-f67165920733",
+  "persistent" : true,
+  "insertionIndex" : 62
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuelink-b86486cf-179d-4eff-ab59-fd2621cd2fe2.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuelink-b86486cf-179d-4eff-ab59-fd2621cd2fe2.json
new file mode 100644
index 0000000..865b9a6
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuelink-b86486cf-179d-4eff-ab59-fd2621cd2fe2.json
@@ -0,0 +1,36 @@
+{
+  "id" : "b86486cf-179d-4eff-ab59-fd2621cd2fe2",
+  "name" : "rest_api_latest_issuelink",
+  "request" : {
+    "url" : "/rest/api/latest/issueLink",
+    "method" : "POST",
+    "bodyPatterns" : [ {
+      "equalToJson" : "{\"type\":{\"name\":\"Relates\"},\"inwardIssue\":{\"key\":\"TEST-72\"},\"outwardIssue\":{\"key\":\"TEST-73\"}}",
+      "ignoreArrayOrder" : true,
+      "ignoreExtraElements" : true
+    } ]
+  },
+  "response" : {
+    "status" : 201,
+    "headers" : {
+      "X-AREQUESTID" : "667x2751x1",
+      "X-ASESSIONID" : "1jfxsvw",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Location" : "http://localhost:8080/rest/api/2/issueLink/10304",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:54 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "b86486cf-179d-4eff-ab59-fd2621cd2fe2",
+  "persistent" : true,
+  "insertionIndex" : 53
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-1a4dffb2-212a-4e5c-a6ed-b07e6c22df97.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-1a4dffb2-212a-4e5c-a6ed-b07e6c22df97.json
new file mode 100644
index 0000000..ae906a9
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-1a4dffb2-212a-4e5c-a6ed-b07e6c22df97.json
@@ -0,0 +1,33 @@
+{
+  "id" : "1a4dffb2-212a-4e5c-a6ed-b07e6c22df97",
+  "name" : "rest_api_latest_issuetype",
+  "request" : {
+    "url" : "/rest/api/latest/issuetype",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "body" : "[{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10003\",\"id\":\"10003\",\"description\":\"A task that needs to be done.\",\"iconUrl\":\"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype\",\"name\":\"Task\",\"subtask\":false,\"avatarId\":10318},{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10000\",\"id\":\"10000\",\"description\":\"The sub-task of the issue\",\"iconUrl\":\"http://localhost:8080/images/icons/is [...]
+    "headers" : {
+      "X-AREQUESTID" : "667x2755x1",
+      "X-ASESSIONID" : "2te3mh",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:55 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "1a4dffb2-212a-4e5c-a6ed-b07e6c22df97",
+  "persistent" : true,
+  "scenarioName" : "scenario-1-rest-api-latest-issuetype",
+  "requiredScenarioState" : "scenario-1-rest-api-latest-issuetype-8",
+  "insertionIndex" : 57
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-3c28d7c5-48e0-4e10-9c33-2b7302766869.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-3c28d7c5-48e0-4e10-9c33-2b7302766869.json
new file mode 100644
index 0000000..a5df437
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-3c28d7c5-48e0-4e10-9c33-2b7302766869.json
@@ -0,0 +1,34 @@
+{
+  "id" : "3c28d7c5-48e0-4e10-9c33-2b7302766869",
+  "name" : "rest_api_latest_issuetype",
+  "request" : {
+    "url" : "/rest/api/latest/issuetype",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "body" : "[{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10003\",\"id\":\"10003\",\"description\":\"A task that needs to be done.\",\"iconUrl\":\"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype\",\"name\":\"Task\",\"subtask\":false,\"avatarId\":10318},{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10000\",\"id\":\"10000\",\"description\":\"The sub-task of the issue\",\"iconUrl\":\"http://localhost:8080/images/icons/is [...]
+    "headers" : {
+      "X-AREQUESTID" : "667x2723x1",
+      "X-ASESSIONID" : "2te3mh",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:48 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "3c28d7c5-48e0-4e10-9c33-2b7302766869",
+  "persistent" : true,
+  "scenarioName" : "scenario-1-rest-api-latest-issuetype",
+  "requiredScenarioState" : "scenario-1-rest-api-latest-issuetype-4",
+  "newScenarioState" : "scenario-1-rest-api-latest-issuetype-5",
+  "insertionIndex" : 27
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-5862081c-2012-4240-835c-cf0ce937c567.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-5862081c-2012-4240-835c-cf0ce937c567.json
new file mode 100644
index 0000000..85dad3a
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-5862081c-2012-4240-835c-cf0ce937c567.json
@@ -0,0 +1,34 @@
+{
+  "id" : "5862081c-2012-4240-835c-cf0ce937c567",
+  "name" : "rest_api_latest_issuetype",
+  "request" : {
+    "url" : "/rest/api/latest/issuetype",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "body" : "[{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10003\",\"id\":\"10003\",\"description\":\"A task that needs to be done.\",\"iconUrl\":\"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype\",\"name\":\"Task\",\"subtask\":false,\"avatarId\":10318},{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10000\",\"id\":\"10000\",\"description\":\"The sub-task of the issue\",\"iconUrl\":\"http://localhost:8080/images/icons/is [...]
+    "headers" : {
+      "X-AREQUESTID" : "667x2747x1",
+      "X-ASESSIONID" : "2te3mh",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:54 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "5862081c-2012-4240-835c-cf0ce937c567",
+  "persistent" : true,
+  "scenarioName" : "scenario-1-rest-api-latest-issuetype",
+  "requiredScenarioState" : "scenario-1-rest-api-latest-issuetype-7",
+  "newScenarioState" : "scenario-1-rest-api-latest-issuetype-8",
+  "insertionIndex" : 49
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-65c3b34b-0095-416f-9667-9fe5996560bf.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-65c3b34b-0095-416f-9667-9fe5996560bf.json
new file mode 100644
index 0000000..829ff57
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-65c3b34b-0095-416f-9667-9fe5996560bf.json
@@ -0,0 +1,34 @@
+{
+  "id" : "65c3b34b-0095-416f-9667-9fe5996560bf",
+  "name" : "rest_api_latest_issuetype",
+  "request" : {
+    "url" : "/rest/api/latest/issuetype",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "body" : "[{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10003\",\"id\":\"10003\",\"description\":\"A task that needs to be done.\",\"iconUrl\":\"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype\",\"name\":\"Task\",\"subtask\":false,\"avatarId\":10318},{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10000\",\"id\":\"10000\",\"description\":\"The sub-task of the issue\",\"iconUrl\":\"http://localhost:8080/images/icons/is [...]
+    "headers" : {
+      "X-AREQUESTID" : "667x2703x1",
+      "X-ASESSIONID" : "2te3mh",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:45 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "65c3b34b-0095-416f-9667-9fe5996560bf",
+  "persistent" : true,
+  "scenarioName" : "scenario-1-rest-api-latest-issuetype",
+  "requiredScenarioState" : "scenario-1-rest-api-latest-issuetype-2",
+  "newScenarioState" : "scenario-1-rest-api-latest-issuetype-3",
+  "insertionIndex" : 9
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-9a5ac9eb-f82e-4b5e-8372-729815645934.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-9a5ac9eb-f82e-4b5e-8372-729815645934.json
new file mode 100644
index 0000000..a2030cc
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-9a5ac9eb-f82e-4b5e-8372-729815645934.json
@@ -0,0 +1,34 @@
+{
+  "id" : "9a5ac9eb-f82e-4b5e-8372-729815645934",
+  "name" : "rest_api_latest_issuetype",
+  "request" : {
+    "url" : "/rest/api/latest/issuetype",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "body" : "[{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10003\",\"id\":\"10003\",\"description\":\"A task that needs to be done.\",\"iconUrl\":\"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype\",\"name\":\"Task\",\"subtask\":false,\"avatarId\":10318},{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10000\",\"id\":\"10000\",\"description\":\"The sub-task of the issue\",\"iconUrl\":\"http://localhost:8080/images/icons/is [...]
+    "headers" : {
+      "X-AREQUESTID" : "667x2732x1",
+      "X-ASESSIONID" : "2te3mh",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:51 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "9a5ac9eb-f82e-4b5e-8372-729815645934",
+  "persistent" : true,
+  "scenarioName" : "scenario-1-rest-api-latest-issuetype",
+  "requiredScenarioState" : "scenario-1-rest-api-latest-issuetype-5",
+  "newScenarioState" : "scenario-1-rest-api-latest-issuetype-6",
+  "insertionIndex" : 36
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-b97e3430-3397-4d6c-9782-b572d203f785.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-b97e3430-3397-4d6c-9782-b572d203f785.json
new file mode 100644
index 0000000..e6b1706
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-b97e3430-3397-4d6c-9782-b572d203f785.json
@@ -0,0 +1,34 @@
+{
+  "id" : "b97e3430-3397-4d6c-9782-b572d203f785",
+  "name" : "rest_api_latest_issuetype",
+  "request" : {
+    "url" : "/rest/api/latest/issuetype",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "body" : "[{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10003\",\"id\":\"10003\",\"description\":\"A task that needs to be done.\",\"iconUrl\":\"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype\",\"name\":\"Task\",\"subtask\":false,\"avatarId\":10318},{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10000\",\"id\":\"10000\",\"description\":\"The sub-task of the issue\",\"iconUrl\":\"http://localhost:8080/images/icons/is [...]
+    "headers" : {
+      "X-AREQUESTID" : "667x2711x1",
+      "X-ASESSIONID" : "2te3mh",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:46 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "b97e3430-3397-4d6c-9782-b572d203f785",
+  "persistent" : true,
+  "scenarioName" : "scenario-1-rest-api-latest-issuetype",
+  "requiredScenarioState" : "scenario-1-rest-api-latest-issuetype-3",
+  "newScenarioState" : "scenario-1-rest-api-latest-issuetype-4",
+  "insertionIndex" : 16
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-bb895fc4-8785-45cd-93f3-24f74ff8bef8.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-bb895fc4-8785-45cd-93f3-24f74ff8bef8.json
new file mode 100644
index 0000000..d0343d0
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-bb895fc4-8785-45cd-93f3-24f74ff8bef8.json
@@ -0,0 +1,34 @@
+{
+  "id" : "bb895fc4-8785-45cd-93f3-24f74ff8bef8",
+  "name" : "rest_api_latest_issuetype",
+  "request" : {
+    "url" : "/rest/api/latest/issuetype",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "body" : "[{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10003\",\"id\":\"10003\",\"description\":\"A task that needs to be done.\",\"iconUrl\":\"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype\",\"name\":\"Task\",\"subtask\":false,\"avatarId\":10318},{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10000\",\"id\":\"10000\",\"description\":\"The sub-task of the issue\",\"iconUrl\":\"http://localhost:8080/images/icons/is [...]
+    "headers" : {
+      "X-AREQUESTID" : "667x2744x1",
+      "X-ASESSIONID" : "2te3mh",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:54 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "bb895fc4-8785-45cd-93f3-24f74ff8bef8",
+  "persistent" : true,
+  "scenarioName" : "scenario-1-rest-api-latest-issuetype",
+  "requiredScenarioState" : "scenario-1-rest-api-latest-issuetype-6",
+  "newScenarioState" : "scenario-1-rest-api-latest-issuetype-7",
+  "insertionIndex" : 46
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-deb1fb17-f060-4866-bc5b-af2464195e25.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-deb1fb17-f060-4866-bc5b-af2464195e25.json
new file mode 100644
index 0000000..1afac0b
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-deb1fb17-f060-4866-bc5b-af2464195e25.json
@@ -0,0 +1,35 @@
+{
+  "id" : "deb1fb17-f060-4866-bc5b-af2464195e25",
+  "name" : "rest_api_latest_issuetype",
+  "request" : {
+    "url" : "/rest/api/latest/issuetype",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "body" : "[{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10003\",\"id\":\"10003\",\"description\":\"A task that needs to be done.\",\"iconUrl\":\"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype\",\"name\":\"Task\",\"subtask\":false,\"avatarId\":10318},{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10000\",\"id\":\"10000\",\"description\":\"The sub-task of the issue\",\"iconUrl\":\"http://localhost:8080/images/icons/is [...]
+    "headers" : {
+      "X-AREQUESTID" : "667x2694x1",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "Set-Cookie" : [ "JSESSIONID=5A5921832B2665948FD9067A082D34F2; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_1ab4f7f9be5bd536dc69942f55e989f1f14a4ceb_lin; Path=/" ],
+      "X-Seraph-LoginReason" : "OK",
+      "X-ASESSIONID" : "2te3mh",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:43 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "deb1fb17-f060-4866-bc5b-af2464195e25",
+  "persistent" : true,
+  "scenarioName" : "scenario-1-rest-api-latest-issuetype",
+  "requiredScenarioState" : "Started",
+  "newScenarioState" : "scenario-1-rest-api-latest-issuetype-2",
+  "insertionIndex" : 1
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-2eb3eb45-a63a-4655-9d1f-ef82f4d3b825.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-2eb3eb45-a63a-4655-9d1f-ef82f4d3b825.json
new file mode 100644
index 0000000..41139a3
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-2eb3eb45-a63a-4655-9d1f-ef82f4d3b825.json
@@ -0,0 +1,34 @@
+{
+  "id" : "2eb3eb45-a63a-4655-9d1f-ef82f4d3b825",
+  "name" : "rest_api_latest_search",
+  "request" : {
+    "url" : "/rest/api/latest/search?jql=project%3DTEST&expand=schema%2Cnames&maxResults=1&startAt=0",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_search-2eb3eb45-a63a-4655-9d1f-ef82f4d3b825.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2719x1",
+      "X-ASESSIONID" : "r44kdk",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:48 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "2eb3eb45-a63a-4655-9d1f-ef82f4d3b825",
+  "persistent" : true,
+  "scenarioName" : "scenario-7-rest-api-latest-search",
+  "requiredScenarioState" : "scenario-7-rest-api-latest-search-2",
+  "newScenarioState" : "scenario-7-rest-api-latest-search-3",
+  "insertionIndex" : 23
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-4dc289c5-0522-4632-813f-295f4be67eaf.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-4dc289c5-0522-4632-813f-295f4be67eaf.json
new file mode 100644
index 0000000..990b710
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-4dc289c5-0522-4632-813f-295f4be67eaf.json
@@ -0,0 +1,35 @@
+{
+  "id" : "4dc289c5-0522-4632-813f-295f4be67eaf",
+  "name" : "rest_api_latest_search",
+  "request" : {
+    "url" : "/rest/api/latest/search?jql=project%3DTEST&expand=schema%2Cnames&maxResults=1&startAt=0",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_search-4dc289c5-0522-4632-813f-295f4be67eaf.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2714x1",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "Set-Cookie" : [ "JSESSIONID=4A92FC8ACC9A9727A81DCBA8CCC52F70; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_a40b2e5c2a38ebe2567858fcdfb195a7fcd8114c_lin; Path=/" ],
+      "X-Seraph-LoginReason" : "OK",
+      "X-ASESSIONID" : "r44kdk",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:46 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "4dc289c5-0522-4632-813f-295f4be67eaf",
+  "persistent" : true,
+  "scenarioName" : "scenario-7-rest-api-latest-search",
+  "requiredScenarioState" : "Started",
+  "newScenarioState" : "scenario-7-rest-api-latest-search-2",
+  "insertionIndex" : 19
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-5a3ae50c-9eee-45ea-bb4e-28b2864e392d.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-5a3ae50c-9eee-45ea-bb4e-28b2864e392d.json
new file mode 100644
index 0000000..bbf66dc
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-5a3ae50c-9eee-45ea-bb4e-28b2864e392d.json
@@ -0,0 +1,33 @@
+{
+  "id" : "5a3ae50c-9eee-45ea-bb4e-28b2864e392d",
+  "name" : "rest_api_latest_search",
+  "request" : {
+    "url" : "/rest/api/latest/search?jql=project%3DTEST&expand=schema%2Cnames&maxResults=1&startAt=0",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_search-5a3ae50c-9eee-45ea-bb4e-28b2864e392d.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2729x1",
+      "X-ASESSIONID" : "1of798p",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:50 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "5a3ae50c-9eee-45ea-bb4e-28b2864e392d",
+  "persistent" : true,
+  "scenarioName" : "scenario-7-rest-api-latest-search",
+  "requiredScenarioState" : "scenario-7-rest-api-latest-search-4",
+  "insertionIndex" : 33
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-a8497662-b947-4b46-9815-9e04995588c8.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-a8497662-b947-4b46-9815-9e04995588c8.json
new file mode 100644
index 0000000..3cc3b05
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-a8497662-b947-4b46-9815-9e04995588c8.json
@@ -0,0 +1,31 @@
+{
+  "id" : "a8497662-b947-4b46-9815-9e04995588c8",
+  "name" : "rest_api_latest_search",
+  "request" : {
+    "url" : "/rest/api/latest/search?jql=id+%3E+10304+AND+project%3DTEST+ORDER+BY+key+desc&expand=schema%2Cnames&maxResults=1&startAt=0",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_search-a8497662-b947-4b46-9815-9e04995588c8.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2726x1",
+      "X-ASESSIONID" : "13zh262",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:49 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "a8497662-b947-4b46-9815-9e04995588c8",
+  "persistent" : true,
+  "insertionIndex" : 30
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-ce09e8e1-0c2f-4646-a58a-dcf55e4de092.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-ce09e8e1-0c2f-4646-a58a-dcf55e4de092.json
new file mode 100644
index 0000000..5538762
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-ce09e8e1-0c2f-4646-a58a-dcf55e4de092.json
@@ -0,0 +1,35 @@
+{
+  "id" : "ce09e8e1-0c2f-4646-a58a-dcf55e4de092",
+  "name" : "rest_api_latest_search",
+  "request" : {
+    "url" : "/rest/api/latest/search?jql=project%3DTEST&expand=schema%2Cnames&maxResults=1&startAt=0",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_search-ce09e8e1-0c2f-4646-a58a-dcf55e4de092.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2727x1",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "Set-Cookie" : [ "JSESSIONID=5A800B66C4BCD7F01AB2299217F62E10; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_fa1210bf53037e90e7424f47ee8791fb67eb9fc7_lin; Path=/" ],
+      "X-Seraph-LoginReason" : "OK",
+      "X-ASESSIONID" : "1of798p",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:49 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "ce09e8e1-0c2f-4646-a58a-dcf55e4de092",
+  "persistent" : true,
+  "scenarioName" : "scenario-7-rest-api-latest-search",
+  "requiredScenarioState" : "scenario-7-rest-api-latest-search-3",
+  "newScenarioState" : "scenario-7-rest-api-latest-search-4",
+  "insertionIndex" : 31
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-ea789be6-5899-46e7-ab02-8ec3692596f5.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-ea789be6-5899-46e7-ab02-8ec3692596f5.json
new file mode 100644
index 0000000..393a705
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-ea789be6-5899-46e7-ab02-8ec3692596f5.json
@@ -0,0 +1,32 @@
+{
+  "id" : "ea789be6-5899-46e7-ab02-8ec3692596f5",
+  "name" : "rest_api_latest_search",
+  "request" : {
+    "url" : "/rest/api/latest/search?jql=project%3DTEST+ORDER+BY+key+desc&expand=schema%2Cnames&maxResults=1&startAt=0",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "bodyFileName" : "rest_api_latest_search-ea789be6-5899-46e7-ab02-8ec3692596f5.json",
+    "headers" : {
+      "X-AREQUESTID" : "667x2722x1",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "Set-Cookie" : [ "JSESSIONID=8D102110989B0B2BC50F5AE7DCC0C9D4; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_f82de5a467787ea86ef342fa609275fc1cf8181f_lin; Path=/" ],
+      "X-Seraph-LoginReason" : "OK",
+      "X-ASESSIONID" : "13zh262",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:48 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "ea789be6-5899-46e7-ab02-8ec3692596f5",
+  "persistent" : true,
+  "insertionIndex" : 26
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_serverinfo-5384f8bb-181d-41ae-bc02-2c13a4c67e15.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_serverinfo-5384f8bb-181d-41ae-bc02-2c13a4c67e15.json
new file mode 100644
index 0000000..805c159
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_serverinfo-5384f8bb-181d-41ae-bc02-2c13a4c67e15.json
@@ -0,0 +1,34 @@
+{
+  "id" : "5384f8bb-181d-41ae-bc02-2c13a4c67e15",
+  "name" : "rest_api_latest_serverinfo",
+  "request" : {
+    "url" : "/rest/api/latest/serverInfo",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "body" : "{\"baseUrl\":\"http://localhost:8080\",\"version\":\"8.17.0\",\"versionNumbers\":[8,17,0],\"deploymentType\":\"Server\",\"buildNumber\":817000,\"buildDate\":\"2021-05-18T00:00:00.000+0000\",\"databaseBuildNumber\":817000,\"serverTime\":\"2021-05-26T11:07:54.550+0000\",\"scmInfo\":\"a507a62ee263f31d253569e578e747c4fedadad0\",\"serverTitle\":\"JIRA\"}",
+    "headers" : {
+      "X-AREQUESTID" : "667x2750x1",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "Set-Cookie" : [ "JSESSIONID=327F02105E5E32DA5F12C337C13FB80F; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_ad3b712260bdd7d68dacfa7f045833daa48364e1_lin; Path=/" ],
+      "X-Seraph-LoginReason" : "OK",
+      "X-ASESSIONID" : "1jfxsvw",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:54 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "5384f8bb-181d-41ae-bc02-2c13a4c67e15",
+  "persistent" : true,
+  "scenarioName" : "scenario-4-rest-api-latest-serverInfo",
+  "requiredScenarioState" : "scenario-4-rest-api-latest-serverInfo-4",
+  "insertionIndex" : 52
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_serverinfo-94c1f66d-8a68-4485-8669-fbd75b55c45a.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_serverinfo-94c1f66d-8a68-4485-8669-fbd75b55c45a.json
new file mode 100644
index 0000000..d62665d
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_serverinfo-94c1f66d-8a68-4485-8669-fbd75b55c45a.json
@@ -0,0 +1,34 @@
+{
+  "id" : "94c1f66d-8a68-4485-8669-fbd75b55c45a",
+  "name" : "rest_api_latest_serverinfo",
+  "request" : {
+    "url" : "/rest/api/latest/serverInfo",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "body" : "{\"baseUrl\":\"http://localhost:8080\",\"version\":\"8.17.0\",\"versionNumbers\":[8,17,0],\"deploymentType\":\"Server\",\"buildNumber\":817000,\"buildDate\":\"2021-05-18T00:00:00.000+0000\",\"databaseBuildNumber\":817000,\"serverTime\":\"2021-05-26T11:07:47.349+0000\",\"scmInfo\":\"a507a62ee263f31d253569e578e747c4fedadad0\",\"serverTitle\":\"JIRA\"}",
+    "headers" : {
+      "X-AREQUESTID" : "667x2717x1",
+      "X-ASESSIONID" : "179pd4f",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:46 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "94c1f66d-8a68-4485-8669-fbd75b55c45a",
+  "persistent" : true,
+  "scenarioName" : "scenario-4-rest-api-latest-serverInfo",
+  "requiredScenarioState" : "scenario-4-rest-api-latest-serverInfo-2",
+  "newScenarioState" : "scenario-4-rest-api-latest-serverInfo-3",
+  "insertionIndex" : 22
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_serverinfo-dd1a6803-f1ea-4002-a959-356e8d642920.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_serverinfo-dd1a6803-f1ea-4002-a959-356e8d642920.json
new file mode 100644
index 0000000..5b2c856
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_serverinfo-dd1a6803-f1ea-4002-a959-356e8d642920.json
@@ -0,0 +1,34 @@
+{
+  "id" : "dd1a6803-f1ea-4002-a959-356e8d642920",
+  "name" : "rest_api_latest_serverinfo",
+  "request" : {
+    "url" : "/rest/api/latest/serverInfo",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "body" : "{\"baseUrl\":\"http://localhost:8080\",\"version\":\"8.17.0\",\"versionNumbers\":[8,17,0],\"deploymentType\":\"Server\",\"buildNumber\":817000,\"buildDate\":\"2021-05-18T00:00:00.000+0000\",\"databaseBuildNumber\":817000,\"serverTime\":\"2021-05-26T11:07:51.966+0000\",\"scmInfo\":\"a507a62ee263f31d253569e578e747c4fedadad0\",\"serverTitle\":\"JIRA\"}",
+    "headers" : {
+      "X-AREQUESTID" : "667x2737x1",
+      "X-ASESSIONID" : "q6uf1d",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:51 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "dd1a6803-f1ea-4002-a959-356e8d642920",
+  "persistent" : true,
+  "scenarioName" : "scenario-4-rest-api-latest-serverInfo",
+  "requiredScenarioState" : "scenario-4-rest-api-latest-serverInfo-3",
+  "newScenarioState" : "scenario-4-rest-api-latest-serverInfo-4",
+  "insertionIndex" : 41
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_serverinfo-ec14f05b-707b-4a51-a6a1-64b462a2c020.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_serverinfo-ec14f05b-707b-4a51-a6a1-64b462a2c020.json
new file mode 100644
index 0000000..c9d4c57
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_serverinfo-ec14f05b-707b-4a51-a6a1-64b462a2c020.json
@@ -0,0 +1,34 @@
+{
+  "id" : "ec14f05b-707b-4a51-a6a1-64b462a2c020",
+  "name" : "rest_api_latest_serverinfo",
+  "request" : {
+    "url" : "/rest/api/latest/serverInfo",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "body" : "{\"baseUrl\":\"http://localhost:8080\",\"version\":\"8.17.0\",\"versionNumbers\":[8,17,0],\"deploymentType\":\"Server\",\"buildNumber\":817000,\"buildDate\":\"2021-05-18T00:00:00.000+0000\",\"databaseBuildNumber\":817000,\"serverTime\":\"2021-05-26T11:07:44.411+0000\",\"scmInfo\":\"a507a62ee263f31d253569e578e747c4fedadad0\",\"serverTitle\":\"JIRA\"}",
+    "headers" : {
+      "X-AREQUESTID" : "667x2699x1",
+      "X-ASESSIONID" : "1lz67bf",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:44 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "ec14f05b-707b-4a51-a6a1-64b462a2c020",
+  "persistent" : true,
+  "scenarioName" : "scenario-4-rest-api-latest-serverInfo",
+  "requiredScenarioState" : "Started",
+  "newScenarioState" : "scenario-4-rest-api-latest-serverInfo-2",
+  "insertionIndex" : 6
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_auth_latest_session-ff621014-dbe1-499a-88cb-e659bec3ffa9.json b/integration-tests/jira/src/test/resources/mappings/rest_auth_latest_session-ff621014-dbe1-499a-88cb-e659bec3ffa9.json
new file mode 100644
index 0000000..3b67ee2
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_auth_latest_session-ff621014-dbe1-499a-88cb-e659bec3ffa9.json
@@ -0,0 +1,31 @@
+{
+  "id" : "ff621014-dbe1-499a-88cb-e659bec3ffa9",
+  "name" : "rest_auth_latest_session",
+  "request" : {
+    "url" : "/rest/auth/latest/session",
+    "method" : "GET"
+  },
+  "response" : {
+    "status" : 200,
+    "body" : "{\"self\":\"http://localhost:8080/rest/api/latest/user?username=jiratester\",\"name\":\"jiratester\",\"loginInfo\":{\"failedLoginCount\":12,\"loginCount\":5606,\"lastFailedLoginTime\":\"2021-05-25T12:25:02.949+0000\",\"previousLoginTime\":\"2021-05-26T11:07:51.808+0000\"}}",
+    "headers" : {
+      "X-AREQUESTID" : "667x2735x1",
+      "X-ASESSIONID" : "kpb0b3",
+      "Referrer-Policy" : "strict-origin-when-cross-origin",
+      "X-XSS-Protection" : "1; mode=block",
+      "X-Content-Type-Options" : "nosniff",
+      "X-Frame-Options" : "SAMEORIGIN",
+      "Content-Security-Policy" : "sandbox",
+      "Strict-Transport-Security" : "max-age=31536000",
+      "X-Seraph-LoginReason" : "OK",
+      "X-AUSERNAME" : "jiratester",
+      "Cache-Control" : "no-cache, no-store, no-transform",
+      "Content-Type" : "application/json;charset=UTF-8",
+      "Date" : "Wed, 26 May 2021 11:07:51 GMT",
+      "Keep-Alive" : "timeout=20"
+    }
+  },
+  "uuid" : "ff621014-dbe1-499a-88cb-e659bec3ffa9",
+  "persistent" : true,
+  "insertionIndex" : 39
+}
\ No newline at end of file