From d03030e877dbd6e849418b372655bd5b04ebf3dc Mon Sep 17 00:00:00 2001
From: Jorge Moratinos Salcines <jorge.moratinossalcines@telefonica.com>
Date: Mon, 13 Jan 2025 17:55:01 +0100
Subject: [PATCH] New api status tests

---
 doc/releasenotes.md                           |    4 +-
 .../testplan/api_events_service/README.md     |    2 +-
 doc/testing/testplan/api_status/README.md     | 1150 +++++++++++++++--
 .../testplan/vendor_extensibility/README.md   |   11 +-
 4 files changed, 1067 insertions(+), 100 deletions(-)

diff --git a/doc/releasenotes.md b/doc/releasenotes.md
index 87b6740..d45151e 100644
--- a/doc/releasenotes.md
+++ b/doc/releasenotes.md
@@ -221,5 +221,5 @@ This Release also includes a Robot Test Suite for all those services and a Postm
 [OCF Event test plan documentation]: https://ocf.etsi.org/documentation/latest/testing/testplan/api_events_service/ "OCF Event test plan documentation"
 [OCF Registration Flow]: https://ocf.etsi.org/documentation/latest/testing/testplan/common_operations/ "OCF Registration Flow"
 [New Registration Demo]: https://www.youtube.com/watch?v=sn-tN6eRvv8 "New Registration Demo"
