<!DOCTYPE html>
<html>
<title>API Document</title>

<!--xmp theme="united" style="display:none;"-->
<xmp theme="united" style="display:none;">
#Rest API


## HTTP:///onboarding-api


Rest API Documentation



**Version** v1.0, build #${buildNumber}












# APIs


## /v1.0/application-configuration






### POST


<a id="insertToTable">Insert JSON schema into application config table</a>









#### Request


**Content-Type: ** multipart/form-data

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>namespace</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>key</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/InputStream">InputStream</a> 
    </td>

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |














## /v1.0/application-configuration/{namespace}


### GET

<a id="getListOfConfigurationByNamespaceFromTable">Get List of keys and values by namespace</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>namespace</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |

















## /v1.0/application-configuration/{namespace}/{key}


### GET

<a id="getFromTable">Get JSON schema by namespace and key</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>namespace</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>key</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | <a href="#/definitions/ConfigurationDataDto">ConfigurationDataDto</a>|

















## /v1.0/validation/{type}/validate






### POST


<a id="validateFile">Validate a package</a>









#### Request


**Content-Type: ** multipart/form-data

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>type</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/InputStream">InputStream</a> 
    </td>

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |














## /v1.0/vendor-license-models


### GET

<a id="listLicenseModels">List vendor license models</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>versionFilter</th>
    <td>query</td>
    <td>no</td>
    <td>Currently supported value: &#x27;Final&#x27; - only vendor License models with final versions will be return - with their latest final version</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | Array[<a href="#/definitions/VendorLicenseModelEntity">VendorLicenseModelEntity</a>]|






### POST


<a id="createLicenseModel">Create vendor license model</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/VendorLicenseModelRequest">VendorLicenseModelRequest</a> 
    </td>

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |














## /v1.0/vendor-license-models/{vlmId}


### GET

<a id="getLicenseModel">Get vendor license model</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vlmId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor license model Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | <a href="#/definitions/VendorLicenseModelEntity">VendorLicenseModelEntity</a>|




### PUT

<a id="updateLicenseModel">Update vendor license model</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/VendorLicenseModelRequest">VendorLicenseModelRequest</a> 
    </td>

</tr>

<tr>
    <th>vlmId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor license model Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |






### DELETE

<a id="deleteLicenseModel">Delete vendor license model</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vlmId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor license model Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |











## /v1.0/vendor-license-models/{vlmId}/actions




### PUT

<a id="actOnLicenseModel">Update vendor license model</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/VendorLicenseModelActionRequestDto">VendorLicenseModelActionRequestDto</a> 
    </td>

</tr>

<tr>
    <th>vlmId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor license model Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |















## /v1.0/vendor-license-models/{vlmId}/entitlement-pools


### GET

<a id="listEntitlementPools">List vendor entitlement pools</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vlmId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor license model Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | Array[<a href="#/definitions/EntitlementPoolEntity">EntitlementPoolEntity</a>]|






### POST


<a id="createEntitlementPool">Create vendor entitlement pool</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/EntitlementPoolRequest">EntitlementPoolRequest</a> 
    </td>

</tr>

<tr>
    <th>vlmId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor license model Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |














## /v1.0/vendor-license-models/{vlmId}/entitlement-pools/{entitlementPoolId}


### GET

<a id="getEntitlementPool">Get vendor entitlement pool</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vlmId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor license model Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>entitlementPoolId</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | <a href="#/definitions/EntitlementPoolEntity">EntitlementPoolEntity</a>|




### PUT

<a id="updateEntitlementPool">Update vendor entitlement pool</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/EntitlementPoolRequest">EntitlementPoolRequest</a> 
    </td>

</tr>

<tr>
    <th>vlmId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor license model Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>entitlementPoolId</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |






### DELETE

<a id="deleteEntitlementPool">Delete vendor entitlement pool</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vlmId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor license model Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>entitlementPoolId</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |











## /v1.0/vendor-license-models/{vlmId}/feature-groups


### GET

<a id="listFeatureGroups">List vendor feature groups</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vlmId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor license model Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | Array[<a href="#/definitions/FeatureGroupEntity">FeatureGroupEntity</a>]|






### POST


<a id="createFeatureGroup">Create vendor feature group</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/FeatureGroupRequest">FeatureGroupRequest</a> 
    </td>

</tr>

<tr>
    <th>vlmId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor license model Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |














## /v1.0/vendor-license-models/{vlmId}/feature-groups/{featureGroupId}


### GET

<a id="getFeatureGroup">Get vendor feature group</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vlmId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor license model Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>featureGroupId</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | <a href="#/definitions/FeatureGroupModel">FeatureGroupModel</a>|




