+
+
+
+# Description of functions in ecs_api_function.sh #
+
+## Function: ecs_equal ##
+Tests if a variable value in the ECS is equal to a target value.
+Without the timeout, the test sets pass or fail immediately depending on if the variable is equal to the target or not.
+With the timeout, the test waits up to the timeout seconds before setting pass or fail depending on if the variable value becomes equal to the target value or not.
+See the 'a1-interface' repo for more details.
+
+| arg list |
+|--|
+| `<variable-name> <target-value> [ <timeout-in-sec> ]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<variable-name>` | Variable name in ecs |
+| `<target-value>` | Target value for the variable |
+| `<timeout-in-sec>` | Max time to wait for the variable to reach the target value |
+
+## Function: ecs_api_a1_get_job_ids() ##
+Test of GET '/A1-EI/v1/eitypes/{eiTypeId}/eijobs' and optional check of the array of returned job ids.
+To test the response code only, provide the response code parameter as well as a type id and an owner id.
+To also test the response payload add the 'EMPTY' for an expected empty array or repeat the last parameter for each expected job id.
+
+| arg list |
+|--|
+| `<response-code> <type-id> <owner-id>|NOOWNER [ EMPTY | <job-id>+ ]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<type-id>` | Id of the EI type |
+| `<owner-id>` | Id of the job owner |
+| `NOOWNER` | No owner is given |
+| `<job-id>` | Id of the expected job |
+| `EMPTY` | The expected list of job id shall be empty |
+
+## Function: ecs_api_a1_get_type() ##
+Test of GET '/A1-EI/v1/eitypes/{eiTypeId}' and optional check of the returned schema.
+To test the response code only, provide the response code parameter as well as the type-id.
+To also test the response payload add a path to the expected schema file.
+
+| arg list |
+|--|
+| `<response-code> <type-id> [<schema-file>]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<type-id>` | Id of the EI type |
+| `<schema-file>` | Path to a schema file to compare with the returned schema |
+
+## Function: ecs_api_a1_get_type_ids() ##
+Test of GET '/A1-EI/v1/eitypes' and optional check of returned list of type ids.
+To test the response code only, provide the response only.
+To also test the response payload add the list of expected type ids (or EMPTY if the list is expected to be empty).
+
+| arg list |
+|--|
+| `<response-code> [ (EMPTY | [<type-id>]+) ]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `EMPTY` | The expected list of type ids shall be empty |
+| `<type-id>` | Id of the EI type |
+
+## Function: ecs_api_a1_get_job_status() ##
+Test of GET '/A1-EI/v1/eitypes/{eiTypeId}/eijobs/{eiJobId}/status' and optional check of the returned status.
+To test the response code only, provide the response code, type id and job id.
+To also test the response payload add the expected status.
+
+| arg list |
+|--|
+| `<response-code> <type-id> <job-id> [<status>]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<type-id>` | Id of the EI type |
+| `<job-id>` | Id of the job |
+| `<status>` | Expected status |
+
+## Function: ecs_api_a1_get_job() ##
+Test of GET '/A1-EI/v1/eitypes/{eiTypeId}/eijobs/{eiJobId}' and optional check of the returned job.
+To test the response code only, provide the response code, type id and job id.
+To also test the response payload add the remaining parameters.
+
+| arg list |
+|--|
+| `<response-code> <type-id> <job-id> [<target-url> <owner-id> <template-job-file>]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<type-id>` | Id of the EI type |
+| `<job-id>` | Id of the job |
+| `<target-url>` | Expected target url for the job |
+| `<owner-id>` | Expected owner for the job |
+| `<template-job-file>` | Path to a job template for job parameters of the job |
+
+## Function: ecs_api_a1_delete_job() ##
+Test of DELETE '/A1-EI/v1/eitypes/{eiTypeId}/eijobs/{eiJobId}'.
+To test, provide all the specified parameters.
+
+| arg list |
+|--|
+| `<response-code> <type-id> <job-id> |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<type-id>` | Id of the EI type |
+| `<job-id>` | Id of the job |
+
+## Function: ecs_api_a1_put_job() ##
+Test of PUT '/A1-EI/v1/eitypes/{eiTypeId}/eijobs/{eiJobId}'.
+To test, provide all the specified parameters.
+
+| arg list |
+|--|
+| `<response-code> <type-id> <job-id> <target-url> <owner-id> <template-job-file>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<type-id>` | Id of the EI type |
+| `<job-id>` | Id of the job |
+| `<target-url>` | Target url for the job |
+| `<owner-id>` | Owner of the job |
+| `<template-job-file>` | Path to a job template for job parameters of the job |
+
+## Function: ecs_api_edp_get_type_ids() ##
+Test of GET '/ei-producer/v1/eitypes' and an optional check of the returned list of type ids.
+To test the response code only, provide the response code.
+To also test the response payload add list of expected type ids (or EMPTY if the list is expected to be empty).
+
+| arg list |
+|--|
+| `<response-code> [ EMPTY | <type-id>+]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<type-id>` | Id of the EI type |
+| `EMPTY` | The expected list of type ids shall be empty |
+
+## Function: ecs_api_edp_get_producer_status() ##
+Test of GET '/ei-producer/v1/eiproducers/{eiProducerId}/status' and optional check of the returned status.
+To test the response code only, provide the response code and producer id.
+To also test the response payload add the expected status.
+
+| arg list |
+|--|
+| `<response-code> <producer-id> [<status>]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<producer-id>` | Id of the producer |
+| `<status>` | The expected status string |
+
+## Function: ecs_api_edp_get_producer_ids() ##
+Test of GET '/ei-producer/v1/eiproducers' and optional check of the returned producer ids.
+To test the response code only, provide the response.
+To also test the response payload add the list of expected producer-ids (or EMPTY if the list of ids is expected to be empty).
+
+| arg list |
+|--|
+| `<response-code> [ EMPTY | <producer-id>+]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<producer-id>` | Id of the producer |
+| `EMPTY` | The expected list of type ids shall be empty |
+
+## Function: ecs_api_edp_get_type() ##
+Test of GET '/ei-producer/v1/eitypes/{eiTypeId}' and optional check of the returned type.
+To test the response code only, provide the response and the type-id.
+To also test the response payload add a path to a job schema file and a list expected producer-id (or EMPTY if the list of ids is expected to be empty).
+
+| arg list |
+|--|
+| `<response-code> <type-id> [<job-schema-file> (EMPTY | [<producer-id>]+)]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<type-id>` | Id of the EI type |
+| `<job-schema-file>` | Path to a job schema file |
+| `<producer-id>` | Id of the producer |
+| `EMPTY` | The expected list of type ids shall be empty |
+
+## Function: ecs_api_edp_get_producer() ##
+Test of GET '/ei-producer/v1/eiproducers/{eiProducerId}' and optional check of the returned producer.
+To test the response code only, provide the response and the producer-id.
+To also test the response payload add the remaining parameters defining thee producer.
+
+| arg list |
+|--|
+| `<response-code> <producer-id> [<create-callback> <delete-callback> <supervision-callback> (EMPTY | [<type-id> <schema-file>]+) ]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<producer-id>` | Id of the producer |
+| `<create-callback>` | Callback for create job |
+| `<delete-callback>` | Callback for delete job |
+| `<supervision-callback>` | Callback for producer supervision |
+| `<type-id>` | Id of the EI type |
+| `<schema-file>` | Path to a schema file |
+| `EMPTY` | The expected list of type schema pairs shall be empty |
+
+## Function: ecs_api_edp_delete_producer() ##
+Test of DELETE '/ei-producer/v1/eiproducers/{eiProducerId}'.
+To test, provide all parameters.
+
+| arg list |
+|--|
+| `<response-code> <producer-id>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<producer-id>` | Id of the producer |
+
+## Function: ecs_api_edp_put_producer() ##
+Test of PUT '/ei-producer/v1/eiproducers/{eiProducerId}'.
+To test, provide all parameters. The list of type/schema pair may be empty.
+
+| arg list |
+|--|
+| `<response-code> <producer-id> <job-callback> <supervision-callback> (EMPTY | [<type-id> <schema-file>]+)` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<producer-id>` | Id of the producer |
+| `<job-callback>` | Callback for create/delete job |
+| `<supervision-callback>` | Callback for producer supervision |
+| `<type-id>` | Id of the EI type |
+| `<schema-file>` | Path to a schema file |
+| `EMPTY` | The list of type/schema pairs is empty |
+
+## Function: ecs_api_edp_get_producer_jobs() ##
+Test of GET '/ei-producer/v1/eiproducers/{eiProducerId}/eijobs' and optional check of the returned producer job.
+To test the response code only, provide the response and the producer-id.
+To also test the response payload add the remaining parameters.
+
+| arg list |
+|--|
+| `<response-code> <producer-id> (EMPTY | [<job-id> <type-id> <target-url> <job-owner> <template-job-file>]+)` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<producer-id>` | Id of the producer |
+| `<job-id>` | Id of the job |
+| `<type-id>` | Id of the EI type |
+| `<target-url>` | Target url for data delivery |
+| `<job-owner>` | Id of the job owner |
+| `<template-job-file>` | Path to a job template file |
+| `EMPTY` | The list of job/type/target/job-file tuples is empty |
+
+## Function: ecs_api_service_status() ##
+Test of GET '/status'.
+
+| arg list |
+|--|
+| `<response-code>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+
+
+# Description of functions in prodstub_api_function.sh #
+
+## Function: prodstub_arm_producer() ##
+Preconfigure the prodstub with a producer. The producer supervision response code is optional, if not given the response code will be set to 200.
+
+| arg list |
+|--|
+| `<response-code> <producer-id> [<forced_response_code>]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<producer-id>` | Id of the producer |
+| `<forced_response_code>` | Forced response code for the producer callback url |
+
+## Function: prodstub_arm_job_create() ##
+Preconfigure the prodstub with a job or update an existing job. Optional create/update job response code, if not given the response code will be set to 200/201 depending on if the job has been previously created or not.
+
+| arg list |
+|--|
+| `<response-code> <job-id> [<forced_response_code>]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<job-id>` | Id of the job |
+| `<forced_response_code>` | Forced response code for the create callback url |
+
+## Function: prodstub_arm_job_delete() ##
+Preconfigure the prodstub with a job. Optional delete job response code, if not given the response code will be set to 204/404 depending on if the job exists or not.
+
+| arg list |
+|--|
+| `<response-code> <job-id> [<forced_response_code>]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<job-id>` | Id of the job |
+| `<forced_response_code>` | Forced response code for the delete callback url |
+
+## Function: prodstub_arm_type() ##
+Preconfigure the prodstub with a type for a producer. Can be called multiple times to add more types.
+
+| arg list |
+|--|
+| `<response-code> <producer-id> <type-id>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<producer-id>` | Id of the producer |
+| `<type-id>` | Id of the type |
+
+## Function: prodstub_disarm_type() ##
+Remove a type for the producer in the rodstub. Can be called multiple times to remove more types.
+
+| arg list |
+|--|
+| `<response-code> <producer-id> <type-id>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<producer-id>` | Id of the producer |
+| `<type-id>` | Id of the type |
+
+## Function: prodstub_check_jobdata() ##
+Check a job in the prodstub towards the list of provided parameters.
+
+| arg list |
+|--|
+| `<response-code> <producer-id> <job-id> <type-id> <target-url> <job-owner> <template-job-file>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<producer-id>` | Id of the producer |
+| `<job-id>` | Id of the job |
+| `<type-id>` | Id of the type |
+| `<target-url>` | Target url for data delivery |
+| `<job-owner>` | Id of the job owner |
+| `<template-job-file>` | Path to a job template file |
+
+## Function: prodstub_delete_jobdata() ##
+Delete the job parameters, job data, for a job.
+
+| arg list |
+|--|
+| `<response-code> <producer-id> <job-id>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<producer-id>` | Id of the producer |
+| `<job-id>` | Id of the job |
+
+
+## Function: prodstub_equal ##
+Tests if a variable value in the prodstub is equal to a target value.
+Without the timeout, the test sets pass or fail immediately depending on if the variable is equal to the target or not.
+With the timeout, the test waits up to the timeout seconds before setting pass or fail depending on if the variable value becomes equal to the target value or not.
+
+| arg list |
+|--|
+| `<variable-name> <target-value> [ <timeout-in-sec> ]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<variable-name>` | Variable name in the prostub |
+| `<target-value>` | Target value for the variable |
+| `<timeout-in-sec>` | Max time to wait for the variable to reach the target value |
+
+# Description of functions in cr_api_function.sh #
+
+## Function: cr_equal ##
+Tests if a variable value in the Callback Receiver (CR) simulator is equal to a target value.
+Without the timeout, the test sets pass or fail immediately depending on if the variable is equal to the target or not.
+With the timeout, the test waits up to the timeout seconds before setting pass or fail depending on if the variable value becomes equal to the target value or not.
+See the 'cr' dir for more details.
+| arg list |
+|--|
+| `<variable-name> <target-value> [ <timeout-in-sec> ]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<variable-name>` | Variable name in the CR |
+| `<target-value>` | Target value for the variable |
+| `<timeout-in-sec>` | Max time to wait for the variable to reach the target value |
+
+## Function: cr_api_check_all_sync_events() ##
+Check the contents of all ric events received for a callback id.
+
+| arg list |
+|--|
+| `<response-code> <id> [ EMPTY | ( <ric-id> )+ ]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<id>` | Id of the callback destination |
+| `EMPTY` | Indicator for an empty list |
+| `<ric-id>` | Id of the ric |
+
+# Description of functions in rapp_catalogue_api_function.sh #
+
+## Function: rc_equal ##
+Tests if a variable value in the RAPP Catalogue is equal to a target value.
+Without the timeout, the test sets pass or fail immediately depending on if the variable is equal to the target or not.
+With the timeout, the test waits up to the timeout seconds before setting pass or fail depending on if the variable value becomes equal to the target value or not.
+See the 'cr' dir for more details.
+| arg list |
+|--|
+| `<variable-name> <target-value> [ <timeout-in-sec> ]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<variable-name>` | Variable name in the RC |
+| `<target-value>` | Target value for the variable |
+| `<timeout-in-sec>` | Max time to wait for the variable to reach the target value |
+
+## Function: rapp_cat_api_get_services() ##
+Check all registered services.
+
+| arg list |
+|--|
+| `<response-code> [(<service-id> <version> <display-name> <description>)+ | EMPTY ]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<service-id>` | Id of the service |
+| `<version>` | Version of the service |
+| `<display-name>` | Dislay name of the service |
+| `<description>` | Description of the service |
+| `EMPTY` | Indicator for an empty list |
+
+## Function: rapp_cat_api_put_service() ##
+Register a services.
+
+| arg list |
+|--|
+| `<response-code> <service-id> <version> <display-name> <description>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<service-id>` | Id of the service |
+| `<version>` | Version of the service |
+| `<display-name>` | Dislay name of the service |
+| `<description>` | Description of the service |
+
+## Function: rapp_cat_api_get_service() ##
+Check a registered service.
+
+| arg list |
+|--|
+| `<response-code> <service-id> <version> <display-name> <description>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<service-id>` | Id of the service |
+| `<version>` | Version of the service |
+| `<display-name>` | Dislay name of the service |
+| `<description>` | Description of the service |
+
+## Function: rapp_cat_api_delete_service() ##
+Check a registered service.
+
+| arg list |
+|--|
+| `<response-code> <service-id>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<service-id>` | Id of the service |
+
+