-[CICD Wiki]: [https://](https://labs.etsi.org/rep/ocf/community/-/wikis/OCF-CICD)   "CI/CD Wiki"
-[Upgrade Release 17 to 18 Wiki]: [https://](https://labs.etsi.org/rep/ocf/community/-/wikis/?¿?¿?¿?¿?)   "Upgrade Release 17 to 18 Wiki"
+[CICD Wiki]: https://labs.etsi.org/rep/ocf/community/-/wikis/OCF-CICD "CI/CD Wiki"
+[Upgrade Release 17 to 18 Wiki]: https://labs.etsi.org/rep/ocf/community/-/wikis/?¿?¿?¿?¿?   "Upgrade Release 17 to 18 Wiki"
diff --git a/doc/testing/testplan/api_events_service/README.md b/doc/testing/testplan/api_events_service/README.md
index bad8fba..6ecb183 100644
--- a/doc/testing/testplan/api_events_service/README.md
+++ b/doc/testing/testplan/api_events_service/README.md
@@ -1318,6 +1318,6 @@ At this documentation you will have all information and related files and exampl
 [log entry request body]: ../api_logging_service/invocation_log.json "Log Request Body"
 [put register body]: ./invoker_details_put_example.json  "API Invoker Update Request"
 [service security body]: ../api_security_service/service_security.json  "Service Security Request"
-[security notification body]: ./security_notification.json  "Security Notification Request"
+[security notification body]: ../api_security_service/security_notification.json  "Security Notification Request"
 
 [Return To All Test Plans]: ../README.md
diff --git a/doc/testing/testplan/api_status/README.md b/doc/testing/testplan/api_status/README.md
index 2f6b294..4938884 100644
--- a/doc/testing/testplan/api_status/README.md
+++ b/doc/testing/testplan/api_status/README.md
@@ -1,6 +1,7 @@
 # Test Plan for API Status Feature
 At this documentation you will have all information and related files and examples of test plan for this feature.
 
+---
 ## Test Case 1: Publish without apiStatus feature receive eventDetails with serviceAPIDescription
 
 **Test ID**: ***api_status-1***
@@ -17,11 +18,860 @@ At this documentation you will have all information and related files and exampl
   * **Mock Server is clean.**
 
 **Execution Steps**:
+
+  1. Register Invoker and Onboard Invoker at CCF.
+  2. Register Provider at CCF with 2 aefs.
+  3. Subscribe to **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**. ***Enhanced_event_report*** and ***apiStatusMonitoring*** **active** at supported features (binary 1100-> string **C**)
+  4. Publish Service API at CCF:
+     1. Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> string **000**)
+     2. This API not includes "API Status" information at **service API Description**.
+  5. Discover Service APIs by Invoker
+     1. includes filter by query parameter **aef-id**
+  6. Provider remove published API.
+
+**Information of Test**:
+
+  1. Perform [Invoker Onboarding]
+  2. Perform [Provider Registration] with 2 aefs
+  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
+       1. Send **POST** to **https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions**
+       2. body [event subscription request body] with:
+          1. events: **['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']**
+          2. supportedFeatures: binary 1100 -> string **C**
+       3. Use **Invoker Certificate**
+  4. Publish Service API at CCF:
+     * Send **POST** to ccf_publish_url **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis**
+     * body [service api description] with **service_1** and **service_2** apiNames and realted with aefId1 and aefId2.
+       * supportedFeatures **000**
+       * 2 profiles, one with each aef.
+     * Use **APF Certificate**
+  5. Request Discover Published APIs:
+     * Send **GET** to **https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}**
+     * Param api-invoker-id is mandatory
+     * Use **Invoker Certificate**
+  6. Remove published Service API:
+     * Send **DELETE** to resource URL **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}**
+     * Use **APF Certificate**
+
+**Expected Result**:
+
+  1. Response to Onboard request must accomplish:
+     1. **201 Created**
+     2. Response Body must follow **APIInvokerEnrolmentDetails** data structure with:
+        * apiInvokerId
+        * onboardingInformation->apiInvokerCertificate must contain the public key signed.
+     3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}**
+  2. Response to Event Subscription must accomplish:
+     1. **201 Created**
+     2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: **{apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}**
+     3. Response Body must follow **EventSubscription** data structure.
+  3. Response to Publish request must accomplish:
+     1. **201 Created**
+     2. Response Body must follow **ServiceAPIDescription** data structure with:
+        * apiId
+        * 2 profiles with:
+          * resourceName resource_1 and aefId1
+          * resourceName resource_2 and aefId2
+     3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}**
+  4. Response to Discover Request By Invoker:
+     1. **200 OK** response.
+     2. Response body must follow **DiscoveredAPIs** data structure:
+        * Check if DiscoveredAPIs contains the API Published previously
+          * Check if **NOT** contains the **apiStatus** keys
+  5. Response to Remove published Service API at CCF:
+     1. **204 No Content**
+  6. Mock Server received messages must accomplish:
+     1. **Two Events have been received**.
+     2. Validate received events follow **EventNotification** data structure, with **apiIds** and **serviceAPIDescription** in **eventDetail** parameter.
+        1. One should be **SERVICE_API_AVAILABLE**.
+        2. The other one must be **SERVICE_API_UNAVAILABLE**.
+
+---
+## Test Case 2: Publish without apiStatus feature receive eventDetails without serviceAPIDescription
+
+**Test ID**: ***api_status-2***
+
+**Description**:
+
+  This test case will check if an invoker subscribed to events **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**, with only ***Enhanced_event_report*** active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing apiIds at eventDetails, and the same when api is unpublished.
+
+**Pre-Conditions**:
+
+  * CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
+  * CAPIF provider is correctly registered with 2 aefs.
+  * **Mock Server is up and running to receive requests.**
+  * **Mock Server is clean.**
+
+**Execution Steps**:
+
+  1. Register Invoker and Onboard Invoker at CCF.
+  2. Register Provider at CCF with 2 aefs.
+  3. Subscribe to **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**. ***Enhanced_event_report*** **active** at supported features (binary 0100-> string **4**)
+  4. Publish Service API at CCF:
+     1. Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> string **000**)
+     2. This API not includes "API Status" information at **service API Description**.
+  5. Discover Service APIs by Invoker
+     1. includes filter by query parameter **aef-id**
+  6. Provider remove published API.
+
+**Information of Test**:
+
+  1. Perform [Invoker Onboarding]
+  2. Perform [Provider Registration] with 2 aefs
+  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
+       1. Send **POST** to **https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions**
+       2. body [event subscription request body] with:
+          1. events: **['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']**
+          2. supportedFeatures: binary 0100 -> string **4**
+       3. Use **Invoker Certificate**
+  4. Publish Service API at CCF:
+     * Send **POST** to ccf_publish_url **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis**
+     * body [service api description] with **service_1** and **service_2** apiNames and realted with aefId1 and aefId2.
+       * supportedFeatures **000**
+       * 2 profiles, one with each aef.
+     * Use **APF Certificate**
+  5. Request Discover Published APIs:
+     * Send **GET** to **https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}**
+     * Param api-invoker-id is mandatory
+     * Use **Invoker Certificate**
+  6. Remove published Service API:
+     * Send **DELETE** to resource URL **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}**
+     * Use **APF Certificate**
+
+**Expected Result**:
+
+  1. Response to Onboard request must accomplish:
+     1. **201 Created**
+     2. Response Body must follow **APIInvokerEnrolmentDetails** data structure with:
+        * apiInvokerId
+        * onboardingInformation->apiInvokerCertificate must contain the public key signed.
+     3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}**
+  2. Response to Event Subscription must accomplish:
+     1. **201 Created**
+     2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: **{apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}**
+     3. Response Body must follow **EventSubscription** data structure.
+  3. Response to Publish request must accomplish:
+     1. **201 Created**
+     2. Response Body must follow **ServiceAPIDescription** data structure with:
+        * apiId
+        * 2 profiles with:
+          * resourceName resource_1 and aefId1
+          * resourceName resource_2 and aefId2
+     3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}**
+  4. Response to Discover Request By Invoker:
+     1. **200 OK** response.
+     2. Response body must follow **DiscoveredAPIs** data structure:
+        * Check if DiscoveredAPIs contains the API Published previously
+          * Check if **NOT** contains the **apiStatus** keys
+  5. Response to Remove published Service API at CCF:
+     1. **204 No Content**
+  6. Mock Server received messages must accomplish:
+     1. **Two Events have been received**.
+     2. Validate received events follow **EventNotification** data structure, with **apiIds** in **eventDetail** parameter.
+        1. One should be **SERVICE_API_AVAILABLE**.
+        2. The other one must be **SERVICE_API_UNAVAILABLE**.
+
+---
+## Test Case 3: Publish without apiStatus feature receive eventDetails without eventDetails (apiMonitoringStatus active)
+
+**Test ID**: ***api_status-3***
+
+**Description**:
+
+  This test case will check if an invoker subscribed to events **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**, with only ***apiStatusMonitoring*** active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, not containing eventDetails, and the same when api is unpublished.
+
+**Pre-Conditions**:
+
+  * CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
+  * CAPIF provider is correctly registered with 2 aefs.
+  * **Mock Server is up and running to receive requests.**
+  * **Mock Server is clean.**
+
+**Execution Steps**:
+
+  1. Register Invoker and Onboard Invoker at CCF.
+  2. Register Provider at CCF with 2 aefs.
+  3. Subscribe to **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**. ***apiStatusMonitoring*** **active** at supported features (binary 1000-> string **8**)
+  4. Publish Service API at CCF:
+     1. Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> string **000**)
+     2. This API not includes "API Status" information at **service API Description**.
+  5. Discover Service APIs by Invoker
+     1. includes filter by query parameter **aef-id**
+  6. Provider remove published API.
+
+**Information of Test**:
+
+  1. Perform [Invoker Onboarding]
+  2. Perform [Provider Registration] with 2 aefs
+  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
+       1. Send **POST** to **https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions**
+       2. body [event subscription request body] with:
+          1. events: **['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']**
+          2. supportedFeatures: binary 1000 -> string **8**
+       3. Use **Invoker Certificate**
+  4. Publish Service API at CCF:
+     * Send **POST** to ccf_publish_url **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis**
+     * body [service api description] with **service_1** and **service_2** apiNames and realted with aefId1 and aefId2.
+       * supportedFeatures **000**
+       * 2 profiles, one with each aef.
+     * Use **APF Certificate**
+  5. Request Discover Published APIs:
+     * Send **GET** to **https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}**
+     * Param api-invoker-id is mandatory
+     * Use **Invoker Certificate**
+  6. Remove published Service API:
+     * Send **DELETE** to resource URL **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}**
+     * Use **APF Certificate**
+
+**Expected Result**:
+
+  1. Response to Onboard request must accomplish:
+     1. **201 Created**
+     2. Response Body must follow **APIInvokerEnrolmentDetails** data structure with:
+        * apiInvokerId
+        * onboardingInformation->apiInvokerCertificate must contain the public key signed.
+     3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}**
+  2. Response to Event Subscription must accomplish:
+     1. **201 Created**
+     2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: **{apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}**
+     3. Response Body must follow **EventSubscription** data structure.
+  3. Response to Publish request must accomplish:
+     1. **201 Created**
+     2. Response Body must follow **ServiceAPIDescription** data structure with:
+        * apiId
+        * 2 profiles with:
+          * resourceName resource_1 and aefId1
+          * resourceName resource_2 and aefId2
+     3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}**
+  4. Response to Discover Request By Invoker:
+     1. **200 OK** response.
+     2. Response body must follow **DiscoveredAPIs** data structure:
+        * Check if DiscoveredAPIs contains the API Published previously
+          * Check if **NOT** contains the **apiStatus** keys
+  5. Response to Remove published Service API at CCF:
+     1. **204 No Content**
+  6. Mock Server received messages must accomplish:
+     1. **Two Events have been received**.
+     2. Validate received events follow **EventNotification** data structure, without **eventDetail** parameter.
+        1. One should be **SERVICE_API_AVAILABLE**.
+        2. The other one must be **SERVICE_API_UNAVAILABLE**.
+
+---
+## Test Case 4: Publish without apiStatus feature receive eventDetails without eventDetails
+
+**Test ID**: ***api_status-4***
+
+**Description**:
+
+  This test case will check if an invoker subscribed to events **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**, with ***apiStatusMonitoring*** and ***Enhanced_event_report*** not active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, not containing eventDetails, and the same when api is unpublished.
+
+**Pre-Conditions**:
+
+  * CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
+  * CAPIF provider is correctly registered with 2 aefs.
+  * **Mock Server is up and running to receive requests.**
+  * **Mock Server is clean.**
+
+**Execution Steps**:
+
+  1. Register Invoker and Onboard Invoker at CCF.
+  2. Register Provider at CCF with 2 aefs.
+  3. Subscribe to **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**. ***apiStatusMonitoring*** **active** at supported features (binary 0000-> string **0**)
+  4. Publish Service API at CCF:
+     1. Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> string **000**)
+     2. This API not includes "API Status" information at **service API Description**.
+  5. Discover Service APIs by Invoker
+     1. includes filter by query parameter **aef-id**
+  6. Provider remove published API.
+
+**Information of Test**:
+
+  1. Perform [Invoker Onboarding]
+  2. Perform [Provider Registration] with 2 aefs
+  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
+       1. Send **POST** to **https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions**
+       2. body [event subscription request body] with:
+          1. events: **['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']**
+          2. supportedFeatures: binary 0000 -> string **0**
+       3. Use **Invoker Certificate**
+  4. Publish Service API at CCF:
+     * Send **POST** to ccf_publish_url **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis**
+     * body [service api description] with **service_1** and **service_2** apiNames and realted with aefId1 and aefId2.
+       * supportedFeatures **000**
+       * 2 profiles, one with each aef.
+     * Use **APF Certificate**
+  5. Request Discover Published APIs:
+     * Send **GET** to **https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}**
+     * Param api-invoker-id is mandatory
+     * Use **Invoker Certificate**
+  6. Remove published Service API:
+     * Send **DELETE** to resource URL **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}**
+     * Use **APF Certificate**
+
+**Expected Result**:
+
+  1. Response to Onboard request must accomplish:
+     1. **201 Created**
+     2. Response Body must follow **APIInvokerEnrolmentDetails** data structure with:
+        * apiInvokerId
+        * onboardingInformation->apiInvokerCertificate must contain the public key signed.
+     3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}**
+  2. Response to Event Subscription must accomplish:
+     1. **201 Created**
+     2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: **{apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}**
+     3. Response Body must follow **EventSubscription** data structure.
+  3. Response to Publish request must accomplish:
+     1. **201 Created**
+     2. Response Body must follow **ServiceAPIDescription** data structure with:
+        * apiId
+        * 2 profiles with:
+          * resourceName resource_1 and aefId1
+          * resourceName resource_2 and aefId2
+     3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}**
+  4. Response to Discover Request By Invoker:
+     1. **200 OK** response.
+     2. Response body must follow **DiscoveredAPIs** data structure:
+        * Check if DiscoveredAPIs contains the API Published previously
+          * Check if **NOT** contains the **apiStatus** keys
+  5. Response to Remove published Service API at CCF:
+     1. **204 No Content**
+  6. Mock Server received messages must accomplish:
+     1. **Two Events have been received**.
+     2. Validate received events follow **EventNotification** data structure, without **eventDetail** parameter.
+        1. One should be **SERVICE_API_AVAILABLE**.
+        2. The other one must be **SERVICE_API_UNAVAILABLE**.
+
+---
+## Test Case 5: Publish with apiStatus present but apiStatusMonitoring inactive receive bad Request
+
+**Test ID**: ***api_status-5***
+
+**Description**:
+
+  This test case will check if an invoker subscribed to events **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**, with ***apiStatusMonitoring*** and ***Enhanced_event_report*** not active, receive Bad Request when api is published by a provider.
+
+**Pre-Conditions**:
+
+  * CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
+  * CAPIF provider is correctly registered with 2 aefs.
+  * **Mock Server is up and running to receive requests.**
+  * **Mock Server is clean.**
+
+**Execution Steps**:
+
+  1. Register Invoker and Onboard Invoker at CCF.
+  2. Register Provider at CCF with 2 aefs.
+  3. Subscribe to **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**. ***apiStatusMonitoring*** and  ***Enhanced_event_report*** **inactive** at supported features (binary 1100-> string **C**)
+  4. Publish Service API at CCF:
+     1. Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> string **000**)
+     2. This API includes "API Status" information at **service API Description** with aefId1 inside array.
+  5. Discover Service APIs by Invoker
+     1. includes filter by query parameter **aef-id**
+  6. Provider remove published API.
+
+**Information of Test**:
+
+  1. Perform [Invoker Onboarding]
+  2. Perform [Provider Registration] with 2 aefs
+  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
+       1. Send **POST** to **https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions**
+       2. body [event subscription request body] with:
+          1. events: **['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']**
+          2. supportedFeatures: binary 1100 -> string **C**
+       3. Use **Invoker Certificate**
+  4. Publish Service API at CCF:
+     * Send **POST** to ccf_publish_url **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis**
+     * body [service api description] with **service_1** and **service_2** apiNames and realted with aefId1 and aefId2.
+       * supportedFeatures **0**
+       * 2 profiles, one with each aef.
+       * apiStatus with aefId1 inside array 
+     * Use **APF Certificate**
+  5. Request Discover Published APIs:
+     * Send **GET** to **https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}**
+     * Param api-invoker-id is mandatory
+     * Use **Invoker Certificate**
+
+**Expected Result**:
+
+  1. Response to Onboard request must accomplish:
+     1. **201 Created**
+     2. Response Body must follow **APIInvokerEnrolmentDetails** data structure with:
+        * apiInvokerId
+        * onboardingInformation->apiInvokerCertificate must contain the public key signed.
+     3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}**
+  2. Response to Event Subscription must accomplish:
+     1. **201 Created**
+     2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: **{apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}**
+     3. Response Body must follow **EventSubscription** data structure.
+  3. Response to Publish request must accomplish:
+     1. **400 Bad Request**
+     2. Error Response Body must accomplish with **ProblemDetails** data structure with:
+        * status 400
+        * title with message "Bad Request"
+        * detail with message "Set apiStatus with apiStatusMonitoring feature inactive at supportedFeatures if not allowed".
+        * cause with message "apiStatus can't be set if apiStatusMonitoring is inactive".
+  4. Response to Discover Request By Invoker:
+     1. **404 Not Found** response.
+     2. Error Response Body must accomplish with **ProblemDetails** data structure with:
+        * status 404
+        * title with message "Not Found"
+        * detail with message "API Invoker {api_invoker_id} has no API Published that accomplish filter conditions".
+        * cause with message "No API Published accomplish filter conditions".
+  5. Mock Server received messages must accomplish:
+     1. **No Events have been received**.
+
+---
+## Test Case 6: Publish with apiStatus feature active receive eventDetails with serviceAPIDescription
+
+**Test ID**: ***api_status-6***
+
+**Description**:
+
+  This test case will check if an invoker subscribed to events **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**, with ***apiStatusMonitoring*** and ***Enhanced_event_report*** active, receive event notification including apiIds and serviceAPIDescriptions.
+
+**Pre-Conditions**:
+
+  * CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
+  * CAPIF provider is correctly registered with 2 aefs.
+  * **Mock Server is up and running to receive requests.**
+  * **Mock Server is clean.**
+
+**Execution Steps**:
+
+  1. Register Invoker and Onboard Invoker at CCF.
+  2. Register Provider at CCF with 2 aefs.
+  3. Subscribe to **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**. ***apiStatusMonitoring*** **active** at supported features (binary 1100-> string **C**)
+  4. Publish Service API at CCF:
+     1. Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string **020**)
+     2. This API includes "API Status" information at **service API Description** with aefId1 inside array.
+  5. Discover Service APIs by Invoker
+     1. includes filter by query parameter **aef-id**
+  6. Provider remove published API.
+
+**Information of Test**:
+
+  1. Perform [Invoker Onboarding]
+  2. Perform [Provider Registration] with 2 aefs
+  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
+       1. Send **POST** to **https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions**
+       2. body [event subscription request body] with:
+          1. events: **['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']**
+          2. supportedFeatures: binary 1100 -> string **C**
+       3. Use **Invoker Certificate**
+  4. Publish Service API at CCF:
+     * Send **POST** to ccf_publish_url **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis**
+     * body [service api description] with **service_1** and **service_2** apiNames and realted with aefId1 and aefId2.
+       * supportedFeatures **020**
+       * 2 profiles, one with each aef.
+       * apiStatus with aefId1 inside array 
+     * Use **APF Certificate**
+  5. Request Discover Published APIs:
+     * Send **GET** to **https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}**
+     * Param api-invoker-id is mandatory
+     * Use **Invoker Certificate**
+  6. Remove published Service API:
+     * Send **DELETE** to resource URL **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}**
+     * Use **APF Certificate**
+
+**Expected Result**:
+
+  1. Response to Onboard request must accomplish:
+     1. **201 Created**
+     2. Response Body must follow **APIInvokerEnrolmentDetails** data structure with:
+        * apiInvokerId
+        * onboardingInformation->apiInvokerCertificate must contain the public key signed.
+     3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}**
+  2. Response to Event Subscription must accomplish:
+     1. **201 Created**
+     2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: **{apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}**
+     3. Response Body must follow **EventSubscription** data structure.
+  3. Response to Publish request must accomplish:
+     1. **201 Created**
+     2. Response Body must follow **ServiceAPIDescription** data structure with:
+        * apiId
+        * 2 profiles with:
+          * resourceName resource_1 and aefId1
+          * resourceName resource_2 and aefId2
+     3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}**
+  4. Response to Discover Request By Invoker:
+     1. **200 OK** response.
+     2. Response body must follow **DiscoveredAPIs** data structure:
+        * Check if DiscoveredAPIs contains the API Published previously
+          * Check if contains the **apiStatus** key.
+  5. Response to Remove published Service API at CCF:
+     1. **204 No Content**
+  6. Mock Server received messages must accomplish:
+     1. **Two Events have been received**.
+     2. Validate received events follow **EventNotification** data structure, with **apiIds** and **serviceAPIDescription** in **eventDetail** parameter.
+        1. One should be **SERVICE_API_AVAILABLE**.
+        2. The other one must be **SERVICE_API_UNAVAILABLE**.
+
+---
+## Test Case 7: Publish with apiStatus active feature receive eventDetails without serviceAPIDescription
+
+**Test ID**: ***api_status-7***
+
+**Description**:
+
+  This test case will check if an invoker subscribed to events **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**, with ***apiStatusMonitoring*** inactive and ***Enhanced_event_report*** active, receive event notification including only apiIds.
+
+**Pre-Conditions**:
+
+  * CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
+  * CAPIF provider is correctly registered with 2 aefs.
+  * **Mock Server is up and running to receive requests.**
+  * **Mock Server is clean.**
+
+**Execution Steps**:
+
+  1. Register Invoker and Onboard Invoker at CCF.
+  2. Register Provider at CCF with 2 aefs.
+  3. Subscribe to **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**. ***Enhanced_event_report*** **active** and ***apiStatusMonitoring*** **inactive** at supported features (binary 0100-> string **4**)
+  4. Publish Service API at CCF:
+     1. Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string **020**)
+     2. This API includes "API Status" information at **service API Description** with aefId1 inside array.
+  5. Discover Service APIs by Invoker
+     1. includes filter by query parameter **aef-id**
+  6. Provider remove published API.
+
+**Information of Test**:
+
+  1. Perform [Invoker Onboarding]
+  2. Perform [Provider Registration] with 2 aefs
+  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
+       1. Send **POST** to **https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions**
+       2. body [event subscription request body] with:
+          1. events: **['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']**
+          2. supportedFeatures: binary 0100 -> string **4**
+       3. Use **Invoker Certificate**
+  4. Publish Service API at CCF:
+     * Send **POST** to ccf_publish_url **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis**
+     * body [service api description] with **service_1** and **service_2** apiNames and realted with aefId1 and aefId2.
+       * supportedFeatures **020**
+       * 2 profiles, one with each aef.
+       * apiStatus with aefId1 inside array 
+     * Use **APF Certificate**
+  5. Request Discover Published APIs:
+     * Send **GET** to **https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}**
+     * Param api-invoker-id is mandatory
+     * Use **Invoker Certificate**
+  6. Remove published Service API:
+     * Send **DELETE** to resource URL **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}**
+     * Use **APF Certificate**
+
+**Expected Result**:
+
+  1. Response to Onboard request must accomplish:
+     1. **201 Created**
+     2. Response Body must follow **APIInvokerEnrolmentDetails** data structure with:
+        * apiInvokerId
+        * onboardingInformation->apiInvokerCertificate must contain the public key signed.
+     3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}**
+  2. Response to Event Subscription must accomplish:
+     1. **201 Created**
+     2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: **{apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}**
+     3. Response Body must follow **EventSubscription** data structure.
+  3. Response to Publish request must accomplish:
+     1. **201 Created**
+     2. Response Body must follow **ServiceAPIDescription** data structure with:
+        * apiId
+        * 2 profiles with:
+          * resourceName resource_1 and aefId1
+          * resourceName resource_2 and aefId2
+     3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}**
+  4. Response to Discover Request By Invoker:
+     1. **200 OK** response.
+     2. Response body must follow **DiscoveredAPIs** data structure:
+        * Check if DiscoveredAPIs contains the API Published previously
+          * Check if contains the **apiStatus** key.
+  5. Response to Remove published Service API at CCF:
+     1. **204 No Content**
+  6. Mock Server received messages must accomplish:
+     1. **Two Events have been received**.
+     2. Validate received events follow **EventNotification** data structure, with only **apiIds** in **eventDetail** parameter.
+        1. One should be **SERVICE_API_AVAILABLE**.
+        2. The other one must be **SERVICE_API_UNAVAILABLE**.
+
+---
+## Test Case 8: Publish with apiStatus active feature receive eventDetails without eventDetails with apiStatus (apiMonitoringStatus active)
+
+**Test ID**: ***api_status-8***
+
+**Description**:
+
+  This test case will check if an invoker subscribed to events **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**, with ***apiStatusMonitoring*** active and ***Enhanced_event_report*** inactive, receive event notification without eventDetails.
+
+**Pre-Conditions**:
+
+  * CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
+  * CAPIF provider is correctly registered with 2 aefs.
+  * **Mock Server is up and running to receive requests.**
+  * **Mock Server is clean.**
+
+**Execution Steps**:
+
+  1. Register Invoker and Onboard Invoker at CCF.
+  2. Register Provider at CCF with 2 aefs.
+  3. Subscribe to **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**. ***Enhanced_event_report*** **inactive** and ***apiStatusMonitoring*** **active** at supported features (binary 1000-> string **8**)
+  4. Publish Service API at CCF:
+     1. Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string **020**)
+     2. This API includes "API Status" information at **service API Description** with aefId1 inside array.
+  5. Discover Service APIs by Invoker
+     1. includes filter by query parameter **aef-id**
+  6. Provider remove published API.
+
+**Information of Test**:
+
+  1. Perform [Invoker Onboarding]
+  2. Perform [Provider Registration] with 2 aefs
+  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
+       1. Send **POST** to **https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions**
+       2. body [event subscription request body] with:
+          1. events: **['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']**
+          2. supportedFeatures: binary 1000 -> string **8**
+       3. Use **Invoker Certificate**
+  4. Publish Service API at CCF:
+     * Send **POST** to ccf_publish_url **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis**
+     * body [service api description] with **service_1** and **service_2** apiNames and realted with aefId1 and aefId2.
+       * supportedFeatures **020**
+       * 2 profiles, one with each aef.
+       * apiStatus with aefId1 inside array 
+     * Use **APF Certificate**
+  5. Request Discover Published APIs:
+     * Send **GET** to **https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}**
+     * Param api-invoker-id is mandatory
+     * Use **Invoker Certificate**
+  6. Remove published Service API:
+     * Send **DELETE** to resource URL **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}**
+     * Use **APF Certificate**
+
+**Expected Result**:
+
+  1. Response to Onboard request must accomplish:
+     1. **201 Created**
+     2. Response Body must follow **APIInvokerEnrolmentDetails** data structure with:
+        * apiInvokerId
+        * onboardingInformation->apiInvokerCertificate must contain the public key signed.
+     3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}**
+  2. Response to Event Subscription must accomplish:
+     1. **201 Created**
+     2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: **{apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}**
+     3. Response Body must follow **EventSubscription** data structure.
+  3. Response to Publish request must accomplish:
+     1. **201 Created**
+     2. Response Body must follow **ServiceAPIDescription** data structure with:
+        * apiId
+        * 2 profiles with:
+          * resourceName resource_1 and aefId1
+          * resourceName resource_2 and aefId2
+     3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}**
+  4. Response to Discover Request By Invoker:
+     1. **200 OK** response.
+     2. Response body must follow **DiscoveredAPIs** data structure:
+        * Check if DiscoveredAPIs contains the API Published previously
+          * Check if contains the **apiStatus** key.
+  5. Response to Remove published Service API at CCF:
+     1. **204 No Content**
+  6. Mock Server received messages must accomplish:
+     1. **Two Events have been received**.
+     2. Validate received events follow **EventNotification** data structure, without **eventDetail** parameter.
+        1. One should be **SERVICE_API_AVAILABLE**.
+        2. The other one must be **SERVICE_API_UNAVAILABLE**.
+
+---
+## Test Case 9: Publish with apiStatus active feature receive eventDetails without eventDetails
+
+**Test ID**: ***api_status-9***
+
+**Description**:
+
+  This test case will check if an invoker subscribed to events **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**, with ***apiStatusMonitoring*** and ***Enhanced_event_report*** inactive, receive event notification without eventDetails.
+
+**Pre-Conditions**:
+
+  * CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
+  * CAPIF provider is correctly registered with 2 aefs.
+  * **Mock Server is up and running to receive requests.**
+  * **Mock Server is clean.**
+
+**Execution Steps**:
+
+  1. Register Invoker and Onboard Invoker at CCF.
+  2. Register Provider at CCF with 2 aefs.
+  3. Subscribe to **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**. ***Enhanced_event_report*** and ***apiStatusMonitoring*** **inactive** at supported features (binary 0000-> string **0**)
+  4. Publish Service API at CCF:
+     1. Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string **020**)
+     2. This API includes "API Status" information at **service API Description** with aefId1 inside array.
+  5. Discover Service APIs by Invoker
+     1. includes filter by query parameter **aef-id**
+  6. Provider remove published API.
+
+**Information of Test**:
+
+  1. Perform [Invoker Onboarding]
+  2. Perform [Provider Registration] with 2 aefs
+  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
+       1. Send **POST** to **https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions**
+       2. body [event subscription request body] with:
+          1. events: **['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']**
+          2. supportedFeatures: binary 0000 -> string **0**
+       3. Use **Invoker Certificate**
+  4. Publish Service API at CCF:
+     * Send **POST** to ccf_publish_url **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis**
+     * body [service api description] with **service_1** and **service_2** apiNames and realted with aefId1 and aefId2.
+       * supportedFeatures **020**
+       * 2 profiles, one with each aef.
+       * apiStatus with aefId1 inside array 
+     * Use **APF Certificate**
+  5. Request Discover Published APIs:
+     * Send **GET** to **https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}**
+     * Param api-invoker-id is mandatory
+     * Use **Invoker Certificate**
+  6. Remove published Service API:
+     * Send **DELETE** to resource URL **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}**
+     * Use **APF Certificate**
+
+**Expected Result**:
+
+  1. Response to Onboard request must accomplish:
+     1. **201 Created**
+     2. Response Body must follow **APIInvokerEnrolmentDetails** data structure with:
+        * apiInvokerId
+        * onboardingInformation->apiInvokerCertificate must contain the public key signed.
+     3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}**
+  2. Response to Event Subscription must accomplish:
+     1. **201 Created**
+     2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: **{apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}**
+     3. Response Body must follow **EventSubscription** data structure.
+  3. Response to Publish request must accomplish:
+     1. **201 Created**
+     2. Response Body must follow **ServiceAPIDescription** data structure with:
+        * apiId
+        * 2 profiles with:
+          * resourceName resource_1 and aefId1
+          * resourceName resource_2 and aefId2
+     3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}**
+  4. Response to Discover Request By Invoker:
+     1. **200 OK** response.
+     2. Response body must follow **DiscoveredAPIs** data structure:
+        * Check if DiscoveredAPIs contains the API Published previously
+          * Check if contains the **apiStatus** key.
+  5. Response to Remove published Service API at CCF:
+     1. **204 No Content**
+  6. Mock Server received messages must accomplish:
+     1. **Two Events have been received**.
+     2. Validate received events follow **EventNotification** data structure, without **eventDetail** parameter.
+        1. One should be **SERVICE_API_AVAILABLE**.
+        2. The other one must be **SERVICE_API_UNAVAILABLE**.
+
+---
+## Test Case 10: Publish with apiStatus feature active no aefId active receive eventDetails with serviceAPIDescription with apiStatus empty array
+
+**Test ID**: ***api_status-10***
+
+**Description**:
+
+  This test case will check if an invoker subscribed to events **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**, with ***apiStatusMonitoring*** and ***Enhanced_event_report*** active, receive event notification **SERVICE_API_UNAVAILABLE** including apiIds and serviceAPIDescriptions when API is published containing ***apiStatus*** with empty array.
+
+**Pre-Conditions**:
+
+  * CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
+  * CAPIF provider is correctly registered with 2 aefs.
+  * **Mock Server is up and running to receive requests.**
+  * **Mock Server is clean.**
+
+**Execution Steps**:
+
+  1. Register Invoker and Onboard Invoker at CCF.
+  2. Register Provider at CCF with 2 aefs.
+  3. Subscribe to **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**. ***apiStatusMonitoring*** **active** at supported features (binary 1100-> string **C**)
+  4. Publish Service API at CCF:
+     1. Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string **020**)
+     2. This API includes "API Status" information at **service API Description** with empty aefIds array.
+  5. Discover Service APIs by Invoker
+     1. includes filter by query parameter **aef-id**
+  6. Provider remove published API.
+
+**Information of Test**:
+
+  1. Perform [Invoker Onboarding]
+  2. Perform [Provider Registration] with 2 aefs
+  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
+       1. Send **POST** to **https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions**
+       2. body [event subscription request body] with:
+          1. events: **['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']**
+          2. supportedFeatures: binary 1100 -> string **C**
+       3. Use **Invoker Certificate**
+  4. Publish Service API at CCF:
+     * Send **POST** to ccf_publish_url **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis**
+     * body [service api description] with **service_1** and **service_2** apiNames and realted with aefId1 and aefId2.
+       * supportedFeatures **020**
+       * 2 profiles, one with each aef.
+       * apiStatus with empty aefIds array. 
+     * Use **APF Certificate**
+  5. Request Discover Published APIs:
+     * Send **GET** to **https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}**
+     * Param api-invoker-id is mandatory
+     * Use **Invoker Certificate**
+  6. Remove published Service API:
+     * Send **DELETE** to resource URL **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}**
+     * Use **APF Certificate**
+
+**Expected Result**:
+
+  1. Response to Onboard request must accomplish:
+     1. **201 Created**
+     2. Response Body must follow **APIInvokerEnrolmentDetails** data structure with:
+        * apiInvokerId
+        * onboardingInformation->apiInvokerCertificate must contain the public key signed.
+     3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}**
+  2. Response to Event Subscription must accomplish:
+     1. **201 Created**
+     2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: **{apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}**
+     3. Response Body must follow **EventSubscription** data structure.
+  3. Response to Publish request must accomplish:
+     1. **201 Created**
+     2. Response Body must follow **ServiceAPIDescription** data structure with:
+        * apiId
+        * 2 profiles with:
+          * resourceName resource_1 and aefId1
+          * resourceName resource_2 and aefId2
+     3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}**
+  4. Response to Discover Request By Invoker:
+     1. **200 OK** response.
+     2. Response body must follow **DiscoveredAPIs** data structure:
+        * Check if DiscoveredAPIs contains the API Published previously
+          * Check if contains the **apiStatus** key.
+  5. Response to Remove published Service API at CCF:
+     1. **204 No Content**
+  6. Mock Server received messages must accomplish:
+     1. **One Event has been received**.
+     2. Validate received events follow **EventNotification** data structure, with **apiIds** and **serviceAPIDescription** in **eventDetail** parameter.
+        1. Only one **SERVICE_API_UNAVAILABLE** event.
+
+---
+## Test Case 11: Publish with apiStatus not present but apiStatusMonitoring feature active receive eventDetails with serviceAPIDescription without apiStatus
+
+**Test ID**: ***api_status-11***
+
+**Description**:
+
+  This test case will check if an invoker subscribed to events **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**, with ***apiStatusMonitoring*** and ***Enhanced_event_report*** active, receive event notification **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE** including apiIds and serviceAPIDescriptions when API is published wihtout ***apiStatus***.
+
+**Pre-Conditions**:
+
+  * CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
+  * CAPIF provider is correctly registered with 2 aefs.
+  * **Mock Server is up and running to receive requests.**
+  * **Mock Server is clean.**
+
+**Execution Steps**:
+
   1. Register Invoker and Onboard Invoker at CCF.
   2. Register Provider at CCF with 2 aefs.