### PUT

<a id="updateFeatureGroup">Update vendor feature group</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/FeatureGroupUpdateRequest">FeatureGroupUpdateRequest</a> 
    </td>

</tr>

<tr>
    <th>vlmId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor license model Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>featureGroupId</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |






### DELETE

<a id="deleteFeatureGroup">Delete vendor feature group</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vlmId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor license model Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>featureGroupId</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |











## /v1.0/vendor-license-models/{vlmId}/license-agreements


### GET

<a id="listLicenseAgreements">List vendor license agreements</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vlmId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor license model Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | Array[<a href="#/definitions/LicenseAgreementEntity">LicenseAgreementEntity</a>]|






### POST


<a id="createLicenseAgreement">Create vendor license agreement</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/LicenseAgreementRequest">LicenseAgreementRequest</a> 
    </td>

</tr>

<tr>
    <th>vlmId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor license model Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |














## /v1.0/vendor-license-models/{vlmId}/license-agreements/{licenseAgreementId}


### GET

<a id="getLicenseAgreement">Get vendor license agreement</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vlmId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor license model Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>licenseAgreementId</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | <a href="#/definitions/LicenseAgreementModel">LicenseAgreementModel</a>|




### PUT

<a id="updateLicenseAgreement">Update vendor license agreement</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/LicenseAgreementUpdateRequest">LicenseAgreementUpdateRequest</a> 
    </td>

</tr>

<tr>
    <th>vlmId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor license model Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>licenseAgreementId</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |






### DELETE

<a id="deleteLicenseAgreement">Delete vendor license agreement</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vlmId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor license model Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>licenseAgreementId</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |











## /v1.0/vendor-license-models/{vlmId}/license-key-groups


### GET

<a id="listLicenseKeyGroups">List vendor license key groups</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vlmId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor license model Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | Array[<a href="#/definitions/LicenseKeyGroupEntityDto">LicenseKeyGroupEntityDto</a>]|






### POST


<a id="createLicenseKeyGroup">Create vendor license key group</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/LicenseKeyGroupRequestDto">LicenseKeyGroupRequestDto</a> 
    </td>

</tr>

<tr>
    <th>vlmId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor license model Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |














## /v1.0/vendor-license-models/{vlmId}/license-key-groups/{licenseKeyGroupId}


### GET

<a id="getLicenseKeyGroup">Get vendor license key group</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vlmId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor license model Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>licenseKeyGroupId</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | <a href="#/definitions/LicenseKeyGroupEntityDto">LicenseKeyGroupEntityDto</a>|




### PUT

<a id="updateLicenseKeyGroup">Update vendor license key group</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/LicenseKeyGroupRequestDto">LicenseKeyGroupRequestDto</a> 
    </td>

</tr>

<tr>
    <th>vlmId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor license model Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>licenseKeyGroupId</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |






### DELETE

<a id="deleteLicenseKeyGroup">Delete vendor license key group</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vlmId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor license model Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>licenseKeyGroupId</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |











## /v1.0/vendor-software-products


### GET

<a id="getVspList">Get list of vendor software products and their description</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>versionFilter</th>
    <td>query</td>
    <td>no</td>
    <td>Currently supported values: &#x27;Final&#x27; - only vendor software products with final version will be return - with their latest final version</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |






### POST


<a id="createNewVsp">Create a new vendor software product</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/VspDescriptionDto">VspDescriptionDto</a> 
    </td>

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | <a href="#/definitions/VspCreationDto">VspCreationDto</a>|














## /v1.0/vendor-software-products/packages


### GET

<a id="listPackages">Get list of translated CSAR files details</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>category</th>
    <td>query</td>
    <td>no</td>
    <td>Category</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>subCategory</th>
    <td>query</td>
    <td>no</td>
    <td>Sub-category</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | Array[<a href="#/definitions/PackageInfoDto">PackageInfoDto</a>]|

















## /v1.0/vendor-software-products/packages/{vspId}


### GET

<a id="getTranslatedFile">Get translated CSAR file</a>

Exports translated file to a zip file







#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/octet-stream


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | <a href="#/definitions/File">File</a>|

















## /v1.0/vendor-software-products/{vspId}


### GET

<a id="getVspDetails">Get details of a vendor software product</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |




### PUT

<a id="updateVsp">Update an existing vendor software product</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/VspDescriptionDto">VspDescriptionDto</a> 
    </td>

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |






### DELETE

<a id="deleteVsp">Deletes vendor software product by given id</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |











