diff options
-rw-r--r-- | docs/apis/sliapi.rst | 15 | ||||
-rw-r--r-- | docs/architecture.rst | 19 | ||||
-rw-r--r-- | docs/build.rst | 17 | ||||
-rw-r--r-- | docs/logging.rst | 16 | ||||
-rw-r--r-- | docs/nodes.rst | 1031 | ||||
-rw-r--r-- | docs/offeredapis.rst | 6 | ||||
-rwxr-xr-x | sliapi/model/pom.xml | 13 | ||||
-rw-r--r-- | sliapi/model/src/main/resources/sli-api.20161110.json | 514 |
8 files changed, 1586 insertions, 45 deletions
diff --git a/docs/apis/sliapi.rst b/docs/apis/sliapi.rst new file mode 100644 index 000000000..13cdcbd54 --- /dev/null +++ b/docs/apis/sliapi.rst @@ -0,0 +1,15 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + +SLI-API(2016-11-11) +=================== + +.. toctree:: + :maxdepth: 1 + :titlesonly: + + + +.. swaggerv2doc:: https://gerrit.onap.org/r/gitweb?p=ccsdk/sli/core.git;a=blob_plain;f=sliapi/model/src/main/resources/sli-api.20161110.json + + diff --git a/docs/architecture.rst b/docs/architecture.rst index a1956d59f..f6101a116 100644 --- a/docs/architecture.rst +++ b/docs/architecture.rst @@ -4,24 +4,17 @@ Architecture ============ -.. note:: - * This section is used to describe a software component from a high level - view of capability, common usage scenarios, and interactions with other - components required in the usage scenarios. - - * The architecture section is typically: provided in a platform-component - and sdk collections; and referenced from developer and user guides. - - * This note must be removed after content has been added. Capabilities ------------ +Provides the core Service Logic Interpreter (SLI) functionality, used to execute directed graphs (DGs). Directed graphs allow service designers to define the +logic to be executed within the SDN controller in a graphical format which can be +updated in real time, without a need to restart the controller. +.. toctree:: + :maxdepth: 1 -Usage Scenarios ---------------- + nodes.rst -Interactions ------------- diff --git a/docs/build.rst b/docs/build.rst index 99a061c24..0a4c308e6 100644 --- a/docs/build.rst +++ b/docs/build.rst @@ -4,20 +4,15 @@ Build ===== -.. note:: - * This section is used to describe how a software component is built from source - into something ready for use either in a run-time environment or to build other - components. - - * This section is typically provided for a platform-component, application, and sdk; and - referenced in developer guides. - - * This note must be removed after content has been added. - Environment ----------- - +Requires maven release 3.3 or greater Steps ----- +To compile this code: + +1. Make sure your local Maven settings file ($HOME/.m2/settings.xml) contains references to the ONAP repositories and OpenDaylight repositories. + +2. To compile, run "mvn clean install".
\ No newline at end of file diff --git a/docs/logging.rst b/docs/logging.rst index 5662acb1f..187eb03b7 100644 --- a/docs/logging.rst +++ b/docs/logging.rst @@ -3,20 +3,12 @@ Logging ======= - -.. note:: - * This section is used to describe the informational or diagnostic messages emitted from - a software component and the methods or collecting them. - - * This section is typically: provided for a platform-component and sdk; and - referenced in developer and user guides - - * This note must be removed after content has been added. - +CCSDK uses slf4j to log messages to the standard OpenDaylight karaf.log +log file. Where to Access Information --------------------------- +Logs are found within the SDNC docker container, in the directory +/opt/opendaylight/current/data/logs. -Error / Warning Messages ------------------------- diff --git a/docs/nodes.rst b/docs/nodes.rst new file mode 100644 index 000000000..3bdeabcfa --- /dev/null +++ b/docs/nodes.rst @@ -0,0 +1,1031 @@ +--- Service Logic Interpreter --- Dan Timoney --- 2014-11-12 --- + +Supported node types +==================== + +The following built-in node types are currently supported: + +- Flow Control + + - `**block** <#Block_node>`__ + + - `**call** <#Call_node>`__ + + - `**for** <#For_node>`__ + + - `**return** <#Return_node>`__ + + - `**set** <#Set_node>`__ + + - `**switch** <#Switch_node>`__ + +- Device Management + + - `**configure** <#Configure_node>`__ + +- Java Plugin Support + + - `**execute** <#Execute_node>`__ + +- Recording + + - `**record** <#Record_node>`__ + +- Resource Management + + - `**delete** <#Delete_node>`__ + + - `**exists** <#Exists_node>`__ + + - `**get-resource** <#Get-resource_node>`__ + + - `**is-available** <#Is-available_node>`__ + + - `**notify** <#Notify_node>`__ + + - `**release** <#Release_node>`__ + + - `**reserve** <#Reserve_node>`__ + + - `**save** <#Save_node>`__ + + - `**update** <#Update_node>`__ + +Flow Control +------------ + +Block node +~~~~~~~~~~ + +Description +^^^^^^^^^^^ + +A **block** node is used to executes a set of nodes. + +Attributes +^^^^^^^^^^ + ++--------------+-----------------------------------------------------------------------------------------------------------------------------------+ +| **atomic** | if *true*, then if a node returns failure, subsequent nodes will not be executed and nodes already executed will be backed out. | ++--------------+-----------------------------------------------------------------------------------------------------------------------------------+ + +Parameters +^^^^^^^^^^ + +None + +Outcomes +^^^^^^^^ + +None + +Example +^^^^^^^ + +:: + + <block> + <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder"> + <parameter name="file" value="/tmp/sample_r1.log" /> + <parameter name="field1" value="__TIMESTAMP__"/> + <parameter name="field2" value="RESERVED"/> + <parameter name="field3" value="$asePort.uni_circuit_id"/> + </record> + <return status="success"> + <parameter name="uni-circuit-id" value="$asePort.uni_circuit_id" /> + </return> + </block> + +Call node +~~~~~~~~~ + +Description +^^^^^^^^^^^ + +A **call** node is used to call another graph + +Attributes +^^^^^^^^^^ + ++---------------+------------------------------------------------------------------------------------+ +| **module** | Module of directed graph to call. If unset, defaults to that of calling graph | ++---------------+------------------------------------------------------------------------------------+ +| **rpc** | rpc of directed graph to call. | ++---------------+------------------------------------------------------------------------------------+ +| **version** | version of graph to call, If unset, uses active version. | ++---------------+------------------------------------------------------------------------------------+ +| **mode** | mode (sync/async) of graph to call. If unset, defaults to that of calling graph. | ++---------------+------------------------------------------------------------------------------------+ + +Parameters +^^^^^^^^^^ + +Not applicable + +Outcomes +^^^^^^^^ + ++-----------------+------------------------------+ +| **success** | Sub graph returned success | ++-----------------+------------------------------+ +| **not-found** | Graph not found | ++-----------------+------------------------------+ +| **failure** | Subgraph returned success | ++-----------------+------------------------------+ + +Table: . + +Example +^^^^^^^ + +:: + + <call rpc="svc-topology-reserve" mode="sync" /> + +For node +~~~~~~~~ + +Description +^^^^^^^^^^^ + +A **for** node provides a fixed iteration looping mechanism, similar to +the Java for loop + +Attributes +^^^^^^^^^^ + ++-------------+------------------+ +| **index** | index variable | ++-------------+------------------+ +| **start** | initial value | ++-------------+------------------+ +| **end** | maximum value | ++-------------+------------------+ + +Parameters +^^^^^^^^^^ + +Not applicable. + +Outcomes +^^^^^^^^ + +Not applicable. The **status** node has no outcomes. + +Example +^^^^^^^ + +:: + + <for index="i" start="0" end="`$service-data.universal-cpe-ft.l2-switch-interfaces_length`"> + <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder"> + <parameter name="logger" value="message-log"/> + <parameter name="level" value="info"/> + <parameter name="field1" value="`'current l2-switch-interface name is ' + $service-data.universal-cpe-ft.l2-switch-interfaces[$i].name`"/> + </record> + </for> + +Return node +~~~~~~~~~~~ + +Description +^^^^^^^^^^^ + +A **return** node is used to return a status to the invoking MD-SAL +application + +Attributes +^^^^^^^^^^ + ++--------------+---------------------------------------------------+ +| **status** | Status value to return (*success* or *failure*) | ++--------------+---------------------------------------------------+ + +Parameters +^^^^^^^^^^ + +The following optional parameters may be passed to convey more detailed +status information. + ++---------------------+-----------------------------------------------------------------+ +| **error-code** | A brief, usually numeric, code indicating the error condition | ++---------------------+-----------------------------------------------------------------+ +| **error-message** | A more detailed error message | ++---------------------+-----------------------------------------------------------------+ + +Outcomes +^^^^^^^^ + +Not applicable. The **status** node has no outcomes. + +Example +^^^^^^^ + +:: + + <return status="failure"> + <parameter name="error-code" value="1542" /> + <parameter name="error-message" value="Activation failure" /> + </return> + +Set node +~~~~~~~~ + +Description +^^^^^^^^^^^ + +A **set** node is used to set one or more values in the execution +context + +Attributes +^^^^^^^^^^ + ++---------------------+-------------------------------------------------------------------------------------+ +| **only-if-unset** | If true the set node will only execute if the current value of the target is null | ++---------------------+-------------------------------------------------------------------------------------+ + +Parameters +^^^^^^^^^^ + +Values to be set are passed as parameters + +Outcomes +^^^^^^^^ + +Not applicable. The **set** node has no outcomes. + +Example +^^^^^^^ + +:: + + <set> + <parameter name="vlan" value="$network.provider-segmentation-id" /> + </set> + +Switch node +~~~~~~~~~~~ + +Description +^^^^^^^^^^^ + +A **switch** node is used to make a decision based on its **test** +attribute. + +Attributes +^^^^^^^^^^ + ++------------+---------------------+ +| **test** | Condition to test | ++------------+---------------------+ + +Parameters +^^^^^^^^^^ + +None + +Outcomes +^^^^^^^^ + +Depends on the **test** condition + +Example +^^^^^^^ + +:: + + <switch test="$uni-cir-units"> + <outcome value="Mbps"> + <reserve plugin="org.onap.ccsdk.sli.adaptors.samplesvc.SampleServiceResource" + resource="ase-port" + key="resource-emt-clli == $edge-device-clli and speed >= $uni-cir-value" + pfx="asePort"> + + <outcome value="success"> + <return status="success"> + <parameter name="uni-circuit-id" value="$asePort.uni_circuit_id" /> + </return> + </outcome> + <outcome value="Other"> + <return status="failure"> + <parameter name="error-code" value="1010" /> + <parameter name="error-message" value="No ports found that match criteria" /> + </return> + </outcome> + </reserve> + </outcome> + <outcome value="Gbps"> + <reserve plugin="org.onap.ccsdk.sli.adaptors.samplesvc.SampleServiceResource" + resource="ase-port" + key="resource-emt-clli == $edge-device-clli and speed >= $uni-cir-value*1000" + pfx="asePort"> + + <outcome value="success"> + <return status="success"> + <parameter name="uni-circuit-id" value="$asePort.uni_circuit_id" /> + </return> + </outcome> + <outcome value="Other"> + <return status="failure"> + <parameter name="error-code" value="1010" /> + <parameter name="error-message" value="No ports found that match criteria" /> + </return> + </outcome> + </reserve> + </outcome> + </switch> + +Device Management +----------------- + +Configure node +~~~~~~~~~~~~~~ + +Description +^^^^^^^^^^^ + +A **configure** node is used to configure a device. + +Attributes +^^^^^^^^^^ + ++----------------+-----------------------------------------------------------------------------------+ +| **adaptor** | Fully qualified Java class of resource adaptor to be used | ++----------------+-----------------------------------------------------------------------------------+ +| **activate** | Activate device/interface, for devices that support a separate activation step. | ++----------------+-----------------------------------------------------------------------------------+ +| **key** | SQL-like string specifying criteria for item to configure | ++----------------+-----------------------------------------------------------------------------------+ + +Parameters +^^^^^^^^^^ + +Specific to device adaptor. + +Outcomes +^^^^^^^^ + ++----------------------+------------------------------------------------------------------+ +| **success** | Device successfully configured | ++----------------------+------------------------------------------------------------------+ +| **not-found** | Element to be configured does not exist. | ++----------------------+------------------------------------------------------------------+ +| **not-ready** | Element is not in a state where it can be configured/activated | ++----------------------+------------------------------------------------------------------+ +| **already-active** | Attempt to activate element that is already active | ++----------------------+------------------------------------------------------------------+ +| **failure** | Configure failed for some other reason | ++----------------------+------------------------------------------------------------------+ + +Example +^^^^^^^ + +:: + + <configure adaptor="org.onap.ccsdk.sli.adaptors.emt.EmtAdaptor" + key="$uni-circuit-id" activate="true"> + <parameter name="circuit.id" value="$uni-circuit-id" /> + <parameter name="subscriber.name" value="$subscriber-name" /> + <parameter name="emt.clli" value="$edge-device-clli" /> + <parameter name="port.tagging" value="$port-tagging" /> + <parameter name="port.mediaSpeed" value="$media-speed" /> + <parameter name="location.state" value="$uni-location-state" /> + <parameter name="location.city" value="$uni-location-city" /> + <parameter name="cosCategory" value="$cos-category" /> + <parameter name="gosProfile" value="$gos-profile" /> + <parameter name="lldp" value="$asePort.resource-lldp" /> + <parameter name="mtu" value="$asePort.resource-mtu" /> + <outcome value="success"> + <block> + <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder"> + <parameter name="file" value="/tmp/sample_r1.log" /> + <parameter name="field1" value="__TIMESTAMP__"/> + <parameter name="field2" value="ACTIVE"/> + <parameter name="field3" value="$uni-circuit-id"/> + </record> + <return status="success"> + <parameter name="edge-device-clli" value="$asePort.resource-emt-clli" /> + </return> + </block> + </outcome> + <outcome value="already-active"> + <return status="failure"> + <parameter name="error-code" value="1590" /> + <parameter name="error-message" value="Port already active" /> + </return> + </outcome> + <outcome value="Other"> + <return status="failure"> + <parameter name="error-code" value="1542" /> + <parameter name="error-message" value="Activation failure" /> + </return> + </outcome> + </configure> + +Java Plugin Support +------------------- + +Execute node +~~~~~~~~~~~~ + +Description +^^^^^^^^^^^ + +An **execute** node is used to execute Java code supplied as a plugin + +Attributes +^^^^^^^^^^ + ++--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **plugin** | Fully qualified Java class of plugin to be used | ++--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **method** | Name of method in the plugin class to execute. Method must return void, and take 2 arguments: a Map (for parameters) and a SvcLogicContext (to allow plugin read/write access to context memory) | ++--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +Parameters +^^^^^^^^^^ + +Specific to plugin / method + +Outcomes +^^^^^^^^ + ++--------------------------+-----------------------------------------------------------------+ +| **success** | Device successfully configured | ++--------------------------+-----------------------------------------------------------------+ +| **not-found** | Plugin class could not be loaded | ++--------------------------+-----------------------------------------------------------------+ +| **unsupported-method** | Named method taking (Map, SvcLogicContext) could not be found | ++--------------------------+-----------------------------------------------------------------+ +| **failure** | Configure failed for some other reason | ++--------------------------+-----------------------------------------------------------------+ + +Example +^^^^^^^ + +:: + + <execute plugin="org.onap.ccsdk.sli.plugins.HelloWorld" + method="log"> + <parameter name="message" value="Hello, world!" /> + <outcome value="success"> + <return status="success"/> + </outcome> + <outcome value="not-found"> + <return status="failure"> + <parameter name="error-code" value="1590" /> + <parameter name="error-message" value="Could not locate plugin" /> + </return> + </outcome> + <outcome value="Other"> + <return status="failure"> + <parameter name="error-code" value="1542" /> + <parameter name="error-message" value="Internal error" /> + </return> + </outcome> + </execute> + +Recording +--------- + +Record node +~~~~~~~~~~~ + +Description +^^^^^^^^^^^ + +A **record** node is used to record an event. For example, this might be +used to log provisioning events. + +Attributes +^^^^^^^^^^ + ++--------------+---------------------------------------------------+ +| **plugin** | Fully qualified Java class to handle recording. | ++--------------+---------------------------------------------------+ + +Parameters +^^^^^^^^^^ + +Parameters will depend on the plugin being used. For the FileRecorder +class, the parameters are as follows + ++--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **file** | The file to which the record should be written | ++--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **field1** | First field to write. There will be **field** parameters for each field to write, from **field1** through **fieldN**. A special value \_\_TIMESTAMP\_\_ may be assigned to a field to insert the current timestamp | ++--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +Outcomes +^^^^^^^^ + ++---------------+--------------------------------------------+ +| **success** | Record successfully written | ++---------------+--------------------------------------------+ +| **failure** | Record could not be successfully written | ++---------------+--------------------------------------------+ + +Example +^^^^^^^ + +:: + + <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder"> + <parameter name="file" value="/tmp/sample_r1.log" /> + <parameter name="field1" value="__TIMESTAMP__"/> + <parameter name="field2" value="ACTIVE"/> + <parameter name="field3" value="$uni-circuit-id"/> + </record> + +Resource Management +------------------- + +Delete node +~~~~~~~~~~~ + +Description +^^^^^^^^^^^ + +A **delete** node is used to delete a resource from the local resource +inventory. + +Attributes +^^^^^^^^^^ + ++----------------+-------------------------------------------------------------+ +| **plugin** | Fully qualified Java class of resource adaptor to be used | ++----------------+-------------------------------------------------------------+ +| **resource** | Type of resource to delete | ++----------------+-------------------------------------------------------------+ +| **key** | SQL-like string specifying key to delete | ++----------------+-------------------------------------------------------------+ + +Parameters +^^^^^^^^^^ + +None + +Outcomes +^^^^^^^^ + ++---------------+--------------------------------------------+ +| **success** | Resource specified deleted successfully. | ++---------------+--------------------------------------------+ +| *failure*> | Resource specified was not deleted | ++---------------+--------------------------------------------+ + +Example +^^^^^^^ + +:: + + <delete plugin="org.onap.ccsdk.sli.adaptors.samplesvc.SampleServiceResource" + resource="ase-port" + key="uni_circuit_id == $uni-circuit-id"> + <outcome value="true"> + <return status="success"/> + </outcome> + <outcome value="false"> + <return status="failure"/> + </outcome> + </delete> + +Exists node +~~~~~~~~~~~ + +Description +^^^^^^^^^^^ + +An **exists** node is used to determine whether a particular instance of +a resource exists. For example, this might be used to test whether a +particular switch CLLI is provisioned. + +Attributes +^^^^^^^^^^ + ++----------------+-------------------------------------------------------------+ +| **plugin** | Fully qualified Java class of resource adaptor to be used | ++----------------+-------------------------------------------------------------+ +| **resource** | Type of resource to check | ++----------------+-------------------------------------------------------------+ +| **key** | SQL-like string specifying key to check for | ++----------------+-------------------------------------------------------------+ + +Parameters +^^^^^^^^^^ + +None + +Outcomes +^^^^^^^^ + ++-------------+---------------------------------+ +| **true** | Resource specified exists. | ++-------------+---------------------------------+ +| **false** | Resource specified is unknown | ++-------------+---------------------------------+ + +Example +^^^^^^^ + +:: + + <exists plugin="org.onap.ccsdk.sli.adaptors.samplesvc.SampleServiceResource" + resource="ase-port" + key="uni_circuit_id == $uni-circuit-id"> + <outcome value="true"> + <return status="success"/> + </outcome> + <outcome value="false"> + <return status="failure"/> + </outcome> + </exists> + +Get-resource node +~~~~~~~~~~~~~~~~~ + +Description +^^^^^^^^^^^ + +A **get-resource** node is used to retrieve information about a +particular resource and make it available to other nodes in the service +logic tree. For example, this might be used to retrieve information +about a particular uni-port. + +Attributes +^^^^^^^^^^ + ++----------------+------------------------------------------------------------------------------------------+ +| **plugin** | Fully qualified Java class of resource adaptor to be used | ++----------------+------------------------------------------------------------------------------------------+ +| **resource** | Type of resource to retrieve | ++----------------+------------------------------------------------------------------------------------------+ +| **key** | SQL-like string specifying criteria for retrieval | ++----------------+------------------------------------------------------------------------------------------+ +| **pfx** | Prefix to add to context variable names set for data retrieved | ++----------------+------------------------------------------------------------------------------------------+ +| **select** | String to specify, if key matches multiple entries, which entry should take precedence | ++----------------+------------------------------------------------------------------------------------------+ +| **order-by** | Prefix to add to context variable names set for data retrieved | ++----------------+------------------------------------------------------------------------------------------+ + +Parameters +^^^^^^^^^^ + +None + +Outcomes +^^^^^^^^ + ++-----------------+--------------------------------------------------+ +| **success** | Resource successfully retrieved | ++-----------------+--------------------------------------------------+ +| **not-found** | Resource referenced does not exist | ++-----------------+--------------------------------------------------+ +| **failure** | Resource retrieve failed for some other reason | ++-----------------+--------------------------------------------------+ + +Example +^^^^^^^ + +:: + + <get-resource plugin="org.onap.ccsdk.sli.adaptors.samplesvc.SampleServiceResource" + resource="ase-port" + key="uni_circuit_id == $uni-circuit-id" + pfx="current-port"> + <outcome value="success"> + <return status="success"/> + </outcome> + <outcome value="not-found"> + <return status="failure"/> + </outcome> + <outcome value="failure"> + <return status="failure"/> + </outcome> + </get-resource> + +Is-available node +~~~~~~~~~~~~~~~~~ + +Description +^^^^^^^^^^^ + +An **is-available** node is used to determine whether a particular type +of resource is available. For example, this might be used to test +whether any ports are available for assignment on a particular switch. + +Attributes +^^^^^^^^^^ + ++----------------+------------------------------------------------------------------+ +| **plugin** | Fully qualified Java class of resource adaptor to be used | ++----------------+------------------------------------------------------------------+ +| **resource** | Type of resource to check | ++----------------+------------------------------------------------------------------+ +| **key** | SQL-like string specifying key to check for | ++----------------+------------------------------------------------------------------+ +| **pfx** | Prefix to add to context variable names set for data retrieved | ++----------------+------------------------------------------------------------------+ + +Parameters +^^^^^^^^^^ + +None + +Outcomes +^^^^^^^^ + ++-------------+---------------------------------------+ +| **true** | Resource requested is available | ++-------------+---------------------------------------+ +| **false** | Resource requested is not available | ++-------------+---------------------------------------+ + +Example +^^^^^^^ + +:: + + <is-available plugin="org.onap.ccsdk.sli.adaptors.samplesvc.SampleServiceResource" + resource="ase-port" + key="resource-emt-clli == $edge-device-clli and speed >= $uni-cir-value"> + <outcome value="true"> + <return status="success"/> + </outcome> + <outcome value="false"> + <return status="failure"/> + </outcome> + </is-available> + +Notify node +~~~~~~~~~~~ + +Description +^^^^^^^^^^^ + +A **notify** node is used to inform an external application (e.g. A&AI) +that a resource was updated. + +Attributes +^^^^^^^^^^ + ++----------------+---------------------------------------------------------------------+ +| **plugin** | Fully qualified Java class of resource adaptor to be used | ++----------------+---------------------------------------------------------------------+ +| **resource** | Identifies resource that was updated | ++----------------+---------------------------------------------------------------------+ +| **action** | Action that triggered notification to be sent (ADD/UPDATE/DELETE) | ++----------------+---------------------------------------------------------------------+ + +Parameters +^^^^^^^^^^ + +None + +Outcomes +^^^^^^^^ + ++---------------+----------------------------------------+ +| **success** | Notification was successful | ++---------------+----------------------------------------+ +| **failure** | Notification failed is not available | ++---------------+----------------------------------------+ + +Example +^^^^^^^ + +:: + + <notify plugin="org.onap.ccsdk.sli.adaptors.samplesvc.SampleServiceResource" + resource="ase-port" + action="ADD"> + <outcome value="success"> + <return status="success"/> + </outcome> + <outcome value="Other"> + <return status="failure"/> + </outcome> + </notify> + +Release node +~~~~~~~~~~~~ + +Description +^^^^^^^^^^^ + +A **release** node is used to mark a resource as no longer in use, and +thus available for assignment. + +Attributes +^^^^^^^^^^ + ++----------------+------------------------------------------------------------------+ +| **plugin** | Fully qualified Java class of resource adaptor to be used | ++----------------+------------------------------------------------------------------+ +| **resource** | Type of resource to release | ++----------------+------------------------------------------------------------------+ +| **key** | SQL-like string specifying key to check of resource to release | ++----------------+------------------------------------------------------------------+ + +Parameters +^^^^^^^^^^ + +None + +Outcomes +^^^^^^^^ + ++-----------------+-------------------------------------------------+ +| **success** | Resource successfully released | ++-----------------+-------------------------------------------------+ +| **not-found** | Resource referenced does not exist | ++-----------------+-------------------------------------------------+ +| **failure** | Resource release failed for some other reason | ++-----------------+-------------------------------------------------+ + +Example +^^^^^^^ + +:: + + <release plugin="org.onap.ccsdk.sli.adaptors.SampleServiceResource" + resource="ase-port" + key="uni_circuit_id == $uni-circuit-id"> + <outcome value="success"> + <return status="success"/> + </outcome> + <outcome value="not-found"> + <return status="failure"/> + </outcome> + <outcome value="failure"> + <return status="failure"/> + </outcome> + </release> + +Reserve node +~~~~~~~~~~~~ + +Description +^^^^^^^^^^^ + +A **reserve** node is used to reserve a particular type of resource.. +For example, this might be used to reserve a port on a particular +switch. + +Attributes +^^^^^^^^^^ + ++----------------+----------------------------------------------------------------------------------------------+ +| **plugin** | Fully qualified Java class of resource adaptor to be used | ++----------------+----------------------------------------------------------------------------------------------+ +| **resource** | Type of resource to reserve | ++----------------+----------------------------------------------------------------------------------------------+ +| **key** | SQL-like string specifying criteria for reservation | ++----------------+----------------------------------------------------------------------------------------------+ +| **select** | String to specify, if **key** matches multiple entries, which entry should take precedence | ++----------------+----------------------------------------------------------------------------------------------+ + +Parameters +^^^^^^^^^^ + +None + +Outcomes +^^^^^^^^ + ++---------------+----------------------------------------------------+ +| **success** | Resource requested was successfully reserved | ++---------------+----------------------------------------------------+ +| **failure** | Resource requested was not successfully reserved | ++---------------+----------------------------------------------------+ + +Example +^^^^^^^ + +:: + + <reserve plugin="org.onap.ccsdk.sli.adaptors.samplesvc.SampleServiceResource" + resource="ase-port" + key="resource-emt-clli == $edge-device-clli and speed >= $uni-cir-value" + select="min(speed)"> + <outcome value="success"> + <return status="success"/> + </outcome> + <outcome value="failure"> + <return status="failure"/> + </outcome> + </reserve> + +Save node +~~~~~~~~~ + +Description +^^^^^^^^^^^ + +A **save** node is used to save information about a particular resource +to persistent storage. For example, this might be used to save +information about a particular uni-port. + +Attributes +^^^^^^^^^^ + ++----------------+------------------------------------------------------------------------------------------+ +| **plugin** | Fully qualified Java class of resource adaptor to be used | ++----------------+------------------------------------------------------------------------------------------+ +| **resource** | Type of resource to save | ++----------------+------------------------------------------------------------------------------------------+ +| **key** | SQL-like string specifying criteria for retrieval | ++----------------+------------------------------------------------------------------------------------------+ +| **force** | If "true", save resource even if this resource is already stored in persistent storage | ++----------------+------------------------------------------------------------------------------------------+ +| **pfx** | Prefix to be prepended to variable names, when attributes are set in SvcLogicContext | ++----------------+------------------------------------------------------------------------------------------+ + +Parameters +^^^^^^^^^^ + +Values to save (columns) are specified as parameters, with each name +corresponding to a column name and each value corresponding to the value +to set. + +Outcomes +^^^^^^^^ + ++---------------+-------------------------------+ +| **success** | Resource successfully saved | ++---------------+-------------------------------+ +| **failure** | Resource save failed | ++---------------+-------------------------------+ + +Example +^^^^^^^ + +:: + + <save plugin="`$sample-resource-plugin`" resource="vnf" + key="vnf-name = $requests.vnf.vnf-name" force="true" + pfx="requests.vnf"> + <parameter name="vnf-name" + value="`$requests.cust-country-code + $requests.cust-id + $requests.cust-city + $requests.cust-state + '001VCE'`" /> + <parameter name="vnf-type" value="vce" /> + <parameter name="orchestration-status" value="pending-create" /> + <parameter name="heat-stack-id" value="`$requests.heat-stack-id`" /> + <parameter name="mso-catalog-key" value="`$requests.mso-catalog-key`" /> + <parameter name="oam-ipv4-address" value="`$vce-ipv4-oam-addr.ipv4-addr`" /> + </save> + +Update node +~~~~~~~~~~~ + +Description +^^^^^^^^^^^ + +An **update** node is used to update information about a particular +resource to persistent storage. + +Attributes +^^^^^^^^^^ + ++----------------+----------------------------------------------------------------------------------------+ +| **plugin** | Fully qualified Java class of resource adaptor to be used | ++----------------+----------------------------------------------------------------------------------------+ +| **resource** | Type of resource to update | ++----------------+----------------------------------------------------------------------------------------+ +| **key** | SQL-like string specifying criteria for retrieval | ++----------------+----------------------------------------------------------------------------------------+ +| **pfx** | Prefix to be prepended to variable names, when attributes are set in SvcLogicContext | ++----------------+----------------------------------------------------------------------------------------+ + +Parameters +^^^^^^^^^^ + +Values to save (columns) are specified as parameters, with each name +corresponding to a column name and each value corresponding to the value +to set. + +Outcomes +^^^^^^^^ + ++---------------+-------------------------------+ +| **success** | Resource successfully saved | ++---------------+-------------------------------+ +| **failure** | Resource save failed | ++---------------+-------------------------------+ + +Example +^^^^^^^ + +:: + + <update plugin="`$sample-resource-plugin`" resource="vnf" + key="vnf-name = $requests.vnf.vnf-name" + pfx="requests.vnf"> + <parameter name="vnf-name" + value="`$requests.cust-country-code + $requests.cust-id + $requests.cust-city + $requests.cust-state + '001VCE'`" /> + <parameter name="vnf-type" value="vce" /> + <parameter name="orchestration-status" value="pending-create" /> + <parameter name="heat-stack-id" value="`$requests.heat-stack-id`" /> + <parameter name="mso-catalog-key" value="`$requests.mso-catalog-key`" /> + <parameter name="oam-ipv4-address" value="`$vce-ipv4-oam-addr.ipv4-addr`" /> + </update> diff --git a/docs/offeredapis.rst b/docs/offeredapis.rst index de686ad36..42eafdd41 100644 --- a/docs/offeredapis.rst +++ b/docs/offeredapis.rst @@ -8,9 +8,5 @@ Offered APIs :maxdepth: 1 :titlesonly: -SLI-API(2016-11-11) -=================== - -.. swaggerv2doc:: https://gerrit.onap.org/r/gitweb?p=ccsdk/sli/core.git;a=blob_plain;f=sliapi/model/src/main/resources/sli-api.20161110.json - + apis/sliapi.rst diff --git a/sliapi/model/pom.xml b/sliapi/model/pom.xml index fc9b76377..d36aaa131 100755 --- a/sliapi/model/pom.xml +++ b/sliapi/model/pom.xml @@ -33,6 +33,12 @@ <version>${odl.sal.api.gen.plugin.version}</version> <type>jar</type> </dependency> + <dependency> + <groupId>org.opendaylight.netconf</groupId> + <artifactId>sal-rest-docgen-maven</artifactId> + <version>${odl.restconf.version}</version> + <type>jar</type> + </dependency> </dependencies> <executions> <execution> @@ -43,12 +49,13 @@ <yangFilesRootDir>${yang.file.directory}</yangFilesRootDir> <codeGenerators> <generator> - <!-- - <codeGeneratorClass>org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl</codeGeneratorClass> - --> <codeGeneratorClass>org.opendaylight.mdsal.binding.maven.api.gen.plugin.CodeGeneratorImpl</codeGeneratorClass> <outputBaseDir>${salGeneratorPath}</outputBaseDir> </generator> + <generator> + <codeGeneratorClass>org.opendaylight.netconf.sal.rest.doc.maven.StaticDocGenerator</codeGeneratorClass> + <outputBaseDir>target/swagger</outputBaseDir> + </generator> </codeGenerators> <inspectDependencies>true</inspectDependencies> </configuration> diff --git a/sliapi/model/src/main/resources/sli-api.20161110.json b/sliapi/model/src/main/resources/sli-api.20161110.json index 0cc53fe92..da966e1e7 100644 --- a/sliapi/model/src/main/resources/sli-api.20161110.json +++ b/sliapi/model/src/main/resources/sli-api.20161110.json @@ -1 +1,513 @@ -{"apiVersion":"1.0.0","swaggerVersion":"1.2","basePath":"restconf","resourcePath":null,"produces":["application/json","application/xml"],"apis":[{"path":"/config","operations":[{"method":"POST","summary":null,"notes":"Defines API to service logic interpreter","type":"(config)SLI-API_modulePOST","nickname":"POST-SLI-API_module","consumes":["application/json","application/xml"],"parameters":[{"name":"**(config)test-results","description":null,"required":false,"type":"SLI-API(config)test-results-TOP","paramType":"body"}],"responseMessages":null}]},{"path":"/config/SLI-API:test-results","operations":[{"method":"GET","summary":null,"notes":"Test results","type":"(config)test-results","nickname":"GET-test-results","consumes":null,"parameters":[],"responseMessages":null},{"method":"PUT","summary":null,"notes":"Test results","type":"SLI-API(config)test-results-TOP","nickname":"PUT-test-results","consumes":["application/json","application/xml"],"parameters":[{"name":"(config)test-results","description":null,"required":false,"type":"SLI-API(config)test-results-TOP","paramType":"body"}],"responseMessages":null},{"method":"DELETE","summary":null,"notes":"Test results","type":null,"nickname":"DELETE-test-results","consumes":null,"parameters":[],"responseMessages":null},{"method":"POST","summary":null,"notes":"Test results","type":"(config)test-resultsPOST","nickname":"POST-test-results","consumes":["application/json","application/xml"],"parameters":[{"name":"**(config)test-result","description":null,"required":false,"type":"SLI-API/test-results(config)test-result-TOP","paramType":"body"}],"responseMessages":null}]},{"path":"/config/SLI-API:test-results/test-result/{test-identifier}","operations":[{"method":"GET","summary":null,"notes":null,"type":"(config)test-result","nickname":"GET-test-result","consumes":null,"parameters":[{"name":"test-identifier","description":null,"required":false,"type":"string","paramType":"path"}],"responseMessages":null},{"method":"PUT","summary":null,"notes":null,"type":"SLI-API/test-results(config)test-result-TOP","nickname":"PUT-test-result","consumes":["application/json","application/xml"],"parameters":[{"name":"test-identifier","description":null,"required":false,"type":"string","paramType":"path"},{"name":"(config)test-result","description":null,"required":false,"type":"SLI-API/test-results(config)test-result-TOP","paramType":"body"}],"responseMessages":null},{"method":"DELETE","summary":null,"notes":null,"type":null,"nickname":"DELETE-test-result","consumes":null,"parameters":[{"name":"test-identifier","description":null,"required":false,"type":"string","paramType":"path"}],"responseMessages":null}]},{"path":"/operational/SLI-API:test-results","operations":[{"method":"GET","summary":null,"notes":"Test results","type":"(operational)test-results","nickname":"GET-test-results","consumes":null,"parameters":[],"responseMessages":null}]},{"path":"/operations/SLI-API:healthcheck","operations":[{"method":"POST","summary":null,"notes":null,"type":"(healthcheck)output-TOP","nickname":"healthcheck","consumes":["application/json","application/xml"],"parameters":[{"name":null,"description":null,"required":false,"type":"(healthcheck)input-TOP","paramType":"body"}],"responseMessages":null}]},{"path":"/operations/SLI-API:execute-graph","operations":[{"method":"POST","summary":null,"notes":" Method to add a new parameter.","type":"(execute-graph)output-TOP","nickname":"execute-graph","consumes":["application/json","application/xml"],"parameters":[{"name":null,"description":null,"required":false,"type":"(execute-graph)input-TOP","paramType":"body"}],"responseMessages":null}]}],"models":{"(execute-graph)output":{"$schema":"http://json-schema.org/draft-04/schema","id":"(execute-graph)output","type":"object","properties":{"SLI-API:response-code":{"type":"Some response-code","required":false},"SLI-API:ack-final-indicator":{"type":"Some ack-final-indicator","required":false},"SLI-API:context-memory-json":{"type":"Some context-memory-json","required":false},"SLI-API:response-message":{"type":"Some response-message","required":false}}},"SLI-API(config)sli-parameter":{"$schema":"http://json-schema.org/draft-04/schema","id":"SLI-API(config)sli-parameter","type":"object","properties":{"SLI-API:boolean-value":{"type":"true","required":false},"SLI-API:parameter-name":{"description":"Parameter name","type":"Some parameter-name","required":false},"SLI-API:int-value":{"type":"-2147483648","required":false},"SLI-API:string-value":{"type":"Some string-value","required":false}}},"SLI-API/test-results(config)test-result":{"$schema":"http://json-schema.org/draft-04/schema","id":"SLI-API/test-results(config)test-result","type":"object","properties":{"SLI-API:results":{"type":"array","items":{"type":"Some results"},"required":false},"SLI-API:test-identifier":{"type":"Some test-identifier","required":false}}},"(config)sli-parameterPOST":{"$schema":"http://json-schema.org/draft-04/schema","id":"(config)sli-parameterPOST","type":"object","properties":{"parameter-name":{"description":"Parameter name","type":"Some parameter-name","required":false},"boolean-value":{"type":"true","required":false},"string-value":{"type":"Some string-value","required":false},"int-value":{"type":"-2147483648","required":false}}},"SLI-API(config)test-results":{"$schema":"http://json-schema.org/draft-04/schema","id":"SLI-API(config)test-results","type":"object","properties":{"SLI-API:test-result":{"type":"array","items":{"$ref":"SLI-API/test-results(config)test-result"}}}},"(healthcheck)input":{"$schema":"http://json-schema.org/draft-04/schema","id":"(healthcheck)input","type":"object","properties":{"SLI-API:dummy-leaf":{"type":"Some dummy-leaf","required":false}}},"(execute-graph)input":{"$schema":"http://json-schema.org/draft-04/schema","id":"(execute-graph)input","type":"object","properties":{"SLI-API:rpc-name":{"type":"Some rpc-name","required":false},"SLI-API:sli-parameter":{"type":"array","items":{"$ref":"SLI-API(config)sli-parameter"}},"SLI-API:module-name":{"type":"Some module-name","required":false},"SLI-API:mode":{"type":"sync","required":false,"enum":["sync","async"]}}},"(execute-graph)input-TOP":{"$schema":"http://json-schema.org/draft-04/schema","id":"(execute-graph)input-TOP","type":"object","properties":{"SLI-API:input":{"type":"object","items":{"$ref":"(execute-graph)input"}}}},"unique_empty_identifier":{},"SLI-API/test-results(config)test-result-TOP":{"$schema":"http://json-schema.org/draft-04/schema","id":"SLI-API/test-results(config)test-result-TOP","type":"object","properties":{"SLI-API:test-result":{"type":"array","items":{"$ref":"SLI-API/test-results(config)test-result"}}}},"SLI-API(config)sli-parameter-TOP":{"$schema":"http://json-schema.org/draft-04/schema","id":"SLI-API(config)sli-parameter-TOP","type":"object","properties":{"SLI-API:sli-parameter":{"type":"array","items":{"$ref":"SLI-API(config)sli-parameter"}}}},"SLI-API(operational)test-results":{"$schema":"http://json-schema.org/draft-04/schema","id":"SLI-API(operational)test-results","type":"object","properties":{}},"(execute-graph)output-TOP":{"$schema":"http://json-schema.org/draft-04/schema","id":"(execute-graph)output-TOP","type":"object","properties":{"SLI-API:output":{"type":"object","items":{"$ref":"(execute-graph)output"}}}},"(healthcheck)output":{"$schema":"http://json-schema.org/draft-04/schema","id":"(healthcheck)output","type":"object","properties":{"SLI-API:response-code":{"type":"Some response-code","required":false},"SLI-API:ack-final-indicator":{"type":"Some ack-final-indicator","required":false},"SLI-API:context-memory-json":{"type":"Some context-memory-json","required":false},"SLI-API:response-message":{"type":"Some response-message","required":false}}},"(config)SLI-API_modulePOST":{"$schema":"http://json-schema.org/draft-04/schema","id":"(config)SLI-API_modulePOST","type":"object","properties":{"test-results":{"type":"object","items":{"$ref":"SLI-API(config)test-results"}}}},"(config)test-resultsPOST":{"$schema":"http://json-schema.org/draft-04/schema","id":"(config)test-resultsPOST","type":"object","properties":{"test-result":{"type":"array","items":{"$ref":"SLI-API/test-results(config)test-result"}}}},"SLI-API(operational)test-results-TOP":{"$schema":"http://json-schema.org/draft-04/schema","id":"SLI-API(operational)test-results-TOP","type":"object","properties":{"SLI-API:test-results":{"description":"Test results","type":"object","items":{"$ref":"SLI-API(operational)test-results"}}}},"SLI-API(config)test-results-TOP":{"$schema":"http://json-schema.org/draft-04/schema","id":"SLI-API(config)test-results-TOP","type":"object","properties":{"SLI-API:test-results":{"description":"Test results","type":"object","items":{"$ref":"SLI-API(config)test-results"}}}},"(healthcheck)input-TOP":{"$schema":"http://json-schema.org/draft-04/schema","id":"(healthcheck)input-TOP","type":"object","properties":{"SLI-API:input":{"type":"object","items":{"$ref":"(healthcheck)input"}}}},"(healthcheck)output-TOP":{"$schema":"http://json-schema.org/draft-04/schema","id":"(healthcheck)output-TOP","type":"object","properties":{"SLI-API:output":{"type":"object","items":{"$ref":"(healthcheck)output"}}}},"(config)test-resultPOST":{"$schema":"http://json-schema.org/draft-04/schema","id":"(config)test-resultPOST","type":"object","properties":{"test-identifier":{"type":"Some test-identifier","required":false}}}}}
\ No newline at end of file +{ + "swagger": "2.0", + "info": { + "version": "1.0.0" + }, + "basePath": "/restconf", + "paths": { + "/config": { + "post": { + "consumes": [ + "application/json", + "application/xml" + ], + "produces": [ + "application/json", + "application/xml" + ], + "parameters": [ + { + "in": "body", + "name": "**(config)test-results", + "required": false, + "schema": { + "$ref": "#/definitions/SLI-API(config)test-results-TOP" + } + } + ], + "responses": { + "200": { + "description": "No response was specified", + "schema": { + "$ref": "#/definitions/(config)SLI-API_modulePOST" + } + } + }, + "description": "Defines API to service logic interpreter", + "operationId": "POST-SLI-API_module" + } + }, + "/config/SLI-API:test-results": { + "delete": { + "produces": [ + "application/json", + "application/xml" + ], + "responses": { + "200": { + "description": "No response was specified" + } + }, + "description": "Test results", + "operationId": "DELETE-test-results" + }, + "get": { + "produces": [ + "application/json", + "application/xml" + ], + "responses": { + "200": { + "description": "No response was specified", + "schema": { + "$ref": "#/definitions/(config)test-results" + } + } + }, + "description": "Test results", + "operationId": "GET-test-results" + }, + "post": { + "consumes": [ + "application/json", + "application/xml" + ], + "produces": [ + "application/json", + "application/xml" + ], + "parameters": [ + { + "in": "body", + "name": "**(config)test-result", + "required": false, + "schema": { + "$ref": "#/definitions/SLI-API/test-results(config)test-result-TOP" + } + } + ], + "responses": { + "200": { + "description": "No response was specified", + "schema": { + "$ref": "#/definitions/(config)test-resultsPOST" + } + } + }, + "description": "Test results", + "operationId": "POST-test-results" + }, + "put": { + "consumes": [ + "application/json", + "application/xml" + ], + "produces": [ + "application/json", + "application/xml" + ], + "parameters": [ + { + "in": "body", + "name": "(config)test-results", + "required": false, + "schema": { + "$ref": "#/definitions/SLI-API(config)test-results-TOP" + } + } + ], + "responses": { + "200": { + "description": "No response was specified", + "schema": { + "$ref": "#/definitions/SLI-API(config)test-results-TOP" + } + } + }, + "description": "Test results", + "operationId": "PUT-test-results" + } + }, + "/config/SLI-API:test-results/test-result/{test-identifier}": { + "delete": { + "produces": [ + "application/json", + "application/xml" + ], + "parameters": [ + { + "in": "path", + "name": "test-identifier", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "No response was specified" + } + }, + "operationId": "DELETE-test-result" + }, + "get": { + "produces": [ + "application/json", + "application/xml" + ], + "parameters": [ + { + "in": "path", + "name": "test-identifier", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "No response was specified", + "schema": { + "$ref": "#/definitions/(config)test-result" + } + } + }, + "operationId": "GET-test-result" + }, + "put": { + "consumes": [ + "application/json", + "application/xml" + ], + "produces": [ + "application/json", + "application/xml" + ], + "parameters": [ + { + "in": "path", + "name": "test-identifier", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "(config)test-result", + "required": false, + "schema": { + "$ref": "#/definitions/SLI-API/test-results(config)test-result-TOP" + } + } + ], + "responses": { + "200": { + "description": "No response was specified", + "schema": { + "$ref": "#/definitions/SLI-API/test-results(config)test-result-TOP" + } + } + }, + "operationId": "PUT-test-result" + } + }, + "/operational/SLI-API:test-results": { + "get": { + "produces": [ + "application/json", + "application/xml" + ], + "responses": { + "200": { + "description": "No response was specified", + "schema": { + "$ref": "#/definitions/(operational)test-results" + } + } + }, + "description": "Test results", + "operationId": "GET-test-results" + } + }, + "/operations/SLI-API:execute-graph": { + "post": { + "consumes": [ + "application/json", + "application/xml" + ], + "produces": [ + "application/json", + "application/xml" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/(execute-graph)input-TOP" + } + } + ], + "responses": { + "200": { + "description": "No response was specified", + "schema": { + "$ref": "#/definitions/(execute-graph)output-TOP" + } + } + }, + "description": " Method to add a new parameter.", + "operationId": "execute-graph" + } + }, + "/operations/SLI-API:healthcheck": { + "post": { + "produces": [ + "application/json", + "application/xml" + ], + "responses": { + "200": { + "description": "No response was specified", + "schema": { + "$ref": "#/definitions/(healthcheck)output-TOP" + } + } + }, + "operationId": "healthcheck" + } + } + }, + "definitions": { + "(config)SLI-API_modulePOST": { + "properties": { + "test-results": { + "items": { + "$ref": "#/definitions/SLI-API(config)test-results" + }, + "type": "object" + } + }, + "type": "object" + }, + "(config)sli-parameterPOST": { + "properties": { + "boolean-value": { + "$ref": "#/definitions/true" + }, + "int-value": { + "$ref": "#/definitions/-2147483648" + }, + "parameter-name": { + "$ref": "#/definitions/Some parameter-name", + "description": "Parameter name" + }, + "string-value": { + "$ref": "#/definitions/Some string-value" + } + }, + "type": "object" + }, + "(config)test-resultPOST": { + "properties": { + "test-identifier": { + "$ref": "#/definitions/Some test-identifier" + } + }, + "type": "object" + }, + "(config)test-resultsPOST": { + "properties": { + "test-result": { + "items": { + "$ref": "#/definitions/SLI-API/test-results(config)test-result" + }, + "type": "array" + } + }, + "type": "object" + }, + "(execute-graph)input": { + "properties": { + "SLI-API:mode": { + "$ref": "#/definitions/sync", + "enum": [ + "sync", + "async" + ] + }, + "SLI-API:module-name": { + "$ref": "#/definitions/Some module-name" + }, + "SLI-API:rpc-name": { + "$ref": "#/definitions/Some rpc-name" + }, + "SLI-API:sli-parameter": { + "items": { + "$ref": "#/definitions/SLI-API(config)sli-parameter" + }, + "type": "array" + } + }, + "type": "object" + }, + "(execute-graph)input-TOP": { + "properties": { + "SLI-API:input": { + "items": { + "$ref": "#/definitions/(execute-graph)input" + }, + "type": "object" + } + }, + "type": "object" + }, + "(execute-graph)output": { + "properties": { + "SLI-API:ack-final-indicator": { + "$ref": "#/definitions/Some ack-final-indicator" + }, + "SLI-API:context-memory-json": { + "$ref": "#/definitions/Some context-memory-json" + }, + "SLI-API:response-code": { + "$ref": "#/definitions/Some response-code" + }, + "SLI-API:response-message": { + "$ref": "#/definitions/Some response-message" + } + }, + "type": "object" + }, + "(execute-graph)output-TOP": { + "properties": { + "SLI-API:output": { + "items": { + "$ref": "#/definitions/(execute-graph)output" + }, + "type": "object" + } + }, + "type": "object" + }, + "(healthcheck)output": { + "properties": { + "SLI-API:ack-final-indicator": { + "$ref": "#/definitions/Some ack-final-indicator" + }, + "SLI-API:context-memory-json": { + "$ref": "#/definitions/Some context-memory-json" + }, + "SLI-API:response-code": { + "$ref": "#/definitions/Some response-code" + }, + "SLI-API:response-message": { + "$ref": "#/definitions/Some response-message" + } + }, + "type": "object" + }, + "(healthcheck)output-TOP": { + "properties": { + "SLI-API:output": { + "items": { + "$ref": "#/definitions/(healthcheck)output" + }, + "type": "object" + } + }, + "type": "object" + }, + "SLI-API(config)sli-parameter": { + "properties": { + "SLI-API:boolean-value": { + "$ref": "#/definitions/true" + }, + "SLI-API:int-value": { + "$ref": "#/definitions/-2147483648" + }, + "SLI-API:parameter-name": { + "$ref": "#/definitions/Some parameter-name", + "description": "Parameter name" + }, + "SLI-API:string-value": { + "$ref": "#/definitions/Some string-value" + } + }, + "type": "object" + }, + "SLI-API(config)sli-parameter-TOP": { + "properties": { + "SLI-API:sli-parameter": { + "items": { + "$ref": "#/definitions/SLI-API(config)sli-parameter" + }, + "type": "array" + } + }, + "type": "object" + }, + "SLI-API(config)test-results": { + "properties": { + "SLI-API:test-result": { + "items": { + "$ref": "#/definitions/SLI-API/test-results(config)test-result" + }, + "type": "array" + } + }, + "type": "object" + }, + "SLI-API(config)test-results-TOP": { + "properties": { + "SLI-API:test-results": { + "description": "Test results", + "items": { + "$ref": "#/definitions/SLI-API(config)test-results" + }, + "type": "object" + } + }, + "type": "object" + }, + "SLI-API(operational)test-results": { + "type": "object" + }, + "SLI-API(operational)test-results-TOP": { + "properties": { + "SLI-API:test-results": { + "description": "Test results", + "items": { + "$ref": "#/definitions/SLI-API(operational)test-results" + }, + "type": "object" + } + }, + "type": "object" + }, + "SLI-API/test-results(config)test-result": { + "properties": { + "SLI-API:results": { + "items": { + "$ref": "#/definitions/Some results" + }, + "type": "array" + }, + "SLI-API:test-identifier": { + "$ref": "#/definitions/Some test-identifier" + } + }, + "type": "object" + }, + "SLI-API/test-results(config)test-result-TOP": { + "properties": { + "SLI-API:test-result": { + "items": { + "$ref": "#/definitions/SLI-API/test-results(config)test-result" + }, + "type": "array" + } + }, + "type": "object" + }, + "unique_empty_identifier": {} + } +} |