-  3. Subscribe to **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**. ***Enhanced_event_report*** and ***apiStatusMonitoring*** **active** at supported features (binary 1100-> string **C**)
+  3. Subscribe to **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**. ***apiStatusMonitoring*** **active** at supported features (binary 1100-> string **C**)
   4. Publish Service API at CCF:
-     1. Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> string **000**)
+     1. Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string **020**)
      2. This API not includes "API Status" information at **service API Description**.
   5. Discover Service APIs by Invoker
      1. includes filter by query parameter **aef-id**
@@ -40,8 +890,9 @@ At this documentation you will have all information and related files and exampl
   4. Publish Service API at CCF:
      * Send **POST** to ccf_publish_url **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis**
      * body [service api description] with **service_1** and **service_2** apiNames and realted with aefId1 and aefId2.
-       * supportedFeatures **000**
+       * supportedFeatures **020**
        * 2 profiles, one with each aef.
+       * apiStatus not present. 
      * Use **APF Certificate**
   5. Request Discover Published APIs:
      * Send **GET** to **https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}**
@@ -71,29 +922,27 @@ At this documentation you will have all information and related files and exampl
           * resourceName resource_1 and aefId1
           * resourceName resource_2 and aefId2
      3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}**
-     4. Response without **"apiStatus"** parameter.
   4. Response to Discover Request By Invoker:
      1. **200 OK** response.
      2. Response body must follow **DiscoveredAPIs** data structure:
         * Check if DiscoveredAPIs contains the API Published previously