## /v1.0/vendor-software-products/{vspId}/actions




### PUT

<a id="actOnVendorSoftwareProduct">Actions on a vendor software product</a>

Performs one of the following actions on a vendor software product: |Checkout: Locks it for edits by other users. Only the locking user sees the edited version.|Undo_Checkout: Unlocks it and deletes the edits that were done.|Checkin: Unlocks it and activates the edited version to all users.| Submit: Finalize its active version.|Create_Package: Creates a CSAR zip file.|







#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/VersionSoftwareProductActionRequestDto">VersionSoftwareProductActionRequestDto</a> 
    </td>

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |















## /v1.0/vendor-software-products/{vspId}/components


### GET

<a id="list">List vendor software product components</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | Array[<a href="#/definitions/ComponentDto">ComponentDto</a>]|






### POST


<a id="create">Create a vendor software product component</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/ComponentRequestDto">ComponentRequestDto</a> 
    </td>

</tr>

<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |





### DELETE

<a id="deleteList">Delete vendor software product components</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |











## /v1.0/vendor-software-products/{vspId}/components/{componentId}


### GET

<a id="get">Get vendor software product component</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | <a href="#/definitions/ComponentData">ComponentData</a>|




### PUT

<a id="update">Update vendor software product component</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/ComponentRequestDto">ComponentRequestDto</a> 
    </td>

</tr>

<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |






### DELETE

<a id="delete">Delete vendor software product component</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |











## /v1.0/vendor-software-products/{vspId}/components/{componentId}/monitors/snmp


### GET

<a id="list">Get the filenames of uploaded MIB definitions</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | <a href="#/definitions/MibUploadStatusDto">MibUploadStatusDto</a>|








### DELETE

<a id="deletePollMibFile">Delete vendor software product MIB Poll Definitions file</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |











## /v1.0/vendor-software-products/{vspId}/components/{componentId}/monitors/snmp-trap








### DELETE

<a id="deleteTrapMibFile">Delete vendor software product MIB Trap Definitions file</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |











## /v1.0/vendor-software-products/{vspId}/components/{componentId}/monitors/snmp-trap/upload






### POST


<a id="uploadTrapMibFile">Upload vendor software product MIB Trap Definitions file</a>









#### Request


**Content-Type: ** multipart/form-data

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/Attachment">Attachment</a> 
    </td>

</tr>

<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |














## /v1.0/vendor-software-products/{vspId}/components/{componentId}/monitors/snmp/upload






### POST


<a id="uploadPollMibFile">Upload vendor software product MIB Poll Definitions file</a>









#### Request


**Content-Type: ** multipart/form-data

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/Attachment">Attachment</a> 
    </td>

</tr>

<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |














## /v1.0/vendor-software-products/{vspId}/components/{componentId}/nics


### GET

<a id="list">List vendor software product component NICs</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | Array[<a href="#/definitions/NicDto">NicDto</a>]|






### POST


<a id="create">Create a vendor software product NIC</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/NicRequestDto">NicRequestDto</a> 
    </td>

</tr>

<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |














## /v1.0/vendor-software-products/{vspId}/components/{componentId}/nics/{nicId}


### GET

<a id="get">Get vendor software product NIC</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>nicId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product NIC Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | <a href="#/definitions/NicDto">NicDto</a>|




### PUT

<a id="update">Update vendor software product NIC</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/NicRequestDto">NicRequestDto</a> 
    </td>

</tr>

<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>nicId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product NIC Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |






### DELETE

<a id="delete">Delete vendor software product NIC</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>nicId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product NIC Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |











## /v1.0/vendor-software-products/{vspId}/components/{componentId}/nics/{nicId}/questionnaire


### GET

<a id="getQuestionnaire">Get vendor software product component NIC questionnaire</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>nicId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product NIC Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | <a href="#/definitions/QuestionnaireResponseDto">QuestionnaireResponseDto</a>|




### PUT

<a id="updateQuestionnaire">Update vendor software product component NIC questionnaire</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    
    </td>

</tr>

<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>nicId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product NIC Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |















## /v1.0/vendor-software-products/{vspId}/components/{componentId}/processes


### GET

<a id="list">List vendor software product component processes</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | Array[<a href="#/definitions/ProcessEntityDto">ProcessEntityDto</a>]|






### POST


<a id="create">Create a vendor software product process</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/ProcessRequestDto">ProcessRequestDto</a> 
    </td>

</tr>

<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |





### DELETE

<a id="deleteList">Delete vendor software product processes</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |











## /v1.0/vendor-software-products/{vspId}/components/{componentId}/processes/{processId}


