diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/adb-provision/adb-provision.md b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/adb-provision/adb-provision.md
new file mode 100644
index 0000000..78bffee
--- /dev/null
+++ b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/adb-provision/adb-provision.md
@@ -0,0 +1,71 @@
+# Provision an Oracle Autonomous Database (ATP)
+
+## Introduction
+
+This workshop walks you through the steps to get started using the **Oracle Autonomous Transaction Processing Database (ATP)** on **Oracle Cloud Infrastructure (OCI)**. You will provision a new database in just few minutes.
+
+Estimated Time: 15 minutes
+
+Watch the video below for a quick walk through of the lab.
+
+[Provision Autonomous Database Instance](youtube:a6Jm7lYaCWI)
+
+> **Note:** While this lab uses ADW, the steps are the same for creating an ATP database.
+
+### Objectives
+
+In this lab, you will:
+- Create an Autonomous Database
+
+### Prerequisites
+
+- This lab assumes you have logged into your to Oracle Cloud account.
+
+## Task 1: Create a new Autonomous Transaction Processing
+
+1. Log in to the Oracle Cloud.
+
+2. Click the **Navigation Menu** in the upper left, navigate to **Oracle Database**, and select **Autonomous Transaction Processing**.
+
+ ![Database ATP Page](https://oracle-livelabs.github.io/common/images/console/database-atp.png " ")
+
+ > Compartments are a logical separation of resources to attach roles and permissions. It will make possible to create your team structure in compartments so you know who manage what resources. Not necessary at this stage.
+
+ And click in **Create Autonomous Database** button.
+
+ ![ATP Selection](./images/atps.png)
+
+ You can leave the compartment as it is. Alternatively, choose a compartment as per your structure. Write the Display name and Database name.
+
+ ![ATP Database Name](./images/atp-creation-1.png)
+
+3. In the Workload type make sure you select **Transaction Processing** and deployment type as **Serverless**.
+
+ ![ATP Workload Type](./images/atp-creation-2.png)
+
+4. In the **Configure the database** section Select *Always Free* and Choose database Version as **19c**.
+
+ ![ATP Configure DB](./images/atp-creation-3.png)
+
+5. In the **Create administrator credentials** section Provide Username and Password
+
+6. Choose Network access as **Secure access from everywhere**
+
+ ![ATP Network Type](./images/atp-creation-4.png)
+
+7. Choose license type as **License Included**
+
+8. Click on *Create Autonomous Database*
+
+Your ATP Instance should be provisioned in few minutes.
+
+You may now **proceed to the next lab**.
+
+## Learn more
+
+Go to [the documentation](https://docs.oracle.com/en/cloud/paas/autonomous-data-warehouse-cloud/user/autonomous-workflow.html#GUID-5780368D-6D40-475C-8DEB-DBA14BA675C3) on the typical workflow for using Autonomous Data Warehouse.
+
+## Acknowledgements
+
+* **Author** - Kishore Katta, Director Product Management, OIC & OPA
+* **Last Updated By/Date** - Kishore Katta, April 2024
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/adb-provision/images/atp-creation-1.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/adb-provision/images/atp-creation-1.png
new file mode 100644
index 0000000..16d9255
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/adb-provision/images/atp-creation-1.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/adb-provision/images/atp-creation-2.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/adb-provision/images/atp-creation-2.png
new file mode 100644
index 0000000..21008b8
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/adb-provision/images/atp-creation-2.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/adb-provision/images/atp-creation-3.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/adb-provision/images/atp-creation-3.png
new file mode 100644
index 0000000..6de9be2
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/adb-provision/images/atp-creation-3.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/adb-provision/images/atp-creation-4.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/adb-provision/images/atp-creation-4.png
new file mode 100644
index 0000000..27072a3
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/adb-provision/images/atp-creation-4.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/adb-provision/images/atps.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/adb-provision/images/atps.png
new file mode 100644
index 0000000..4178b1c
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/adb-provision/images/atps.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-connections/create-connections.md b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-connections/create-connections.md
new file mode 100644
index 0000000..0a528e6
--- /dev/null
+++ b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-connections/create-connections.md
@@ -0,0 +1,96 @@
+# Create Connection
+
+## Introduction
+
+This Lab will walk you through the steps to create an ACME OM Application Connection and REST adapter connection.
+
+![Integration Architecture](images/lab-integration-scenario.png)
+
+
+Estimated Time: 10 minutes
+
+### Objectives
+In this lab, you will:
+- Create a REST Interface to expose the Integration flow
+- Create a ACME Adapter Connection to invoke ACME Order Management Application API
+
+
+### Prerequisites
+This lab assumes you have:
+- Completed all the previous labs.
+
+## Task 1: Create REST Interface Trigger
+Create a connection using REST Adapter.
+1. In the left Navigation pane of OIC, Click **Design** > **Connections** and Click **Create**.
+
+2. In the *Create Connection* dialog, select the **REST** adapter. To find the adapter, enter *REST* in the search field. Click on the highlighted adapter.
+
+3. In the *Create Connection* dialog, enter the following information and click on **Create**:
+
+ | **Field** | **Value** |
+ | --- | ----------- |
+ | Name | REST Interface |
+ | Role | Trigger |
+ | Description | REST Interface Connection for OIC LiveLabs |
+ {: title="Rest Interface Connection"}
+
+ Keep all other values as default.
+
+4. In the *Configuration* page, enter the following information:
+
+ | **Field** | **Values** |
+ |---|---|
+ |Security Policy | OAuth 2.0 Or Basic Authentication |
+ {: title="Rest Interface Connection Properties"}
+
+
+5. Click on **Test** and wait until you receive a confirmation box that the test was successful.
+
+6. Click **Save** and wait for the confirmation box. Exit the connection canvas by clicking the back button on the top left side of the screen.
+
+## Task 2: Create REST Connection using ACME OM Application adapter
+
+Create a connection using newly published **Acme OM Application** Adapter to invoke Acme Application API.
+
+1. In the left Navigation pane of OIC, Click **Design** > **Connections** and Click **Create**.
+
+2. In the *Create Connection* dialog, select the **Acme** adapter. To find the adapter, enter *REST* in the search field. Click on the highlighted adapter.
+
+![Acme Adapter Search](images/acme-adapter-search.png)
+
+3. In the *Create Connection* dialog, enter the following information and click on **Create**:
+
+> Note: We see only Invoke role as the adapter is implemented for Invoke Flows. Refer ADD document invoke section.
+
+| **Field** | **Value** |
+| --- | ----------- |
+| Name | Acme OM Connection |
+| Role | Invoke |
+| Description | Acme adapter Connection for ACME OM Application |
+{: title="Acme Connection"}
+
+Keep all other values as default.
+
+4. In the *Configuration* page, enter the following information:
+
+| **Field** | **Values** |
+|---|---|
+|Base URL | ORDS URL noted in **Setup** section |
+|Security Policy | No Authentication |
+{: title="ACME Connection Properties"}
+
+> Note: A list of security policies added in your ADD file will be available in the published adapter
+
+5. Click on **Test** and wait until you receive a confirmation box that the test was successful.
+
+6. Click **Save** and wait for the confirmation box. Exit the connection canvas by clicking the back button on the top left side of the screen.
+
+You may now **proceed to the next lab**.
+
+## Learn More
+
+* [Oracle Integration REST Adapter](https://docs.oracle.com/en/cloud/paas/application-integration/rest-adapter/rest-adapter-capabilities.html)
+
+## Acknowledgements
+* **Author** - Kishore Katta, Director Product Management, OIC & OPA
+* **Last Updated By/Date** - Kishore Katta, April 2024
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-connections/images/acme-adapter-search.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-connections/images/acme-adapter-search.png
new file mode 100644
index 0000000..ad65bcb
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-connections/images/acme-adapter-search.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-connections/images/lab-integration-scenario.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-connections/images/lab-integration-scenario.png
new file mode 100644
index 0000000..941531f
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-connections/images/lab-integration-scenario.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/create-flow.md b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/create-flow.md
new file mode 100644
index 0000000..db2e8fb
--- /dev/null
+++ b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/create-flow.md
@@ -0,0 +1,267 @@
+# Create Integration Flow
+
+## Introduction
+
+This lab walks you through the steps to create an Integration flow.
+
+This use case describes how to use Oracle Integration to consume **Acme OM App** adapter which connects with **ACME Order Management Application**
+ - ACME OM App exposes Customers and Orders API
+ - OIC consumes the **Acme OM App Adapter** to get a **Customer Order** given a customer\_id.
+ - OIC captures the response and sends order details to the client
+
+ The following diagram shows the interaction between the systems involved in this use case.
+ ![Integration Architecture](images/lab-integration-scenario.png)
+
+Estimated Time: 30 minutes
+
+### Objectives
+
+In this lab, you will:
+
+* Use Acme OM App adapter Connection to consume the Application API
+* Activate and Monitor the Integration flow at runtime
+
+
+### Prerequisites
+
+This lab assumes you have:
+
+* All previous labs completed.
+
+## Task 1: Create the Integration flow
+
+1. In the left Navigation pane, click **Design** > **Integrations**.
+
+2. On the *Integrations page*, click **Create**.
+
+3. On the *Create integration* dialog, select and click on **Application**.
+
+4. In the *Create integration* dialog, enter the following information:
+
+ | **Element** | **Value** |
+ | --- | ----------- |
+ |Name | Acme Customers Order Integration |
+ |Description | This integration shows you how to connect to the Acme OM App and consume its API |
+ {: title="Create Integration Flow"}
+
+ Accept all other default values.
+
+5. Click **Create**.
+ ![Create Integration Flow](images/create-integration-initial.png)
+
+6. Click on **Horizontal** to change the layout to Horizontal
+
+## Task 2: Define the REST Trigger and Response Interface
+
+1. Search for the *REST Interface* connection which was created in the previous Lab and click on it. This invokes the REST Adapter Configuration Wizard.
+
+2. On the *Basic Info* page,
+ - for the *What do you want to call your endpoint?* element, enter **getCustomerOrders**
+ - for the *What does this endpoint do?* element, enter *This endpoint defines the REST interface to get customer orders.*
+ - Click **Continue**.
+
+3. In the *Resource Configuration** page,
+ - for the *What does this operation do?* element, enter **get orders for customers.**
+ - for the *What is the endpoint's relative resource URI?*, enter **/customerOrders/{customer_id}**
+ - for the *What action do you want to perform on the endpoint?*, select **GET**
+ - Select *Add and review parameters for this endpoint* checkbox
+ - Select *Configure this endpoint to receive the response* checkbox
+ - Click **Continue**.
+
+4. From the *Request Parameters* page, in the *Template Parameter section*
+ - For the **customer_id** parameter provide the datatype as **string**
+ - Click **Continue**.
+ ![Template Parameter Page](images/rest-adapter-uri-parameter-page.png)
+
+5. On the **Response** Page
+ - Select the *response payload format* to **JSON Sample**
+ - Click the **<<<inline>>>** link.
+ - Provide the below JSON and Click **Continue**
+
+ ```
+
+ {
+ "items": [
+ {
+ "name": "John Smith",
+ "orderid": 1001,
+ "orderdate": "2023-02-14T00:00:00Z",
+ "totalamount": 99.99,
+ "paymentid": 101,
+ "paymentdate": "2023-02-14T00:00:00Z",
+ "amount": 99.99
+ },
+ {
+ "name": "John Smith",
+ "orderid": 1002,
+ "orderdate": "2023-02-18T00:00:00Z",
+ "totalamount": 149.99,
+ "paymentid": 201,
+ "paymentdate": "2023-02-16T00:00:00Z",
+ "amount": 199.99
+ }
+ ]
+ }
+
+ ```
+ - In the **What is the media-type of Response Body?** Select **JSON**
+
+6. Click **Continue***
+
+7. Review the summary and click **Finish**.
+
+8. Click **Save** to persist changes.
+
+
+## Task 3: Invoke Get Customer Details
+
+1. Delete the Map activity created after the Trigger activity and **Save** the Integration Flow
+
+2. Hover over the outgoing arrow for the *getCustomerOrders* activity (after first activity) and Click the **+** sign in the integration canvas.
+Search for the *Acme OM Connection* connection which was created in the previous Lab and click on it. This invokes the Acme OM Application Adapter Configuration Wizard.
+
+3. On the **Basic Info** page,
+ - for the *What do you want to call your endpoint?* element, enter **getACMECustomerOrders**
+ - for the **Enter module name to filter**, select *payments*
+ - select the Action as *Get Customer Payments and Orders*
+ - Click **Continue**.
+
+ ![Acme Adapter Basic Info Page](images/acme-adapter-basic-info-page.png)
+
+4. Review the summary and click **Finish**
+
+6. Click **Save** to persist changes
+
+7. Integration flow designed so far
+ ![Get Customer](images/create-integration-getcustomerorders.png)
+
+## Task 4: Define the Data Mapping for Get Customer Orders
+
+A map action named getACMECustomerOrders is automatically created. We will define this data mapping.
+
+1. Select the action **Map getACMECustomerOrders** and click on **...** and click on **Edit**
+
+2. In the Source section, expand **getCustomerOrders Request** and then expand **Template Parameters**
+
+3. In the Target section, expand the **getACMECustomersOrders Request > Parameters**.
+ - Map the *Customer Id* field from the source section to the *P Customer Id* field in the target section.
+
+4. Select **Validate** and Navigate back to Integration Flow.
+
+
+## Task 5: Define the Data Mapping for Composite Response
+
+1. Add a **Map** activity after *Invoke getACMECustomerOrders* action. In the Add Map dialog select the endpoint as **getCustomerOrders** and click *Create*.
+We will create a transformation to reply back with Customer Details and All the orders for the given customer id
+
+2. Select the action **Map getCustomerOrders** and click on **...** and click on **Edit**
+
+3. In the Source section, expand **getACMECustomerOrders Response** > **GET Response** > **Response Wrapper** > **Body** > **Items**
+
+4. In the Target section, expand the **getCustomerOrders Response** > **Response Wrapper** > **Items**
+ - Map the following fields from the Sources section to the fields in the Target section
+ | **Field** | **Value**|
+ | --- | ----------- |
+ | Items | Items|
+ | Amount | Amount|
+ | Orderdate | Orderdate|
+ | Orderid | Orderid|
+ | Paymentdate | Paymentdate |
+ | Paymentid | Paymentid |
+ | Totalamount | Totalamount |
+ {: title="Customer Order Details mapping."}
+
+ ![Customer Details Response Mapping](images/response-mapping-customer-details.png)
+
+ - Click on **Validate**.
+ - A confirmation message appears.
+
+ - Click **< (Go back)**
+
+ - Click **Save** to persist changes.
+
+ Your final Integration Flow design should be similar to the below
+ ![Complete Integration Flow](images/create-integration-final.png)
+
+## Task 6: Define Tracking Fields
+
+Manage business identifiers that enable you to track fields in messages during runtime.
+
+1. Click on the **(I) Business Identifiers** menu on the top right.
+
+2. From the **Source** section, expand **execute** > **TemplateParameters**. Drag the *customer\_id* field to the right side section:
+
+3. Click on the **(I) Business Identifiers** menu on the top right again to close Business Identifier section
+
+4. Click **Save**.
+
+5. Click on **< (Go back)** button.
+
+
+## Task 7: Activate the Integration
+
+1. On the *Integrations* page, click on the **Activate** icon of *Acme Customers Order Integration*.
+
+2. On the *Activate Integration* dialog, select *a tracing level* to **Debug**
+
+3. Click **Activate**.
+
+ The activation will be complete in a few seconds. If activation is successful, a status message is displayed in the banner at the top of the page, and the status of the integration changes to **Active**.
+
+## Task 8: Run the Integration
+Refresh your page after a few seconds.
+
+1. Select *Acme Customers Order Integration*, Click on **...(Actions)** menu and Click on **Run**
+
+2. Configure the URI parameters:
+ - for *customer_id*, enter **1**
+
+3. Click **Run** (in the upper right of the page).
+
+4. Look at the Response section to verify the Customer details and all the orders for the Customer. The response status is 200 OK
+
+![Test Integration Flow](images/run-integration-test.png)
+
+5. Click the link which appears on top to track the instance.
+
+The track instance page appears. The Integration state should be processing or successful.
+OR you can also track by Selecting on **Home >**, **Observability >** and **Instances**
+
+6. In the Activity Stream Select *Invoke getACMECustomerOrders* and view the sequence of Wire Messages. It shows the sequence steps the adapter executed at runtime for flow action configured for the invoke operation.
+
+![Activity Stream](images/acme-invoke-activity-stream.png)
+
+## Task 9: Congratulations 🎉
+
+Congratulations on successfully completing the **Get Started with Rapid Adapter Builder** Live Lab! You've taken an important step in expanding your Oracle Integration skills by learning how to build custom adapters for applications exposing RESTful APIs.
+
+Through this hands-on workshop, you gained valuable experience with the Rapid Adapter Builder and its Visual Studio Code extension. Here are the key learnings you can takeaway:
+
+- Initializing a structured workspace for adapter development projects
+- Configuring publisher profiles to authenticate with Oracle Integration instances
+- Importing and testing API collections/specifications in preparation for adapter generation
+- Understanding the anatomy of an Adapter Definition Document (ADD) and its sections
+- Generating initial ADDs from Postman collections or OpenAPI specifications
+- Customizing the adapter definition metadata to tailor the adapter's behavior
+- Validating ADDs to ensure they are error-free before publishing
+- Registering and publishing custom adapters to Oracle Integration instances
+- Verifying the successful deployment of published custom adapters
+
+With this knowledge, you are now equipped to efficiently create adapters that allow Oracle Integration to connect to a wider range of applications and services based on their REST APIs. This enhances OIC's integration capabilities, simplifying connectivity while reducing development overheads.
+
+Well done on completing this tutorial, and keep exploring the powerful features of the Rapid Adapter Builder as you embark on more complex integration projects!
+
+
+## Learn More
+
+* [Get Started with Oracle Integration 3](https://docs.oracle.com/en/cloud/paas/application-integration/index.html)
+
+* [Activate Integration](https://docs.oracle.com/en/cloud/paas/application-integration/integrations-user/activate-and-deactivate-integrations.html)
+
+* [Monitor Integration](https://docs.oracle.com/en/cloud/paas/application-integration/integrations-user/track-integration-instances.html)
+
+* [Work with Adapter Definition Document](https://docs.oracle.com/en/cloud/paas/application-integration/adapter-builder/work-adapter-definition-document.html)
+
+## Acknowledgements
+* **Author** - Kishore Katta, Director Product Management, OIC & OPA
+* **Last Updated By/Date** - Kishore Katta, April 2024
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/acme-adapter-basic-info-page.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/acme-adapter-basic-info-page.png
new file mode 100644
index 0000000..6c9a823
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/acme-adapter-basic-info-page.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/acme-invoke-activity-stream.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/acme-invoke-activity-stream.png
new file mode 100644
index 0000000..cf64d80
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/acme-invoke-activity-stream.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/create-integration-final.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/create-integration-final.png
new file mode 100644
index 0000000..2de709a
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/create-integration-final.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/create-integration-getOrders.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/create-integration-getOrders.png
new file mode 100644
index 0000000..67c4052
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/create-integration-getOrders.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/create-integration-getcustomerorders.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/create-integration-getcustomerorders.png
new file mode 100644
index 0000000..5c79987
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/create-integration-getcustomerorders.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/create-integration-initial.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/create-integration-initial.png
new file mode 100644
index 0000000..27d7041
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/create-integration-initial.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/get-customer-mapping.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/get-customer-mapping.png
new file mode 100644
index 0000000..c9df75c
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/get-customer-mapping.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/lab-integration-scenario.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/lab-integration-scenario.png
new file mode 100644
index 0000000..941531f
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/lab-integration-scenario.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/response-mapping-customer-details.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/response-mapping-customer-details.png
new file mode 100644
index 0000000..fc44950
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/response-mapping-customer-details.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/response-mapping-order-details.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/response-mapping-order-details.png
new file mode 100644
index 0000000..4342b42
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/response-mapping-order-details.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/rest-adapter-uri-parameter-page.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/rest-adapter-uri-parameter-page.png
new file mode 100644
index 0000000..1f2954b
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/rest-adapter-uri-parameter-page.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/run-integration-test.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/run-integration-test.png
new file mode 100644
index 0000000..899bbf8
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/create-flow/images/run-integration-test.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/develop-adapter.md b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/develop-adapter.md
new file mode 100644
index 0000000..a631c33
--- /dev/null
+++ b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/develop-adapter.md
@@ -0,0 +1,313 @@
+# Develop a Custom Adapter with RAB
+
+## Introduction
+
+In this lab you will understand and develop a Custom Adapter, using the RAB framework
+
+![Develop Adapter End to End Flow](images/develop-adapter-e2e-fliow.png)
+
+Estimated Time: 45 minutes
+
+### Objectives
+
+In this lab, you will:
+
+* **Initialize a workspace using the VS Code extension**: Set up a structured workspace folder to organize artifacts related to adapter development.
+* **Configure the publisher profile for the extension**: Enter client credentials to authenticate with your target OIC instance where you'll publish the adapter.
+* **Import and test the Postman collection**: Import the ACME Order Management APIs Postman collection and test the API calls locally.
+* **Understand the structure of the Adapter Definition Document (ADD)**: Learn about the different sections that make up an adapter's metadata definition.
+* **Generate the Adapter Definition Document (ADD)**: Use the extension to automatically generate an initial ADD from the ACME Postman collection.
+* **Review and update the Adapter Definition Document (ADD)**: Examine and manually modify the generated ADD file to customize the adapter's behavior.
+* **Register the Adapter on Oracle Integration**: Validate and publish the finalized custom adapter to your OIC instance.
+
+### Prerequisites
+
+This lab assumes you have successfully completed all previous lab sections
+- Install and Confgiure Visual Studio with RAB Extension
+- Install Postman
+
+## Task 1: Import and test the Postman Collection
+
+1. [Download](https://objectstorage.us-phoenix-1.oraclecloud.com/p/gv0J-Iza_p0uU8Cct_XwRupcPO1tnNivFkJP0UJp_eB9S52_JWdJJi4W8rD2zjQi/n/oicpm/b/oiclivelabs/o/oic3/get-started-rab/lab-artifacts-rab.zip) the lab artifacts and unzip in your local directory.
+
+2. Open the Postman application and sign in with your account.
+
+3. Select **Import** and browse the Postman collection file from the lab artifacts saved earlier in local directory. The collection will consists of a set of resources related to Acme Ordermanagement Application created in ORDS in the previous section.
+
+ ![Postman Collection Import](images/postman-collection-import.png)
+
+4. Select **Acme OM Application** and click on **Variables** in the right hand side pane. In the Current Value text field provide the ORDS url noted in the **Setup** section of previous lab. Your url pattern should be like ex: https://<ords_host>/ords/admin/om/v1
+
+ ![Modify Base URL](images/base-url-variable-edit.png)
+
+5. Test a couple of API's under **Customers** resource. Select *Get All Customers* resource and make sure you get a response back to ensure Acme Order Management Application REST API is working.
+
+
+## Task 2: Initialize a workspace in Visual Studio
+
+1. Create a folder named **AcmeOMApp** in your local directory.
+
+2. In VS Code, click *Explorer* ![VS Code Explorer Icon](images/explorer-icon.png).
+
+3. Click *Open Folder*, and choose a folder on your system as the workspace for adapter development.
+ The folder is now listed on the left in the Explorer view.
+
+> Note: You can also click File in the top ribbon, and select Open Folder... to open a folder in VS Code.
+
+4. Press *Ctrl + Shift + P* to open the command palette, type **RAB: Initialize Workspace**, and hit Enter.
+
+ The VS Code extension now initializes the workspace, and creates a few directories and template files in the workspace. The directories and files created are displayed in the Explorer view on the left. The following directories and files are created:
+
+ - api: You can save all OpenAPI files in this folder.
+ - definitions: The extension creates a default adapter definition document, main.add.json, in this folder. You can overwrite the default document with the data from a Postman collection or an OpenAPI file. Additionally, all the other adapter definition documents you generate are saved in this folder. The file names of all adapter definition documents are appended with .add.json.
+ - misc: You can save all Postman collections in this folder. Ensure that the file names of all Postman collections are appended with .postman_collection.json.
+ - logo.svg: A default logo file for your adapter is created under the root folder. You can replace this file with the required image. The logo should be of svg format only.
+
+5. Open postman collection that you downloaded earlier using any text editor. Navigate to the **variable** section which is almost at the end of the file. Provide the ORDS url in the value property.
+
+![Configure Baseurl In Postman Collection](images/configure-baseurl-postman-collection.png)
+
+6. Navigate to the local directory structure **misc** directory. Copy and paste the updated postman collection into the **misc** directory. You may delete the existing postman collection generated as part of the workspace initialization.
+
+
+## Task 3: Configure the publisher profile for the extension.
+
+1. In VS Code, click *OIC Rapid Adapter Builder* ![VS Code Explorer Icon](images/oic-rab-icon.png) on the sidebar.
+
+2. In the resulting view, click Edit in the Publisher Profiles section. The publisher-profiles.yaml file opens in the editor.
+
+3. Update the file with the client credentials you obtained earlier. In addition, update the active field with the name of the profile to use. The following example shows the details of 3 Oracle Integration instances, named dev, uat and oic3demo, stored in a .yaml file. See highlighted below and provide the values as per your client application configuration.
+
+| **Field** | **Value** |
+| --- | ----------- |
+| name | oic3demo |
+| host | https://design.integration.<region>.ocp.oraclecloud.com |
+| integrationInstance | The name of your Oracle Integration instance.|
+| tokenUrl | The IDCS get token url ex: https://idcs-xxxxx.identity.oraclecloud.com/oauth2/v1/token|
+| clientId | The client ID of the configured application in IDCS noted earlier|
+| clientSecret | The client secret of the configured application in IDCS noted earlier|
+| scope | The allowed scope of the configured application in IDCS noted earlier.|
+{: title="Configure Publisher Profile Values"}
+
+![Publisher Profile YAML](images/publisher-profile-yaml.png)
+
+4. Save publisher yaml file
+
+## Task 4: Generate the Adapter definition document
+
+Using the VS Code extension for Rapid Adapter Builder, you can generate an adapter definition document from the exported Postman collection.
+
+1. In VS Code, click *Explorer* ![VS Code Explorer Icon](images/explorer-icon.png) on the sidebar to bring up the Explorer view. The directory structure of your workspace folder is displayed.
+
+2. Click the **misc** directory listing to expand it. Select the **Acme OM Application.postman_collection.json** file. Right Click *RAB: Convert POSTMAN Collection*
+
+![RAB Convert Postman Collection](images/rab-convert-postman-collection.png)
+
+3. In the Select request(s) pane, *select all* requests to convert, and Select **Get All customers** as test connection.
+
+![Select Requests](images/select-requests-convert.png)
+
+Click *Done*
+
+4. In the dialog box that appears, click *Update main*. Now, the VS Code extension converts the data from the Postman collection and adds it to the default adapter definition document (main.add.json) within the definitions directory of your workspace. In addition, the document opens in the VS Code editor.
+
+5. Copy the **acme-order.svg** (downloaded from lab-artifacts zip) into your workspace under root folder. You may delete the default logo.svg file generated as part of workspace initialization. The copied graphic will be the icon used in OIC for the custom adapter.
+
+## Task 5: Understand the Adapter definition document (Read Only Task)
+
+An adapter definition document is a JSON-formatted document that describes the functional behavior and the implementation for an adapter. You build an adapter by authoring an adapter definition document. The adapter definition document logically consists of several sections as shown below.
+
+![Adapter Definition Document Skeleton Structure](images/add-skeleton-sections.png)
+
+***info section***: While developing your adapter, you specify information about the branding and identity of the adapter, the publisher details, and the supported capabilities in the info section of an adapter definition document.
+
+Following is the basic properties you should provide when building an adapter. Some of the following information appears in the OIC adapters details page.
+
+ - A unique ID
+ - Display name and description which appears in Oracle Integration Console
+ - A version number to determine your adapter release
+
+Sample of Info section
+
+![Sample Info Section](images/add-info-section-sample.png)
+
+***schemas section***: The VS Code extension for Rapid Adapter Builder generates schemas for requests and responses when you convert a Postman collection to an adapter definition document. This information appears in the schemas section of the document. You can update this information as needed for your requirements.
+
+The JSON schemas define the structure of the input and output payloads. Schemas can reference other definitions in the adapter definition document. Generally, you don't need to update the schemas. However, if necessary, you can edit the schemas to:
+- Remove or add certain fields that are required for your adapter.
+- Remove nesting and have a flat list.
+- Change the response format. For example, an API may return a time stamp as a UNIX epoch. You can transform the value into a human-readable format by editing the schema.
+
+In Oracle Integration, you can view the schema information while configuring the mapping for an adapter in an integration flow. The schema objects appear in the mapper as source or target data structures
+
+Sample of Schemas section
+
+![Sample Schemas Section](images/add-schema-section-sample.png)
+
+***connection section***: The VS Code extension for Rapid Adapter Builder collects connection and security information about the application's APIs provided in the Postman Collection when you convert the convert into an adapter definition document. This information appears in the connection section. You can update this information and add new connection definitions as needed, according to your requirements.
+
+When designing your adapter, you specify the connection models that the adapter supports. Provide this information in the connection section of the adapter definition document. An integration developer must specify this information when creating a connection that is based upon the adapter.
+
+A connection definition typically includes
+ - Connection properties : The connection properties provide the information that an integration needs to connect with a third party w.r.t API endpoints
+ - Security Policies : Authentication and Authorization specific information that will be used to connect with the third party Application API
+ - Test Connection : You will specify a flow action that needs to execute which is provided in the flow section
+
+You can view the connection information while creating a connection using an adapter in Oracle Integration. The properties provided will be available in the connection configuration page.
+
+Sample of Connection Section which contains url and security policies the application adapter supports.
+
+![Sample of Connection Section](images/add-connection-section-sample.png)
+
+***action section***: The VS Code extension for Rapid Adapter Builder pulls actions related information from the application's APIs when you convert the Postman collection into an adapter definition document. This information appears in the actions section of the adapter definition document. You can update this information as needed for your requirements.
+
+For business purposes, a company can chose to expose an application's APIs with some operations, such as creating or updating a record. When designing an integration, an integration developer can program the integration to perform these operations by configuring one or more actions. Each action calls one or more application-specific APIs. Actions provide a user-centric encapsulation of the target application's operations.
+
+The adapter definition document specifies all the actions that are available to integration developers. Each action has a reference. An action can also be a flow that implements this action. It can also contain the input schema and output schema definitions if the action has input and output data. In the current lab scenario you will notice definitions such as for example: **creating a customer, get order details of a customer, update products etc.**
+
+Sample of Action section which contains all API operations with Input and Output Schema defined in the Schema section. Each of the actions are grouped logically to provide functional know-how to the integration developer who is configuring the custom adapter.
+
+![Sample of Action Section](images/add-action-section-sample.png)
+
+***categories section***: In the categories section of an adapter definition document, you can categorize actions and triggers, so that it becomes easier to choose the required actions or triggers while configuring an adapter in Oracle Integration.
+
+While modeling an adapter's capabilities, you may have to define a large number of actions and triggers depending on the requirements. As actions and triggers appear in a drop-down list in the design-time user interface of Oracle Integration, it becomes difficult to choose the required value from a long list. For example in this lab scenario you are building adapter for Order Management application which has modules likes Customers, Products, Orders etc. A sample of the categories section is configured as shown below:
+
+![Sample of Categories Section](images/add-categories-section-sample.png)
+
+The categories appear in an actions or triggers drop-down list in the Adapter Endpoint Configuration Wizard.
+
+***flow section***: When you convert a Postman collection into an adapter definition document, the VS Code extension for Rapid Adapter Builder generates flow definitions using the information in the collection. The flow definitions are in the flows section and are used to invoke the external APIs at runtime. You can update these definitions as needed, according to your requirements.
+
+The flows section of the adapter definition document defines the runtime and design-time activities that an adapter is capable of. The following examples show case how flow definitions can be configured based on your requirement.
+
+**Design-time examples**
+ - When an integration developer is configuring a connection based on your adapter, flows can pull data from an external application and display the data in the user interface.
+ - When an integration developer selects a custom object in the Integration Designer, flows can drive the dynamic schema.
+ - Provide logic for test connection flow
+ - Fetch dynamic values for configuring properties in design time.
+
+**Runtime examples**
+ - Invoke APIs.
+ - Start preprocessing activities, like transforming a JSON payload to an binary encoded avro data.
+ - Perform post processing, like transforming the binary encoded avro data to a JSON key value.
+ - Conditionally execute an actions
+
+Sample of Flow Section
+
+![Sample of Flow Section](images/add-flow-section-sample.png)
+
+## Task 6: Configure the Adapter definition document
+
+In this section you will configure **info** section and also add security policies that the adapter needs to support. Open the **main.add.json** file in VS.
+
+1. In the **info** section provide the following values for the respective properties.
+
+| **Property** | **Value** |
+| --- | ----------- |
+| id | livelab:acme-om-application |
+| appInfo > name | Acme OM Application|
+| appInfo > description | This is an order management application for Acme |
+| publisherInfo > name | Oracle Live Lab |
+{: title="Info Section Property Values"}
+
+2. In the **connection** section Right Click anywhere in the **Connection** section, and click on *RAB: Insert Authentication Scheme* and Select *No Authentication*. You should see a dialog box to override the existing **NONE** section, Select *Yes*.
+
+![Add No Auth Security Policy](images/add-connection-section-no-auth.png)
+
+A new code snippet is added in the **connection** > **connectionProperties** section. Change the property value of **hidden** to *false*. Observe a new property named **baseURL** is added to allow the end user to provide host url of the ACME OM Application. This property **baseURL** will be used in the respective flows to construct the concrete endpoint of the operations API supports.
+
+![New No Auth Code Snippet](images/connection-property-hidden-value-true.png)
+
+Assume ORDS API will be secured by Basic Authentication in future. In such case you can easily add another security policy in the connection section. Right Click anywhere in the **Connection** section, and click on *RAB: Insert Authentication Scheme* and Select *Basic Authentication*.
+
+![Add Basic Auth Security Policy](images/add-connection-section-basic-auth.png)
+
+A code snippet is added in the Connection section with **BASIC_AUTH** security policy.
+
+3. In the **flows** section go to the **testConnectionFlow** snippet, verify the **get all customers** concrete endpoint url is configured. The endpoint of **get all customers** is captured automatically based on the choice made in **Task 4**. However, we want the test connection flow to use the baseURL specified by the user when configuring the ACME adapter connection instead of a concrete url. Construct a uri as below to get the **baseURL** value dynamically.
+
+Note: We can use .connectionProperties.<property-name> configured in the Connection Properties section.
+```
+
+ "${.connectionProperties.baseURL +\"/customers\"}"
+
+```
+
+Provide the above copied snippet in the **uri** value
+
+
+> Note: We need a valid endpoint which do not accept any parameters or so to make sure test connection is working. API endpoints of GET VERB are appropriate to configure in the test connection flow.
+
+![Configure Test Connection Endpoint](images/add-flow-section-test-connection.png)
+
+4. Save the ADD file
+
+5. In the **flows** section for every flow action uri modify the **uri** value as you did for the test connection flow. Use the below values for your reference and modify accordingly.
+
+> If you plan to implement adapter for only Customer Resource you may change just the customer related flow actions as per your choice.
+
+| **uri** | **Value** |
+| --- | ----------- |
+| CreateANewCustomerFlowAction | "${.connectionProperties.baseURL +\"/customers\"}" |
+| DeleteCustomerFlowAction | "${.connectionProperties.baseURL +\"/customers\"}" |
+| GetAllCustomersFlowAction | "${.connectionProperties.baseURL +\"/customers\"}" |
+| UpdateCustomerFlowAction | "${.connectionProperties.baseURL +\"/customers\"}" |
+| GetCustomerPaymentsAndOrdersFlowAction | "${.connectionProperties.baseURL +\"/payments/{p\_customer\_id}\"}" |
+| GetSingleCustomerFlowAction | "${.connectionProperties.baseURL +\"/customers/{p\_customer\_id}\"}" |
+| GetAllOrdersFlowAction | "${.connectionProperties.baseURL +\"/orders\"}" |
+| GetSingleOrderFlowAction | "${.connectionProperties.baseURL + \"/orders/{p\_order\_id}\"}" |
+| CreateANewOrderFlowAction | "${.connectionProperties.baseURL +\"/orders\"}" |
+| UpdateAnOrderFlowAction | "${.connectionProperties.baseURL +\"/orders\"}" |
+| CancelOrderFlowAction | "${.connectionProperties.baseURL+\"/orders\"}" |
+| GetItemsForOrderFlowAction | "${.connectionProperties.baseURL+\"/order\_items/{p\_order\_id\"}" |
+| CreateANewOrderItemFlowAction |"${.connectionProperties.baseURL +\"/order\_items\"}" |
+| UpdateAnOrderItemFlowAction | "${.connectionProperties.baseURL +\"/order\_items\"}" |
+| DeleteAnOrderItemFlowAction | "${.connectionProperties.baseURL +\"/order\_items\"}" |
+| GetAllProductsFlowAction | "${.connectionProperties.baseURL +\"/products\"}" |
+| CreateANewProductFlowAction | "${.connectionProperties.baseURL + \"/products\"}" |
+| UpdateAProductFlowAction | "${.connectionProperties.baseURL + \"/products\"}" |
+| DeleteAProductFlowAction | "${.connectionProperties.baseURL +\"/products\"}" |
+{: title="Flow Action URI Configuration"}
+
+## Task 7: Validate the Adapter Definition Document
+
+Before you publish the adapter to Oracle Integration, you must validate the adapter definition document. Validating the document ensures that it does not contain any syntactic or semantic errors.
+
+1. In VS Code, click **Explorer** on the sidebar. The directory structure of your workspace folder is displayed.
+
+2. Click the **definitions** directory listing to expand it.
+
+3. Right click the adapter definition document (main.add.json) and then click *RAB: Validate*.
+
+4. In the output console at the bottom you should see confirmation message, indicates that your adapter definition document is valid and ready to be published.
+
+## Task 8: Register the Adapter on Oracle Integration
+
+After you have validated the adapter definition document, you can make your adapter available on Oracle Integration.
+
+1. In the VS editor, press **Ctrl + Shift + P** to open the command palette. From the commands displayed, click the *RAB: Register RAB Bundle* command.
+
+Now, the VS Code extension registers the adapter on your Oracle Integration instance. The adapter is registered on the instance specified as active in the publisher profile.
+
+![Register RAB Bundle](images/rab-register-bundle.png)
+
+You should see a confirmation in the Output Console.
+
+![Register Adapter Confirmation](images/reigster-adapter-confirmation.png)
+
+2. Log in to your Oracle Integration instance and check for the registered adapter. In the navigation pane, click Design, and then click Adapters. On the Adapters page, click the Search icon, type the name of your adapter in the **Search** field, and hit **Enter**.
+
+![Acme Custom Adapter Listed](images/oic-custom-adpater-show.png)
+
+3. You'll see the adapter you published in the search results. Point to the adapter's row and click **View** icon to view its details.
+
+You may now **proceed to the next lab**.
+
+## Learn More
+
+* [Work with Adapter Definition Document](https://docs.oracle.com/en/cloud/paas/application-integration/adapter-builder/work-adapter-definition-document.html)
+
+## Acknowledgements
+* **Author** - Kishore Katta, Director Product Management, OIC & OPA
+* **Last Updated By/Date** - Kishore Katta, April 2024
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-action-section-sample.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-action-section-sample.png
new file mode 100644
index 0000000..bb36ff3
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-action-section-sample.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-categories-section-sample.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-categories-section-sample.png
new file mode 100644
index 0000000..d7d3f26
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-categories-section-sample.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-connection-section-basic-auth.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-connection-section-basic-auth.png
new file mode 100644
index 0000000..bb37b69
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-connection-section-basic-auth.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-connection-section-no-auth.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-connection-section-no-auth.png
new file mode 100644
index 0000000..bf91541
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-connection-section-no-auth.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-connection-section-sample.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-connection-section-sample.png
new file mode 100644
index 0000000..06c1dae
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-connection-section-sample.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-flow-section-sample.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-flow-section-sample.png
new file mode 100644
index 0000000..cf773de
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-flow-section-sample.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-flow-section-test-connection.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-flow-section-test-connection.png
new file mode 100644
index 0000000..38e2833
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-flow-section-test-connection.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-info-section-sample.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-info-section-sample.png
new file mode 100644
index 0000000..77d09c1
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-info-section-sample.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-schema-section-sample.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-schema-section-sample.png
new file mode 100644
index 0000000..1555db8
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-schema-section-sample.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-skeleton-sections.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-skeleton-sections.png
new file mode 100644
index 0000000..ec52136
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/add-skeleton-sections.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/base-url-variable-edit.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/base-url-variable-edit.png
new file mode 100644
index 0000000..00d022a
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/base-url-variable-edit.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/configure-baseurl-postman-collection.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/configure-baseurl-postman-collection.png
new file mode 100644
index 0000000..1163dad
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/configure-baseurl-postman-collection.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/connection-property-hidden-value-true.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/connection-property-hidden-value-true.png
new file mode 100644
index 0000000..1a36af2
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/connection-property-hidden-value-true.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/develop-adapter-e2e-fliow.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/develop-adapter-e2e-fliow.png
new file mode 100644
index 0000000..2db6e01
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/develop-adapter-e2e-fliow.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/explorer-icon.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/explorer-icon.png
new file mode 100644
index 0000000..bcb6553
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/explorer-icon.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/oic-custom-adpater-show.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/oic-custom-adpater-show.png
new file mode 100644
index 0000000..eb120b9
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/oic-custom-adpater-show.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/oic-rab-icon.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/oic-rab-icon.png
new file mode 100644
index 0000000..3f435ef
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/oic-rab-icon.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/postman-collection-import.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/postman-collection-import.png
new file mode 100644
index 0000000..3ed91ff
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/postman-collection-import.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/publisher-profile-yaml.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/publisher-profile-yaml.png
new file mode 100644
index 0000000..1eeebae
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/publisher-profile-yaml.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/rab-convert-postman-collection.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/rab-convert-postman-collection.png
new file mode 100644
index 0000000..21df1a2
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/rab-convert-postman-collection.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/rab-register-bundle.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/rab-register-bundle.png
new file mode 100644
index 0000000..453faea
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/rab-register-bundle.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/reigster-adapter-confirmation.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/reigster-adapter-confirmation.png
new file mode 100644
index 0000000..0b687b8
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/reigster-adapter-confirmation.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/select-requests-convert.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/select-requests-convert.png
new file mode 100644
index 0000000..a575ad9
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/develop-adapter/images/select-requests-convert.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/introduction/images/rab-adapter-dev-flow.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/introduction/images/rab-adapter-dev-flow.png
new file mode 100644
index 0000000..96d34f0
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/introduction/images/rab-adapter-dev-flow.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/introduction/introduction.md b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/introduction/introduction.md
new file mode 100644
index 0000000..ca017b1
--- /dev/null
+++ b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/introduction/introduction.md
@@ -0,0 +1,64 @@
+# Introduction
+
+## About this Workshop
+
+The Rapid Adapter Builder in Oracle Integration (OIC) allows you to quickly build custom adapters to integrate with applications that expose RESTful APIs, without needing to develop complex code from scratch. This tutorial will walk through creating an adapter for the ACME Order Management application using its REST APIs and the Rapid Adapter Builder.
+
+An adapter provides an interface to connect an OIC integration flow with a specific application's APIs. Oracle Integration has a growing library of pre-built adapters for many popular applications. However, when there is no existing Oracle adapter for an application you need to integrate with, the Rapid Adapter Builder enables you to build a custom adapter tailored to that application's APIs.
+
+The Rapid Adapter Builder is provided as a Visual Studio Code extension that guides you through generating the metadata definition of an adapter based on an application's Postman API collection or OpenAPI specification. You can then customize and publish this adapter definition document as a functional adapter within your OIC instance.
+
+In this tutorial, you will use the Rapid Adapter Builder's Visual Studio Code extension to build an adapter for the ACME Order Management application's REST APIs. The key steps include:
+
+- Obtaining the ACME Order Management APIs (Postman collection)
+- Generating the adapter definition document from the APIs
+- Customizing the adapter definition document as needed
+- Validating and publishing the adapter to your OIC instance
+
+By the end of this tutorial, you will have a custom ACME Order Management adapter published in your Oracle Integration instance, ready to be leveraged in integration flows for connecting to the ACME Order Management application.
+
+Estimated Time: 2 hours 15 minutes
+
+Watch the video below for a quick overview of Rapid Adapter Builder
+
+[Overview of Rapid Adapter Builder](youtube:CpYIruWdRlI)
+
+### Objectives
+
+**End to End flow of developing OIC Adapter using Rapid Adapter Builder**
+
+![End to End Dev Flow](images/rab-adapter-dev-flow.png)
+
+By completing this tutorial, you will be able to:
+
+* Understand the purpose and benefits of the Rapid Adapter Builder in Oracle Integration
+* Set up the prerequisites for using the Rapid Adapter Builder Visual Studio Code extension
+* Generate an adapter definition document from a Postman API collection or OpenAPI specification
+* Customize the adapter definition document to tailor the adapter's behavior
+* Validate the adapter definition document for any errors
+* Publish and register a custom adapter in your Oracle Integration instance
+* Verify the published custom adapter is available in your OIC instance
+* Create a sample Integration flow using the published adapter
+* Understand how to incrementally update an existing custom adapter (Optional)
+
+By accomplishing these objectives, you will gain hands-on experience using the Rapid Adapter Builder to create custom adapters for applications exposing RESTful APIs. This will expand your ability to integrate Oracle Integration with a wider range of cloud applications and on premise applications.
+
+### Prerequisites
+
+* An Oracle Free Tier or Paid Cloud Account.
+* A Chrome browser.
+* Postman
+* Visual Studio
+
+
+You may now **proceed to the next lab**.
+
+## Learn More
+
+* [Get Started with Oracle Integration 3](https://docs.oracle.com/en/cloud/paas/application-integration/index.html)
+
+* [Get Started with Rapid Adapter Builder in Oracle Integration 3](https://docs.oracle.com/en/cloud/paas/application-integration/rab-tutorial)
+
+## Acknowledgements
+* **Author** - Kishore Katta, Director Product Management, OIC & OPA
+* **Last Updated By/Date** - Kishore Katta, April 2024
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/setup/images/atp-db-sql-sheet.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/setup/images/atp-db-sql-sheet.png
new file mode 100644
index 0000000..dd34e79
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/setup/images/atp-db-sql-sheet.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/setup/images/create-db-tables-confirmation.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/setup/images/create-db-tables-confirmation.png
new file mode 100644
index 0000000..ef6c08a
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/setup/images/create-db-tables-confirmation.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/setup/images/create-db-tables.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/setup/images/create-db-tables.png
new file mode 100644
index 0000000..5a2310e
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/setup/images/create-db-tables.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/setup/images/create-ords-service-confirmation.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/setup/images/create-ords-service-confirmation.png
new file mode 100644
index 0000000..a7cb044
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/setup/images/create-ords-service-confirmation.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/setup/images/ords-get-customers-test.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/setup/images/ords-get-customers-test.png
new file mode 100644
index 0000000..11b06b6
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/setup/images/ords-get-customers-test.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/setup/images/ords-module-list.png b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/setup/images/ords-module-list.png
new file mode 100644
index 0000000..e59b41d
Binary files /dev/null and b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/setup/images/ords-module-list.png differ
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/setup/setup.md b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/setup/setup.md
new file mode 100644
index 0000000..78596b5
--- /dev/null
+++ b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/setup/setup.md
@@ -0,0 +1,638 @@
+# Setup
+
+## Introduction
+
+This lab walks you through the setup required to complete the workshop. You will be exposing **ACME Order Management Application** API's using ORDS. A custom adapter will be created for the ORDS services exposed.
+
+Estimated Time: 20 minutes
+
+### Objectives
+In this lab, you will:
+- Create Database Table using a SQL script
+- Create ORDS service for the DB tables using a PL/SQL script
+- Create a Client Application in IDCS and Obtain Credentials
+- Assign the Integration instance developer role to the Client Application
+- Install Postman
+- Install Visual Studio and RAB Extension
+
+
+### Prerequisites
+This lab assumes you have:
+- Completed all the previous labs.
+
+
+## Task 1: Create a database objects using an SQL script
+Follow these steps to create a Database objects which will be used as part of this workshop.
+
+1. From you ATP Database Details page, click the **Database Actions** button and Select **SQL**.
+
+ ![Click Database Actions](images/atp-db-sql-sheet.png)
+
+2. The SQL Worksheet appears. Select **ADMIN** schema. Before you proceed with the SQL Worksheet, copy below code snippet:
+ ```
+
+ CREATE TABLE customers (
+ CustomerID NUMBER PRIMARY KEY,
+ Name VARCHAR2(50) NOT NULL,
+ Address VARCHAR2(100),
+ City VARCHAR2(50),
+ State VARCHAR2(2),
+ ZipCode VARCHAR2(10),
+ Phone VARCHAR2(20)
+ );
+
+ /
+ CREATE TABLE orders (
+ OrderID NUMBER PRIMARY KEY,
+ CustomerID NUMBER NOT NULL,
+ OrderDate DATE NOT NULL,
+ TotalAmount NUMBER(10,2),
+ CONSTRAINT fk_customer FOREIGN KEY (CustomerID) REFERENCES customers(CustomerID)
+ );
+ /
+ CREATE TABLE order_items (
+ OrderItemID NUMBER PRIMARY KEY,
+ OrderID NUMBER NOT NULL,
+ ProductID NUMBER NOT NULL,
+ Quantity NUMBER NOT NULL,
+ Price NUMBER(10,2) NOT NULL,
+ CONSTRAINT fk_order FOREIGN KEY (OrderID) REFERENCES orders(OrderID)
+ );
+ /
+ CREATE TABLE products (
+ ProductID NUMBER PRIMARY KEY,
+ ProductName VARCHAR2(100) NOT NULL,
+ UnitPrice NUMBER(10,2) NOT NULL
+ );
+ /
+ CREATE TABLE payments (
+ PaymentID NUMBER PRIMARY KEY,
+ OrderID NUMBER NOT NULL,
+ PaymentDate DATE NOT NULL,
+ Amount NUMBER(10,2) NOT NULL,
+ CONSTRAINT fk_order_payment FOREIGN KEY (OrderID) REFERENCES orders(OrderID)
+ );
+ /
+
+ ```
+
+6. Paste the script in the SQL Worksheet, then click **Run Script** button.
+
+ ![DB Objects Created Confirmation](images/create-db-tables.png)
+
+ This will create 5 tables as below. The table is created successfully when you see the notification in the *Script Output* window.
+
+ ![DB Objects Created Confirmation](images/create-db-tables-confirmation.png)
+
+## Task 2: Insert sample data into DB Objects
+
+1. In the SQL Worksheet execute below set of script to insert data.
+ ```
+
+ INSERT INTO CUSTOMERS(
+ CustomerID, NAME, PHONE,
+ ADDRESS, CITY, STATE, ZIPCODE
+ ) VALUES (
+ 1, 'John Smith', '9848022338',
+ '123 Main St', 'New York', 'NY', '10001'
+ );
+
+ INSERT INTO CUSTOMERS(
+ CustomerID, NAME, PHONE,
+ ADDRESS, CITY, STATE, ZIPCODE
+ ) VALUES (
+ 2, 'Jane Doe', '4152317745',
+ '456 Park Ave Apt 2B', 'Los Angeles', 'CA', '90028'
+ );
+
+ INSERT INTO ORDERS VALUES (
+ 1001, 1, DATE '2023-02-14',
+ 99.99
+ );
+
+ INSERT INTO ORDERS
+ VALUES (
+ 1002, 1, DATE '2023-02-18',
+ 149.99
+ );
+
+ INSERT INTO PRODUCTS (
+ PRODUCTID, PRODUCTNAME,
+ UNITPRICE
+ ) VALUES (
+ 10, 'Printer X1500',
+ 99.99
+ );
+
+ INSERT INTO PRODUCTS VALUES (
+ 20, '43-inch LED TV',
+ 199.99
+ );
+
+ INSERT INTO PRODUCTS VALUES (
+ 30, 'Laptop',
+ 299.99
+ );
+
+ INSERT INTO ORDER_ITEMS (
+ ORDERITEMID, ORDERID, PRODUCTID,
+ QUANTITY, PRICE
+ ) VALUES (
+ 101, 1001, 10,
+ 2, 99.99
+ );
+
+ INSERT INTO ORDER_ITEMS (
+ ORDERITEMID, ORDERID, PRODUCTID,
+ QUANTITY, PRICE
+ ) VALUES (
+ 102, 1002, 20,
+ 2, 199.99
+ );
+
+ INSERT INTO PAYMENTS VALUES
+ (101, 1001, DATE '2023-02-14', 99.99);
+
+ INSERT INTO PAYMENTS VALUES
+ (201, 1002, DATE '2023-02-16', 199.99);
+
+ ```
+
+## Task 3: Create ORDS Service and respective handlers
+
+
+1. In the SQL Worksheet execute below set of script to create ORDS service. If your schema name is different modify the p\_schema and p\_url\_mapping\_pattern values accordingly.
+ ```
+
+ BEGIN
+ ORDS.ENABLE_SCHEMA(
+ p_enabled => TRUE,
+ p_schema => 'ADMIN',
+ p_url_mapping_type => 'BASE_PATH',
+ p_url_mapping_pattern => 'admin',
+ p_auto_rest_auth => FALSE);
+
+ ORDS.DEFINE_MODULE(
+ p_module_name => 'ordermanagement.v1',
+ p_base_path => '/om/v1/',
+ p_items_per_page => 10,
+ p_status => 'PUBLISHED',
+ p_comments => 'ACME Order Management Application');
+ ORDS.DEFINE_TEMPLATE(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'customers',
+ p_priority => 0,
+ p_etag_type => 'HASH',
+ p_etag_query => NULL,
+ p_comments => 'Customers Resource');
+ ORDS.DEFINE_HANDLER(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'customers',
+ p_method => 'GET',
+ p_source_type => 'json/collection',
+ p_items_per_page => 0,
+ p_mimes_allowed => '',
+ p_comments => 'Get All Customers',
+ p_source =>
+ 'SELECT CustomerID,Name,Address,City,State,ZipCode,Phone FROM customers'
+ );
+ ORDS.DEFINE_HANDLER(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'customers',
+ p_method => 'DELETE',
+ p_source_type => 'plsql/block',
+ p_items_per_page => 0,
+ p_mimes_allowed => '',
+ p_comments => 'Delete Customer',
+ p_source =>
+ 'BEGIN
+ delete_customer (
+ p_cust_id => :customerid
+ );
+ END;'
+ );
+ ORDS.DEFINE_HANDLER(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'customers',
+ p_method => 'PUT',
+ p_source_type => 'plsql/block',
+ p_items_per_page => 0,
+ p_mimes_allowed => '',
+ p_comments => 'Update Customer',
+ p_source =>
+ 'BEGIN
+ update_customer (
+ p_cust_id => :customerid,
+ p_name => :name,
+ p_address => :address,
+ p_city => :city,
+ p_state => :state,
+ p_zipcode => :zipcode,
+ p_phone => :phone
+ );
+ END;'
+ );
+ ORDS.DEFINE_HANDLER(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'customers',
+ p_method => 'POST',
+ p_source_type => 'plsql/block',
+ p_items_per_page => 0,
+ p_mimes_allowed => '',
+ p_comments => 'Create a new Customer',
+ p_source =>
+ 'BEGIN
+ add_new_customer (
+ p_cust_id => :customerid,
+ p_name => :name,
+ p_address => :address,
+ p_city => :city,
+ p_state => :state,
+ p_zipcode => :zipcode,
+ p_phone => :phone
+ );
+ END;'
+ );
+ ORDS.DEFINE_TEMPLATE(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'customers/:p_customer_id',
+ p_priority => 0,
+ p_etag_type => 'HASH',
+ p_etag_query => NULL,
+ p_comments => 'Customers Resource');
+ ORDS.DEFINE_HANDLER(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'customers/:p_customer_id',
+ p_method => 'GET',
+ p_source_type => 'json/query;type=single',
+ p_items_per_page => 0,
+ p_mimes_allowed => '',
+ p_comments => 'Get Single Customer',
+ p_source =>
+ 'SELECT CustomerID,Name,Address,City,State,ZipCode,Phone FROM customers where customerid = :p_customer_id'
+ );
+ ORDS.DEFINE_TEMPLATE(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'order_items',
+ p_priority => 0,
+ p_etag_type => 'HASH',
+ p_etag_query => NULL,
+ p_comments => 'Order Items Resource');
+ ORDS.DEFINE_HANDLER(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'order_items',
+ p_method => 'DELETE',
+ p_source_type => 'plsql/block',
+ p_items_per_page => 0,
+ p_mimes_allowed => '',
+ p_comments => 'Delete an Order Item',
+ p_source =>
+ 'BEGIN
+ delete_order (
+ p_order_item_id => :orderitemid
+ );
+ END;'
+ );
+ ORDS.DEFINE_HANDLER(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'order_items',
+ p_method => 'PUT',
+ p_source_type => 'plsql/block',
+ p_items_per_page => 0,
+ p_mimes_allowed => '',
+ p_comments => 'Update an Order Item',
+ p_source =>
+ 'BEGIN
+ update_order_item (
+ p_order_item_id => :orderitemid,
+ p_order_id => :orderid,
+ p_product_id => :productid,
+ p_quantity => :quantity,
+ p_price => :price
+ );
+ END;'
+ );
+ ORDS.DEFINE_HANDLER(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'order_items',
+ p_method => 'POST',
+ p_source_type => 'plsql/block',
+ p_items_per_page => 0,
+ p_mimes_allowed => '',
+ p_comments => 'Create a new Order Item',
+ p_source =>
+ 'BEGIN
+ add_new_order_item (
+ p_order_item_id => :orderitemid,
+ p_order_id => :orderid,
+ p_product_id => :productid,
+ p_quantity => :quantity,
+ p_price => :price
+ );
+ END;'
+ );
+ ORDS.DEFINE_TEMPLATE(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'order_items/:p_order_id',
+ p_priority => 0,
+ p_etag_type => 'HASH',
+ p_etag_query => NULL,
+ p_comments => 'Order Items Resource');
+ ORDS.DEFINE_HANDLER(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'order_items/:p_order_id',
+ p_method => 'GET',
+ p_source_type => 'json/collection',
+ p_items_per_page => 0,
+ p_mimes_allowed => '',
+ p_comments => 'Get All order items of an order',
+ p_source =>
+ 'SELECT orderitemid,orderid,productid,quantity,price FROM order_items where orderid = :p_order_id'
+ );
+ ORDS.DEFINE_TEMPLATE(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'orders',
+ p_priority => 0,
+ p_etag_type => 'HASH',
+ p_etag_query => NULL,
+ p_comments => 'Orders Resource');
+ ORDS.DEFINE_HANDLER(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'orders',
+ p_method => 'GET',
+ p_source_type => 'json/collection',
+ p_items_per_page => 0,
+ p_mimes_allowed => '',
+ p_comments => 'Get All orders',
+ p_source =>
+ 'SELECT OrderID,CustomerID,OrderDate,TotalAmount FROM orders'
+ );
+ ORDS.DEFINE_HANDLER(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'orders',
+ p_method => 'DELETE',
+ p_source_type => 'plsql/block',
+ p_items_per_page => 0,
+ p_mimes_allowed => '',
+ p_comments => NULL,
+ p_source =>
+ 'BEGIN
+ delete_order (
+ p_order_id => :orderid
+ );
+ END;'
+ );
+ ORDS.DEFINE_HANDLER(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'orders',
+ p_method => 'PUT',
+ p_source_type => 'plsql/block',
+ p_items_per_page => 0,
+ p_mimes_allowed => '',
+ p_comments => 'Update an Order',
+ p_source =>
+ 'BEGIN
+ update_order (
+ p_order_id => :orderid,
+ p_customer_id => :customerid,
+ p_order_date => :orderdate,
+ p_total_amount => :totalamount
+ );
+ END;'
+ );
+ ORDS.DEFINE_HANDLER(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'orders',
+ p_method => 'POST',
+ p_source_type => 'plsql/block',
+ p_items_per_page => 0,
+ p_mimes_allowed => '',
+ p_comments => 'Create a new Order',
+ p_source =>
+ 'BEGIN
+ add_new_order (
+ p_order_id => :orderid,
+ p_customer_id => :customerid,
+ p_order_date => :orderdate,
+ p_total_amount => :totalamount
+ );
+ END;'
+ );
+ ORDS.DEFINE_TEMPLATE(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'orders/:p_order_id',
+ p_priority => 0,
+ p_etag_type => 'HASH',
+ p_etag_query => NULL,
+ p_comments => 'Orders Resource');
+ ORDS.DEFINE_HANDLER(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'orders/:p_order_id',
+ p_method => 'GET',
+ p_source_type => 'json/query;type=single',
+ p_items_per_page => 0,
+ p_mimes_allowed => '',
+ p_comments => 'Get orders',
+ p_source =>
+ 'SELECT OrderID,CustomerID,OrderDate,TotalAmount FROM orders where OrderID = :p_order_id'
+ );
+ ORDS.DEFINE_TEMPLATE(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'payments/:p_customer_id',
+ p_priority => 0,
+ p_etag_type => 'HASH',
+ p_etag_query => NULL,
+ p_comments => 'Payments Resource');
+ ORDS.DEFINE_HANDLER(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'payments/:p_customer_id',
+ p_method => 'GET',
+ p_source_type => 'json/collection',
+ p_items_per_page => 0,
+ p_mimes_allowed => '',
+ p_comments => 'Get Customer Orders and Payments',
+ p_source =>
+ 'SELECT
+ c.name,
+ o.orderid,
+ o.orderdate,
+ o.totalamount,
+ p.paymentid,
+ p.paymentdate,
+ p.amount
+ FROM
+ customers c
+ JOIN orders o ON o.customerid = c.customerid
+ JOIN payments p ON p.orderid = o.orderid
+ WHERE
+ c.customerid = :p_customer_id'
+ );
+ ORDS.DEFINE_TEMPLATE(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'products',
+ p_priority => 0,
+ p_etag_type => 'HASH',
+ p_etag_query => NULL,
+ p_comments => 'Products Resource');
+ ORDS.DEFINE_HANDLER(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'products',
+ p_method => 'GET',
+ p_source_type => 'json/collection',
+ p_items_per_page => 0,
+ p_mimes_allowed => '',
+ p_comments => 'Get All Products',
+ p_source =>
+ 'SELECT productid,productname,unitprice from PRODUCTS'
+ );
+ ORDS.DEFINE_HANDLER(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'products',
+ p_method => 'DELETE',
+ p_source_type => 'plsql/block',
+ p_items_per_page => 0,
+ p_mimes_allowed => '',
+ p_comments => 'Delete a Product',
+ p_source =>
+ 'BEGIN
+ delete_product (
+ p_productid => :productid
+ );
+ END;'
+ );
+ ORDS.DEFINE_HANDLER(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'products',
+ p_method => 'PUT',
+ p_source_type => 'plsql/block',
+ p_items_per_page => 0,
+ p_mimes_allowed => '',
+ p_comments => 'Update a Product',
+ p_source =>
+ 'BEGIN
+ update_product (
+ p_productid => :productid,
+ p_product_name => :productname,
+ p_unit_price => :unitprice
+ );
+ END;'
+ );
+ ORDS.DEFINE_HANDLER(
+ p_module_name => 'ordermanagement.v1',
+ p_pattern => 'products',
+ p_method => 'POST',
+ p_source_type => 'plsql/block',
+ p_items_per_page => 0,
+ p_mimes_allowed => '',
+ p_comments => 'Create a new Product',
+ p_source =>
+ 'BEGIN
+ add_product (
+ p_productid => :productid,
+ p_product_name => :productname,
+ p_unit_price => :unitprice
+ );
+ END;'
+ );
+ COMMIT;
+ END;
+
+ ```
+
+![Create ORDS Service](images/create-ords-service-confirmation.png)
+
+## Task 4: Verify the ORDS Module
+
+1. Navigate to *ATP* instance page and Select **Database Actions**
+
+2. Select **REST** tile from the drop down Menu
+
+3. Under the *Objects* category select **Modules**
+
+4. Verify the *ordermanagement.v1* module type. Copy the Open API 3.0 catalog url highlighted below and confirm in a browser window that it is reachable. We will use the url to verify the ORDS services from Postman in the later section.
+
+![Order Management Module](images/ords-module-list.png)
+
+5. Select the **ordermanagement.v1** module and verify and Select *Customer* resource and handlers which are created. Click on *GET* handler url and confirm that you are able to see a json response with few records.
+
+![ORDS Get Customers Test](images/ords-get-customers-test.png)
+
+## Task 5: Create a Client Application and Obtain Credentials
+
+In Oracle Identity Cloud Service (IDCS), create a client application for your Oracle Integration instance and obtain the client credentials.
+
+> Note: If your tenancy is enabled with domains launch the Confidential application creation from OCI Console > Identity & Security > domains > > Integrated Applications. The steps below are pretty much the same.
+
+You'll use these client credentials in your publisher-profile details while publishing an adapter using the Rapid Adapter Builder.
+
+You must obtain the following details for your Oracle Integration instance:
+
+- Host: URL of the Oracle Integration instance
+- integrationInstance: Name of the Oracle Integration instance
+- The following client credentials:
+ - tokenUrl
+ - clientId
+ - clientSecret
+ - scope
+
+1. In the Oracle Identity Cloud Service Console, go to the **Applications** section to create a new application that allows you to trigger an integration with OAuth.
+
+2. Click **Add**.
+
+3. Select **Confidential Application**.
+
+4. Complete the **Details** page, and click **Next**.
+
+5. On the **Client** page, select **Configure this application as a client now**, and complete the following:
+
+ - Select **Client Credentials** from the **Allowed Grant Types** list.
+ - Select **Specific** in the **Authorized Resources** area of the **Token Issuance Policy** section.
+ - Click **Add Scope** under the **Resources** section.
+ - Find the Oracle Integration application, and click **>**
+ - Add the scope containing **urn:opc:resource:consumer::all**
+ - Save your changes
+
+6. Click through the remaining wizard pages without making changes and save the application
+
+7. Activate the application for use.
+
+ Make a note of below
+ - ClientId
+ - Secret
+ - Scope (that ends with urn:opc:resource:consumer::all)
+
+## Task 6: Add roles to the client application
+
+To successfully use the client credentials, assign the integration-instance developer role to the client application you created previously.
+
+1. Go to the **Application Roles** tab of the Oracle Identity Cloud Service application. The list of all applicable roles appears.
+
+2. Locate and click the ServiceDeveloper role, and then click **Assign Applications**. The Assign Applications dialog appears, displaying the client application you created previously.
+
+3. Select the client application and click **OK**. Now, IDCS assigns the integration-instance developer role to the application.
+
+## Task 7: Download and Install the Required Software
+
+To use the Rapid Adapter Builder, you require additional applications or software installed on your system.
+
+1. Download and install the Postman application. Visit the [Download Postman](https://www.postman.com/downloads/) page. Create an account on Postman to access full features.
+
+2. Download and install VS Code. Visit the [Download Visual Studio Code](https://code.visualstudio.com/download) page.
+
+## Task 8: Install the VS Code Extension for Rapid Adapter Builder
+
+Download and install the VS Code extension for Rapid Adapter Builder.
+
+1. On Visual Studio Marketplace, visit Oracle's [page](https://marketplace.visualstudio.com/publishers/Oracle)
+
+2. Find and click the **Oracle Integration Rapid Adapter Builder** tile. The Details page opens.
+
+3. Click **Install**. The extension file opens in VS Code.
+
+4. Click **Install** in VS Code. Now, the extension is installed and appears on the sidebar.
+
+You may now **proceed to the next lab**.
+
+## Acknowledgements
+* **Author** - Kishore Katta, Director Product Management, OIC & OPA
+* **Last Updated By/Date** - Kishore Katta, April 2024
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/workshops/tenancy/index.html b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/workshops/tenancy/index.html
new file mode 100644
index 0000000..aaac634
--- /dev/null
+++ b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/workshops/tenancy/index.html
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+ Oracle LiveLabs
+
+
+
+
+
+
+
+
+
+
+
+
+
Oracle LiveLabs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/workshops/tenancy/manifest.json b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/workshops/tenancy/manifest.json
new file mode 100644
index 0000000..187e829
--- /dev/null
+++ b/oic-gen3/core-competencies/rapid-adapter-builder/get-started-rab/workshops/tenancy/manifest.json
@@ -0,0 +1,46 @@
+{
+ "workshoptitle": "Oracle Integration 3 - Get Started with Rapid Adapter Builder (RAB)",
+ "help": "livelabs-help-oic_us@oracle.com",
+ "tutorials": [
+ {
+ "title": "Introduction",
+ "description":"Introduction",
+ "filename": "../../introduction/introduction.md"
+ },
+ {
+ "title": "Get Started",
+ "description": "This is the prerequisites for customers using Free Trial and Paid tenancies, and Always Free accounts (if applicable). The title of the lab and the Contents Menu title (the title above) match for Prerequisite lab. This lab is always first.",
+ "filename": "https://oracle-livelabs.github.io/common//labs/cloud-login/cloud-login.md"
+ },
+ {
+ "title": "Lab 1: Provision Oracle Integration 3",
+ "filename": "../../../../../common/provision-oic/provision.md"
+ },
+ {
+ "title": "Lab 2: Provision an Oracle Autonomous Database",
+ "type": "freetier",
+ "filename": "../../adb-provision/adb-provision.md"
+ },
+ {
+ "title": "Lab 3: Setup",
+ "filename": "../../setup/setup.md"
+ },
+ {
+ "title": "Lab 4: Develop a Custom Adapter with RAB",
+ "filename": "../../develop-adapter/develop-adapter.md"
+ },
+ {
+ "title": "Lab 5: Create Connections",
+ "filename": "../../create-connections/create-connections.md"
+ },
+ {
+ "title": "Lab 6: Create an Integration flow",
+ "filename": "../../create-flow/create-flow.md"
+ },
+ {
+ "title": "Need Help?",
+ "description": "Solutions to Common Problems and Directions for Receiving Live Help",
+ "filename":"https://oracle-livelabs.github.io/common//labs/need-help/need-help-freetier.md"
+ }
+ ]
+}