-          * Check if **NOT** contains the **apiStatus** keys
+          * Check if contains the **apiStatus** key.
   5. Response to Remove published Service API at CCF:
      1. **204 No Content**
   6. Mock Server received messages must accomplish:
      1. **Two Events have been received**.
-     2. Validate received events follow **EventNotification** data structure, with **apiIds** in **eventDetail** parameter.
-        1. One should be **SERVICE_API_AVAILABLE** apiId of published API with **eventDetails** containing **apiIds** and **serviceAPIDescription** parameters.
-        2. The other one must be **SERVICE_API_UNAVAILABLE** apiId of published API with **eventDetails** containing **apiIds** and **serviceAPIDescription** parameters.
+     2. Validate received events follow **EventNotification** data structure, with **apiIds** and **serviceAPIDescription** in **eventDetail** parameter.
+        1. First **SERVICE_API_AVAILABLE** event.
+        2. Other with **SERVICE_API_UNAVAILABLE** event.
 
+---
+## Test Case 12: Update published API without apiStatus and apiStatusMonitoring inactive
 
-
-## Test Case 2: Publish without apiStatus feature receive eventDetails without serviceAPIDescription
-
-**Test ID**: ***api_status-2***
+**Test ID**: ***api_status-12***
 
 **Description**:
 