### GET

<a id="get">Get vendor software product process</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>processId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product process Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | <a href="#/definitions/ProcessEntityDto">ProcessEntityDto</a>|




### PUT

<a id="update">Update vendor software product process</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/ProcessRequestDto">ProcessRequestDto</a> 
    </td>

</tr>

<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>processId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product process Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |






### DELETE

<a id="delete">Delete vendor software product process</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>processId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product process Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |











## /v1.0/vendor-software-products/{vspId}/components/{componentId}/processes/{processId}/upload


### GET

<a id="getUploadedFile">Get vendor software product process uploaded file</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>processId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product process Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/octet-stream


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |






### POST


<a id="uploadFile">Update vendor software product process upload</a>









#### Request


**Content-Type: ** multipart/form-data

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/Attachment">Attachment</a> 
    </td>

</tr>

<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>processId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product process Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |





### DELETE

<a id="deleteUploadedFile">Delete vendor software product process uploaded file</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>processId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product process Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |











## /v1.0/vendor-software-products/{vspId}/components/{componentId}/questionnaire


### GET

<a id="getQuestionnaire">Get vendor software product component questionnaire</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | <a href="#/definitions/QuestionnaireResponseDto">QuestionnaireResponseDto</a>|




### PUT

<a id="updateQuestionnaire">Update vendor software product component questionnaire</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    
    </td>

</tr>

<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product component Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |















## /v1.0/vendor-software-products/{vspId}/downloadHeat


### GET

<a id="getLatestHeatPackage">Get uploaded HEAT file</a>

Downloads the latest HEAT package







#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/octet-stream


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | <a href="#/definitions/File">File</a>|

















## /v1.0/vendor-software-products/{vspId}/networks


### GET

<a id="list">List vendor software product networks</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | Array[<a href="#/definitions/NetworkDto">NetworkDto</a>]|






### POST


<a id="create">Create a vendor software product network</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/NetworkRequestDto">NetworkRequestDto</a> 
    </td>

</tr>

<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |














## /v1.0/vendor-software-products/{vspId}/networks/{networkId}


### GET

<a id="get">Get vendor software product network</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>networkId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product network Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | <a href="#/definitions/NetworkDto">NetworkDto</a>|




### PUT

<a id="update">Update vendor software product network</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/NetworkRequestDto">NetworkRequestDto</a> 
    </td>

</tr>

<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>networkId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product network Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |






### DELETE

<a id="delete">Delete vendor software product network</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>networkId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product network Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |











## /v1.0/vendor-software-products/{vspId}/processes


### GET

<a id="list">List vendor software product processes</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | Array[<a href="#/definitions/ProcessEntityDto">ProcessEntityDto</a>]|






### POST


<a id="create">Create a vendor software product process</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/ProcessRequestDto">ProcessRequestDto</a> 
    </td>

</tr>

<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |





### DELETE

<a id="deleteList">Delete vendor software product processes</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |











## /v1.0/vendor-software-products/{vspId}/processes/{processId}


### GET

<a id="get">Get vendor software product process</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>processId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product process Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | <a href="#/definitions/ProcessEntityDto">ProcessEntityDto</a>|




### PUT

<a id="update">Update vendor software product process</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/ProcessRequestDto">ProcessRequestDto</a> 
    </td>

</tr>

<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>processId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product process Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |






### DELETE

<a id="delete">Delete vendor software product process</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>processId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product process Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |











## /v1.0/vendor-software-products/{vspId}/processes/{processId}/upload


### GET

<a id="getUploadedFile">Get vendor software product process uploaded file</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>processId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product process Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/octet-stream


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |






### POST


<a id="uploadFile">Update vendor software product process upload</a>









#### Request


**Content-Type: ** multipart/form-data

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/Attachment">Attachment</a> 
    </td>

</tr>

<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>processId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product process Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |





### DELETE

<a id="deleteUploadedFile">Delete vendor software product process uploaded file</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>processId</th>
    <td>path</td>
    <td>yes</td>
    <td>Vendor software product process Id</td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |











## /v1.0/vendor-software-products/{vspId}/questionnaire


### GET

<a id="getQuestionnaire">Get vendor software product questionnaire</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | <a href="#/definitions/QuestionnaireResponseDto">QuestionnaireResponseDto</a>|




### PUT

<a id="updateQuestionnaire">Update vendor software product questionnaire</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    
    </td>

</tr>

<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |















## /v1.0/vendor-software-products/{vspId}/upload






### POST


<a id="uploadFile">Uploads a HEAT package to translate</a>









#### Request


