summaryrefslogtreecommitdiffstats
path: root/northbound/asdcApi
diff options
context:
space:
mode:
Diffstat (limited to 'northbound/asdcApi')
-rwxr-xr-xnorthbound/asdcApi/.gitignore34
-rwxr-xr-xnorthbound/asdcApi/installer/pom.xml134
-rw-r--r--northbound/asdcApi/installer/src/assembly/assemble_installer_zip.xml59
-rw-r--r--northbound/asdcApi/installer/src/assembly/assemble_mvnrepo_zip.xml47
-rw-r--r--northbound/asdcApi/installer/src/main/resources/scripts/install-feature.sh39
-rwxr-xr-xnorthbound/asdcApi/model/pom.xml32
-rw-r--r--northbound/asdcApi/model/src/main/resources/asdc-api.20170201.json3254
-rwxr-xr-xnorthbound/asdcApi/model/src/main/yang/ASDC-API.yang63
-rwxr-xr-xnorthbound/asdcApi/model/src/main/yang/asdc-api-common.yang53
-rwxr-xr-xnorthbound/asdcApi/model/src/main/yang/asdc-license-model.yang369
-rwxr-xr-xnorthbound/asdcApi/pom.xml28
-rwxr-xr-xnorthbound/asdcApi/provider/pom.xml95
-rw-r--r--northbound/asdcApi/provider/src/main/java/org/onap/ccsdk/sli/northbound/asdcapi/AsdcApiProvider.java379
-rw-r--r--northbound/asdcApi/provider/src/main/java/org/onap/ccsdk/sli/northbound/asdcapi/AsdcApiSliClient.java97
-rw-r--r--northbound/asdcApi/provider/src/main/java/org/onap/ccsdk/sli/northbound/asdcapi/AsdcApiUtil.java48
-rw-r--r--northbound/asdcApi/provider/src/main/resources/OSGI-INF/blueprint/asdc-blueprint.xml32
-rw-r--r--northbound/asdcApi/provider/src/main/resources/org/opendaylight/blueprint/asdc-blueprint.xml32
-rw-r--r--northbound/asdcApi/provider/src/test/java/org/onap/ccsdk/sli/northbound/asdcapi/AsdcApiSliClientTest.java59
-rw-r--r--northbound/asdcApi/provider/src/test/java/org/onap/ccsdk/sli/northbound/asdcapi/AsdcApiUtilTest.java15
-rw-r--r--northbound/asdcApi/provider/src/test/java/org/onap/ccsdk/sli/northbound/asdcapi/TestAsdcApiApi.java136
20 files changed, 5005 insertions, 0 deletions
diff --git a/northbound/asdcApi/.gitignore b/northbound/asdcApi/.gitignore
new file mode 100755
index 000000000..b73caf31e
--- /dev/null
+++ b/northbound/asdcApi/.gitignore
@@ -0,0 +1,34 @@
+#####standard .git ignore entries#####
+
+## IDE Specific Files ##
+org.eclipse.core.resources.prefs
+.classpath
+.project
+.settings
+.idea
+.externalToolBuilders
+maven-eclipse.xml
+workspace
+
+## Compilation Files ##
+*.class
+**/target
+target
+target-ide
+MANIFEST.MF
+
+## Misc Ignores (OS specific etc) ##
+bin/
+dist
+*~
+*.ipr
+*.iml
+*.iws
+classes
+out/
+.DS_STORE
+.metadata
+
+## Folders which contain auto generated source code ##
+yang-gen-config
+yang-gen-sal
diff --git a/northbound/asdcApi/installer/pom.xml b/northbound/asdcApi/installer/pom.xml
new file mode 100755
index 000000000..bbdeb0cba
--- /dev/null
+++ b/northbound/asdcApi/installer/pom.xml
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>odlparent-lite</artifactId>
+ <version>2.1.0</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.sli.northbound</groupId>
+ <artifactId>asdcApi-installer</artifactId>
+ <version>1.1.1-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <name>ccsdk-sli-northbound :: asdcApi :: ${project.artifactId}</name>
+
+ <properties>
+ <application.name>ccsdk-asdcApi</application.name>
+ <features.boot>${application.name}</features.boot>
+ <features.repositories>mvn:org.onap.ccsdk.sli.northbound/${features.boot}/${project.version}/xml/features</features.repositories>
+ <include.transitive.dependencies>false</include.transitive.dependencies>
+ </properties>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.northbound</groupId>
+ <artifactId>asdcApi-model</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.northbound</groupId>
+ <artifactId>asdcApi-provider</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>2.6</version>
+ <executions>
+ <execution>
+ <id>maven-repo-zip</id>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <attach>true</attach>
+ <finalName>stage/${application.name}-${project.version}</finalName>
+ <descriptors>
+ <descriptor>src/assembly/assemble_mvnrepo_zip.xml</descriptor>
+ </descriptors>
+ <appendAssemblyId>true</appendAssemblyId>
+ </configuration>
+ </execution>
+ <execution>
+ <id>installer-zip</id>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <attach>true</attach>
+ <finalName>${application.name}-${project.version}-installer</finalName>
+ <descriptors>
+ <descriptor>src/assembly/assemble_installer_zip.xml</descriptor>
+ </descriptors>
+ <appendAssemblyId>false</appendAssemblyId>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-dependencies</id>
+ <goals>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <phase>prepare-package</phase>
+ <configuration>
+ <transitive>false</transitive>
+ <outputDirectory>${project.build.directory}/assembly/system</outputDirectory>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>true</overWriteSnapshots>
+ <overWriteIfNewer>true</overWriteIfNewer>
+ <useRepositoryLayout>true</useRepositoryLayout>
+ <addParentPoms>false</addParentPoms>
+ <copyPom>false</copyPom>
+ <includeGroupIds>org.onap.ccsdk.sli.northbound</includeGroupIds>
+ <scope>provided</scope>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>2.6</version>
+ <executions>
+ <execution>
+ <id>copy-version</id>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals><!-- here the phase you need -->
+ <phase>validate</phase>
+ <configuration>
+ <outputDirectory>${basedir}/target/stage</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/resources/scripts</directory>
+ <includes>
+ <include>install-feature.sh</include>
+ </includes>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+
+ </executions>
+ </plugin>
+
+ </plugins>
+ </build>
+</project>
diff --git a/northbound/asdcApi/installer/src/assembly/assemble_installer_zip.xml b/northbound/asdcApi/installer/src/assembly/assemble_installer_zip.xml
new file mode 100644
index 000000000..3bed4b5ef
--- /dev/null
+++ b/northbound/asdcApi/installer/src/assembly/assemble_installer_zip.xml
@@ -0,0 +1,59 @@
+<!--
+ ============LICENSE_START=======================================================
+ openECOMP : SDN-C
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights
+ reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END=========================================================
+ -->
+
+<!-- Defines how we build the .zip file which is our distribution. -->
+
+<assembly
+ xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
+ <id>installer_zip</id>
+ <formats>
+ <format>zip</format>
+ </formats>
+
+ <!-- we want "system" and related files right at the root level
+ as this file is suppose to be unzip on top of a karaf
+ distro. -->
+ <includeBaseDirectory>false</includeBaseDirectory>
+
+ <fileSets>
+ <fileSet>
+ <directory>target/stage/</directory>
+ <outputDirectory>${application.name}</outputDirectory>
+ <fileMode>755</fileMode>
+ <includes>
+ <include>*.sh</include>
+ </includes>
+ </fileSet>
+ <fileSet>
+ <directory>target/stage/</directory>
+ <outputDirectory>${application.name}</outputDirectory>
+ <fileMode>644</fileMode>
+ <excludes>
+ <exclude>*.sh</exclude>
+ </excludes>
+ </fileSet>
+ </fileSets>
+
+
+
+</assembly>
diff --git a/northbound/asdcApi/installer/src/assembly/assemble_mvnrepo_zip.xml b/northbound/asdcApi/installer/src/assembly/assemble_mvnrepo_zip.xml
new file mode 100644
index 000000000..479896182
--- /dev/null
+++ b/northbound/asdcApi/installer/src/assembly/assemble_mvnrepo_zip.xml
@@ -0,0 +1,47 @@
+<!--
+ ============LICENSE_START=======================================================
+ openECOMP : SDN-C
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights
+ reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END=========================================================
+ -->
+
+<!-- Defines how we build the .zip file which is our distribution. -->
+
+<assembly
+ xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
+ <id>repo</id>
+ <formats>
+ <format>zip</format>
+ </formats>
+
+ <!-- we want "system" and related files right at the root level
+ as this file is suppose to be unzip on top of a karaf
+ distro. -->
+ <includeBaseDirectory>false</includeBaseDirectory>
+
+ <fileSets>
+ <fileSet>
+ <directory>target/assembly/</directory>
+ <outputDirectory>.</outputDirectory>
+ <excludes>
+ </excludes>
+ </fileSet>
+ </fileSets>
+
+</assembly>
diff --git a/northbound/asdcApi/installer/src/main/resources/scripts/install-feature.sh b/northbound/asdcApi/installer/src/main/resources/scripts/install-feature.sh
new file mode 100644
index 000000000..cee4a4952
--- /dev/null
+++ b/northbound/asdcApi/installer/src/main/resources/scripts/install-feature.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+###
+# ============LICENSE_START=======================================================
+# openECOMP : SDN-C
+# ================================================================================
+# Copyright (C) 2017 AT&T Intellectual Property. All rights
+# reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+###
+
+ODL_HOME=${ODL_HOME:-/opt/opendaylight/current}
+ODL_KARAF_CLIENT=${ODL_KARAF_CLIENT:-${ODL_HOME}/bin/client}
+INSTALLERDIR=$(dirname $0)
+
+REPOZIP=${INSTALLERDIR}/${features.boot}-${project.version}.zip
+
+if [ -f ${REPOZIP} ]
+then
+ unzip -d ${ODL_HOME} ${REPOZIP}
+else
+ echo "ERROR : repo zip ($REPOZIP) not found"
+ exit 1
+fi
+
+${ODL_KARAF_CLIENT} feature:repo-add ${features.repositories}
+${ODL_KARAF_CLIENT} feature:install ${features.boot}
diff --git a/northbound/asdcApi/model/pom.xml b/northbound/asdcApi/model/pom.xml
new file mode 100755
index 000000000..53fed3587
--- /dev/null
+++ b/northbound/asdcApi/model/pom.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>binding-parent</artifactId>
+ <version>2.1.0</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.sli.northbound</groupId>
+ <artifactId>asdcApi-model</artifactId>
+ <version>1.1.1-SNAPSHOT</version>
+ <packaging>bundle</packaging>
+
+ <name>ccsdk-sli-northbound :: asdcApi :: ${project.artifactId}</name>
+
+ <properties>
+ <ccsdk.sli.northbound.version>${project.version}</ccsdk.sli.northbound.version>
+ </properties>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
+ <artifactId>rfc6991</artifactId>
+ </dependency>
+
+
+ </dependencies>
+</project>
diff --git a/northbound/asdcApi/model/src/main/resources/asdc-api.20170201.json b/northbound/asdcApi/model/src/main/resources/asdc-api.20170201.json
new file mode 100644
index 000000000..7bf27da82
--- /dev/null
+++ b/northbound/asdcApi/model/src/main/resources/asdc-api.20170201.json
@@ -0,0 +1,3254 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "1.0.0"
+ },
+ "basePath": "/restconf",
+ "paths": {
+ "/config": {
+ "post": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "**(config)artifacts",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API(config)artifacts-TOP"
+ }
+ },
+ {
+ "in": "body",
+ "name": "**(config)vf-license-model-versions",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API(config)vf-license-model-versions-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)ASDC-API_modulePOST"
+ }
+ }
+ },
+ "description": "SDC Interface",
+ "operationId": "POST-ASDC-API_module"
+ }
+ },
+ "/config/ASDC-API:artifacts": {
+ "delete": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified"
+ }
+ },
+ "operationId": "DELETE-artifacts"
+ },
+ "get": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)artifacts"
+ }
+ }
+ },
+ "operationId": "GET-artifacts"
+ },
+ "post": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "**(config)artifact",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/artifacts(config)artifact-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)artifactsPOST"
+ }
+ }
+ },
+ "operationId": "POST-artifacts"
+ },
+ "put": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "(config)artifacts",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API(config)artifacts-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/ASDC-API(config)artifacts-TOP"
+ }
+ }
+ },
+ "operationId": "PUT-artifacts"
+ }
+ },
+ "/config/ASDC-API:artifacts/artifact/{artifact-name}/{artifact-version}": {
+ "delete": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Name of artifact",
+ "in": "path",
+ "name": "artifact-name",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified"
+ }
+ },
+ "operationId": "DELETE-artifact"
+ },
+ "get": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Name of artifact",
+ "in": "path",
+ "name": "artifact-name",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)artifact"
+ }
+ }
+ },
+ "operationId": "GET-artifact"
+ },
+ "put": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Name of artifact",
+ "in": "path",
+ "name": "artifact-name",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "(config)artifact",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/artifacts(config)artifact-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/artifacts(config)artifact-TOP"
+ }
+ }
+ },
+ "operationId": "PUT-artifact"
+ }
+ },
+ "/config/ASDC-API:vf-license-model-versions": {
+ "delete": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified"
+ }
+ },
+ "operationId": "DELETE-vf-license-model-versions"
+ },
+ "get": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)vf-license-model-versions"
+ }
+ }
+ },
+ "operationId": "GET-vf-license-model-versions"
+ },
+ "post": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "**(config)vf-license-model-version",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions(config)vf-license-model-version-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)vf-license-model-versionsPOST"
+ }
+ }
+ },
+ "operationId": "POST-vf-license-model-versions"
+ },
+ "put": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "(config)vf-license-model-versions",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API(config)vf-license-model-versions-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/ASDC-API(config)vf-license-model-versions-TOP"
+ }
+ }
+ },
+ "operationId": "PUT-vf-license-model-versions"
+ }
+ },
+ "/config/ASDC-API:vf-license-model-versions/vf-license-model-version/{artifact-version}": {
+ "delete": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified"
+ }
+ },
+ "operationId": "DELETE-vf-license-model-version"
+ },
+ "get": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)vf-license-model-version"
+ }
+ }
+ },
+ "operationId": "GET-vf-license-model-version"
+ },
+ "post": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "**(config)vf-license-model",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version(config)vf-license-model-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)vf-license-model-versionPOST"
+ }
+ }
+ },
+ "operationId": "POST-vf-license-model-version"
+ },
+ "put": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "(config)vf-license-model-version",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions(config)vf-license-model-version-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions(config)vf-license-model-version-TOP"
+ }
+ }
+ },
+ "operationId": "PUT-vf-license-model-version"
+ }
+ },
+ "/config/ASDC-API:vf-license-model-versions/vf-license-model-version/{artifact-version}/vf-license-model": {
+ "delete": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified"
+ }
+ },
+ "description": "xxxx",
+ "operationId": "DELETE-vf-license-model"
+ },
+ "get": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)vf-license-model"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "GET-vf-license-model"
+ },
+ "post": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "**(config)feature-group-list",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model(config)feature-group-list-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)vf-license-modelPOST"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "POST-vf-license-model"
+ },
+ "put": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "(config)vf-license-model",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version(config)vf-license-model-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version(config)vf-license-model-TOP"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "PUT-vf-license-model"
+ }
+ },
+ "/config/ASDC-API:vf-license-model-versions/vf-license-model-version/{artifact-version}/vf-license-model/feature-group-list": {
+ "delete": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified"
+ }
+ },
+ "description": "xxxx",
+ "operationId": "DELETE-feature-group-list"
+ },
+ "get": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)feature-group-list"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "GET-feature-group-list"
+ },
+ "post": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "**(config)feature-group",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list(config)feature-group-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)feature-group-listPOST"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "POST-feature-group-list"
+ },
+ "put": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "(config)feature-group-list",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model(config)feature-group-list-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model(config)feature-group-list-TOP"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "PUT-feature-group-list"
+ }
+ },
+ "/config/ASDC-API:vf-license-model-versions/vf-license-model-version/{artifact-version}/vf-license-model/feature-group-list/feature-group": {
+ "delete": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified"
+ }
+ },
+ "description": "xxxx",
+ "operationId": "DELETE-feature-group"
+ },
+ "get": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)feature-group"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "GET-feature-group"
+ },
+ "post": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "**(config)license-key-group-list",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group(config)license-key-group-list-TOP"
+ }
+ },
+ {
+ "in": "body",
+ "name": "**(config)entitlement-pool-list",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group(config)entitlement-pool-list-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)feature-groupPOST"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "POST-feature-group"
+ },
+ "put": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "(config)feature-group",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list(config)feature-group-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list(config)feature-group-TOP"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "PUT-feature-group"
+ }
+ },
+ "/config/ASDC-API:vf-license-model-versions/vf-license-model-version/{artifact-version}/vf-license-model/feature-group-list/feature-group/entitlement-pool-list": {
+ "delete": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified"
+ }
+ },
+ "description": "xxxx",
+ "operationId": "DELETE-entitlement-pool-list"
+ },
+ "get": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)entitlement-pool-list"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "GET-entitlement-pool-list"
+ },
+ "post": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "**(config)entitlement-pool",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list(config)entitlement-pool-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)entitlement-pool-listPOST"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "POST-entitlement-pool-list"
+ },
+ "put": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "(config)entitlement-pool-list",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group(config)entitlement-pool-list-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group(config)entitlement-pool-list-TOP"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "PUT-entitlement-pool-list"
+ }
+ },
+ "/config/ASDC-API:vf-license-model-versions/vf-license-model-version/{artifact-version}/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool": {
+ "delete": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified"
+ }
+ },
+ "description": "xxxx",
+ "operationId": "DELETE-entitlement-pool"
+ },
+ "get": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)entitlement-pool"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "GET-entitlement-pool"
+ },
+ "post": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "**(config)threshold-value",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)threshold-value-TOP"
+ }
+ },
+ {
+ "in": "body",
+ "name": "**(config)time",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)time-TOP"
+ }
+ },
+ {
+ "in": "body",
+ "name": "**(config)operational-scope",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)operational-scope-TOP"
+ }
+ },
+ {
+ "in": "body",
+ "name": "**(config)entitlement-metric",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)entitlement-metric-TOP"
+ }
+ },
+ {
+ "in": "body",
+ "name": "**(config)aggregation-function",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)aggregation-function-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)entitlement-poolPOST"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "POST-entitlement-pool"
+ },
+ "put": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "(config)entitlement-pool",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list(config)entitlement-pool-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list(config)entitlement-pool-TOP"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "PUT-entitlement-pool"
+ }
+ },
+ "/config/ASDC-API:vf-license-model-versions/vf-license-model-version/{artifact-version}/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool/aggregation-function": {
+ "delete": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified"
+ }
+ },
+ "description": "xxxx",
+ "operationId": "DELETE-aggregation-function"
+ },
+ "get": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)aggregation-function"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "GET-aggregation-function"
+ },
+ "put": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "(config)aggregation-function",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)aggregation-function-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)aggregation-function-TOP"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "PUT-aggregation-function"
+ }
+ },
+ "/config/ASDC-API:vf-license-model-versions/vf-license-model-version/{artifact-version}/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool/entitlement-metric": {
+ "delete": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified"
+ }
+ },
+ "description": "xxxx",
+ "operationId": "DELETE-entitlement-metric"
+ },
+ "get": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)entitlement-metric"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "GET-entitlement-metric"
+ },
+ "put": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "(config)entitlement-metric",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)entitlement-metric-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)entitlement-metric-TOP"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "PUT-entitlement-metric"
+ }
+ },
+ "/config/ASDC-API:vf-license-model-versions/vf-license-model-version/{artifact-version}/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool/operational-scope": {
+ "delete": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified"
+ }
+ },
+ "description": "xxxx",
+ "operationId": "DELETE-operational-scope"
+ },
+ "get": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)operational-scope"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "GET-operational-scope"
+ },
+ "put": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "(config)operational-scope",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)operational-scope-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)operational-scope-TOP"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "PUT-operational-scope"
+ }
+ },
+ "/config/ASDC-API:vf-license-model-versions/vf-license-model-version/{artifact-version}/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool/threshold-value": {
+ "delete": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified"
+ }
+ },
+ "description": "xxxx",
+ "operationId": "DELETE-threshold-value"
+ },
+ "get": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)threshold-value"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "GET-threshold-value"
+ },
+ "put": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "(config)threshold-value",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)threshold-value-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)threshold-value-TOP"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "PUT-threshold-value"
+ }
+ },
+ "/config/ASDC-API:vf-license-model-versions/vf-license-model-version/{artifact-version}/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool/time": {
+ "delete": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified"
+ }
+ },
+ "description": "xxxx",
+ "operationId": "DELETE-time"
+ },
+ "get": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)time"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "GET-time"
+ },
+ "put": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "(config)time",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)time-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)time-TOP"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "PUT-time"
+ }
+ },
+ "/config/ASDC-API:vf-license-model-versions/vf-license-model-version/{artifact-version}/vf-license-model/feature-group-list/feature-group/license-key-group-list": {
+ "delete": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified"
+ }
+ },
+ "description": "xxxx",
+ "operationId": "DELETE-license-key-group-list"
+ },
+ "get": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)license-key-group-list"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "GET-license-key-group-list"
+ },
+ "post": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "**(config)license-key-group",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/license-key-group-list(config)license-key-group-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)license-key-group-listPOST"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "POST-license-key-group-list"
+ },
+ "put": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "(config)license-key-group-list",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group(config)license-key-group-list-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group(config)license-key-group-list-TOP"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "PUT-license-key-group-list"
+ }
+ },
+ "/config/ASDC-API:vf-license-model-versions/vf-license-model-version/{artifact-version}/vf-license-model/feature-group-list/feature-group/license-key-group-list/license-key-group": {
+ "delete": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified"
+ }
+ },
+ "description": "xxxx",
+ "operationId": "DELETE-license-key-group"
+ },
+ "get": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)license-key-group"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "GET-license-key-group"
+ },
+ "post": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "**(config)operational-scope",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/license-key-group-list/license-key-group(config)operational-scope-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)license-key-groupPOST"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "POST-license-key-group"
+ },
+ "put": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "(config)license-key-group",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/license-key-group-list(config)license-key-group-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/license-key-group-list(config)license-key-group-TOP"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "PUT-license-key-group"
+ }
+ },
+ "/config/ASDC-API:vf-license-model-versions/vf-license-model-version/{artifact-version}/vf-license-model/feature-group-list/feature-group/license-key-group-list/license-key-group/operational-scope": {
+ "delete": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified"
+ }
+ },
+ "description": "xxxx",
+ "operationId": "DELETE-operational-scope"
+ },
+ "get": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(config)operational-scope"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "GET-operational-scope"
+ },
+ "put": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "description": "Version of artifact",
+ "in": "path",
+ "name": "artifact-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "(config)operational-scope",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/license-key-group-list/license-key-group(config)operational-scope-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/license-key-group-list/license-key-group(config)operational-scope-TOP"
+ }
+ }
+ },
+ "description": "xxxx",
+ "operationId": "PUT-operational-scope"
+ }
+ },
+ "/operational/ASDC-API:artifacts": {
+ "get": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(operational)artifacts"
+ }
+ }
+ },
+ "operationId": "GET-artifacts"
+ }
+ },
+ "/operational/ASDC-API:vf-license-model-versions": {
+ "get": {
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(operational)vf-license-model-versions"
+ }
+ }
+ },
+ "operationId": "GET-vf-license-model-versions"
+ }
+ },
+ "/operations/ASDC-API:vf-license-model-update": {
+ "post": {
+ "consumes": [
+ "application/json",
+ "application/xml"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/(vf-license-model-update)input-TOP"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response was specified",
+ "schema": {
+ "$ref": "#/definitions/(vf-license-model-update)output-TOP"
+ }
+ }
+ },
+ "operationId": "vf-license-model-update"
+ }
+ }
+ },
+ "definitions": {
+ "(config)ASDC-API_modulePOST": {
+ "properties": {
+ "artifacts": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API(config)artifacts"
+ },
+ "type": "object"
+ },
+ "vf-license-model-versions": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API(config)vf-license-model-versions"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "(config)aggregation-functionPOST": {
+ "properties": {
+ "other": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "value": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "(config)artifactPOST": {
+ "properties": {
+ "artifact-name": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "Name of artifact"
+ },
+ "artifact-version": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "Version of artifact"
+ }
+ },
+ "type": "object"
+ },
+ "(config)artifactsPOST": {
+ "properties": {
+ "artifact": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API/artifacts(config)artifact"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "(config)entitlement-metricPOST": {
+ "properties": {
+ "other": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "value": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "(config)entitlement-pool-listPOST": {
+ "properties": {
+ "entitlement-pool": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list(config)entitlement-pool"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "(config)entitlement-poolPOST": {
+ "properties": {
+ "aggregation-function": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)aggregation-function"
+ },
+ "type": "object"
+ },
+ "description": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "entitlement-metric": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)entitlement-metric"
+ },
+ "type": "object"
+ },
+ "entitlement-pool-uuid": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "increments": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "manufacturer-reference-number": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "name": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "operational-scope": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)operational-scope"
+ },
+ "type": "object"
+ },
+ "threshold-value": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)threshold-value"
+ },
+ "type": "object"
+ },
+ "time": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)time"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "(config)feature-group-listPOST": {
+ "properties": {
+ "feature-group": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list(config)feature-group"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "(config)feature-groupPOST": {
+ "properties": {
+ "att-part-number": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "description": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "entitlement-pool-list": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group(config)entitlement-pool-list"
+ },
+ "type": "object"
+ },
+ "feature-group-uuid": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "license-key-group-list": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group(config)license-key-group-list"
+ },
+ "type": "object"
+ },
+ "name": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "(config)license-key-group-listPOST": {
+ "properties": {
+ "license-key-group": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group/license-key-group-list(config)license-key-group"
+ },
+ "type": "array"
+ },
+ "name": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "(config)license-key-groupPOST": {
+ "properties": {
+ "description": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "license-key-group-uuid": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "name": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "operational-scope": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group/license-key-group-list/license-key-group(config)operational-scope"
+ },
+ "type": "object"
+ },
+ "type": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "(config)operational-scopePOST": {
+ "properties": {
+ "other": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "value": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "(config)threshold-valuePOST": {
+ "properties": {
+ "unit": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "value": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "(config)timePOST": {
+ "properties": {
+ "other": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "value": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "(config)vf-license-model-versionPOST": {
+ "properties": {
+ "artifact-name": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "Name of artifact"
+ },
+ "artifact-version": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "Version of artifact"
+ },
+ "vf-license-model": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version(config)vf-license-model"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "(config)vf-license-model-versionsPOST": {
+ "properties": {
+ "vf-license-model-version": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions(config)vf-license-model-version"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "(config)vf-license-modelPOST": {
+ "properties": {
+ "feature-group-list": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model(config)feature-group-list"
+ },
+ "type": "object"
+ },
+ "vendor-name": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "vf-id": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "(vf-license-model-update)input": {
+ "properties": {
+ "ASDC-API:artifact-name": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "Name of artifact"
+ },
+ "ASDC-API:artifact-version": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "Version of artifact"
+ },
+ "ASDC-API:vf-license-model": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API(config)vf-license-model"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "(vf-license-model-update)input-TOP": {
+ "properties": {
+ "ASDC-API:input": {
+ "items": {
+ "$ref": "#/definitions/(vf-license-model-update)input"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "(vf-license-model-update)output": {
+ "properties": {
+ "ASDC-API:asdc-api-response-code": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "Code indicating success/failure"
+ },
+ "ASDC-API:asdc-api-response-text": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "Text indicating reason for failure"
+ }
+ },
+ "type": "object"
+ },
+ "(vf-license-model-update)output-TOP": {
+ "properties": {
+ "ASDC-API:output": {
+ "items": {
+ "$ref": "#/definitions/(vf-license-model-update)output"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API(config)artifacts": {
+ "properties": {
+ "ASDC-API:artifact": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API/artifacts(config)artifact"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API(config)artifacts-TOP": {
+ "properties": {
+ "ASDC-API:artifacts": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API(config)artifacts"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API(config)vf-license-model": {
+ "properties": {
+ "ASDC-API:feature-group-list": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model(config)feature-group-list"
+ },
+ "type": "object"
+ },
+ "ASDC-API:vendor-name": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:vf-id": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API(config)vf-license-model-TOP": {
+ "properties": {
+ "ASDC-API:vf-license-model": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API(config)vf-license-model"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API(config)vf-license-model-versions": {
+ "properties": {
+ "ASDC-API:vf-license-model-version": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions(config)vf-license-model-version"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API(config)vf-license-model-versions-TOP": {
+ "properties": {
+ "ASDC-API:vf-license-model-versions": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API(config)vf-license-model-versions"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API(operational)artifacts": {
+ "type": "object"
+ },
+ "ASDC-API(operational)artifacts-TOP": {
+ "properties": {
+ "ASDC-API:artifacts": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API(operational)artifacts"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API(operational)vf-license-model-versions": {
+ "type": "object"
+ },
+ "ASDC-API(operational)vf-license-model-versions-TOP": {
+ "properties": {
+ "ASDC-API:vf-license-model-versions": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API(operational)vf-license-model-versions"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/artifacts(config)artifact": {
+ "properties": {
+ "ASDC-API:artifact-name": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "Name of artifact"
+ },
+ "ASDC-API:artifact-version": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "Version of artifact"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/artifacts(config)artifact-TOP": {
+ "properties": {
+ "ASDC-API:artifact": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API/artifacts(config)artifact"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model(config)feature-group-list": {
+ "properties": {
+ "ASDC-API:feature-group": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list(config)feature-group"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model(config)feature-group-list-TOP": {
+ "properties": {
+ "ASDC-API:feature-group-list": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model(config)feature-group-list"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions(config)vf-license-model-version": {
+ "properties": {
+ "ASDC-API:artifact-name": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "Name of artifact"
+ },
+ "ASDC-API:artifact-version": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "Version of artifact"
+ },
+ "ASDC-API:vf-license-model": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version(config)vf-license-model"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions(config)vf-license-model-version-TOP": {
+ "properties": {
+ "ASDC-API:vf-license-model-version": {
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions(config)vf-license-model-version"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version(config)vf-license-model": {
+ "properties": {
+ "ASDC-API:feature-group-list": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model(config)feature-group-list"
+ },
+ "type": "object"
+ },
+ "ASDC-API:vendor-name": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:vf-id": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version(config)vf-license-model-TOP": {
+ "properties": {
+ "ASDC-API:vf-license-model": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version(config)vf-license-model"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model(config)feature-group-list": {
+ "properties": {
+ "ASDC-API:feature-group": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list(config)feature-group"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model(config)feature-group-list-TOP": {
+ "properties": {
+ "ASDC-API:feature-group-list": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model(config)feature-group-list"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list(config)feature-group": {
+ "properties": {
+ "ASDC-API:att-part-number": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:description": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:entitlement-pool-list": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group(config)entitlement-pool-list"
+ },
+ "type": "object"
+ },
+ "ASDC-API:feature-group-uuid": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:license-key-group-list": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group(config)license-key-group-list"
+ },
+ "type": "object"
+ },
+ "ASDC-API:name": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list(config)feature-group-TOP": {
+ "properties": {
+ "ASDC-API:feature-group": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list(config)feature-group"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group(config)entitlement-pool-list": {
+ "properties": {
+ "ASDC-API:entitlement-pool": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list(config)entitlement-pool"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group(config)entitlement-pool-list-TOP": {
+ "properties": {
+ "ASDC-API:entitlement-pool-list": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group(config)entitlement-pool-list"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group(config)license-key-group-list": {
+ "properties": {
+ "ASDC-API:license-key-group": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/license-key-group-list(config)license-key-group"
+ },
+ "type": "array"
+ },
+ "ASDC-API:name": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group(config)license-key-group-list-TOP": {
+ "properties": {
+ "ASDC-API:license-key-group-list": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group(config)license-key-group-list"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list(config)entitlement-pool": {
+ "properties": {
+ "ASDC-API:aggregation-function": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)aggregation-function"
+ },
+ "type": "object"
+ },
+ "ASDC-API:description": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:entitlement-metric": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)entitlement-metric"
+ },
+ "type": "object"
+ },
+ "ASDC-API:entitlement-pool-uuid": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:increments": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:manufacturer-reference-number": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:name": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:operational-scope": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)operational-scope"
+ },
+ "type": "object"
+ },
+ "ASDC-API:threshold-value": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)threshold-value"
+ },
+ "type": "object"
+ },
+ "ASDC-API:time": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)time"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list(config)entitlement-pool-TOP": {
+ "properties": {
+ "ASDC-API:entitlement-pool": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list(config)entitlement-pool"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)aggregation-function": {
+ "properties": {
+ "ASDC-API:other": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:value": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)aggregation-function-TOP": {
+ "properties": {
+ "ASDC-API:aggregation-function": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)aggregation-function"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)entitlement-metric": {
+ "properties": {
+ "ASDC-API:other": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:value": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)entitlement-metric-TOP": {
+ "properties": {
+ "ASDC-API:entitlement-metric": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)entitlement-metric"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)operational-scope": {
+ "properties": {
+ "ASDC-API:other": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:value": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)operational-scope-TOP": {
+ "properties": {
+ "ASDC-API:operational-scope": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)operational-scope"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)threshold-value": {
+ "properties": {
+ "ASDC-API:unit": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:value": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)threshold-value-TOP": {
+ "properties": {
+ "ASDC-API:threshold-value": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)threshold-value"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)time": {
+ "properties": {
+ "ASDC-API:other": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:value": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)time-TOP": {
+ "properties": {
+ "ASDC-API:time": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)time"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/license-key-group-list(config)license-key-group": {
+ "properties": {
+ "ASDC-API:description": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:license-key-group-uuid": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:name": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:operational-scope": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/license-key-group-list/license-key-group(config)operational-scope"
+ },
+ "type": "object"
+ },
+ "ASDC-API:type": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/license-key-group-list(config)license-key-group-TOP": {
+ "properties": {
+ "ASDC-API:license-key-group": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/license-key-group-list(config)license-key-group"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/license-key-group-list/license-key-group(config)operational-scope": {
+ "properties": {
+ "ASDC-API:other": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:value": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/license-key-group-list/license-key-group(config)operational-scope-TOP": {
+ "properties": {
+ "ASDC-API:operational-scope": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model-versions/vf-license-model-version/vf-license-model/feature-group-list/feature-group/license-key-group-list/license-key-group(config)operational-scope"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model/feature-group-list(config)feature-group": {
+ "properties": {
+ "ASDC-API:att-part-number": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:description": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:entitlement-pool-list": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group(config)entitlement-pool-list"
+ },
+ "type": "object"
+ },
+ "ASDC-API:feature-group-uuid": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:license-key-group-list": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group(config)license-key-group-list"
+ },
+ "type": "object"
+ },
+ "ASDC-API:name": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model/feature-group-list(config)feature-group-TOP": {
+ "properties": {
+ "ASDC-API:feature-group": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list(config)feature-group"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model/feature-group-list/feature-group(config)entitlement-pool-list": {
+ "properties": {
+ "ASDC-API:entitlement-pool": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list(config)entitlement-pool"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model/feature-group-list/feature-group(config)entitlement-pool-list-TOP": {
+ "properties": {
+ "ASDC-API:entitlement-pool-list": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group(config)entitlement-pool-list"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model/feature-group-list/feature-group(config)license-key-group-list": {
+ "properties": {
+ "ASDC-API:license-key-group": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group/license-key-group-list(config)license-key-group"
+ },
+ "type": "array"
+ },
+ "ASDC-API:name": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model/feature-group-list/feature-group(config)license-key-group-list-TOP": {
+ "properties": {
+ "ASDC-API:license-key-group-list": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group(config)license-key-group-list"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list(config)entitlement-pool": {
+ "properties": {
+ "ASDC-API:aggregation-function": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)aggregation-function"
+ },
+ "type": "object"
+ },
+ "ASDC-API:description": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:entitlement-metric": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)entitlement-metric"
+ },
+ "type": "object"
+ },
+ "ASDC-API:entitlement-pool-uuid": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:increments": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:manufacturer-reference-number": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:name": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:operational-scope": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)operational-scope"
+ },
+ "type": "object"
+ },
+ "ASDC-API:threshold-value": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)threshold-value"
+ },
+ "type": "object"
+ },
+ "ASDC-API:time": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)time"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list(config)entitlement-pool-TOP": {
+ "properties": {
+ "ASDC-API:entitlement-pool": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list(config)entitlement-pool"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)aggregation-function": {
+ "properties": {
+ "ASDC-API:other": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:value": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)aggregation-function-TOP": {
+ "properties": {
+ "ASDC-API:aggregation-function": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)aggregation-function"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)entitlement-metric": {
+ "properties": {
+ "ASDC-API:other": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:value": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)entitlement-metric-TOP": {
+ "properties": {
+ "ASDC-API:entitlement-metric": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)entitlement-metric"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)operational-scope": {
+ "properties": {
+ "ASDC-API:other": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:value": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)operational-scope-TOP": {
+ "properties": {
+ "ASDC-API:operational-scope": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)operational-scope"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)threshold-value": {
+ "properties": {
+ "ASDC-API:unit": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:value": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)threshold-value-TOP": {
+ "properties": {
+ "ASDC-API:threshold-value": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)threshold-value"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)time": {
+ "properties": {
+ "ASDC-API:other": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:value": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)time-TOP": {
+ "properties": {
+ "ASDC-API:time": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group/entitlement-pool-list/entitlement-pool(config)time"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model/feature-group-list/feature-group/license-key-group-list(config)license-key-group": {
+ "properties": {
+ "ASDC-API:description": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:license-key-group-uuid": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:name": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:operational-scope": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group/license-key-group-list/license-key-group(config)operational-scope"
+ },
+ "type": "object"
+ },
+ "ASDC-API:type": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model/feature-group-list/feature-group/license-key-group-list(config)license-key-group-TOP": {
+ "properties": {
+ "ASDC-API:license-key-group": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group/license-key-group-list(config)license-key-group"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model/feature-group-list/feature-group/license-key-group-list/license-key-group(config)operational-scope": {
+ "properties": {
+ "ASDC-API:other": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ },
+ "ASDC-API:value": {
+ "$ref": "#/definitions/Optional.empty",
+ "description": "xxxx"
+ }
+ },
+ "type": "object"
+ },
+ "ASDC-API/vf-license-model/feature-group-list/feature-group/license-key-group-list/license-key-group(config)operational-scope-TOP": {
+ "properties": {
+ "ASDC-API:operational-scope": {
+ "description": "xxxx",
+ "items": {
+ "$ref": "#/definitions/ASDC-API/vf-license-model/feature-group-list/feature-group/license-key-group-list/license-key-group(config)operational-scope"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "unique_empty_identifier": {}
+ }
+}
diff --git a/northbound/asdcApi/model/src/main/yang/ASDC-API.yang b/northbound/asdcApi/model/src/main/yang/ASDC-API.yang
new file mode 100755
index 000000000..12cfb9a56
--- /dev/null
+++ b/northbound/asdcApi/model/src/main/yang/ASDC-API.yang
@@ -0,0 +1,63 @@
+
+module ASDC-API {
+ yang-version "1";
+
+ namespace "org:onap:ccsdk";
+
+ prefix asdc-api;
+
+ import asdc-api-common { prefix asdc-api-common; }
+
+
+ import asdc-license-model { prefix asdc-license-model; }
+
+ import ietf-inet-types {
+ prefix inet;
+ revision-date "2013-07-15";
+ }
+
+ organization
+ "ONAP";
+
+ contact
+ "Dan Timoney";
+
+ description
+ "SDC Interface";
+
+ revision 2017-02-01 {
+ description "database definitions";
+ }
+
+ // Containers
+ container artifacts {
+ list artifact {
+ key "artifact-name artifact-version";
+
+ uses asdc-api-common:artifact-fields;
+ }
+ }
+
+
+
+ container vf-license-model-versions {
+ list vf-license-model-version {
+ key artifact-version;
+ uses asdc-api-common:artifact-fields;
+ uses asdc-license-model:vf-license-model-grouping;
+ }
+ }
+
+
+ // RPCs
+
+ rpc vf-license-model-update {
+ input {
+ uses asdc-api-common:artifact-fields;
+ uses asdc-license-model:vf-license-model-grouping;
+ }
+ output {
+ uses asdc-api-common:asdc-api-response;
+ }
+ }
+}
diff --git a/northbound/asdcApi/model/src/main/yang/asdc-api-common.yang b/northbound/asdcApi/model/src/main/yang/asdc-api-common.yang
new file mode 100755
index 000000000..1531b7b30
--- /dev/null
+++ b/northbound/asdcApi/model/src/main/yang/asdc-api-common.yang
@@ -0,0 +1,53 @@
+
+module asdc-api-common {
+ yang-version "1";
+
+ // Use same namespace defined for file upload in 15.12
+ namespace "org:onap:ccsdk:sli:northbound:asdcapi:common";
+
+ prefix asdcapi;
+
+ organization
+ "ONAP";
+
+ contact
+ "Dan Timoney";
+
+ description
+ "ASDC/SDN-C API common data";
+
+ revision 2017-02-01 {
+ description "Initial release";
+ }
+
+
+
+ // Groupings
+
+ grouping artifact-fields {
+ leaf artifact-name {
+ type string;
+ description "Name of artifact";
+ }
+
+ leaf artifact-version {
+ type string;
+ description "Version of artifact";
+ }
+ }
+
+ grouping asdc-api-response {
+ leaf asdc-api-response-code {
+ type string;
+ description "Code indicating success/failure";
+ }
+
+ leaf asdc-api-response-text {
+ type string;
+ description "Text indicating reason for failure";
+ }
+ }
+
+
+
+}
diff --git a/northbound/asdcApi/model/src/main/yang/asdc-license-model.yang b/northbound/asdcApi/model/src/main/yang/asdc-license-model.yang
new file mode 100755
index 000000000..33f383569
--- /dev/null
+++ b/northbound/asdcApi/model/src/main/yang/asdc-license-model.yang
@@ -0,0 +1,369 @@
+module asdc-license-model {
+
+ namespace "http://xmlns.onap.org/asdc/license-model/1.0";
+ prefix le;
+ organization "onap";
+ contact "asdc";
+ description "schema for both vendor license and VF license models";
+ revision 2016-04-27 {
+ description "xxxx";
+ reference "xxxx";
+ }
+
+ container vendor-license-model {
+ description "xxxx";
+ leaf vendor-name {
+ type string{
+ length "1..200";
+ }
+ description "xxxx";
+ }
+ uses entitlement-pools;
+ uses license-key-groups;
+ }
+
+ grouping entitlement-pools {
+ description "xxxx";
+ container entitlement-pool-list {
+ description "xxxx";
+ uses entitlement-pool;
+ }
+ }
+
+ grouping entitlement-pool {
+ description "xxxx";
+ list entitlement-pool {
+ description "xxxx";
+ leaf entitlement-pool-uuid {
+ type string;
+ description "xxxx";
+ }
+ leaf name {
+ type string{
+ length "1..120";
+ }
+ description "xxxx";
+ }
+ leaf description {
+ type string{
+ length "1..1000";
+ }
+ description "xxxx";
+ }
+ leaf manufacturer-reference-number {
+ type string{
+ length "1..100";
+ }
+ description "xxxx";
+ }
+ uses operational-scope;
+ uses threshold-value;
+ uses entitlement-metric;
+ leaf increments {
+ type string{
+ length "1..120";
+ }
+ description "xxxx";
+ }
+ uses aggregation-function;
+ uses time;
+ }
+ }
+
+ grouping operational-scope {
+ description "xxxx";
+ container operational-scope {
+ description "xxxx";
+ leaf value {
+ type enumeration {
+ enum "Network_Wide"{
+ description "xxxx";
+ }
+ enum "Availability_Zone"{
+ description "xxxx";
+ }
+ enum "Data_Center"{
+ description "xxxx";
+ }
+ enum "Tenant"{
+ description "xxxx";
+ }
+ enum "VM"{
+ description "xxxx";
+ }
+ enum "CPU"{
+ description "xxxx";
+ }
+ enum "Core"{
+ description "xxxx";
+ }
+ enum "Other"{
+ description "xxxx";
+ }
+ }
+ description "xxxx";
+ }
+ leaf other {
+ type string{
+ length "1..200";
+ }
+ description "xxxx";
+ }
+ }
+ }
+
+ grouping threshold-value {
+ description "xxxx";
+ container threshold-value {
+ description "xxxx";
+ leaf value {
+ type uint32{
+ range "0..9999999";
+ } //TBD Change to type number
+ description "xxxx";
+ }
+ leaf unit {
+ type enumeration {
+ enum "Absolute"{
+ description "xxxx";
+ }
+ enum "Percentage"{
+ description "xxxx";
+ }
+ }
+ description "xxxx";
+ }
+ }
+ }
+
+ grouping entitlement-metric {
+ description "xxxx";
+ container entitlement-metric {
+ description "xxxx";
+ leaf value {
+ type enumeration {
+ enum "Software_Instances_Count"{
+ description "xxxx";
+ }
+ enum "CPU"{
+ description "xxxx";
+ }
+ enum "Core"{
+ description "xxxx";
+ }
+ enum "Trunks"{
+ description "xxxx";
+ }
+ enum "User"{
+ description "xxxx";
+ }
+ enum "Subscribers"{
+ description "xxxx";
+ }
+ enum "Tenants"{
+ description "xxxx";
+ }
+ enum "Tokens"{
+ description "xxxx";
+ }
+ enum "Seats"{
+ description "xxxx";
+ }
+ enum "Units_TB"{
+ description "xxxx";
+ }
+ enum "Units_GB"{
+ description "xxxx";
+ }
+ enum "Units_MB"{
+ description "xxxx";
+ }
+ enum "Other"{
+ description "xxxx";
+ }
+ }
+ description "xxxx";
+ }
+ leaf other {
+ type string{
+ length "1..200";
+ }
+ description "xxxx";
+ }
+ }
+ }
+
+ grouping aggregation-function {
+ description "xxxx";
+ container aggregation-function {
+ description "xxxx";
+ leaf value {
+ type enumeration {
+ enum "Peak"{
+ description "xxxx";
+ }
+ enum "Average"{
+ description "xxxx";
+ }
+ enum "Other"{
+ description "xxxx";
+ }
+ }
+ description "xxxx";
+ }
+ leaf other {
+ type string{
+ length "1..200";
+ }
+ description "xxxx";
+ }
+ }
+ }
+
+ grouping time {
+ description "xxxx";
+ container time {
+ description "xxxx";
+ leaf value {
+ type enumeration {
+ enum "Hour"{
+ description "xxxx";
+ }
+ enum "Day"{
+ description "xxxx";
+ }
+ enum "Month"{
+ description "xxxx";
+ }
+ enum "Quarter"{
+ description "xxxx";
+ }
+ enum "Year"{
+ description "xxxx";
+ }
+ enum "Other"{
+ description "xxxx";
+ }
+ }
+ description "xxxx";
+ }
+ leaf other {
+ type string{
+ length "1..200";
+ }
+ description "xxxx";
+ }
+ }
+ }
+
+
+
+ grouping license-key-groups {
+ description "xxxx";
+ container license-key-group-list {
+ description "xxxx";
+ leaf name {
+ type string;
+ description "xxxx";
+ }
+ uses license-key-group;
+ }
+ }
+
+ grouping license-key-group {
+ description "xxxx";
+ list license-key-group {
+ description "xxxx";
+ leaf license-key-group-uuid {
+ type string;
+ description "xxxx";
+ }
+ leaf name {
+ type string{
+ length "1..120";
+ }
+ description "xxxx";
+ }
+ leaf description {
+ type string{
+ length "1..1000";
+ }
+ description "xxxx";
+ }
+ uses operational-scope;
+ leaf type {
+ type enumeration {
+ enum "Universal"{
+ description "xxxx";
+ }
+ enum "Unique"{
+ description "xxxx";
+ }
+ enum "One_Time"{
+ description "xxxx";
+ }
+ }
+ description "xxxx";
+ }
+ }
+ }
+
+ grouping vf-license-model-grouping {
+ description "xxxx";
+ container vf-license-model {
+ description "xxxx";
+ leaf vf-id {
+ type string{
+ length "1..200";
+ }
+ description "xxxx";
+ }
+ leaf vendor-name {
+ type string{
+ length "1..200";
+ }
+ description "xxxx";
+ }
+ uses feature-groups;
+ }
+ }
+
+ grouping feature-groups {
+ description "xxxx";
+ container feature-group-list {
+ description "xxxx";
+ uses feature-group-grouping;
+ }
+ }
+
+ grouping feature-group-grouping {
+ description "xxxx";
+ list feature-group {
+ description "xxxx";
+ leaf name{
+ type string{
+ length "1..120";
+ }
+ description "xxxx";
+ }
+ leaf feature-group-uuid{
+ type string;
+ description "xxxx";
+ }
+ leaf description {
+ type string{
+ length "1..1000";
+ }
+ description "xxxx";
+ }
+ leaf att-part-number {
+ type string{
+ length "1..100";
+ }
+ description "xxxx";
+ }
+ uses entitlement-pools;
+ uses license-key-groups;
+ }
+ }
+}
diff --git a/northbound/asdcApi/pom.xml b/northbound/asdcApi/pom.xml
new file mode 100755
index 000000000..b5cea9931
--- /dev/null
+++ b/northbound/asdcApi/pom.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>odlparent-lite</artifactId>
+ <version>2.1.0</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.sli.northbound</groupId>
+ <artifactId>asdcApi</artifactId>
+ <version>1.1.1-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <name>ccsdk-sli-northbound :: asdcApi</name>
+
+ <modules>
+ <module>model</module>
+ <module>provider</module>
+ <module>installer</module>
+ </modules>
+
+ <properties>
+ <ccsdk.sli.northbound.version>${project.version}</ccsdk.sli.northbound.version>
+ </properties>
+</project>
diff --git a/northbound/asdcApi/provider/pom.xml b/northbound/asdcApi/provider/pom.xml
new file mode 100755
index 000000000..97c4ba9aa
--- /dev/null
+++ b/northbound/asdcApi/provider/pom.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>binding-parent</artifactId>
+ <version>2.1.0</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.sli.northbound</groupId>
+ <artifactId>asdcApi-provider</artifactId>
+ <version>1.1.1-SNAPSHOT</version>
+ <packaging>bundle</packaging>
+
+ <name>ccsdk-sli-northbound :: asdcApi :: ${project.artifactId}</name>
+
+ <properties>
+ <ccsdk.sli.northbound.version>${project.version}</ccsdk.sli.northbound.version>
+ </properties>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.core</groupId>
+ <artifactId>sli-core-artifacts</artifactId>
+ <version>${ccsdk.sli.core.version}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.northbound</groupId>
+ <artifactId>asdcApi-model</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.opendaylight.controller</groupId>
+ <artifactId>sal-binding-api</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.opendaylight.controller</groupId>
+ <artifactId>sal-common-util</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.core</groupId>
+ <artifactId>sli-common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.core</groupId>
+ <artifactId>sli-provider</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.opendaylight.controller</groupId>
+ <artifactId>sal-test-model</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+
+ <dependency>
+ <groupId>org.opendaylight.controller</groupId>
+ <artifactId>sal-binding-broker-impl</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.controller</groupId>
+ <artifactId>sal-binding-broker-impl</artifactId>
+ <type>test-jar</type>
+ <classifier>tests</classifier>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/northbound/asdcApi/provider/src/main/java/org/onap/ccsdk/sli/northbound/asdcapi/AsdcApiProvider.java b/northbound/asdcApi/provider/src/main/java/org/onap/ccsdk/sli/northbound/asdcapi/AsdcApiProvider.java
new file mode 100644
index 000000000..1a79f8c41
--- /dev/null
+++ b/northbound/asdcApi/provider/src/main/java/org/onap/ccsdk/sli/northbound/asdcapi/AsdcApiProvider.java
@@ -0,0 +1,379 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * openECOMP : SDN-C
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.ccsdk.sli.northbound.asdcapi;
+
+import java.util.Properties;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
+import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
+import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
+import org.opendaylight.yang.gen.v1.http.xmlns.onap.org.asdc.license.model._1._0.rev160427.vf.license.model.grouping.VfLicenseModel;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev170201.ASDCAPIService;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev170201.Artifacts;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev170201.ArtifactsBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev170201.VfLicenseModelUpdateInput;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev170201.VfLicenseModelUpdateInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev170201.VfLicenseModelUpdateOutput;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev170201.VfLicenseModelUpdateOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev170201.VfLicenseModelVersions;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev170201.VfLicenseModelVersionsBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev170201.artifacts.Artifact;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev170201.artifacts.ArtifactBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev170201.artifacts.ArtifactKey;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev170201.vf.license.model.versions.VfLicenseModelVersion;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev170201.vf.license.model.versions.VfLicenseModelVersionBuilder;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Optional;
+import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
+
+/**
+ * Defines a base implementation for your provider. This class extends from a helper class
+ * which provides storage for the most commonly used components of the MD-SAL. Additionally the
+ * base class provides some basic logging and initialization / clean up methods.
+ *
+ * To use this, copy and paste (overwrite) the following method into the TestApplicationProviderModule
+ * class which is auto generated under src/main/java in this project
+ * (created only once during first compilation):
+ *
+ * <pre>
+
+ @Override
+ public java.lang.AutoCloseable createInstance() {
+
+ final asdcApiProvider provider = new asdcApiProvider();
+ provider.setDataBroker( getDataBrokerDependency() );
+ provider.setNotificationService( getNotificationServiceDependency() );
+ provider.setRpcRegistry( getRpcRegistryDependency() );
+ provider.initialize();
+ return new AutoCloseable() {
+
+ @Override
+ public void close() throws Exception {
+ //TODO: CLOSE ANY REGISTRATION OBJECTS CREATED USING ABOVE BROKER/NOTIFICATION
+ //SERVIE/RPC REGISTRY
+ provider.close();
+ }
+ };
+ }
+
+
+ </pre>
+ */
+public class AsdcApiProvider implements AutoCloseable, ASDCAPIService {
+
+ private static final Logger LOG = LoggerFactory.getLogger(AsdcApiProvider.class);
+
+ private static final String ACTIVE_VERSION = "active";
+
+ private static final String APPLICATION_NAME = "asdcApi";
+
+ private final ExecutorService executor;
+ protected DataBroker dataBroker;
+ protected NotificationPublishService notificationService;
+ protected RpcProviderRegistry rpcRegistry;
+ private final AsdcApiSliClient asdcApiSliClient;
+
+ protected BindingAwareBroker.RpcRegistration<ASDCAPIService> rpcRegistration;
+
+ public AsdcApiProvider(final DataBroker dataBroker,
+ final NotificationPublishService notificationPublishService,
+ final RpcProviderRegistry rpcProviderRegistry,
+ final AsdcApiSliClient asdcApiSliClient) {
+
+ LOG.info("Creating provider for {}", APPLICATION_NAME);
+ executor = Executors.newFixedThreadPool(1);
+ this.dataBroker = dataBroker;
+ notificationService = notificationPublishService;
+ rpcRegistry = rpcProviderRegistry;
+ this.asdcApiSliClient= asdcApiSliClient;
+ initialize();
+ }
+
+ public void initialize(){
+ LOG.info("Initializing {} for {}", this.getClass().getName(), APPLICATION_NAME);
+
+ createContainers();
+
+ if (rpcRegistration == null) {
+ if (rpcRegistry != null) {
+ rpcRegistration = rpcRegistry.addRpcImplementation(
+ ASDCAPIService.class, this);
+ LOG.info("Initialization complete for {}", APPLICATION_NAME);
+ } else {
+ LOG.warn("Error initializing {} : rpcRegistry unset", APPLICATION_NAME);
+ }
+ }
+ }
+
+ private void createContainers() {
+
+ if (dataBroker != null) {
+ final WriteTransaction t = dataBroker.newReadWriteTransaction();
+
+ // Create the vf-model-license-versions and artifacts containers
+ t.merge(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(VfLicenseModelVersions.class),
+ new VfLicenseModelVersionsBuilder().build());
+
+ t.merge(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(Artifacts.class), new ArtifactsBuilder().build());
+
+
+ try {
+ CheckedFuture<Void, TransactionCommitFailedException> checkedFuture = t.submit();
+ checkedFuture.get();
+ LOG.info("Create Containers succeeded!: ");
+
+ } catch (InterruptedException | ExecutionException e) {
+ LOG.error("Create Containers Failed: ", e);
+ }
+ } else {
+ LOG.warn("createContainers : cannot find dataBroker to create containers");
+ }
+ }
+ protected void initializeChild() {
+ //Override if you have custom initialization intelligence
+ }
+
+ @Override
+ public void close() throws Exception {
+ LOG.info( "Closing provider for " + APPLICATION_NAME);
+ executor.shutdown();
+ rpcRegistration.close();
+ LOG.info( "Successfully closed provider for " + APPLICATION_NAME);
+ }
+
+ protected boolean artifactVersionExists(String aName, String aVersion) {
+ InstanceIdentifier artifactInstanceId =
+ InstanceIdentifier.<Artifacts>builder(Artifacts.class)
+ .child(Artifact.class, new ArtifactKey(aName, aVersion)).build();
+ Optional<Artifact> data = null;
+ try(ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction()) {
+ data = (Optional<Artifact>) readTx.read(LogicalDatastoreType.CONFIGURATION, artifactInstanceId).get();
+ } catch (InterruptedException | ExecutionException e) {
+ LOG.error("Caught Exception reading MD-SAL for ["+aName+","+ aVersion+"] " ,e);
+ return false;
+ }
+
+ return data.isPresent();
+ }
+
+ protected void addArtifactVersion(String aName, String aVersion) {
+
+
+ try {
+ ArtifactBuilder aBuilder = new ArtifactBuilder();
+
+ aBuilder.setArtifactName(aName);
+ aBuilder.setArtifactVersion(aVersion);
+
+ Artifact artifact = aBuilder.build();
+
+ InstanceIdentifier.InstanceIdentifierBuilder<Artifact> aIdBuilder = InstanceIdentifier
+ .<Artifacts> builder(Artifacts.class)
+ .child(Artifact.class, artifact.key());
+
+ InstanceIdentifier<Artifact> path = aIdBuilder.build();
+
+ WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
+
+ tx.merge(LogicalDatastoreType.CONFIGURATION, path,
+ artifact);
+ tx.submit().checkedGet();
+ } catch (Exception e) {
+ LOG.error("Caught exception trying to add artifact entry", e);
+ }
+
+ }
+
+
+ private void applyVfLicenseModelUpdate(VfLicenseModelUpdateInput input) {
+
+ String aName = input.getArtifactName();
+ String aVersion = input.getArtifactVersion();
+ VfLicenseModel vfLicenseModel = input.getVfLicenseModel();
+
+
+ // Add new version (version = artifact-version)
+ try {
+
+ VfLicenseModelVersionBuilder vBuilder = new VfLicenseModelVersionBuilder();
+ vBuilder.setArtifactName(aName);
+ vBuilder.setArtifactVersion(aVersion);
+ vBuilder.setVfLicenseModel(vfLicenseModel);
+
+ VfLicenseModelVersion version = vBuilder.build();
+
+ InstanceIdentifier.InstanceIdentifierBuilder<VfLicenseModelVersion> versionIdBuilder = InstanceIdentifier
+ .<VfLicenseModelVersions> builder(VfLicenseModelVersions.class)
+ .child(VfLicenseModelVersion.class, version.key());
+
+ InstanceIdentifier<VfLicenseModelVersion> path = versionIdBuilder.build();
+
+ WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
+ tx.merge(LogicalDatastoreType.CONFIGURATION, path,
+ version);
+ tx.submit().checkedGet();
+ } catch (Exception e) {
+ LOG.error(
+ "Caught exception trying to save entry to MD-SAL",
+ e);
+ }
+
+
+ // Add "active" version (version = "active")
+ try {
+
+ VfLicenseModelVersionBuilder vBuilder = new VfLicenseModelVersionBuilder();
+ vBuilder.setArtifactName(aName);
+ vBuilder.setArtifactVersion(ACTIVE_VERSION);
+ vBuilder.setVfLicenseModel(vfLicenseModel);
+
+ VfLicenseModelVersion version = vBuilder.build();
+ InstanceIdentifier.InstanceIdentifierBuilder<VfLicenseModelVersion> versionIdBuilder = InstanceIdentifier
+ .<VfLicenseModelVersions> builder(VfLicenseModelVersions.class)
+ .child(VfLicenseModelVersion.class, version.key());
+
+ InstanceIdentifier<VfLicenseModelVersion> path = versionIdBuilder.build();
+
+ WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
+
+ tx.merge(LogicalDatastoreType.CONFIGURATION, path,
+ version);
+ tx.submit().checkedGet();
+ } catch (Exception e) {
+ LOG.error(
+ "Caught exception trying to save entry to MD-SAL",
+ e);
+ }
+
+}
+
+@Override
+public ListenableFuture<RpcResult<VfLicenseModelUpdateOutput>> vfLicenseModelUpdate(VfLicenseModelUpdateInput input) {
+ final String svcOperation = "vf-license-model-update";
+
+ Properties parms = new Properties();
+
+ LOG.info( svcOperation +" called." );
+
+ if(input == null ) {
+ LOG.debug("exiting " +svcOperation+ " because of invalid input");
+ return null;
+ }
+
+ VfLicenseModelUpdateInputBuilder inputBuilder = new VfLicenseModelUpdateInputBuilder(input);
+
+ VfLicenseModelUpdateInput inputVfLic = inputBuilder.build();
+
+ String errorMessage = "Success";
+ String errorCode = "200";
+
+ // If this artifact already exists, reject this update
+ if (artifactVersionExists(inputVfLic.getArtifactName(), inputVfLic.getArtifactVersion())) {
+ errorCode = "409";
+ errorMessage = "Artifact version already exists";
+ } else {
+ // Translate input object into SLI-consumable properties
+ LOG.info("Adding INPUT data for "+svcOperation+" input: " + inputVfLic);
+ AsdcApiUtil.toProperties(parms, inputVfLic);
+
+
+ // Call directed graph
+ Properties respProps = null;
+ try
+ {
+ if (asdcApiSliClient.hasGraph("ASDC-API", svcOperation , null, "sync"))
+ {
+
+ try
+ {
+ respProps = asdcApiSliClient.execute("ASDC-API", svcOperation, null, "sync", parms);
+ }
+ catch (Exception e)
+ {
+ LOG.error("Caught exception executing service logic for "+ svcOperation, e);
+ }
+ } else {
+ errorMessage = "No service logic active for ASDC-API: '" + svcOperation + "'";
+ errorCode = "503";
+ }
+ }
+ catch (Exception e)
+ {
+ errorCode = "500";
+ errorMessage = e.getMessage();
+ LOG.error("Caught exception looking for service logic", e);
+ }
+
+
+ if (respProps != null)
+ {
+ errorCode = respProps.getProperty("error-code");
+ errorMessage = respProps.getProperty("error-message", "");
+ }
+ }
+
+
+ if ("200".equals(errorCode)) {
+ LOG.info("ASDC update succeeded");
+
+ // Update config tree
+ applyVfLicenseModelUpdate(inputVfLic);
+ addArtifactVersion(inputVfLic.getArtifactName(), inputVfLic.getArtifactVersion());
+
+ } else {
+ LOG.info("ASDC update failed ("+errorCode+" : "+errorMessage);
+ }
+
+ // Send response
+ VfLicenseModelUpdateOutputBuilder respBuilder = new VfLicenseModelUpdateOutputBuilder();
+ respBuilder.setAsdcApiResponseCode(errorCode);
+ if (errorMessage != null && errorMessage.length() > 0) {
+ respBuilder.setAsdcApiResponseText(errorMessage);
+ }
+
+ RpcResult<VfLicenseModelUpdateOutput> rpcResult;
+
+
+ rpcResult = RpcResultBuilder.<VfLicenseModelUpdateOutput> status(true).withResult(respBuilder.build()).build();
+
+
+
+ return Futures.immediateFuture(rpcResult);
+}
+
+
+}
diff --git a/northbound/asdcApi/provider/src/main/java/org/onap/ccsdk/sli/northbound/asdcapi/AsdcApiSliClient.java b/northbound/asdcApi/provider/src/main/java/org/onap/ccsdk/sli/northbound/asdcapi/AsdcApiSliClient.java
new file mode 100644
index 000000000..880a2fb76
--- /dev/null
+++ b/northbound/asdcApi/provider/src/main/java/org/onap/ccsdk/sli/northbound/asdcapi/AsdcApiSliClient.java
@@ -0,0 +1,97 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * openECOMP : SDN-C
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * reserved.
+ * Modifications Copyright © 2018 IBM.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.ccsdk.sli.northbound.asdcapi;
+
+import java.util.Properties;
+
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.provider.SvcLogicService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class AsdcApiSliClient {
+
+ private static final Logger LOG = LoggerFactory.getLogger(AsdcApiSliClient.class);
+
+ private final SvcLogicService svcLogicService;
+
+ private String ErrorCode = "error-code";
+
+ public AsdcApiSliClient(final SvcLogicService svcLogicService) {
+ this.svcLogicService = svcLogicService;
+ }
+
+ public boolean hasGraph(String module, String rpc, String version, String mode) throws SvcLogicException
+ {
+ return svcLogicService.hasGraph(module, rpc, version, mode);
+ }
+
+
+ public Properties execute(String module, String rpc, String version, String mode, Properties parms)
+ throws SvcLogicException {
+
+
+ if (LOG.isDebugEnabled())
+ {
+ LOG.debug("Parameters passed to SLI");
+
+ for (Object key : parms.keySet()) {
+ String parmName = (String) key;
+ String parmValue = parms.getProperty(parmName);
+
+ LOG.debug(parmName+" = "+parmValue);
+
+ }
+ }
+
+ Properties respProps = svcLogicService.execute(module, rpc, version, mode, parms);
+
+ if (LOG.isDebugEnabled())
+ {
+ LOG.debug("Parameters returned by SLI");
+
+ for (Object key : respProps.keySet()) {
+ String parmName = (String) key;
+ String parmValue = respProps.getProperty(parmName);
+
+ LOG.debug(parmName+" = "+parmValue);
+
+ }
+ }
+
+ if ("failure".equalsIgnoreCase(respProps.getProperty("SvcLogic.status"))) {
+
+ if (!respProps.containsKey(ErrorCode)) {
+ respProps.setProperty(ErrorCode, "500");
+ }
+ } else {
+ if (!respProps.containsKey(ErrorCode)) {
+ respProps.setProperty(ErrorCode, "200");
+ }
+ }
+
+
+ return respProps;
+ }
+
+}
diff --git a/northbound/asdcApi/provider/src/main/java/org/onap/ccsdk/sli/northbound/asdcapi/AsdcApiUtil.java b/northbound/asdcApi/provider/src/main/java/org/onap/ccsdk/sli/northbound/asdcapi/AsdcApiUtil.java
new file mode 100644
index 000000000..602b389cb
--- /dev/null
+++ b/northbound/asdcApi/provider/src/main/java/org/onap/ccsdk/sli/northbound/asdcapi/AsdcApiUtil.java
@@ -0,0 +1,48 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * openECOMP : SDN-C
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.ccsdk.sli.northbound.asdcapi;
+
+import org.onap.ccsdk.sli.core.sli.provider.MdsalHelper;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev170201.ArtifactsBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev170201.VfLicenseModelUpdateInput;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev170201.VfLicenseModelUpdateInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev170201.VfLicenseModelVersionsBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev170201.vf.license.model.versions.VfLicenseModelVersionBuilder;
+
+public class AsdcApiUtil extends MdsalHelper {
+
+ static {
+
+ // Input objects
+
+ VfLicenseModelUpdateInput i13 = new VfLicenseModelUpdateInputBuilder().build();
+
+
+ // Other builders
+ ArtifactsBuilder b1 = new ArtifactsBuilder();
+
+ VfLicenseModelVersionsBuilder b14a = new VfLicenseModelVersionsBuilder();
+ VfLicenseModelVersionBuilder b26a = new VfLicenseModelVersionBuilder();
+
+
+ }
+}
diff --git a/northbound/asdcApi/provider/src/main/resources/OSGI-INF/blueprint/asdc-blueprint.xml b/northbound/asdcApi/provider/src/main/resources/OSGI-INF/blueprint/asdc-blueprint.xml
new file mode 100644
index 000000000..9ad08d3db
--- /dev/null
+++ b/northbound/asdcApi/provider/src/main/resources/OSGI-INF/blueprint/asdc-blueprint.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+ xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
+ odl:use-default-for-reference-types="true">
+
+ <reference id="svcLogicService"
+ interface="org.onap.ccsdk.sli.core.sli.provider.SvcLogicService" />
+
+ <bean id="client" class="org.onap.ccsdk.sli.northbound.asdcapi.AsdcApiSliClient">
+ <argument ref="svcLogicService" />
+ </bean>
+
+ <reference id="dataBroker"
+ interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
+ odl:type="default" />
+
+ <reference id="notificationService"
+ interface="org.opendaylight.controller.md.sal.binding.api.NotificationPublishService"
+ odl:type="default" />
+
+ <reference id="rpcRegistry"
+ interface="org.opendaylight.controller.sal.binding.api.RpcProviderRegistry"
+ odl:type="default" />
+
+ <bean id="provider" class="org.onap.ccsdk.sli.northbound.asdcapi.AsdcApiProvider">
+ <argument ref="dataBroker" />
+ <argument ref="notificationService" />
+ <argument ref="rpcRegistry" />
+ <argument ref="client" />
+ </bean>
+
+</blueprint> \ No newline at end of file
diff --git a/northbound/asdcApi/provider/src/main/resources/org/opendaylight/blueprint/asdc-blueprint.xml b/northbound/asdcApi/provider/src/main/resources/org/opendaylight/blueprint/asdc-blueprint.xml
new file mode 100644
index 000000000..9ad08d3db
--- /dev/null
+++ b/northbound/asdcApi/provider/src/main/resources/org/opendaylight/blueprint/asdc-blueprint.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+ xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
+ odl:use-default-for-reference-types="true">
+
+ <reference id="svcLogicService"
+ interface="org.onap.ccsdk.sli.core.sli.provider.SvcLogicService" />
+
+ <bean id="client" class="org.onap.ccsdk.sli.northbound.asdcapi.AsdcApiSliClient">
+ <argument ref="svcLogicService" />
+ </bean>
+
+ <reference id="dataBroker"
+ interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
+ odl:type="default" />
+
+ <reference id="notificationService"
+ interface="org.opendaylight.controller.md.sal.binding.api.NotificationPublishService"
+ odl:type="default" />
+
+ <reference id="rpcRegistry"
+ interface="org.opendaylight.controller.sal.binding.api.RpcProviderRegistry"
+ odl:type="default" />
+
+ <bean id="provider" class="org.onap.ccsdk.sli.northbound.asdcapi.AsdcApiProvider">
+ <argument ref="dataBroker" />
+ <argument ref="notificationService" />
+ <argument ref="rpcRegistry" />
+ <argument ref="client" />
+ </bean>
+
+</blueprint> \ No newline at end of file
diff --git a/northbound/asdcApi/provider/src/test/java/org/onap/ccsdk/sli/northbound/asdcapi/AsdcApiSliClientTest.java b/northbound/asdcApi/provider/src/test/java/org/onap/ccsdk/sli/northbound/asdcapi/AsdcApiSliClientTest.java
new file mode 100644
index 000000000..5e6a9daf7
--- /dev/null
+++ b/northbound/asdcApi/provider/src/test/java/org/onap/ccsdk/sli/northbound/asdcapi/AsdcApiSliClientTest.java
@@ -0,0 +1,59 @@
+package org.onap.ccsdk.sli.northbound.asdcapi;
+
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.*;
+
+import java.util.Properties;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.provider.SvcLogicService;
+
+public class AsdcApiSliClientTest {
+ Properties mockProp;
+ Properties propReturn;
+ AsdcApiSliClient testAsdcApiSliClient;
+
+ @Before
+ public void setup() {
+ SvcLogicService mockSvcLogic = mock(SvcLogicService.class);
+ mockProp = new Properties();
+ mockProp.setProperty("test-value1", "value1");
+ propReturn = new Properties();
+ propReturn.setProperty("SvcLogic.status", "Success");
+ propReturn.setProperty("Object1", "value1");
+ try {
+ when(mockSvcLogic.hasGraph("TestModule", "TestRPC", "TestVersion", "TestMode")).thenReturn(true);
+ when(mockSvcLogic.hasGraph("NotExist", "TestRPC", "TestVersion", "TestMode")).thenReturn(false);
+ when(mockSvcLogic.execute("TestModule", "TestRPC", "TestVersion", "TestMode", mockProp)).thenReturn(propReturn);
+ } catch (Exception e) {
+ System.out.println(e);
+ }
+
+ testAsdcApiSliClient = new AsdcApiSliClient(mockSvcLogic);
+ }
+
+ @Test
+ public void testhasGraphGraphExsists() throws SvcLogicException {
+ assertTrue(testAsdcApiSliClient.hasGraph("TestModule", "TestRPC", "TestVersion", "TestMode"));
+ }
+
+ @Test
+ public void testhasGraphnoGraph() throws SvcLogicException {
+ assertFalse(testAsdcApiSliClient.hasGraph("NotExist", "TestRPC", "TestVersion", "TestMode"));
+ }
+
+ @Test
+ public void testExecutewithSvcLogicSuccess() throws SvcLogicException {
+ Properties result = testAsdcApiSliClient.execute("TestModule", "TestRPC", "TestVersion", "TestMode", mockProp);
+ assertEquals(result.getProperty("error-code"), "200");
+ }
+
+ @Test
+ public void testExecutewithSvcLogicFailure500() throws SvcLogicException {
+ propReturn.setProperty("SvcLogic.status", "failure");
+ Properties result = testAsdcApiSliClient.execute("TestModule", "TestRPC", "TestVersion", "TestMode", mockProp);
+ assertEquals(result.getProperty("error-code"), "500");
+ }
+} \ No newline at end of file
diff --git a/northbound/asdcApi/provider/src/test/java/org/onap/ccsdk/sli/northbound/asdcapi/AsdcApiUtilTest.java b/northbound/asdcApi/provider/src/test/java/org/onap/ccsdk/sli/northbound/asdcapi/AsdcApiUtilTest.java
new file mode 100644
index 000000000..463e5ea0b
--- /dev/null
+++ b/northbound/asdcApi/provider/src/test/java/org/onap/ccsdk/sli/northbound/asdcapi/AsdcApiUtilTest.java
@@ -0,0 +1,15 @@
+package org.onap.ccsdk.sli.northbound.asdcapi;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+public class AsdcApiUtilTest {
+
+ @Test
+ public void testAsdcApiUtilConstructor() {
+ AsdcApiUtil asdcApiUtilTest = new AsdcApiUtil();
+ assertNotNull(asdcApiUtilTest);
+ }
+
+} \ No newline at end of file
diff --git a/northbound/asdcApi/provider/src/test/java/org/onap/ccsdk/sli/northbound/asdcapi/TestAsdcApiApi.java b/northbound/asdcApi/provider/src/test/java/org/onap/ccsdk/sli/northbound/asdcapi/TestAsdcApiApi.java
new file mode 100644
index 000000000..1f266365c
--- /dev/null
+++ b/northbound/asdcApi/provider/src/test/java/org/onap/ccsdk/sli/northbound/asdcapi/TestAsdcApiApi.java
@@ -0,0 +1,136 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * openECOMP : SDN-C
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.ccsdk.sli.northbound.asdcapi;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
+import org.opendaylight.controller.md.sal.binding.test.AbstractConcurrentDataBrokerTest;
+import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
+import org.opendaylight.yang.gen.v1.http.xmlns.onap.org.asdc.license.model._1._0.rev160427.vf.license.model.grouping.VfLicenseModelBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev170201.VfLicenseModelUpdateInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev170201.VfLicenseModelUpdateOutput;
+import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Properties;
+
+public class TestAsdcApiApi extends AbstractConcurrentDataBrokerTest {
+
+ private AsdcApiProvider asdcApiProvider;
+ private static final Logger LOG = LoggerFactory.getLogger(AsdcApiProvider.class);
+
+ @Before
+ public void setUp() throws Exception {
+ if (null == asdcApiProvider) {
+ DataBroker dataBroker = getDataBroker();
+ NotificationPublishService mockNotification = mock(NotificationPublishService.class);
+ RpcProviderRegistry mockRpcRegistry = mock(RpcProviderRegistry.class);
+ AsdcApiSliClient mockSliClient = mock(AsdcApiSliClient.class);
+ Properties respProps = new Properties();
+ respProps.setProperty("error-code", "200");
+ respProps.setProperty("error-message", "Success");
+
+ when(mockSliClient.hasGraph("ASDC-API", "vf-license-model-update" , null, "sync")).thenReturn(true);
+ when(mockSliClient.execute("ASDC-API", "vf-license-model-update", null, "sync", respProps)).thenReturn(respProps);
+
+ asdcApiProvider = new AsdcApiProvider(dataBroker, mockNotification, mockRpcRegistry, mockSliClient);
+ }
+ }
+
+ //Testcase should return error 503 when No service logic active for ASDC-API.
+ @Test
+ public void testVfLicenseModelUpdate() {
+
+ VfLicenseModelUpdateInputBuilder inputBuilder = new VfLicenseModelUpdateInputBuilder();
+
+ inputBuilder.setArtifactName("abc");
+ inputBuilder.setArtifactVersion("1");
+
+ // TODO: currently initialize SvcLogicServiceClient is failing, need to fix
+ java.util.concurrent.Future<RpcResult<VfLicenseModelUpdateOutput>> future = asdcApiProvider
+ .vfLicenseModelUpdate(inputBuilder.build());
+ RpcResult<VfLicenseModelUpdateOutput> rpcResult = null;
+ try {
+ rpcResult = future.get();
+ } catch (Exception e) {
+ fail("Error : " + e);
+ }
+ LOG.info("result: {}", rpcResult);
+ assertEquals("200", rpcResult.getResult().getAsdcApiResponseCode());
+ }
+
+ //Input parameter validation
+ @Test
+ public void testVfLicenseModelUpdateInputValidation() {
+
+ VfLicenseModelUpdateInputBuilder inputBuilder = new VfLicenseModelUpdateInputBuilder();
+
+ inputBuilder.setArtifactName("abc");
+ inputBuilder.setArtifactVersion("1");
+
+ java.util.concurrent.Future<RpcResult<VfLicenseModelUpdateOutput>> future = asdcApiProvider
+ .vfLicenseModelUpdate(null);
+ assertNull(future);
+ }
+
+ @Test
+ public void testVfLicenseModelUpdateValidation1() {
+
+ VfLicenseModelUpdateInputBuilder inputBuilder = new VfLicenseModelUpdateInputBuilder();
+
+ inputBuilder.setArtifactName("license1");
+ inputBuilder.setArtifactVersion("version1");
+
+ VfLicenseModelBuilder vfLicenseModelBuilder = new VfLicenseModelBuilder();
+ vfLicenseModelBuilder.setVfId("123");
+ vfLicenseModelBuilder.setVendorName("acme");
+ inputBuilder.setVfLicenseModel(vfLicenseModelBuilder.build());
+
+
+ java.util.concurrent.Future<RpcResult<VfLicenseModelUpdateOutput>> future = asdcApiProvider
+ .vfLicenseModelUpdate(inputBuilder.build());
+ RpcResult<VfLicenseModelUpdateOutput> rpcResult = null;
+ try {
+ rpcResult = future.get();
+ } catch (Exception e) {
+ fail("Error : " + e);
+ }
+ }
+
+
+
+
+ @Test
+ public void testAddArtifactVersion() {
+ asdcApiProvider.addArtifactVersion("artifact1",
+ "version1");
+ }
+}