-  This test case will check if an invoker subscribed to events **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**, with only ***Enhanced_event_report*** active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing apiIds at eventDetails, and the same when api is unpublished.
+  This test case will check if an invoker subscribed to events **SERVICE_API_AVAILABLE**, **SERVICE_API_UNAVAILABLE** and **SERVICE_API_UPDATE** with ***apiStatusMonitoring*** and **Enhanced_event_report** active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing eventDetails, and SERVICE_API_UPDATE after update apiStatus to not present.
 
 **Pre-Conditions**:
 
@@ -103,15 +952,18 @@ At this documentation you will have all information and related files and exampl
   * **Mock Server is clean.**
 
 **Execution Steps**:
+
   1. Register Invoker and Onboard Invoker at CCF.
   2. Register Provider at CCF with 2 aefs.
-  3. Subscribe to **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**. ***Enhanced_event_report*** **active** at supported features (binary 0100-> string **4**)
+  3. Subscribe to **SERVICE_API_AVAILABLE**, **SERVICE_API_UNAVAILABLE** and **SERVICE_API_UPDATE**. **apiStatusMonitoring** and **Enhanced_event_report** **active** at supported features (binary 1100-> string **C**)
   4. Publish Service API at CCF:
-     1. Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> string **000**)
-     2. This API not includes "API Status" information at **service API Description**.
+     1. Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string **020**)
+     2. This API includes "API Status" information at **service API Description** with only aefId1.
   5. Discover Service APIs by Invoker
      1. includes filter by query parameter **aef-id**
-  6. Provider remove published API.
+  6. Update Published API:
+     1. apiStatus Not present
+     2. aipStatusMonitoring feature not active (binary 0 0000 0000 -> string **0**)
 
 **Information of Test**:
 
@@ -120,22 +972,27 @@ At this documentation you will have all information and related files and exampl
   3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
        1. Send **POST** to **https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions**
        2. body [event subscription request body] with:
-          1. events: **['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']**
-          2. supportedFeatures: binary 0100 -> string **4**
+          1. events: **['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']**
+          2. supportedFeatures: binary 1100 -> string **C**
        3. Use **Invoker Certificate**
   4. Publish Service API at CCF:
      * Send **POST** to ccf_publish_url **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis**
      * body [service api description] with **service_1** and **service_2** apiNames and realted with aefId1 and aefId2.
-       * supportedFeatures **000**
+       * supportedFeatures **020**
        * 2 profiles, one with each aef.
+       * apiStatus with aefId1 inside array
      * Use **APF Certificate**
   5. Request Discover Published APIs:
      * Send **GET** to **https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}**
      * Param api-invoker-id is mandatory
      * Use **Invoker Certificate**
-  6. Remove published Service API:
-     * Send **DELETE** to resource URL **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}**
+  6. Update published Service API:
+     * Send **PUT** to resource URL **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}**
      * Use **APF Certificate**
+     * body [service api description] with **service_1** and **service_2** apiNames and realted with aefId1 and aefId2.
+       * supportedFeatures **0**
+       * 2 profiles, one with each aef.
+       * apiStatus not present.
 
 **Expected Result**:
 
@@ -157,27 +1014,28 @@ At this documentation you will have all information and related files and exampl
           * resourceName resource_1 and aefId1
           * resourceName resource_2 and aefId2
      3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}**
-     4. Response without **"apiStatus"** parameter.
   4. Response to Discover Request By Invoker:
      1. **200 OK** response.
      2. Response body must follow **DiscoveredAPIs** data structure:
         * Check if DiscoveredAPIs contains the API Published previously
-          * Check if **NOT** contains the **apiStatus** keys
-  5. Response to Remove published Service API at CCF:
-     1. **204 No Content**
+          * Check if contains the **apiStatus** with aefId1
+  5. Response to Update published Service API at CCF:
+     1. **200 OK**
+     2. Store response with updated serviceAPIDescription.
   6. Mock Server received messages must accomplish:
      1. **Two Events have been received**.
-     2. Validate received events follow **EventNotification** data structure, with **apiIds** in **eventDetail** parameter.
-        1. One should be **SERVICE_API_AVAILABLE** apiId of published API with **eventDetails** containing **apiIds** parameter.
-        2. The other one must be **SERVICE_API_UNAVAILABLE** apiId of published API with **eventDetails** containing **apiIds** parameter.
+     2. Validate received events follow **EventNotification** data structure, with **eventDetail** parameter.
+        1. One should be **SERVICE_API_AVAILABLE** apiId of published API with **eventDetail** with apiIds and serviceAPIDescription.
+        2. The other one must be **SERVICE_API_UPDATE** apiId published API with **eventDetail** containing serviceAPIDescription updated.
 