**Content-Type: ** multipart/form-data

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vspId</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/InputStream">InputStream</a> 
    </td>

</tr>

<tr>
    <th>USER_ID</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| 200    | successful operation | <a href="#/definitions/UploadFileResponseDto">UploadFileResponseDto</a>|














## /workflow/v1.0/actions


### GET

<a id="getFilteredActions">List Filtered Actions </a>

Get list of actions based on a filter criteria | If no filter is sent all actions will be returned







#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>vendor</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>category</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>name</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>modelId</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>componentId</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |






### POST


<a id="createAction">Create a new Action</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    
    </td>

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |














## /workflow/v1.0/actions/components


### GET

<a id="getEcompComponents">List ECOMP Components supported by Action Library</a>









#### Request


**Content-Type: ** application/json

##### Parameters






#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |

















## /workflow/v1.0/actions/{actionInvariantUUID}


### GET

<a id="getActionsByActionInvariantUuId">List Actions For Given Action Invariant UUID</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>actionInvariantUUID</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>version</th>
    <td>query</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |




### PUT

<a id="updateAction">Update an existing action</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>actionInvariantUUID</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    
    </td>

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |




### POST


<a id="actOnAction">Actions on a action</a>

Performs one of the following actions on a action: |Checkout: Locks it for edits by other users. Only the locking user sees the edited version.|Undo_Checkout: Unlocks it and deletes the edits that were done.|Checkin: Unlocks it and activates the edited version to all users.| Submit: Finalize its active version.|







#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>actionInvariantUUID</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    
    </td>

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |





### DELETE

<a id="deleteAction">Delete Action</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>actionInvariantUUID</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |











## /workflow/v1.0/actions/{actionInvariantUUID}/artifacts






### POST


<a id="uploadArtifact">Upload new Artifact</a>









#### Request


**Content-Type: ** multipart/form-data

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>actionInvariantUUID</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    
    </td>

</tr>

<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    
    </td>

</tr>

<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    
    </td>

</tr>

<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    
    </td>

</tr>

<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    
    </td>

</tr>

<tr>
    <th>Content-MD5</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/Attachment">Attachment</a> 
    </td>

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |














## /workflow/v1.0/actions/{actionInvariantUUID}/artifacts/{artifactUUID}




### PUT

<a id="updateArtifact">Update an existing artifact</a>









#### Request


**Content-Type: ** multipart/form-data

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>actionInvariantUUID</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>artifactUUID</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    
    </td>

</tr>

<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    
    </td>

</tr>

<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    
    </td>

</tr>

<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    
    </td>

</tr>

<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    
    </td>

</tr>

<tr>
    <th>Content-MD5</th>
    <td>header</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>body</th>
    <td>body</td>
    <td>no</td>
    <td></td>
    <td> - </td>

    <td>
    
    <a href="#/definitions/Attachment">Attachment</a> 
    </td>

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |






### DELETE

<a id="deleteArtifact">Delete Artifact</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>actionInvariantUUID</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>artifactUUID</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/json


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |











## /workflow/v1.0/actions/{actionUUID}/artifacts/{artifactUUID}


### GET

<a id="downloadArtifact">Downloads artifact for action</a>









#### Request


**Content-Type: ** application/json

##### Parameters

<table border="1">
    <tr>
        <th>Name</th>
        <th>Located in</th>
        <th>Required</th>
        <th>Description</th>
        <th>Default</th>
        <th>Schema</th>
    </tr>



<tr>
    <th>actionUUID</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>

<tr>
    <th>artifactUUID</th>
    <td>path</td>
    <td>yes</td>
    <td></td>
    <td> - </td>

    
            <td>string </td>
    

</tr>


</table>



#### Response

**Content-Type: ** application/octet-stream


| Status Code | Reason      | Response Model |
|-------------|-------------|----------------|
| default    | successful operation |  - |


















# Definitions

