+| `<response-code>` | Expected http response code |
+| `<ric-id-base>` | The base id of the rics, ie ric id without the sequence number. The sequence number is added during processing |
+| `<number-of-rics>` | The number of rics, assuming the first index is '1' |
+| `<policy-start-id>` | Id of the policy. This value shall be a numeric value and will be the id of the first policy |
+| `<count-per-ric>` | Number of policies per ric |
+| `<number-of-threads>` | Number of threads (processes) to run in parallel |
+
+## Function: a1pms_api_get_policy_ids ##
+
+Test of GET '/policy_ids' or V2 GET '/v2/policies'.
+To test response code only, provide the response code parameter as well as the following three parameters.
+To also test the response payload add the 'NOID' for an expected empty array or repeat the 'policy-instance-id' for each expected policy id.
+
+| arg list |
+|--|
+| `<response-code> <ric-id>\|NORIC <service-id>\|NOSERVICE <type-id>\|NOTYPE ([<policy-instance-id]*\|NOID)` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<ric-id>` | Id of the ric |
+| `NORIC` | Indicator that no ric is provided |
+| `<service-id>` | Id of the service |
+| `NOSERVICE` | Indicator that no service id is provided |
+| `type-id>` | Id of the policy type |
+| `NOTYPE` | Indicator that no type id is provided |
+| `NOID` | Indicator that no policy id is provided - indicate empty list of policies|
+| `<policy-instance-id>` | Id of the policy |
+
+## Function: a1pms_api_get_policy_schema ##
+
+Test of V2 GET '/v2/policy-types/{policyTypeId}' and optional check of the returned json schema.
+To test the response code only, provide the expected response code and policy type id.
+To test the contents of the returned json schema, add a path to a schema file to compare with.
+
+| arg list |
+|--|
+| `<response-code> <policy-type-id> [<schema-file>]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<policy-type-id>` | Id of the policy type |
+| `<schema-file>` | Path to the schema file for the policy type |
+
+## Function: a1pms_api_get_policy_schema ##
+
+Test of GET '/policy_schema' and optional check of the returned json schema.
+To test the response code only, provide the expected response code and policy type id.
+To test the contents of the returned json schema, add a path to a schema file to compare with.
+
+| arg list |
+|--|
+| `<response-code> <policy-type-id> [<schema-file>]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<policy-type-id>` | Id of the policy type |
+| `<schema-file>` | Path to the schema file for the policy type |
+
+## Function: a1pms_api_get_policy_schemas ##
+
+Test of GET '/policy_schemas' and optional check of the returned json schemas.
+To test the response code only, provide the expected response code and ric id (or NORIC if no ric is given).
+To test the contents of the returned json schema, add a path to a schema file to compare with (or NOFILE to represent an empty '{}' type)
+
+| arg list |
+|--|
+| `<response-code> <ric-id>\|NORIC [<schema-file>\|NOFILE]*` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<ric-id>` | Id of the ric |
+| `NORIC` | No ric id given |
+| `<schema-file>` | Path to the schema file for the policy type |
+| `NOFILE` | Indicate the template for an empty type |
+
+## Function: a1pms_api_get_policy_status ##
+
+Test of GET '/policy_status' or V2 GET '/policies/{policy_id}/status'.
+
+| arg list |
+|--|
+| `<response-code> <policy-id> (STD\|STD2 <enforce-status>\|EMPTY [<reason>\|EMPTY])\|(OSC <instance-status> <has-been-deleted>)` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<policy-id>` | Id of the policy |
+| `STD` | Indicator of status of Standarized A1 |
+| `STD2` | Indicator of status of Standarized A1 version 2 |
+| `<enforce-status>` | Enforcement status |
+| `<reason>` | Optional reason |
+| `EMPTY` | Indicator of empty string status or reason |
+| `OSC` | Indicator of status of Non-Standarized OSC A1 |
+| `<instance-status>` | Instance status |
+| `<has-been-deleted>` | Deleted status, true or false |
+
+## Function: a1pms_api_get_policy_types ##
+
+Test of GET '/policy_types' or V2 GET '/v2/policy-types' and optional check of the returned ids.
+To test the response code only, provide the expected response code and ric id (or NORIC if no ric is given).
+To test the contents of the returned json payload, add the list of expected policy type id (or 'EMPTY' for the '{}' type)
+
+| arg list |
+|--|
+| `<response-code> [<ric-id>\|NORIC [<policy-type-id>\|EMPTY [<policy-type-id>]*]]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<ric-id>` | Id of the ric |
+| `NORIC` | No ric id given |
+| `<policy-type-id>` | Id of the policy type |
+| `EMPTY` | Indicate the empty type |
+
+## Function: a1pms_api_get_status ##
+
+Test of GET /status or V2 GET /status
+
+| arg list |
+|--|
+| `<response-code>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+
+## Function: a1pms_api_get_ric ##
+
+Test of GET '/ric' or V2 GET '/v2/rics/ric'
+To test the response code only, provide the expected response code and managed element id.
+To test the returned ric id, provide the expected ric id.
+
+| arg list |
+|--|
+| `<reponse-code> <managed-element-id> [<ric-id>]` |
+
+| arg list V2 |
+|--|
+| `<reponse-code> <management-element-id>\|NOME <ric-id>\|<NORIC> [<string-of-ricinfo>]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<managed-element-id>` | Id of the managed element |
+| `NOME` | Indicator for no ME |
+| `ric-id` | Id of the ric |
+| `NORIC` | Indicator no RIC |
+| `string-of-ricinfo` | String of ric info |
+
+## Function: a1pms_api_get_rics ##
+
+Test of GET '/rics' or V2 GET '/v2/rics' and optional check of the returned json payload (ricinfo).
+To test the response code only, provide the expected response code and policy type id (or NOTYPE if no type is given).
+To test also the returned payload, add the formatted string of info in the returned payload.
+Format of ricinfo: <br>`<ric-id>:<list-of-mes>:<list-of-policy-type-ids>`<br>
+Example <br>`<space-separate-string-of-ricinfo> = "ricsim_g1_1:me1_ricsim_g1_1,me2_ricsim_g1_1:1,2,4 ricsim_g1_1:me2_........."`
+
+| arg list |
+|--|
+| `<reponse-code> <policy-type-id>\|NOTYPE [<space-separate-string-of-ricinfo>]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<policy-type-id>` | Policy type id of the ric |
+| `NOTYPE>` | No type given |
+| `<space-separate-string-of-ricinfo>` | A space separated string of ric info - needs to be quoted |
+
+## Function: a1pms_api_put_service ##
+
+Test of PUT '/service' or V2 PUT '/service'.
+| arg list |
+|--|
+| `<response-code> <service-name> <keepalive-timeout> <callbackurl>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<service-name>` | Service name |
+| `<keepalive-timeout>` | Timeout value |
+| `<callbackurl>` | Callback url |
+
+## Function: a1pms_api_get_services ##
+
+Test of GET '/service' or V2 GET '/v2/services' and optional check of the returned json payload.
+To test only the response code, omit all parameters except the expected response code.
+To test the returned json, provide the parameters after the response code.
+
+| arg list |
+|--|
+| `<response-code> [ (<query-service-name> <target-service-name> <keepalive-timeout> <callbackurl>) \| (NOSERVICE <target-service-name> <keepalive-timeout> <callbackurl> [<target-service-name> <keepalive-timeout> <callbackurl>]* )]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<query-service-name>` | Service name for the query |
+| `<target-service-name>` | Target service name|
+| `<keepalive-timeout>` | Timeout value |
+| `<callbackurl>` | Callback url |
+| `NOSERVICE` | Indicator of no target service name |
+
+## Function: a1pms_api_get_service_ids ##
+
+Test of GET '/services' or V2 GET /'v2/services'. Only check of service ids.
+
+| arg list |
+|--|
+| `<response-code> [<service-name>]*` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<service-name>` | Service name |
+
+## Function: a1pms_api_delete_services ##
+
+Test of DELETE '/services' or V2 DELETE '/v2/services/{serviceId}'
+
+| arg list |
+|--|
+| `<response-code> [<service-name>]*` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<service-name>` | Service name |
+
+## Function: a1pms_api_put_services_keepalive ##
+
+Test of PUT '/services/keepalive' or V2 PUT '/v2/services/{service_id}/keepalive'
+
+| arg list |
+|--|
+| `<response-code> <service-name>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<service-name>` | Service name |
+
+## Function: a1pms_api_put_configuration ##
+
+Test of PUT '/v2/configuration'
+
+| arg list |
+|--|
+| `<response-code> <config-file>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<config-file>` | Path json config file |
+
+## Function: a1pms_api_get_configuration ##
+
+Test of GET '/v2/configuration'
+
+| arg list |
+|--|
+| `<response-code> [<config-file>]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<config-file>` | Path json config file to compare the retrieved config with |
+
+## Function: a1pms_kube_pvc_reset ##
+Admin reset to remove all policies and services
+All types and instances etc are removed - types and instances in a1 sims need to be removed separately
+NOTE - only works in kubernetes and the pod should not be running
+
+| arg list |
+|--|
+| None |
+
+
+# Description of functions in authsidecar_api_function.sh #
+Only common API functions in this file.
+
+
+## Function: start_chart_museum ##
+
+Start the Chart Museum
+| arg list |
+|--|
+| None |
+
+## Function: chartmus_upload_test_chart ##
+
+Upload a package chart to chartmusem
+| arg list |
+|--|
+| `<chart-name>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<chart-name>` | Name of the chart to upload |
+
+## Function: chartmus_delete_test_chart ##
+
+Delete a chart in chartmusem
+| arg list |
+|--|
+| `<chart-name> [<version>]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<chart-name>` | Name of the chart to delete |
+| `<version>` | Chart version, default is 0.1.0 |
+
+# Description of functions in cp_api_function.sh #
+
+## Function: use_control_panel_http ##
+
+Set http as the protocol to use for all communication to the Control Panel
+| arg list |
+|--|
+| None |
+
+## Function: use_control_panel_https ##
+
+Set https as the protocol to use for all communication to the Control Panel
+| arg list |
+|--|
+| None |
+
+## Function: start_control_panel ##
+
+Start the Control Panel container
+| arg list |
+|--|
+| None |
+
+# Description of functions in cr_api_functions.sh #
+
+## Function: use_cr_http ##
+
+Use http for getting event from CR. The admin API is not affected. This is the default.
+| arg list |
+|--|
+| None |
+
+## Function: use_cr_https ##
+
+Use https for getting event from CR. The admin API is not affected.
+Note: Not yet used as callback event is not fully implemented/deciced.
+| arg list |
+|--|
+| None |
+
+## Function: start_cr ##
+
+Start the Callback Receiver container in docker or kube depending on start mode.
+| arg list |
+|--|
+| None |
+
+## 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 |
+|--|
+| `<cr-path-id> <variable-name> <target-value> [ <timeout-in-sec> ]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<cr-path-id>` | Variable index to CR |
+| `<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_greater_or_equal ##
+Tests if a variable value in the Callback Receiver (CR) simulator is equal to or greater than a target value.
+Without the timeout, the test sets pass or fail immediately depending on if the variable is equal to or greater than 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 |
+|--|
+| `<cr-path-id> <variable-name> <target-value> [ <timeout-in-sec> ]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<cr-path-id>` | Variable index to CR |
+| `<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_contains_str ##
+
+Tests if a variable value in the CR contains a target string.
+Without the timeout, the test sets pass or fail immediately depending on if the variable contains the target string or not.
+With the timeout, the test waits up to the timeout seconds before setting pass or fail depending on if the variable value contains the target string or not.
+See the 'a1-interface' repo for more details.
+
+| arg list |
+|--|
+| `<cr-path-id> <variable-name> <target-value> [ <timeout-in-sec> ]` |
+
+
+| parameter | description |
+| --------- | ----------- |
+| `<cr-path-id>` | Variable index to CR |
+| `<variable-name>` | Variable name in the CR |
+| `<target-value>` | Target substring for the variable |
+| `<timeout-in-sec>` | Max time to wait for the variable to reach the target value |
+
+## Function: cr_read ##
+
+Reads the value of a variable in the CR simulator. The value is intended to be passed to a env variable in the test script.
+See the 'mrstub' dir for more details.
+| arg list |
+|--|
+| `<cr-path-id> <variable-name>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<cr-path-id>` | Variable index to CR |
+| `<variable-name>` | Variable name in the CR |
+
+## Function: cr_delay_callback ##
+
+Function to configure write delay on callbacks. Delay given in seconds. Setting remains until removed.
+
+| arg list |
+|--|
+| `<response-code> <cr-path-id> [<delay-in-seconds>]`|
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<cr-path-id>` | Variable index to CR |
+| `<delay-in-seconds>` | Delay in seconds. If omitted, the delay is removed |
+
+## Function: cr_api_check_all_sync_events ##
+
+Check the contents of all ric events received for a callback id.
+
+| arg list |
+|--|
+| `<response-code> <cr-path-id> <id> [ EMPTY \| ( <ric-id> )+ ]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<cr-path-id>` | Variable index for CR |
+| `<id>` | Id of the callback destination |
+| `EMPTY` | Indicator for an empty list |
+| `<ric-id>` | Id of the ric |
+
+## Function: cr_api_check_all_ics_events ##
+
+Check the contents of all current status events for one id from ICS
+
+| arg list |
+|--|
+| `<response-code> <cr-path-id> <id> [ EMPTY \| ( <status> )+ ]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<cr-path-id>` | Variable index for CR |
+| `<id>` | Id of the callback destination |
+| `EMPTY` | Indicator for an empty list |
+| `<status>` | Status string |
+
+## Function: cr_api_check_all_ics_subscription_events ##
+
+Check the contents of all current subscription events for one id from ICS
+
+| arg list |
+|--|
+| `<response-code> <cr-path-id> <id> [ EMPTY | ( <type-id> <schema> <registration-status> )+ ]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<cr-path-id>` | Variable index for CR |
+| `<id>` | Id of the callback destination |
+| `EMPTY` | Indicator for an empty list |
+| `<type-id>` | Id of the data type |
+| `<schema>` | Path to typeschema file |
+| `<registration-status>` | Status string |
+
+## Function: cr_api_reset ##
+
+Reset the callback receiver
+
+| arg list |
+|--|
+| `<cr-path-id>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<cr-path-id>` | Variable index for CR |
+
+## Function: cr_api_check_all_generic_json_events ##
+
+Check the contents of all json events for path
+
+| arg list |
+|--|
+| `<response-code> <cr-path-id> <topic-url> (EMPTY | <json-msg>+ )` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<cr-path-id>` | Variable index for CR |
+| `<topic-url>` | Topic url |
+| `EMPTY` | Indicator for an empty list |
+| `json-msg` | Json msg string to compare with |
+
+## Function: cr_api_check_single_generic_json_event ##
+
+Check a single (oldest) json event (or none if empty) for path
+
+| arg list |
+|--|
+| `<response-code> <cr-path-id> <topic-url> (EMPTY | <json-msg> )` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<cr-path-id>` | Variable index for CR |
+| `<topic-url>` | Topic url |
+| `EMPTY` | Indicator for no msg |
+| `json-msg` | Json msg string to compare with |
+
+## Function: cr_api_check_single_generic_event_md5 ##
+
+Check a single (oldest) json in md5 format (or none if empty) for path.
+Note that if a json message is given, it shall be compact, no ws except inside string.
+The MD5 will generate different hash if whitespace is present or not in otherwise equivalent json.
+
+| arg list |
+|--|
+| `<response-code> <cr-path-id> <topic-url> (EMPTY | <data-msg> )` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<cr-path-id>` | Variable index for CR |
+| `<topic-url>` | Topic url |
+| `EMPTY` | Indicator for no msg |
+| `data-msg` | msg string to compare with |
+
+## Function: cr_api_check_single_generic_event_md5_file ##
+
+Check a single (oldest) event in md5 format (or none if empty) for path.
+Note that if a file with json message is given, the json shall be compact, no ws except inside string and not newlines.
+The MD5 will generate different hash if ws/newlines is present or not in otherwise equivalent json
+
+| arg list |
+|--|
+| `<response-code> <cr-path-id> <topic-url> (EMPTY | <data-file> )` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<cr-path-id>` | Variable index for CR |
+| `<topic-url>` | Topic url |
+| `EMPTY` | Indicator for no msg |
+| `data-file` | path to file to compare with |
+
+# Description of functions in dmaapadp_api_functions.sh #
+
+## Function: use_dmaapadp_http ##
+
+Use http for all proxy requests. Note that this only applicable to the actual proxy request, the proxied protocol can still be http and https.
+
+| arg list |
+|--|
+| None |
+
+## Function: use_dmaapadp_https ##
+
+Use https for all proxy requests. Note that this only applicable to the actual proxy request, the proxied protocol can still be http and https.
+
+| arg list |
+|--|
+| None |
+
+## Function: start_dmaapadp ##
+
+Start the dmaap adator service container in docker or kube depending on running mode.
+
+| arg list |
+|--|
+| (kube) `PROXY\|NOPROXY <config-file> [ <data-file> ]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `PROXY` | Configure with http proxy, if proxy is started |
+| `NOPROXY` | Configure without http proxy |
+| `<config-file>`| Path to application.yaml |
+| `<data-file>` | Optional path to application_configuration.json |
+
+## Function: set_dmaapadp_trace ##
+
+Configure the dmaap adaptor service log on trace level. The app must be running.
+| arg list |
+|--|
+| None |
+
+# Description of functions in dmaapmed_api_functions.sh #
+
+## Function: use_dmaapmed_http ##
+
+Use http for all proxy requests. Note that this only applicable to the actual proxy request, the proxied protocol can still be http and https.
+
+| arg list |
+|--|
+| None |
+
+## Function: use_dmaapmed_https ##
+
+Use https for all proxy requests. Note that this only applicable to the actual proxy request, the proxied protocol can still be http and https.
+
+| arg list |
+|--|
+| None |
+
+## Function: start_dmaapmed ##
+
+Start the dmaap mediator service container in docker or kube depending on running mode.
+
+| arg list |
+|--|
+| None |
+
+# Description of functions in helmmanager_api_functions.sh #
+
+## Function: use_helm_manager_http ##
+
+Use http for all API calls to the Helm Manager. This is the default protocol.
+| arg list |
+|--|
+| None |
+
+## Function: use_helm_manager_https ##
+
+Use https for all API calls to the Helm Manager.
+| arg list |
+|--|
+| None |
+
+## Function: start_helm_manager ##
+
+Start the Helm Manager container in docker or kube depending on running mode.
+| arg list |
+|--|
+| None |
+
+## Function: helm_manager_api_get_charts ##
+
+Get all charts and compare the expected contents.
+| arg list |
+|--|
+| `<response-code> [ EMPTY | ( <chart> <version> <namespace> <release> <repo> )+ ]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected response code |
+| `EMPTY` | Indicator for empty list |
+| `<chart>`| Name of the chart |
+| `<version>`| Version of the chart |
+| `<namespace>`| Namespace to of the chart |
+| `<release>`| Release name of the chart |
+| `<repo>`| Repository of the chart |
+
+## Function: helm_manager_api_post_repo ##
+
+Add repo to the helm manager.
+| arg list |
+|--|
+| `<response-code> <repo-name> <repo-protocol> <repo-address> <repo-port>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected response code |
+| `<repo-name>` | Name of the repo |
+| `<repo-protocol>`| Protocol http or https |
+| `<repo-address>`| Host name of the repo |
+| `<repo-port>`| Host port of the repo |
+
+## Function: helm_manager_api_post_onboard_chart ##
+
+Onboard a chart to the helm manager.
+| arg list |
+|--|
+| `<response-code> <repo> <chart> <version> <release> <namespace>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected response code |
+| `<repo>`| Target repo of the chart |
+| `<chart>`| Name of the chart |
+| `<version>`| Version of the chart |
+| `<namespace>`| Namespace to of the chart |
+| `<release>`| Release name of the chart |
+
+## Function: helm_manager_api_post_install_chart ##
+
+Install an onboarded chart.
+| arg list |
+|--|
+| `<response-code> <chart> <version>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected response code |
+| `<chart>`| Name of the chart |
+| `<version>`| Version of the chart |
+
+## Function: helm_manager_api_uninstall_chart ##
+
+Uninstall a chart.
+| arg list |
+|--|
+| `<response-code> <chart> <version>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected response code |
+| `<chart>`| Name of the chart |
+| `<version>`| Version of the chart |
+
+## Function: helm_manager_api_delete_chart ##
+
+Delete a chart.
+| arg list |
+|--|
+| `<response-code> <chart> <version>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected response code |
+| `<chart>`| Name of the chart |
+| `<version>`| Version of the chart |
+
+## Function: helm_manager_api_exec_add_repo ##
+
+Add repo in helm manager by helm using exec.
+| arg list |
+|--|
+| `<repo-name> <repo-url>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected response code |
+| `<repo-name>`| Name of the repo |
+| `<repo-url>`| Full url to the repo. Url must be accessible by the container |
+
+# Description of functions in httpproxy_api_functions.sh #
+
+## Function: use_http_proxy_http ##
+
+Use http for all proxy requests. Note that this only applicable to the actual proxy request, the proxied protocol can still be http and https.
+| arg list |
+|--|
+| None |
+
+## Function: use_http_proxy_https ##
+
+Use https for all proxy requests. Note that this only applicable to the actual proxy request, the proxied protocol can still be http and https.
+| arg list |
+|--|
+| None |
+
+## Function: start_http_proxy ##
+
+Start the http proxy container in docker or kube depending on running mode.
+| arg list |
+|--|
+| None |
+
+
+# Description of functions in ics_api_functions.sh #
+
+## Function: use_ics_rest_http ##
+
+Use http for all API calls to the ICS. This is the default protocol.
+| arg list |
+|--|
+| None |
+
+## Function: use_ics_rest_https ##
+
+Use https for all API calls to the ICS.
+| arg list |
+|--|
+| None |
+
+## Function: use_ics_dmaap_http ##
+
+Send and recieve all API calls to the ICS over Dmaap via the MR using http.
+| arg list |
+|--|
+| None |
+
+## Function: use_ics_dmaap_https ##
+
+Send and recieve all API calls to the ICS over Dmaap via the MR using https.
+| arg list |
+|--|
+| None |
+
+## Function: start_ics ##
+
+Start the ICS container in docker or kube depending on running mode.
+| arg list |
+|--|
+| `PROXY|NOPROXY <config-file>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `PROXY` | Configure with http proxy, if proxy is started |
+| `NOPROXY` | Configure without http proxy |
+| `<config-file>`| Path to application.yaml |
+
+## Function: stop_ics ##
+
+Stop the ICS container.
+| arg list |
+|--|
+| None |
+
+## Function: start_stopped_ics ##
+
+Start a previously stopped ics.
+| arg list |
+|--|
+| None |
+
+## Function: set_ics_debug ##
+
+Configure the ICS log on debug level. The ICS must be running.
+| arg list |
+|--|
+| None |
+
+## Function: set_ics_trace ##
+
+Configure the ICS log on trace level. The ICS must be running.
+| arg list |
+|--|
+| None |
+
+## Function: use_ics_retries ##
+
+Perform curl retries when making direct call to ICS for the specified http response codes
+Speace separated list of http response codes
+| arg list |
+|--|
+| `[<response-code>]*` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Http response code to make retry for |
+
+## Function: check_ics_logs ##
+
+Check the ICS log for any warnings and errors and print the count of each.
+| arg list |
+|--|
+| None |
+
+## Function: ics_equal ##
+
+Tests if a variable value in the ICS 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 ics |
+| `<target-value>` | Target value for the variable |
+| `<timeout-in-sec>` | Max time to wait for the variable to reach the target value |
+
+## Function: ics_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: ics_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: ics_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: ics_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: ics_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: ics_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: ics_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: ics_api_edp_get_type_ids ##
+
+Test of GET '/ei-producer/v1/eitypes' or '/data-producer/v1/info-types' depending on ics version 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 type |
+| `EMPTY` | The expected list of type ids shall be empty |
+
+## Function: ics_api_edp_get_producer_status ##
+
+Test of GET '/ei-producer/v1/eiproducers/{eiProducerId}/status' or '/data-producer/v1/info-producers/{infoProducerId}/status' depending on ics version 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: ics_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: ics_api_edp_get_producer_ids_2 ##
+
+Test of GET '/ei-producer/v1/eiproducers' or '/data-producer/v1/info-producers' depending on ics version 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 type (if any) and a list of expected producer-ids (or EMPTY if the list of ids is expected to be empty).
+
+| arg list |
+|--|
+| `<response-code> [ ( NOTYPE \| <type-id> ) [ EMPTY \| <producer-id>+]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<type-id>` | Id of the type |
+| `EMPTY` | No type given |
+| `<producer-id>` | Id of the producer |
+| `EMPTY` | The expected list of type ids shall be empty |
+
+## Function: ics_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 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: ics_api_edp_get_type_2 ##
+
+Test of GET '/ei-producer/v1/eitypes/{eiTypeId}' or '/data-producer/v1/info-types/{infoTypeId}' depending on ics version 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.
+
+| arg list |
+|--|
+| `<response-code> <type-id> [<job-schema-file>]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<type-id>` | Id of the type |
+| `<job-schema-file>` | Path to a job schema file |
+| `EMPTY` | The expected list of type ids shall be empty |
+
+## Function: ics_api_edp_put_type_2 ##
+
+Test of PUT '/ei-producer/v1/eitypes/{eiTypeId}' or '/data-producer/v1/info-types/{infoTypeId}' depending on ics version and optional check of the returned type.
+
+| arg list |
+|--|
+| `<response-code> <type-id> [<job-schema-file>]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<type-id>` | Id of the type |
+| `<job-schema-file>` | Path to a job schema file |
+| `EMPTY` | The expected list of type ids shall be empty |
+
+## Function: ics_api_edp_delete_type_2 ##
+
+Test of DELETE '/ei-producer/v1/eitypes/{eiTypeId}' or '/data-producer/v1/info-types/{infoTypeId}' depending on ics version and optional check of the returned type.
+
+| arg list |
+|--|
+| `<response-code> <type-id>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<type-id>` | Id of the type |
+
+## Function: ics_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 type |
+| `<schema-file>` | Path to a schema file |
+| `EMPTY` | The expected list of type schema pairs shall be empty |
+
+## Function: ics_api_edp_get_producer_2 ##
+
+Test of GET '/ei-producer/v1/eiproducers/{eiProducerId}' or '/data-producer/v1/info-producers/{infoProducerId}' depending on ics version 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> [<job-callback> <supervision-callback> (EMPTY \| <type-id>+) ]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<producer-id>` | Id of the producer |
+| `<job-callback>` | Callback for the url |
+| `<supervision-callback>` | Callback for producer supervision |
+| `<type-id>` | Id of the type |
+| `EMPTY` | The expected list of types shall be empty |
+
+## Function: ics_api_edp_delete_producer ##
+
+Test of DELETE '/ei-producer/v1/eiproducers/{eiProducerId}' or '/data-producer/v1/info-producers/{infoProducerId}' depending on ics version.
+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: ics_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 type |
+| `<schema-file>` | Path to a schema file |
+| `EMPTY` | The list of type/schema pairs is empty |
+
+## Function: ics_api_edp_put_producer_2 ##
+
+Test of PUT '/ei-producer/v1/eiproducers/{eiProducerId}' or '/data-producer/v1/info-producers/{infoProducerId}' depending on ics version.
+To test, provide all parameters. The list of type/schema pair may be empty.
+
+| arg list |
+|--|
+| `<response-code> <producer-id> <job-callback> <supervision-callback> NOTYPE\|[<type-id>+]` |
+
+| 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 type |
+| `NOTYPE` | The list of types is empty |
+
+## Function: ics_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: ics_api_edp_get_producer_jobs_2 ##
+
+Test of GET '/ei-producer/v1/eiproducers/{eiProducerId}/eijobs' or '/data-producer/v1/info-producers/{infoProducerId}/info-jobs' depending on ics version 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 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: ics_api_service_status ##
+
+Test of GET '/status'.
+
+| arg list |
+|--|
+| `<response-code>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+
+## Function: ics_api_idc_get_type_ids ##
+
+Test of GET '/data-consumer/v1/info-types' 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 Info type |
+| `EMPTY` | The expected list of type ids shall be empty |
+
+## Function: ics_api_idc_get_job_ids ##
+
+Test of GET '/data-consumer/v1/info-jobs' 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 Info 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: ics_api_idc_get_job ##
+
+Test of GET '/data-consumer/v1/info-jobs/{infoJobId}' 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 Info 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: ics_api_idc_put_job ##
+
+Test of PUT '/data-consumer/v1/info-jobs/{infoJobId}'.
+To test, provide all the specified parameters.
+
+| arg list |
+|--|
+| `<response-code> <type-id> <job-id> <target-url> <owner-id> <template-job-file> [VALIDATE]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<type-id>` | Id of the Info 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 |
+| `VALIIDATE` | Indicator to preform type validation at creation |
+
+## Function: ics_api_idc_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 type |
+| `<job-id>` | Id of the job |
+
+## Function: ics_api_idc_get_type ##
+
+Test of GET '/data-consumer/v1/info-types/{infoTypeId} 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 Info type |
+| `<schema-file>` | Path to a schema file to compare with the returned schema |
+
+## Function: ics_api_idc_get_job_status ##
+
+Test of GET '/data-consumer/v1/info-jobs/{infoJobId}/status' and optional check of the returned status and timeout.
+To test the response code only, provide the response code and job id.
+To also test the response payload add the expected status.
+
+| arg list |
+|--|
+| `<response-code> <job-id> [<status> [ <timeout>]]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<job-id>` | Id of the job |
+| `<status>` | Expected status |
+| `<timeout>` | Timeout |
+
+## Function: ics_api_idc_get_job_status2 ##
+
+Test of GET '/data-consumer/v1/info-jobs/{infoJobId}/status' with returned producers and optional check of the returned status and timeout.
+To test the response code only, provide the response code and job id.
+To also test the response payload add the expected status.
+
+| arg list |
+|--|
+| `<response-code> <job-id> [<status> EMPTYPROD|( <prod-count> <producer-id>+ ) [<timeout>]]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<job-id>` | Id of the job |
+| `<status>` | Expected status |
+| `<EMPTYPROD>` | Indicated for empty list of producer |
+| `<prod-count>` | Number of expected producer |
+| `<producer-id>` |Id of the producer |
+| `<timeout>` | Timeout |
+
+
+## Function: ics_api_idc_get_subscription_ids ##
+Test of GET '/data-consumer/v1/info-type-subscription' with the returned list of subscription ids
+
+| arg list |
+|--|
+| `<response-code> <owner-id>|NOOWNER [ EMPTY | <subscription-id>+]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<owner-id>` | Id of the owner |
+| `<NOOWNER>` | Indicator for empty owner |
+| `<EMPTY>` | Indicated for empty list of subscription ids |
+| `<subscription-id>` |Id of the subscription |
+
+## Function: ics_api_idc_get_subscription ##
+Test of GET '/data-consumer/v1/info-type-subscription/{subscriptionId}' with the subscription information
+
+| arg list |
+|--|
+| `<response-code> <subscription-id> [ <owner-id> <status-uri> ]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<subscription-id>` |Id of the subscription |
+| `<owner-id>` | Id of the owner |
+| `<status-uri>` | Url for status notifications |
+
+
+## Function: ics_api_idc_put_subscription ##
+Test of PUT '/data-consumer/v1/info-type-subscription/{subscriptionId}' with the subscription information
+
+| arg list |
+|--|
+| `<response-code> <subscription-id> <owner-id> <status-uri>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<subscription-id>` |Id of the subscription |
+| `<owner-id>` | Id of the owner |
+| `<status-uri>` | Url for status notifications |
+
+## Function: ics_api_idc_delete_subscription ##
+Test of DELETE /data-consumer/v1/info-type-subscription/{subscriptionId}
+
+| arg list |
+|--|
+| `<response-code> <subscription-id>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<subscription-id>` |Id of the subscription |
+
+
+## Function: ics_api_admin_reset ##
+
+Test of GET '/status'.
+
+| arg list |
+|--|
+| `<response-code> [ <type> ]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Expected http response code |
+| `<type>` | Type id, if the interface supports type in url |
+
+## Function: ics_kube_pvc_reset ##
+
+Admin reset to remove all data in ics; jobs, producers etc
+NOTE - only works in kubernetes and the pod should not be running
+
+| arg list |
+|--|
+| None |
+
+# Description of functions in istio_api_functions.sh #
+
+## Function: istio_enable_istio_namespace ##
+Enable istio on a namespace
+
+| arg list |
+|--|
+| `<namespace>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `namespace` | Namespace name to enable istio on |
+
+## Function: istio_req_auth_by_jwksuri ##
+Set isto authentication by jwks uri
+
+| arg list |
+|--|
+| `<app-name> <namespace> <realm>>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<app-name>` | App-name, short name |
+| `<namespace>` | Namespace of app |
+| `<realm>` | Name of realm |
+
+## Function: istio_req_auth_by_jwks ##
+Set isto authentication by jwks keys (inline)
+
+| arg list |
+|--|
+| `<app> <namespace> <issuer> <key>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<app-name>` | App-name, short name |
+| `<namespace>` | Namespace of app |
+| `<issuer>` | Name of issuer |
+| `key` | Inline key |
+
+## Function: istio_auth_policy_by_realm ##
+Set isio authorization by realm
+
+| arg list |
+|--|
+| `<app> <namespace> <realam> [<client-id> <client-role>]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<app-name>` | App-name, short name |
+| `<namespace>` | Namespace of app |
+| `<realm>` | Name of realm |
+| `<client-id>` | Client id to authorize |
+| `<client-role>` | Client role to authorize |
+
+
+## Function: istio_auth_policy_by_issuer ##
+Set isio authorization by issuer
+
+| arg list |
+|--|
+| `<app> <namespace> <issuer>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<app-name>` | App-name, short name |
+| `<namespace>` | Namespace of app |
+| `<issuer>` | Name of issuer |
+
+
+# Description of functions in kafkapc_api_functions.sh #
+
+## Function: use_kafkapc_http ##
+
+Use http for all calls to the KAFKAPC.
+| arg list |
+|--|
+| None |
+
+## Function: use_kafkapc_https ##
+
+Use https for all calls to the KAFKAPC.
+| arg list |
+|--|
+| None |
+
+## Function: start_kafkapc ##
+
+Start the KAFKAPC container in docker or kube depending on start mode
+| arg list |
+|--|
+| None |
+
+## Function: kafkapc_equal ##
+
+Tests if a variable value in the KAFKAPC 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 'mrstub' dir for more details.
+| arg list |
+|--|
+| `<variable-name> <target-value> [ <timeout-in-sec> ]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<variable-name>` | Variable name in the KAFKAPC |
+| `<target-value>` | Target value for the variable |
+| `<timeout-in-sec>` | Max time to wait for the variable to reach the target value |
+
+## Function: kafkapc_api_reset ##
+
+Deep reset of KAFKAPC. Note that kafka itself is not affected, i.e. created topic still exist in kafka.
+| arg list |
+|--|
+| None |
+
+## Function: kafkapc_api_create_topic ##
+
+Create a topic in kafka via kafkapc.
+| `<response-code> <topic-name> <mime-type>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Http response code |
+| `<topic-name>` | Name of the topic |
+| `<mime-type>` | Mime type of the data to send to the topic. Data on the topic is expected to be of this type |
+
+## Function: kafkapc_api_get_topic ##
+
+Create a from kafkapc.
+| `<response-code> <topic-name> <mime-type>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Http response code |
+| `<topic-name>` | Name of the topic |
+| `<mime-type>` | Mime type of the topic |
+
+## Function: kafkapc_api_start_sending ##
+
+Start sending msg from the msg queue to kafka for a topic.
+| `<response-code> <topic-name>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Http response code |
+| `<topic-name>` | Name of the topic |
+
+## Function: kafkapc_api_start_receiving ##
+
+Start receiving msg from a kafka topic to the msg queue in kafkapc.
+| `<response-code> <topic-name>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Http response code |
+| `<topic-name>` | Name of the topic |
+
+## Function: kafkapc_api_stop_sending ##
+
+Stop sending msg from the msg queue to kafka for a topic.
+| `<response-code> <topic-name>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Http response code |
+| `<topic-name>` | Name of the topic |
+
+## Function: kafkapc_api_stop_receiving ##
+
+Stop receiving msg from a kafka topic to the msg queue in kafkapc.
+| `<response-code> <topic-name>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Http response code |
+| `<topic-name>` | Name of the topic |
+
+## Function: kafkapc_api_post_msg ##
+
+Send a message on a topic.
+| arg list |
+|--|
+| `<response-code> <topic> <mime-type> <msg>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Http response code |
+| `<topic>` | Topic name |
+| `<mime-type>` | Mime type of the msg |
+| `<msg>` | String msg to send |
+
+## Function: kafkapc_api_get_msg ##
+
+Get a message on a topic.
+| arg list |
+|--|
+| `<response-code> <topic> ([ <mime-type> <msg> ] | NOMSG )` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Http response code |
+| `<topic>` | Topic name |
+| `<mime-type>` | Mime type of the msg |
+| `<msg>` | String msg to receive |
+| `NOMSG` | Indicated for no msg |
+
+## Function: kafkapc_api_post_msg_from_file ##
+
+Send a message in a file on a topic.
+| arg list |
+|--|
+| `<response-code> <topic> <mime-type> <file>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Http response code |
+| `<topic>` | Topic name |
+| `<mime-type>` | Mime type of the msg |
+| `<file>` | Filepath to the string msg to send |
+
+## Function: kafkapc_api_get_msg_from_file ##
+
+Get a message on a topic.
+| arg list |
+|--|
+| `<response-code> <topic> <mime-type> <file> ` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<response-code>` | Http response code |
+| `<topic>` | Topic name |
+| `<mime-type>` | Mime type of the msg |
+| `<file>` | Filepath to the string msg to receive |
+
+## Function: kafkapc_api_generate_json_payload_file ##
+
+Create json file with dummy data for payload.
+| arg list |
+|--|
+| `<size-in-kb> <filename>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<size-in-kb>` | Generated size in kb |
+| `<filename>` | Path to output file |
+
+## Function: kafkapc_api_generate_text_payload_file ##
+
+Create file with dummy text data for payload.
+| arg list |
+|--|
+| `<size-in-kb> <filename>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<size-in-kb>` | Generated size in kb |
+| `<filename>` | Path to output file |
+
+# Description of functions in keycloak_api_functions.sh #
+
+## Function: start_keycloak ##
+
+Start the KEYCLOAK app in docker or kube depending on start mode
+| arg list |
+|--|
+| None |
+
+## Function: keycloak_api_obtain_admin_token ##
+
+Get the admin token to use for subsequent rest calls to keycloak
+| arg list |
+|--|
+| None |
+
+## Function: keycloak_api_create_realm ##
+
+Create a realm
+| arg list |
+|--|
+| `<realm-name> <enabled> <token-expiry>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `realm-name` | Name of the realm |
+| `enabled` | Enabled, true or false |
+| `token-expiry` | Token lifespan in seconds |
+
+## Function: keycloak_api_update_realm ##
+
+Update a realm
+| arg list |
+|--|
+| `<realm-name> <enabled> <token-expiry>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `realm-name` | Name of the realm |
+| `enabled` | Enabled, true or false |
+| `token-expiry` | Token lifespan in seconds |
+
+## Function: keycloak_api_create_confidential_client ##
+
+Create a client
+| arg list |
+|--|
+| `<realm-name> <client-name>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `realm-name` | Name of the realm |
+| `client-name` | Name of the client |
+
+## Function: keycloak_api_generate_client_secret ##
+
+Generate secret for client
+| arg list |
+|--|
+| `<realm-name> <client-name>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `realm-name` | Name of the realm |
+| `client-name` | Name of the client |
+
+## Function: keycloak_api_get_client_secret ##
+
+Get a secret for client
+| arg list |
+|--|
+| `<realm-name> <client-name>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `realm-name` | Name of the realm |
+| `client-name` | Name of the client |
+
+## Function: keycloak_api_create_client_roles ##
+
+Create client roles
+| arg list |
+|--|
+| `<realm-name> <client-name> <role>+` |
+
+| parameter | description |
+| --------- | ----------- |
+| `realm-name` | Name of the realm |
+| `client-name` | Name of the client |
+| `role` | Name of the role |
+
+## Function: keycloak_api_map_client_roles ##
+
+Map roles to a client
+| arg list |
+|--|
+| `<realm-name> <client-name> <role>+` |
+
+| parameter | description |
+| --------- | ----------- |
+| `realm-name` | Name of the realm |
+| `client-name` | Name of the client |
+| `role` | Name of the role |
+
+## Function: keycloak_api_get_client_token ##
+
+Get a client token
+| arg list |
+|--|
+| `<realm-name> <client-name>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `realm-name` | Name of the realm |
+| `client-name` | Name of the client |
+
+## Function: keycloak_api_read_client_token ##
+
+Read a client token
+| arg list |
+|--|
+| `<realm-name> <client-name>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `realm-name` | Name of the realm |
+| `client-name` | Name of the client |
+
+## Function: keycloak_api_read_client_secret ##
+
+Read the secret for client
+| arg list |
+|--|
+| `<realm-name> <client-name>` |
+
+| parameter | description |
+| --------- | ----------- |
+| `realm-name` | Name of the realm |
+| `client-name` | Name of the client |
+
+# Description of functions in kubeproxy_api_functions.sh #
+
+## Function: use_kube_proxy_http ##
+
+Use http for all proxy requests. Note that this only applicable to the actual proxy request, the proxied protocol can still be http and https.
+| arg list |
+|--|
+| None |
+
+## Function: use_kube_proxy_https ##
+
+Use https for all proxy requests. Note that this only applicable to the actual proxy request, the proxied protocol can still be http and https.
+| arg list |
+|--|
+| None |
+
+## Function: start_kube_proxy ##
+
+Start the kube proxy container in kube. This proxy enabled the test env to access all services and pods in a kube cluster.
+No proxy is started if the function is called in docker mode.
+| arg list |
+|--|
+| None |
+
+# Description of functions in localhelm_api_functions.sh #
+
+## Function: localhelm_create_test_chart ##
+
+Create a dummy chart using helm
+| arg list |
+|--|
+| `chart-name` |
+
+| parameter | description |
+| --------- | ----------- |
+| `chart-name` | Name of the chart |
+
+## Function: localhelm_package_test_chart ##
+
+Package a dummy chart using helm
+| arg list |
+|--|
+| `chart-name` |
+
+| parameter | description |
+| --------- | ----------- |
+| `chart-name` | Name of the chart |
+
+## Function: localhelm_installed_chart_release ##
+
+Check if a chart is installed or not using helm
+| arg list |
+|--|
+| `INSTALLED|NOTINSTALLED <release-name> <name-space> |
+
+| parameter | description |
+| --------- | ----------- |
+| `INSTALLED` | Expecting installed chart |
+| `NOTINSTALLED` | Expecting a not installed chart |
+| `release-name` | Name of the release |
+| `name-space` | Expected namespace |
+
+# Description of functions in mr_api_functions.sh #
+
+## Function: use_mr_http ##
+
+Use http for all Dmaap calls to the MR. This is the default. The admin API is not affected.
+
+| arg list |
+|--|
+| None |
+
+## Function: use_mr_https ##
+
+Use https for all Dmaap call to the MR. The admin API is not affected. Note that this function shall be called before preparing the config for Consul.
+| arg list |
+|--|
+| None |
+
+## Function: start_mr ##
+
+Start the Message Router stub interface container in docker or kube depending on start mode
+| arg list |
+|--|
+| None |
+
+## Function: dmaap_api_print_topics ##
+
+Prints the current list of topics in DMAAP MR
+
+| arg list |
+|--|
+| None |
+
+## Function: mr_equal ##
+
+Tests if a variable value in the Message Router (MR) 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 'mrstub' dir for more details.
+| arg list |
+|--|
+| `<variable-name> <target-value> [ <timeout-in-sec> ]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<variable-name>` | Variable name in the MR |
+| `<target-value>` | Target value for the variable |
+| `<timeout-in-sec>` | Max time to wait for the variable to reach the target value |
+
+## Function: mr_greater ##
+
+Tests if a variable value in the Message Router (MR) simulator is greater than a target value.
+Without the timeout, the test sets pass or fail immediately depending on if the variable is greater than 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 greater than the target value or not.
+See the 'mrstub' dir for more details.
+| arg list |
+|--|
+| `<variable-name> <target-value> [ <timeout-in-sec> ]` |
+
+| parameter | description |
+| --------- | ----------- |
+| `<variable-name>` | Variable name in the MR |