-## Test Case 3: Publish without apiStatus feature receive eventDetails without eventDetails (apiMonitoringStatus active)
+---
+## Test Case 13: Update published API with apiStatus empty and apiStatusMonitoring inactive
 
-**Test ID**: ***api_status-3***
+**Test ID**: ***api_status-13***
 
 **Description**:
 
-  This test case will check if an invoker subscribed to events **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**, with only ***apiStatusMonitoring*** active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, not containing eventDetails, and the same when api is unpublished.
+  This test case will check if an invoker subscribed to events **SERVICE_API_AVAILABLE**, **SERVICE_API_UNAVAILABLE** and **SERVICE_API_UPDATE** with ***apiStatusMonitoring*** and **Enhanced_event_report** active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing eventDetails, and SERVICE_API_UPDATE after update apiStatus to empty aefIds array with **ApiStatusMonitoring** inactive.
 
 **Pre-Conditions**:
 
@@ -187,15 +1045,18 @@ At this documentation you will have all information and related files and exampl
   * **Mock Server is clean.**
 
 **Execution Steps**:
+
   1. Register Invoker and Onboard Invoker at CCF.
   2. Register Provider at CCF with 2 aefs.
-  3. Subscribe to **SERVICE_API_AVAILABLE** and **SERVICE_API_UNAVAILABLE**. ***apiStatusMonitoring*** **active** at supported features (binary 1000-> string **8**)
+  3. Subscribe to **SERVICE_API_AVAILABLE**, **SERVICE_API_UNAVAILABLE** and **SERVICE_API_UPDATE**. **apiStatusMonitoring** and **Enhanced_event_report** **active** at supported features (binary 1100-> string **C**)
   4. Publish Service API at CCF:
-     1. Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> string **000**)
-     2. This API not includes "API Status" information at **service API Description**.
+     1. Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string **020**)
+     2. This API includes "API Status" information at **service API Description** with only aefId1.
   5. Discover Service APIs by Invoker
      1. includes filter by query parameter **aef-id**
-  6. Provider remove published API.
+  6. Update Published API:
+     1. apiStatus present with empty aefIds array.
+     2. apiStatusMonitoring feature not active (binary 0 0000 0000 -> string **0**)
 
 **Information of Test**:
 
@@ -204,22 +1065,27 @@ At this documentation you will have all information and related files and exampl
   3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
        1. Send **POST** to **https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions**
        2. body [event subscription request body] with:
-          1. events: **['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']**
-          2. supportedFeatures: binary 1000 -> string **8**
+          1. events: **['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']**
+          2. supportedFeatures: binary 1100 -> string **C**
        3. Use **Invoker Certificate**
   4. Publish Service API at CCF:
      * Send **POST** to ccf_publish_url **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis**
      * body [service api description] with **service_1** and **service_2** apiNames and realted with aefId1 and aefId2.
-       * supportedFeatures **000**
+       * supportedFeatures **020**
        * 2 profiles, one with each aef.
+       * apiStatus with aefId1 inside array
      * Use **APF Certificate**
   5. Request Discover Published APIs:
      * Send **GET** to **https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}**
      * Param api-invoker-id is mandatory
      * Use **Invoker Certificate**
-  6. Remove published Service API:
-     * Send **DELETE** to resource URL **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}**
+  6. Update published Service API:
+     * Send **PUT** to resource URL **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}**
      * Use **APF Certificate**
+     * body [service api description] with **service_1** and **service_2** apiNames and realted with aefId1 and aefId2.
+       * supportedFeatures **0**
+       * 2 profiles, one with each aef.
+       * apiStatus present with empty aefIds array.
 
 **Expected Result**:
 
@@ -241,31 +1107,33 @@ At this documentation you will have all information and related files and exampl
           * resourceName resource_1 and aefId1
           * resourceName resource_2 and aefId2
      3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}**
-     4. Response without **"apiStatus"** parameter.
   4. Response to Discover Request By Invoker:
      1. **200 OK** response.
      2. Response body must follow **DiscoveredAPIs** data structure:
         * Check if DiscoveredAPIs contains the API Published previously
-          * Check if **NOT** contains the **apiStatus** keys
-  5. Response to Remove published Service API at CCF:
-     1. **204 No Content**
-  6. Mock Server received messages must accomplish:
-     1. **Two Events have been received**.
-     2. Validate received events follow **EventNotification** data structure, with **apiIds** in **eventDetail** parameter.
-        1. One should be **SERVICE_API_AVAILABLE** apiId of published API without **eventDetails**.
-        2. The other one must be **SERVICE_API_UNAVAILABLE** apiId of published API without **eventDetails**.
-
+          * Check if contains the **apiStatus** with aefId1
 
-## -------------------------------------
+  5. Response to Update request must accomplish:
+     1. **400 Bad Request**
+     2. Error Response Body must accomplish with **ProblemDetails** data structure with:
+        * status 400
+        * title with message "Bad Request"
+        * detail with message "Set apiStatus with apiStatusMonitoring feature inactive at supportedFeatures if not allowed".
+        * cause with message "apiStatus can't be set if apiStatusMonitoring is inactive".
 
+  6. Mock Server received messages must accomplish:
+     1. **One Event have been received**.
+     2. Validate received events follow **EventNotification** data structure, with **apiIds** in **eventDetail** parameter.
+        1. One should be **SERVICE_API_AVAILABLE** apiId of published API with **eventDetails** with apiIds and serviceAPIDescription.
 
-## Test Case 12: Update published API without apiStatus and apiStatusMonitoring inactive
+---
+## Test Case 14: Update published API with apiStatus empty and apiStatusMonitoring active
 
-**Test ID**: ***api_status-12***
+**Test ID**: ***api_status-14***
 
 **Description**:
 
-  This test case will check if an invoker subscribed to events **SERVICE_API_AVAILABLE**, **SERVICE_API_UNAVAILABLE** and **SERVICE_API_UPDATE** with ***apiStatusMonitoring*** and **Enhanced_event_report** active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing eventDetails, and SERVICE_API_UPDATE after update apiStatus to not present.
+  This test case will check if an invoker subscribed to events **SERVICE_API_AVAILABLE**, **SERVICE_API_UNAVAILABLE** and **SERVICE_API_UPDATE** with ***apiStatusMonitoring*** and **Enhanced_event_report** active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing eventDetails, SERVICE_API_UPDATE and SERVICE_API_UNAVAILABLE after update apiStatus to empty aefIds array with **ApiStatusMonitoring** active.
 
 **Pre-Conditions**:
 
@@ -275,6 +1143,7 @@ At this documentation you will have all information and related files and exampl
   * **Mock Server is clean.**
 
 **Execution Steps**:
+
   1. Register Invoker and Onboard Invoker at CCF.
   2. Register Provider at CCF with 2 aefs.
   3. Subscribe to **SERVICE_API_AVAILABLE**, **SERVICE_API_UNAVAILABLE** and **SERVICE_API_UPDATE**. **apiStatusMonitoring** and **Enhanced_event_report** **active** at supported features (binary 1100-> string **C**)
@@ -284,8 +1153,8 @@ At this documentation you will have all information and related files and exampl
   5. Discover Service APIs by Invoker
      1. includes filter by query parameter **aef-id**
   6. Update Published API:
-     1. apiStatus Not present
-     2. aipStatusMonitoring feature not active (binary 0 0000 0000 -> string **0**)
+     1. apiStatus present with empty aefIds array.
+     2. apiStatusMonitoring feature active (binary 0 0010 0000 -> string **20**)
 
 **Information of Test**:
 
@@ -312,9 +1181,9 @@ At this documentation you will have all information and related files and exampl
      * Send **PUT** to resource URL **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}**
      * Use **APF Certificate**
      * body [service api description] with **service_1** and **service_2** apiNames and realted with aefId1 and aefId2.
-       * supportedFeatures **0**
+       * supportedFeatures **20**
        * 2 profiles, one with each aef.
-       * apiStatus not present.
+       * apiStatus present with empty aefIds array.
 
 **Expected Result**:
 
@@ -336,7 +1205,6 @@ At this documentation you will have all information and related files and exampl
           * resourceName resource_1 and aefId1
           * resourceName resource_2 and aefId2
      3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}**
-     4. Response without **"apiStatus"** parameter.
   4. Response to Discover Request By Invoker:
      1. **200 OK** response.
      2. Response body must follow **DiscoveredAPIs** data structure:
@@ -346,18 +1214,20 @@ At this documentation you will have all information and related files and exampl
      1. **200 OK**
      2. Store response with updated serviceAPIDescription.
   6. Mock Server received messages must accomplish:
-     1. **Two Events have been received**.
-     2. Validate received events follow **EventNotification** data structure, with **apiIds** in **eventDetail** parameter.
-        1. One should be **SERVICE_API_AVAILABLE** apiId of published API with **eventDetails** with apiIds and serviceAPIDescription.
-        2. The other one must be **SERVICE_API_UPDATE** apiId published API with **eventDetails** containing serviceAPIDescription updated.
+     1. **Two Event have been received**.
+     2. Validate received events follow **EventNotification** data structure, with **apiIds** and **serviceAPIDescription** in **eventDetail** parameter.
+        1. One should be **SERVICE_API_AVAILABLE**.
+        2. One should be **SERVICE_API_UPDATE**.
+        3. One should be **SERVICE_API_UNAVAILABLE**.
 