## <a name="/definitions/Attachment">Attachment</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>headers</td>
            <td>
                
                    
                    object
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>object</td>
            <td>
                
                    
                    object
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>contentType</td>
            <td>
                
                    <a href="#/definitions/MediaType">MediaType</a>
                    
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>contentId</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>contentDisposition</td>
            <td>
                
                    <a href="#/definitions/ContentDisposition">ContentDisposition</a>
                    
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>dataHandler</td>
            <td>
                
                    <a href="#/definitions/DataHandler">DataHandler</a>
                    
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/ChoiceOrOtherDtoAggregationFunction">ChoiceOrOtherDtoAggregationFunction</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>choice</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>other</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/ChoiceOrOtherDtoEntitlementMetric">ChoiceOrOtherDtoEntitlementMetric</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>choice</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>other</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/ChoiceOrOtherDtoEntitlementTime">ChoiceOrOtherDtoEntitlementTime</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>choice</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>other</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/ChoiceOrOtherDtoLicenseTerm">ChoiceOrOtherDtoLicenseTerm</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>choice</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>other</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/CommandInfo">CommandInfo</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>commandClass</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>commandName</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/ComponentData">ComponentData</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>description</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>displayName</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/ComponentDto">ComponentDto</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>displayName</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>description</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>id</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/ComponentRequestDto">ComponentRequestDto</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>displayName</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>description</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/ConfigurationDataDto">ConfigurationDataDto</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>value</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>timeStamp</td>
            <td>
                
                    
                    integer (int64)
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/ContentDisposition">ContentDisposition</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>type</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>parameters</td>
            <td>
                
                    
                    object
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>filename</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/DataFlavor">DataFlavor</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>mimeType</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>humanPresentableName</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>subType</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>defaultRepresentationClassAsString</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>primaryType</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>flavorJavaFileListType</td>
            <td>
                
                    
                    boolean
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>flavorRemoteObjectType</td>
            <td>
                
                    
                    boolean
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>flavorSerializedObjectType</td>
            <td>
                
                    
                    boolean
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>flavorTextType</td>
            <td>
                
                    
                    boolean
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>mimeTypeSerializedObject</td>
            <td>
                
                    
                    boolean
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>representationClassByteBuffer</td>
            <td>
                
                    
                    boolean
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>representationClassCharBuffer</td>
            <td>
                
                    
                    boolean
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>representationClassInputStream</td>
            <td>
                
                    
                    boolean
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>representationClassReader</td>
            <td>
                
                    
                    boolean
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>representationClassRemote</td>
            <td>
                
                    
                    boolean
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>representationClassSerializable</td>
            <td>
                
                    
                    boolean
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/DataHandler">DataHandler</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>dataSource</td>
            <td>
                
                    <a href="#/definitions/DataSource">DataSource</a>
                    
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>inputStream</td>
            <td>
                
                    <a href="#/definitions/InputStream">InputStream</a>
                    
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>content</td>
            <td>
                
                    
                    object
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>contentType</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>outputStream</td>
            <td>
                
                    <a href="#/definitions/OutputStream">OutputStream</a>
                    
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>allCommands</td>
            <td>
                
                
                    array[<a href="#/definitions/CommandInfo">CommandInfo</a>]
                
                
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>preferredCommands</td>
            <td>
                
                
                    array[<a href="#/definitions/CommandInfo">CommandInfo</a>]
                
                
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>transferDataFlavors</td>
            <td>
                
                
                    array[<a href="#/definitions/DataFlavor">DataFlavor</a>]
                
                
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/DataSource">DataSource</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>inputStream</td>
            <td>
                
                    <a href="#/definitions/InputStream">InputStream</a>
                    
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>contentType</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>outputStream</td>
            <td>
                
                    <a href="#/definitions/OutputStream">OutputStream</a>
                    
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/EntitlementPoolEntity">EntitlementPoolEntity</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>description</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>thresholdValue</td>
            <td>
                
                    
                    integer (int32)
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>thresholdUnits</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>entitlementMetric</td>
            <td>
                
                    <a href="#/definitions/ChoiceOrOtherDtoEntitlementMetric">ChoiceOrOtherDtoEntitlementMetric</a>
                    
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>increments</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>aggregationFunction</td>
            <td>
                
                    <a href="#/definitions/ChoiceOrOtherDtoAggregationFunction">ChoiceOrOtherDtoAggregationFunction</a>
                    
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>operationalScope</td>
            <td>
                
                    <a href="#/definitions/MultiChoiceOrOtherDtoOperationalScope">MultiChoiceOrOtherDtoOperationalScope</a>
                    
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>time</td>
            <td>
                
                    <a href="#/definitions/ChoiceOrOtherDtoEntitlementTime">ChoiceOrOtherDtoEntitlementTime</a>
                    
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>manufacturerReferenceNumber</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>id</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>referencingFeatureGroups</td>
            <td>
                
                
                array[string]
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/EntitlementPoolRequest">EntitlementPoolRequest</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>description</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>thresholdValue</td>
            <td>
                
                    
                    integer (int32)
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>thresholdUnits</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>entitlementMetric</td>
            <td>
                
                    <a href="#/definitions/ChoiceOrOtherDtoEntitlementMetric">ChoiceOrOtherDtoEntitlementMetric</a>
                    
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>increments</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>aggregationFunction</td>
            <td>
                
                    <a href="#/definitions/ChoiceOrOtherDtoAggregationFunction">ChoiceOrOtherDtoAggregationFunction</a>
                    
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>operationalScope</td>
            <td>
                
                    <a href="#/definitions/MultiChoiceOrOtherDtoOperationalScope">MultiChoiceOrOtherDtoOperationalScope</a>
                    
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>time</td>
            <td>
                
                    <a href="#/definitions/ChoiceOrOtherDtoEntitlementTime">ChoiceOrOtherDtoEntitlementTime</a>
                    
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>manufacturerReferenceNumber</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/ErrorMessage">ErrorMessage</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>level</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>message</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/FeatureGroupEntity">FeatureGroupEntity</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>description</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>partNumber</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>id</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>licenseKeyGroupsIds</td>
            <td>
                
                
                array[string]
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>entitlementPoolsIds</td>
            <td>
                
                
                array[string]
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>referencingLicenseAgreements</td>
            <td>
                
                
                array[string]
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/FeatureGroupModel">FeatureGroupModel</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>description</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>partNumber</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>id</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>referencingLicenseAgreements</td>
            <td>
                
                
                array[string]
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>licenseKeyGroups</td>
            <td>
                
                
                    array[<a href="#/definitions/LicenseKeyGroupEntityDto">LicenseKeyGroupEntityDto</a>]
                
                
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>entitlementPools</td>
            <td>
                
                
                    array[<a href="#/definitions/EntitlementPoolEntity">EntitlementPoolEntity</a>]
                
                
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/FeatureGroupRequest">FeatureGroupRequest</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>description</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>partNumber</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>addedLicenseKeyGroupsIds</td>
            <td>
                
                
                array[string]
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>addedEntitlementPoolsIds</td>
            <td>
                
                
                array[string]
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/FeatureGroupUpdateRequest">FeatureGroupUpdateRequest</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>description</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>partNumber</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>addedLicenseKeyGroupsIds</td>
            <td>
                
                
                array[string]
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>addedEntitlementPoolsIds</td>
            <td>
                
                
                array[string]
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>removedLicenseKeyGroupsIds</td>
            <td>
                
                
                array[string]
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>removedEntitlementPoolsIds</td>
            <td>
                
                
                array[string]
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/File">File</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>path</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>canonicalPath</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>parent</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>absolute</td>
            <td>
                
                    
                    boolean
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>absoluteFile</td>
            <td>
                
                    <a href="#/definitions/File">File</a>
                    
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>absolutePath</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>canonicalFile</td>
            <td>
                
                    <a href="#/definitions/File">File</a>
                    
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>freeSpace</td>
            <td>
                
                    
                    integer (int64)
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>parentFile</td>
            <td>
                
                    <a href="#/definitions/File">File</a>
                    
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>totalSpace</td>
            <td>
                
                    
                    integer (int64)
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>usableSpace</td>
            <td>
                
                    
                    integer (int64)
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>directory</td>
            <td>
                
                    
                    boolean
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>file</td>
            <td>
                
                    
                    boolean
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>hidden</td>
            <td>
                
                    
                    boolean
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/InputStream">InputStream</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
</table>