-## Test Case 13: Update published API with apiStatus empty and apiStatusMonitoring inactive
+---
+## Test Case 15: Update published API with apiStatus only aef2 and apiStatusMonitoring active
 
-**Test ID**: ***api_status-13***
+**Test ID**: ***api_status-15***
 
 **Description**:
 
-  This test case will check if an invoker subscribed to events **SERVICE_API_AVAILABLE**, **SERVICE_API_UNAVAILABLE** and **SERVICE_API_UPDATE** with ***apiStatusMonitoring*** and **Enhanced_event_report** active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing eventDetails, and SERVICE_API_UPDATE after update apiStatus to empty aefIds array qith **ApiStatusMonitoring** inactive.
+  This test case will check if an invoker subscribed to events **SERVICE_API_AVAILABLE**, **SERVICE_API_UNAVAILABLE** and **SERVICE_API_UPDATE** with ***apiStatusMonitoring*** and **Enhanced_event_report** active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing eventDetails and SERVICE_API_UPDATE after update apiStatus to aefId2 array with **ApiStatusMonitoring** active.
 
 **Pre-Conditions**:
 
@@ -367,6 +1237,7 @@ At this documentation you will have all information and related files and exampl
   * **Mock Server is clean.**
 
 **Execution Steps**:
+
   1. Register Invoker and Onboard Invoker at CCF.
   2. Register Provider at CCF with 2 aefs.
   3. Subscribe to **SERVICE_API_AVAILABLE**, **SERVICE_API_UNAVAILABLE** and **SERVICE_API_UPDATE**. **apiStatusMonitoring** and **Enhanced_event_report** **active** at supported features (binary 1100-> string **C**)
@@ -377,7 +1248,7 @@ At this documentation you will have all information and related files and exampl
      1. includes filter by query parameter **aef-id**
   6. Update Published API:
      1. apiStatus present with empty aefIds array.
-     2. apiStatusMonitoring feature not active (binary 0 0000 0000 -> string **0**)
+     2. apiStatusMonitoring feature active (binary 0 0010 0000 -> string **20**)
 
 **Information of Test**:
 
@@ -404,9 +1275,9 @@ At this documentation you will have all information and related files and exampl
      * Send **PUT** to resource URL **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}**
      * Use **APF Certificate**
      * body [service api description] with **service_1** and **service_2** apiNames and realted with aefId1 and aefId2.
-       * supportedFeatures **0**
+       * supportedFeatures **20**
        * 2 profiles, one with each aef.
-       * apiStatus present with empty aefIds array.
+       * apiStatus present with aefId2 in aefIds array.
 
 **Expected Result**:
 
@@ -428,31 +1299,120 @@ At this documentation you will have all information and related files and exampl
           * resourceName resource_1 and aefId1
           * resourceName resource_2 and aefId2
      3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}**
-     4. Response without **"apiStatus"** parameter.
   4. Response to Discover Request By Invoker:
      1. **200 OK** response.
      2. Response body must follow **DiscoveredAPIs** data structure:
         * Check if DiscoveredAPIs contains the API Published previously
           * Check if contains the **apiStatus** with aefId1
-
-  5. Response to Publish request must accomplish:
-     1. **400 Bad Request**
-     2. Error Response Body must accomplish with **ProblemDetails** data structure with:
-        * status 400
-        * title with message "Bad Request"
-        * detail with message "Set apiStatus with apiStatusMonitoring feature inactive at supportedFeatures if not allowed".
-        * cause with message "apiStatus can't be set if apiStatusMonitoring is inactive".
-  <!-- 5. Response to Update published Service API at CCF:
+  5. Response to Update published Service API at CCF:
      1. **200 OK**
-     2. Store response with updated serviceAPIDescription. -->
+     2. Store response with updated serviceAPIDescription.
   6. Mock Server received messages must accomplish:
-     1. **Three Events have been received**.
-     2. Validate received events follow **EventNotification** data structure, with **apiIds** in **eventDetail** parameter.
-        1. One should be **SERVICE_API_AVAILABLE** apiId of published API with **eventDetails** with apiIds and serviceAPIDescription.
+     1. **Two Event have been received**.
+     2. Validate received events follow **EventNotification** data structure, with **apiIds** and **serviceAPIDescription** in **eventDetail** parameter.
+        1. One should be **SERVICE_API_AVAILABLE**.
+        2. One should be **SERVICE_API_UPDATE**.
+
+---
+## Test Case 16: Published API without aefs available updated to one aef available
+
+**Test ID**: ***api_status-16***
+
+**Description**:
+
+  This test case will check if an invoker subscribed to events **SERVICE_API_AVAILABLE**, **SERVICE_API_UNAVAILABLE** and **SERVICE_API_UPDATE** with ***apiStatusMonitoring*** and **Enhanced_event_report** active, receive SERVICE_API_UNAVAILABLE in mockserver when api is published with apiStatus empty by a provider containing eventDetails, SERVICE_API_UPDATE and SERVICE_API_AVAILABLE after update apiStatus to aefId2 array with **ApiStatusMonitoring** active, and SERVICE_API_UNAVAILABLE when API is unpublished.
+
+**Pre-Conditions**:
+
+  * CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
+  * CAPIF provider is correctly registered with 2 aefs.
+  * **Mock Server is up and running to receive requests.**
+  * **Mock Server is clean.**
+
+**Execution Steps**:
+
+  1. Register Invoker and Onboard Invoker at CCF.
+  2. Register Provider at CCF with 2 aefs.
+  3. Subscribe to **SERVICE_API_AVAILABLE**, **SERVICE_API_UNAVAILABLE** and **SERVICE_API_UPDATE**. **apiStatusMonitoring** and **Enhanced_event_report** **active** at supported features (binary 1100-> string **C**)
+  4. Publish Service API at CCF:
+     1. Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string **020**)
+     2. This API includes "API Status" information at **service API Description** with empty aefIds array.
+  5. Discover Service APIs by Invoker
+     1. includes filter by query parameter **aef-id**
+  6. Update Published API:
+     1. apiStatus present with aefId2 in aefIds array.
+     2. apiStatusMonitoring feature active (binary 0 0010 0000 -> string **20**)
+  7. Provider remove published API.
+
+**Information of Test**:
 
+  1. Perform [Invoker Onboarding]
+  2. Perform [Provider Registration] with 2 aefs
+  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
+       1. Send **POST** to **https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions**
+       2. body [event subscription request body] with:
+          1. events: **['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']**
+          2. supportedFeatures: binary 1100 -> string **C**
+       3. Use **Invoker Certificate**
+  4. Publish Service API at CCF:
+     * Send **POST** to ccf_publish_url **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis**
+     * body [service api description] with **service_1** and **service_2** apiNames and realted with aefId1 and aefId2.
+       * supportedFeatures **020**
+       * 2 profiles, one with each aef.
+       * apiStatus with empty aefIds array.
+     * Use **APF Certificate**
+  5. Request Discover Published APIs:
+     * Send **GET** to **https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}**
+     * Param api-invoker-id is mandatory
+     * Use **Invoker Certificate**
+  6. Update published Service API:
+     * Send **PUT** to resource URL **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}**
+     * Use **APF Certificate**
+     * body [service api description] with **service_1** and **service_2** apiNames and realted with aefId1 and aefId2.
+       * supportedFeatures **20**
+       * 2 profiles, one with each aef.
+       * apiStatus present with aefId2 in aefIds array.
+  7. Remove published Service API:
+     * Send **DELETE** to resource URL **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}**
+     * Use **APF Certificate**
 
-## --------------------
+**Expected Result**:
 
+  1. Response to Onboard request must accomplish:
+     1. **201 Created**
+     2. Response Body must follow **APIInvokerEnrolmentDetails** data structure with:
+        * apiInvokerId
+        * onboardingInformation->apiInvokerCertificate must contain the public key signed.
+     3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}**
+  2. Response to Event Subscription must accomplish:
+     1. **201 Created**
+     2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: **{apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}**
+     3. Response Body must follow **EventSubscription** data structure.
+  3. Response to Publish request must accomplish:
+     1. **201 Created**
+     2. Response Body must follow **ServiceAPIDescription** data structure with:
+        * apiId
+        * 2 profiles with:
+          * resourceName resource_1 and aefId1
+          * resourceName resource_2 and aefId2
+     3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}**
+  4. Response to Discover Request By Invoker:
+     1. **200 OK** response.
+     2. Response body must follow **DiscoveredAPIs** data structure:
+        * Check if DiscoveredAPIs contains the API Published previously
+          * Check if contains the **apiStatus** with aefId1
+  5. Response to Update published Service API at CCF:
+     1. **200 OK**
+     2. Store response with updated serviceAPIDescription.
+  6. Mock Server received messages must accomplish:
+     1. **Two Event have been received**.
+     2. Validate received events follow **EventNotification** data structure, with **apiIds** and **serviceAPIDescription** in **eventDetail** parameter.
+        1. One should be **SERVICE_API_UNAVAILABLE** aefIds array inside apiStatus empty.
+        2. One should be **SERVICE_API_UPDATE** aefIds array inside apiStatus contains apfId2.
+        3. One should be **SERVICE_API_AVAILABLE** aefIds array inside apiStatus contains apfId2.
+        4. One should be **SERVICE_API_UNAVAILABLE** aefIds array inside apiStatus contains apfId2.
+
+---
 ## Test Case 17: Patch published (apiStatusMonitoring active) API with apiStatus only aefId2
 
 **Test ID**: ***api_status-17***