## <a name="/definitions/LicenseAgreementEntity">LicenseAgreementEntity</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>description</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>licenseTerm</td>
            <td>
                
                    <a href="#/definitions/ChoiceOrOtherDtoLicenseTerm">ChoiceOrOtherDtoLicenseTerm</a>
                    
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>requirementsAndConstrains</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>id</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>featureGroupsIds</td>
            <td>
                
                
                array[string]
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/LicenseAgreementModel">LicenseAgreementModel</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>description</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>licenseTerm</td>
            <td>
                
                    <a href="#/definitions/ChoiceOrOtherDtoLicenseTerm">ChoiceOrOtherDtoLicenseTerm</a>
                    
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>requirementsAndConstrains</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>id</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>featureGroups</td>
            <td>
                
                
                    array[<a href="#/definitions/FeatureGroupEntity">FeatureGroupEntity</a>]
                
                
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/LicenseAgreementRequest">LicenseAgreementRequest</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>description</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>licenseTerm</td>
            <td>
                
                    <a href="#/definitions/ChoiceOrOtherDtoLicenseTerm">ChoiceOrOtherDtoLicenseTerm</a>
                    
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>requirementsAndConstrains</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>addedFeatureGroupsIds</td>
            <td>
                
                
                array[string]
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/LicenseAgreementUpdateRequest">LicenseAgreementUpdateRequest</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>description</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>licenseTerm</td>
            <td>
                
                    <a href="#/definitions/ChoiceOrOtherDtoLicenseTerm">ChoiceOrOtherDtoLicenseTerm</a>
                    
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>requirementsAndConstrains</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>addedFeatureGroupsIds</td>
            <td>
                
                
                array[string]
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>removedFeatureGroupsIds</td>
            <td>
                
                
                array[string]
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/LicenseKeyGroupEntityDto">LicenseKeyGroupEntityDto</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>description</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>type</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>operationalScope</td>
            <td>
                
                    <a href="#/definitions/MultiChoiceOrOtherDtoOperationalScope">MultiChoiceOrOtherDtoOperationalScope</a>
                    
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>id</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>referencingFeatureGroups</td>
            <td>
                
                
                array[string]
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/LicenseKeyGroupRequestDto">LicenseKeyGroupRequestDto</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>description</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>type</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>operationalScope</td>
            <td>
                
                    <a href="#/definitions/MultiChoiceOrOtherDtoOperationalScope">MultiChoiceOrOtherDtoOperationalScope</a>
                    
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/LicensingData">LicensingData</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>licenseAgreement</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>featureGroups</td>
            <td>
                
                
                array[string]
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/MediaType">MediaType</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>type</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>subtype</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>parameters</td>
            <td>
                
                    
                    object
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>wildcardType</td>
            <td>
                
                    
                    boolean
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>wildcardSubtype</td>
            <td>
                
                    
                    boolean
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/MibUploadStatusDto">MibUploadStatusDto</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>snmpTrap</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>snmpPoll</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/MultiChoiceOrOtherDtoOperationalScope">MultiChoiceOrOtherDtoOperationalScope</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>choices</td>
            <td>
                
                
                array[string]
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>other</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/NetworkDto">NetworkDto</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>dhcp</td>
            <td>
                
                    
                    boolean
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>id</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/NetworkRequestDto">NetworkRequestDto</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>dhcp</td>
            <td>
                
                    
                    boolean
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/NicDto">NicDto</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>description</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>networkId</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>id</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>networkName</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/NicRequestDto">NicRequestDto</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>description</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>networkId</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/OutputStream">OutputStream</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
</table>