@@ -469,6 +1429,7 @@ At this documentation you will have all information and related files and exampl
   * **Mock Server is clean.**
 
 **Execution Steps**:
+
   1. Register Invoker and Onboard Invoker at CCF.
   2. Register Provider at CCF with 2 aefs.
   3. Subscribe to **SERVICE_API_AVAILABLE**, **SERVICE_API_UNAVAILABLE** and **SERVICE_API_UPDATE**. **apiStatusMonitoring** and **Enhanced_event_report** **active** at supported features (binary 1100-> string **C**)
@@ -527,7 +1488,6 @@ At this documentation you will have all information and related files and exampl
           * resourceName resource_1 and aefId1
           * resourceName resource_2 and aefId2
      3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}**
-     4. Response without **"apiStatus"** parameter.
   4. Response to Discover Request By Invoker:
      1. **200 OK** response.
      2. Response body must follow **DiscoveredAPIs** data structure:
@@ -542,6 +1502,7 @@ At this documentation you will have all information and related files and exampl
         1. One should be **SERVICE_API_AVAILABLE** apiId of published API with **eventDetails** with apiIds and serviceAPIDescription.
         2. The other one must be **SERVICE_API_UPDATE** apiId published API with **eventDetails** containing serviceAPIDescription patched.
 
+---
 ## Test Case 18: Patch published (apiStatusMonitoring active) API with apiStatus aef1 and aef2
 
 **Test ID**: ***api_status-18***
@@ -558,6 +1519,7 @@ At this documentation you will have all information and related files and exampl
   * **Mock Server is clean.**
 
 **Execution Steps**:
+
   1. Register Invoker and Onboard Invoker at CCF.
   2. Register Provider at CCF with 2 aefs.
   3. Subscribe to **SERVICE_API_AVAILABLE**, **SERVICE_API_UNAVAILABLE** and **SERVICE_API_UPDATE**. **apiStatusMonitoring** and **Enhanced_event_report** **active** at supported features (binary 1100-> string **C**)
@@ -616,7 +1578,6 @@ At this documentation you will have all information and related files and exampl
           * resourceName resource_1 and aefId1
           * resourceName resource_2 and aefId2
      3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}**
-     4. Response without **"apiStatus"** parameter.
   4. Response to Discover Request By Invoker:
      1. **200 OK** response.
      2. Response body must follow **DiscoveredAPIs** data structure:
@@ -631,6 +1592,7 @@ At this documentation you will have all information and related files and exampl
         1. One should be **SERVICE_API_AVAILABLE** apiId of published API with **eventDetails** with apiIds and serviceAPIDescription.
         2. The other one must be **SERVICE_API_UPDATE** apiId published API with **eventDetails** containing serviceAPIDescription patched.
 
+---
 ## Test Case 19: Patch published (apiStatusMonitoring inactive) API with apiStatus aefId1 and aefId2
 
 **Test ID**: ***api_status-19***
@@ -647,6 +1609,7 @@ At this documentation you will have all information and related files and exampl
   * **Mock Server is clean.**
 
 **Execution Steps**:
+
   1. Register Invoker and Onboard Invoker at CCF.
   2. Register Provider at CCF with 2 aefs.
   3. Subscribe to **SERVICE_API_AVAILABLE**, **SERVICE_API_UNAVAILABLE** and **SERVICE_API_UPDATE**. **apiStatusMonitoring** and **Enhanced_event_report** **active** at supported features (binary 1100-> string **C**)
@@ -675,15 +1638,11 @@ At this documentation you will have all information and related files and exampl
        * 2 profiles, one with each aef.
        * apiStatus with aefId1 inside array
      * Use **APF Certificate**
-  <!-- 5. Request Discover Published APIs:
+  5. Request Discover Published APIs:
      * Send **GET** to **https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}**
      * Param api-invoker-id is mandatory
-     * Use **Invoker Certificate** -->
-  <!-- 6. Update published Service API:
-     * Send **PATCH** to resource URL **https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}**
-     * Use **APF Certificate**
-     * body [service api description patch] and realted with aefId1 and aefId2.
-       * apiStatus present with aefId1 and aefId2. -->
+     * Use **Invoker Certificate**
+
 
 **Expected Result**:
 
@@ -716,6 +1675,7 @@ At this documentation you will have all information and related files and exampl
   5. Mock Server received messages must accomplish:
      1. **No Events have been received**.
 
+---
 ## Test Case 20: Patch published without aefs available API with apiStatus only aef2
 
 **Test ID**: ***api_status-20***
@@ -732,6 +1692,7 @@ At this documentation you will have all information and related files and exampl
   * **Mock Server is clean.**
 
 **Execution Steps**:
+
   1. Register Invoker and Onboard Invoker at CCF.
   2. Register Provider at CCF with 2 aefs.
   3. Subscribe to **SERVICE_API_AVAILABLE**, **SERVICE_API_UNAVAILABLE** and **SERVICE_API_UPDATE**. **apiStatusMonitoring** and **Enhanced_event_report** **active** at supported features (binary 1100-> string **C**)
@@ -790,7 +1751,6 @@ At this documentation you will have all information and related files and exampl
           * resourceName resource_1 and aefId1
           * resourceName resource_2 and aefId2
      3. Response Header **Location** must be received with URI to new resource created, following this structure: **{apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}**
-     4. Response without **"apiStatus"** parameter.
   4. Response to Discover Request By Invoker:
      1. **200 OK** response.
      2. Response body must follow **DiscoveredAPIs** data structure:
diff --git a/doc/testing/testplan/vendor_extensibility/README.md b/doc/testing/testplan/vendor_extensibility/README.md
index 4cf359c..11697f9 100644
--- a/doc/testing/testplan/vendor_extensibility/README.md
+++ b/doc/testing/testplan/vendor_extensibility/README.md
@@ -1,6 +1,7 @@
 # Test Plan for Vendor Extensibility Feature
 At this documentation you will have all information and related files and examples of test plan for this feature.
 
+---
 ## Test Case 1: Published API with vendor extensibility
 
 **Test ID**: ***vendor_extensibility-1***
@@ -61,6 +62,7 @@ At this documentation you will have all information and related files and exampl
         * Check if DiscoveredAPIs contains the API Published previously
           * Check if contains the **vendorSpecific** keys
 
+---
 ## Test Case 2: Published API with vendor extensibility and discover with VendSpecQueryParams disabled
 
 **Test ID**: ***vendor_extensibility-2***
@@ -121,6 +123,7 @@ At this documentation you will have all information and related files and exampl
         * detail with message "API Invoker {api_invoker_id} has no API Published that accomplish filter conditions".
         * cause with message "No API Published accomplish filter conditions".
 
+---
 ## Test Case 3: Publish API with vendorExt active and discover without supported features filter
 
 **Test ID**: ***vendor_extensibility-3***
@@ -179,6 +182,7 @@ At this documentation you will have all information and related files and exampl
         * Check if DiscoveredAPIs contains the API Published previously
           * Check **NOT** contains the **vendorSpecific** keys
 
+---
 ## Test Case 4: Publish API with vendorExt active but without vendorSpecifics
 
 **Test ID**: ***vendor_extensibility-4***
@@ -222,6 +226,7 @@ At this documentation you will have all information and related files and exampl
         * detail with message "If and only if VendorExt feature is enabled, then vendor-specific fields should be defined".
         * cause with message "Vendor extensibility misconfiguration".
 
+---
 ## Test Case 5: Publish API with vendorExt inactive but with vendorSpecifics
 
 **Test ID**: ***vendor_extensibility-5***
@@ -265,7 +270,7 @@ At this documentation you will have all information and related files and exampl
         * detail with message "If and only if VendorExt feature is enabled, then vendor-specific fields should be defined".
         * cause with message "Vendor extensibility misconfiguration".
 
-
+---
 ## Test Case 6: Published API without vendor extensibility discover with VendSpecQueryParams enabled
 
 **Test ID**: ***vendor_extensibility-6***
@@ -328,6 +333,7 @@ At this documentation you will have all information and related files and exampl
         * detail with message "API Invoker {api_invoker_id} has no API Published that accomplish filter conditions".
         * cause with message "No API Published accomplish filter conditions".
 
+---
 ## Test Case 7: Published API without vendor extensibility and discover with vendSpecQueryParams disabled
 
 **Test ID**: ***vendor_extensibility-7***
@@ -388,7 +394,7 @@ At this documentation you will have all information and related files and exampl
         * Check if DiscoveredAPIs contains the API Published previously
           * Check if **NOT** contains any **vendorSpecific** keys
 
-
+---
 ## Test Case 8: Published API without vendor extensibility and discover without supported-features query parameter
 
 **Test ID**: ***vendor_extensibility-8***
@@ -449,6 +455,7 @@ At this documentation you will have all information and related files and exampl
         * Check if DiscoveredAPIs contains the API Published previously
           * Check if **NOT** contains any **vendorSpecific** keys
 
+---
 ## Test Case 9: Publish API without supportedFeatures
 
 **Test ID**: ***vendor_extensibility-9***
-- 
GitLab