## <a name="/definitions/PackageInfoDto">PackageInfoDto</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>displayName</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>description</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>vspName</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>version</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>packageId</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>category</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>subCategory</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>vendorName</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>vendorRelease</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>packageChecksum</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>packageType</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/ProcessEntityDto">ProcessEntityDto</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>description</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>id</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>artifactName</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/ProcessRequestDto">ProcessRequestDto</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>description</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/QuestionnaireResponseDto">QuestionnaireResponseDto</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>schema</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>data</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/UploadFileResponseDto">UploadFileResponseDto</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>fileNames</td>
            <td>
                
                
                array[string]
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>errors</td>
            <td>
                
                    
                    object
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>status</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/VendorLicenseModelActionRequestDto">VendorLicenseModelActionRequestDto</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>action</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/VendorLicenseModelEntity">VendorLicenseModelEntity</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>vendorName</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>description</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>iconRef</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>id</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>version</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>status</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>lockingUser</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>viewableVersions</td>
            <td>
                
                
                array[string]
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>finalVersions</td>
            <td>
                
                
                array[string]
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/VendorLicenseModelRequest">VendorLicenseModelRequest</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>vendorName</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>description</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>iconRef</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/VersionSoftwareProductActionRequestDto">VersionSoftwareProductActionRequestDto</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>action</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/VspCreationDto">VspCreationDto</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>vspId</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

## <a name="/definitions/VspDescriptionDto">VspDescriptionDto</a>

<table border="1">
    <tr>
        <th>name</th>
        <th>type</th>
        <th>required</th>
        <th>description</th>
        <th>example</th>
    </tr>
    
        <tr>
            <td>name</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>description</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>icon</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>category</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>subCategory</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>vendorName</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>vendorId</td>
            <td>
                
                    
                    string
                
            </td>
            <td>required</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>licensingVersion</td>
            <td>
                
                    
                    string
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
        <tr>
            <td>licensingData</td>
            <td>
                
                    <a href="#/definitions/LicensingData">LicensingData</a>
                    
                
            </td>
            <td>optional</td>
            <td>-</td>
            <td></td>
        </tr>
    
</table>

</xmp>

<script src="http://strapdownjs.com/v/0.2/strapdown.js"></script>
</html>