Add policy design api documentation
Adding swagger and global api table to api rst documentation
Issue-ID: POLICY-1680
Change-Id: Iae966917b73a8762172e708fe207c4fc6e52615f
Signed-off-by: Chenfei Gao <cgao@research.att.com>
diff --git a/.gitignore b/.gitignore
index 01eaa82..e7637a1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,3 +9,7 @@
/bin/
.idea
**/*.iml
+docs/conf.py
+docs/conf.pyc
+docs/html/
+docs/_static/
diff --git a/docs/api/api.rst b/docs/api/api.rst
index 7df880c..fb42e3e 100644
--- a/docs/api/api.rst
+++ b/docs/api/api.rst
@@ -1,14 +1,38 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. This work is licensed under a
+.. Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
.. _api-label:
Policy Lifecycle API
--------------------
.. toctree::
- :maxdepth: 1
+ :maxdepth: 1
+Global API Table
+--------------------
+.. csv-table::
+ :header: "API name", "Swagger JSON"
+ :widths: 10,5
+ "Healthcheck API", ":download:`link <healthcheck-api.json>`"
+ "Statistics API", ":download:`link <statistics-api.json>`"
+ "Tosca Policy Type API", ":download:`link <policytype-api.json>`"
+ "Tosca Policy API", ":download:`link <policy-api.json>`"
+ "Legacy Guard Policy API", ":download:`link <guard-policy-api.json>`"
+ "Legacy Operational Policy API", ":download:`link <operational-policy-api.json>`"
+API Swagger
+--------------------
+.. swaggerv2doc:: healthcheck-api.json
-End of Document
+.. swaggerv2doc:: statistics-api.json
+
+.. swaggerv2doc:: policytype-api.json
+
+.. swaggerv2doc:: policy-api.json
+
+.. swaggerv2doc:: guard-policy-api.json
+
+.. swaggerv2doc:: operational-policy-api.json
diff --git a/docs/api/guard-policy-api.json b/docs/api/guard-policy-api.json
new file mode 100644
index 0000000..18a4258
--- /dev/null
+++ b/docs/api/guard-policy-api.json
@@ -0,0 +1,405 @@
+{
+ "swagger" : "2.0",
+ "basePath" : "/",
+ "tags" : [ {
+ "name" : "Legacy Guard Policy"
+ } ],
+ "schemes" : [ "http", "https" ],
+ "paths" : {
+ "/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/{policyId}" : {
+ "get" : {
+ "tags" : [ "Legacy Guard Policy" ],
+ "summary" : "Retrieve all versions of a particular guard policy",
+ "description" : "Returns a list of all versions of the specified guard policy",
+ "operationId" : "getAllVersionsOfGuardPolicy",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "policyId",
+ "in" : "path",
+ "description" : "ID of policy",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "X-ONAP-RequestID",
+ "in" : "header",
+ "description" : "RequestID for http transaction",
+ "required" : false,
+ "type" : "string",
+ "format" : "uuid"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation; All versions of specified guard policy will be returned.",
+ "headers" : {
+ "X-MinorVersion" : {
+ "type" : "string",
+ "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
+ },
+ "X-PatchVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
+ },
+ "X-LatestVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate an API's latest version"
+ },
+ "X-ONAP-RequestID" : {
+ "type" : "string",
+ "format" : "uuid",
+ "description" : "Used to track REST transactions for logging purpose"
+ }
+ },
+ "schema" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/definitions/LegacyGuardPolicyOutput"
+ }
+ }
+ },
+ "401" : {
+ "description" : "Authentication Error"
+ },
+ "403" : {
+ "description" : "Authorization Error"
+ },
+ "404" : {
+ "description" : "Resource Not Found"
+ },
+ "500" : {
+ "description" : "Internal Server Error"
+ }
+ },
+ "security" : [ {
+ "basicAuth" : [ ]
+ } ],
+ "x-interface info" : {
+ "api-version" : "1.0.0",
+ "last-mod-release" : "Dublin"
+ }
+ }
+ },
+ "/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/{policyId}/versions/{policyVersion}" : {
+ "get" : {
+ "tags" : [ "Legacy Guard Policy" ],
+ "summary" : "Retrieve one version of a particular guard policy",
+ "description" : "Returns a particular version of a specified guard policy",
+ "operationId" : "getSpecificVersionOfGuardPolicy",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "policyId",
+ "in" : "path",
+ "description" : "ID of policy",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "policyVersion",
+ "in" : "path",
+ "description" : "Version of policy",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "X-ONAP-RequestID",
+ "in" : "header",
+ "description" : "RequestID for http transaction",
+ "required" : false,
+ "type" : "string",
+ "format" : "uuid"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation; Specified version of guard policy will be returned.",
+ "headers" : {
+ "X-MinorVersion" : {
+ "type" : "string",
+ "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
+ },
+ "X-PatchVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
+ },
+ "X-LatestVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate an API's latest version"
+ },
+ "X-ONAP-RequestID" : {
+ "type" : "string",
+ "format" : "uuid",
+ "description" : "Used to track REST transactions for logging purpose"
+ }
+ },
+ "schema" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/definitions/LegacyGuardPolicyOutput"
+ }
+ }
+ },
+ "401" : {
+ "description" : "Authentication Error"
+ },
+ "403" : {
+ "description" : "Authorization Error"
+ },
+ "404" : {
+ "description" : "Resource Not Found"
+ },
+ "500" : {
+ "description" : "Internal Server Error"
+ }
+ },
+ "security" : [ {
+ "basicAuth" : [ ]
+ } ],
+ "x-interface info" : {
+ "api-version" : "1.0.0",
+ "last-mod-release" : "Dublin"
+ }
+ },
+ "delete" : {
+ "tags" : [ "Legacy Guard Policy" ],
+ "summary" : "Delete a particular version of a guard policy",
+ "description" : "Delete a particular version of a guard policy. It must follow one rule. Rule: the version that has been deployed in PDP group(s) cannot be deleted",
+ "operationId" : "deleteSpecificVersionOfGuardPolicy",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "policyId",
+ "in" : "path",
+ "description" : "ID of policy",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "policyVersion",
+ "in" : "path",
+ "description" : "Version of policy",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "X-ONAP-RequestID",
+ "in" : "header",
+ "description" : "RequestID for http transaction",
+ "required" : false,
+ "type" : "string",
+ "format" : "uuid"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation; Newly deleted guard policy will be returned.",
+ "headers" : {
+ "X-MinorVersion" : {
+ "type" : "string",
+ "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
+ },
+ "X-PatchVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
+ },
+ "X-LatestVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate an API's latest version"
+ },
+ "X-ONAP-RequestID" : {
+ "type" : "string",
+ "format" : "uuid",
+ "description" : "Used to track REST transactions for logging purpose"
+ }
+ },
+ "schema" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/definitions/LegacyGuardPolicyOutput"
+ }
+ }
+ },
+ "401" : {
+ "description" : "Authentication Error"
+ },
+ "403" : {
+ "description" : "Authorization Error"
+ },
+ "404" : {
+ "description" : "Resource Not Found"
+ },
+ "409" : {
+ "description" : "Delete Conflict, Rule Violation"
+ },
+ "500" : {
+ "description" : "Internal Server Error"
+ }
+ },
+ "security" : [ {
+ "basicAuth" : [ ]
+ } ],
+ "x-interface info" : {
+ "api-version" : "1.0.0",
+ "last-mod-release" : "Dublin"
+ }
+ }
+ },
+ "/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies" : {
+ "post" : {
+ "tags" : [ "Legacy Guard Policy" ],
+ "summary" : "Create a new guard policy",
+ "description" : "Create a new guard policy. Client should provide entity body of the new guard policy",
+ "operationId" : "createGuardPolicy",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "X-ONAP-RequestID",
+ "in" : "header",
+ "description" : "RequestID for http transaction",
+ "required" : false,
+ "type" : "string",
+ "format" : "uuid"
+ }, {
+ "in" : "body",
+ "name" : "body",
+ "description" : "Entity body of policy",
+ "required" : true,
+ "type" : "ToscaServiceTemplate",
+ "schema" : {
+ "$ref" : "#/definitions/LegacyGuardPolicyInput"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation; Newly created guard policy will be returned.",
+ "headers" : {
+ "X-MinorVersion" : {
+ "type" : "string",
+ "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
+ },
+ "X-PatchVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
+ },
+ "X-LatestVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate an API's latest version"
+ },
+ "X-ONAP-RequestID" : {
+ "type" : "string",
+ "format" : "uuid",
+ "description" : "Used to track REST transactions for logging purpose"
+ }
+ },
+ "schema" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/definitions/LegacyGuardPolicyOutput"
+ }
+ }
+ },
+ "400" : {
+ "description" : "Invalid Body"
+ },
+ "401" : {
+ "description" : "Authentication Error"
+ },
+ "403" : {
+ "description" : "Authorization Error"
+ },
+ "500" : {
+ "description" : "Internal Server Error"
+ }
+ },
+ "security" : [ {
+ "basicAuth" : [ ]
+ } ],
+ "x-interface info" : {
+ "api-version" : "1.0.0",
+ "last-mod-release" : "Dublin"
+ }
+ }
+ }
+ },
+ "securityDefinitions" : {
+ "basicAuth" : {
+ "description" : "",
+ "type" : "basic"
+ }
+ },
+ "definitions" : {
+ "LegacyGuardPolicyContent" : {
+ "type" : "object",
+ "properties" : {
+ "actor" : {
+ "type" : "string"
+ },
+ "recipe" : {
+ "type" : "string"
+ },
+ "targets" : {
+ "type" : "string"
+ },
+ "clname" : {
+ "type" : "string"
+ },
+ "limit" : {
+ "type" : "string"
+ },
+ "timeWindow" : {
+ "type" : "string"
+ },
+ "timeUnits" : {
+ "type" : "string"
+ },
+ "min" : {
+ "type" : "string"
+ },
+ "max" : {
+ "type" : "string"
+ },
+ "guardActiveStart" : {
+ "type" : "string"
+ },
+ "guardActiveEnd" : {
+ "type" : "string"
+ },
+ "asPropertyMap" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "string"
+ }
+ }
+ }
+ },
+ "LegacyGuardPolicyOutput" : {
+ "type" : "object",
+ "properties" : {
+ "type" : {
+ "type" : "string"
+ },
+ "version" : {
+ "type" : "string"
+ },
+ "metadata" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "object"
+ }
+ },
+ "properties" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/definitions/LegacyGuardPolicyContent"
+ }
+ }
+ }
+ },
+ "LegacyGuardPolicyInput" : {
+ "type" : "object",
+ "properties" : {
+ "policy-id" : {
+ "type" : "string"
+ },
+ "policy-version" : {
+ "type" : "string"
+ },
+ "content" : {
+ "$ref" : "#/definitions/LegacyGuardPolicyContent"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/docs/api/healthcheck-api.json b/docs/api/healthcheck-api.json
new file mode 100644
index 0000000..6605ee5
--- /dev/null
+++ b/docs/api/healthcheck-api.json
@@ -0,0 +1,99 @@
+{
+ "swagger" : "2.0",
+ "basePath" : "/",
+ "tags" : [{
+ "name" : "HealthCheck"
+ }],
+ "schemes" : [ "http", "https" ],
+ "paths" : {
+ "/policy/api/v1/healthcheck" : {
+ "get" : {
+ "tags" : [ "HealthCheck" ],
+ "summary" : "Perform a system healthcheck",
+ "description" : "Returns healthy status of the Policy API component",
+ "operationId" : "getHealthCheck",
+ "produces" : [ "application/json" ],
+ "parameters" : [{
+ "name" : "X-ONAP-RequestID",
+ "in" : "header",
+ "description" : "RequestID for http transaction",
+ "required" : false,
+ "type" : "string",
+ "format" : "uuid"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation; Healthcheck report will be returned.",
+ "headers" : {
+ "X-MinorVersion" : {
+ "type" : "string",
+ "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
+ },
+ "X-PatchVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
+ },
+ "X-LatestVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate an API's latest version"
+ },
+ "X-ONAP-RequestID" : {
+ "type" : "string",
+ "format" : "uuid",
+ "description" : "Used to track REST transactions for logging purpose"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/definitions/HealthCheckReport"
+ }
+ },
+ "401" : {
+ "description" : "Authentication Error"
+ },
+ "403" : {
+ "description" : "Authorization Error"
+ },
+ "500" : {
+ "description" : "Internal Server Error"
+ }
+ },
+ "security" : [ {
+ "basicAuth" : [ ]
+ } ],
+ "x-interface info" : {
+ "api-version" : "1.0.0",
+ "last-mod-release" : "Dublin"
+ }
+ }
+ }
+ },
+ "securityDefinitions" : {
+ "basicAuth" : {
+ "description" : "",
+ "type" : "basic"
+ }
+ },
+ "definitions" : {
+ "HealthCheckReport" : {
+ "type" : "object",
+ "properties" : {
+ "name" : {
+ "type" : "string"
+ },
+ "url" : {
+ "type" : "string"
+ },
+ "healthy" : {
+ "type" : "boolean"
+ },
+ "code" : {
+ "type" : "integer",
+ "format" : "int32"
+ },
+ "message" : {
+ "type" : "string"
+ }
+ }
+ }
+ }
+}
diff --git a/docs/api/operational-policy-api.json b/docs/api/operational-policy-api.json
new file mode 100644
index 0000000..ffa460b
--- /dev/null
+++ b/docs/api/operational-policy-api.json
@@ -0,0 +1,325 @@
+{
+ "swagger" : "2.0",
+ "basePath" : "/",
+ "tags" : [ {
+ "name" : "Legacy Operational Policy"
+ } ],
+ "schemes" : [ "http", "https" ],
+ "paths" : {
+ "/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/{policyId}" : {
+ "get" : {
+ "tags" : [ "Legacy Operational Policy" ],
+ "summary" : "Retrieve all versions of a particular operational policy",
+ "description" : "Returns a list of all versions of the specified operational policy",
+ "operationId" : "getAllVersionsOfOperationalPolicy",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "policyId",
+ "in" : "path",
+ "description" : "ID of policy",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "X-ONAP-RequestID",
+ "in" : "header",
+ "description" : "RequestID for http transaction",
+ "required" : false,
+ "type" : "string",
+ "format" : "uuid"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation; All versions of specified operational policy will be returned.",
+ "headers" : {
+ "X-MinorVersion" : {
+ "type" : "string",
+ "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
+ },
+ "X-PatchVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
+ },
+ "X-LatestVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate an API's latest version"
+ },
+ "X-ONAP-RequestID" : {
+ "type" : "string",
+ "format" : "uuid",
+ "description" : "Used to track REST transactions for logging purpose"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/definitions/LegacyOperationalPolicy"
+ }
+ },
+ "401" : {
+ "description" : "Authentication Error"
+ },
+ "403" : {
+ "description" : "Authorization Error"
+ },
+ "404" : {
+ "description" : "Resource Not Found"
+ },
+ "500" : {
+ "description" : "Internal Server Error"
+ }
+ },
+ "security" : [ {
+ "basicAuth" : [ ]
+ } ],
+ "x-interface info" : {
+ "api-version" : "1.0.0",
+ "last-mod-release" : "Dublin"
+ }
+ }
+ },
+ "/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/{policyId}/versions/{policyVersion}" : {
+ "get" : {
+ "tags" : [ "Legacy Operational Policy" ],
+ "summary" : "Retrieve one version of a particular operational policy",
+ "description" : "Returns a particular version of a specified operational policy",
+ "operationId" : "getSpecificVersionOfOperationalPolicy",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "policyId",
+ "in" : "path",
+ "description" : "ID of policy",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "policyVersion",
+ "in" : "path",
+ "description" : "Version of policy",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "X-ONAP-RequestID",
+ "in" : "header",
+ "description" : "RequestID for http transaction",
+ "required" : false,
+ "type" : "string",
+ "format" : "uuid"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation; Specified version of specified operational policy will be returned.",
+ "headers" : {
+ "X-MinorVersion" : {
+ "type" : "string",
+ "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
+ },
+ "X-PatchVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
+ },
+ "X-LatestVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate an API's latest version"
+ },
+ "X-ONAP-RequestID" : {
+ "type" : "string",
+ "format" : "uuid",
+ "description" : "Used to track REST transactions for logging purpose"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/definitions/LegacyOperationalPolicy"
+ }
+ },
+ "401" : {
+ "description" : "Authentication Error"
+ },
+ "403" : {
+ "description" : "Authorization Error"
+ },
+ "404" : {
+ "description" : "Resource Not Found"
+ },
+ "500" : {
+ "description" : "Internal Server Error"
+ }
+ },
+ "security" : [ {
+ "basicAuth" : [ ]
+ } ],
+ "x-interface info" : {
+ "api-version" : "1.0.0",
+ "last-mod-release" : "Dublin"
+ }
+ },
+ "delete" : {
+ "tags" : [ "Legacy Operational Policy" ],
+ "summary" : "Delete a particular version of a specified operational policy",
+ "description" : "Delete a particular version of an operational policy. It must follow one rule. Rule: the version that has been deployed in PDP group(s) cannot be deleted",
+ "operationId" : "deleteSpecificVersionOfOperationalPolicy",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "policyId",
+ "in" : "path",
+ "description" : "ID of policy",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "policyVersion",
+ "in" : "path",
+ "description" : "Version of policy",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "X-ONAP-RequestID",
+ "in" : "header",
+ "description" : "RequestID for http transaction",
+ "required" : false,
+ "type" : "string",
+ "format" : "uuid"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation; Newly deleted operational policy will be returned.",
+ "headers" : {
+ "X-MinorVersion" : {
+ "type" : "string",
+ "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
+ },
+ "X-PatchVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
+ },
+ "X-LatestVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate an API's latest version"
+ },
+ "X-ONAP-RequestID" : {
+ "type" : "string",
+ "format" : "uuid",
+ "description" : "Used to track REST transactions for logging purpose"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/definitions/LegacyOperationalPolicy"
+ }
+ },
+ "401" : {
+ "description" : "Authentication Error"
+ },
+ "403" : {
+ "description" : "Authorization Error"
+ },
+ "404" : {
+ "description" : "Resource Not Found"
+ },
+ "409" : {
+ "description" : "Delete Conflict, Rule Violation"
+ },
+ "500" : {
+ "description" : "Internal Server Error"
+ }
+ },
+ "security" : [ {
+ "basicAuth" : [ ]
+ } ],
+ "x-interface info" : {
+ "api-version" : "1.0.0",
+ "last-mod-release" : "Dublin"
+ }
+ }
+ },
+ "/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies" : {
+ "post" : {
+ "tags" : [ "Legacy Operational Policy" ],
+ "summary" : "Create a new operational policy",
+ "description" : "Create a new operational policy. Client should provide entity body of the new operational policy",
+ "operationId" : "createOperationalPolicy",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "X-ONAP-RequestID",
+ "in" : "header",
+ "description" : "RequestID for http transaction",
+ "required" : false,
+ "type" : "string",
+ "format" : "uuid"
+ }, {
+ "in" : "body",
+ "name" : "body",
+ "description" : "Entity body of policy",
+ "required" : true,
+ "type" : "ToscaServiceTemplate",
+ "schema" : {
+ "$ref" : "#/definitions/LegacyOperationalPolicy"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation; Newly created operational policy will be returned.",
+ "headers" : {
+ "X-MinorVersion" : {
+ "type" : "string",
+ "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
+ },
+ "X-PatchVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
+ },
+ "X-LatestVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate an API's latest version"
+ },
+ "X-ONAP-RequestID" : {
+ "type" : "string",
+ "format" : "uuid",
+ "description" : "Used to track REST transactions for logging purpose"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/definitions/LegacyOperationalPolicy"
+ }
+ },
+ "400" : {
+ "description" : "Invalid Body"
+ },
+ "401" : {
+ "description" : "Authentication Error"
+ },
+ "403" : {
+ "description" : "Authorization Error"
+ },
+ "500" : {
+ "description" : "Internal Server Error"
+ }
+ },
+ "security" : [ {
+ "basicAuth" : [ ]
+ } ],
+ "x-interface info" : {
+ "api-version" : "1.0.0",
+ "last-mod-release" : "Dublin"
+ }
+ }
+ }
+ },
+ "securityDefinitions" : {
+ "basicAuth" : {
+ "description" : "",
+ "type" : "basic"
+ }
+ },
+ "definitions" : {
+ "LegacyOperationalPolicy" : {
+ "type" : "object",
+ "properties" : {
+ "policy-id" : {
+ "type" : "string"
+ },
+ "policy-version" : {
+ "type" : "string"
+ },
+ "content" : {
+ "type" : "string"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/docs/api/policy-api.json b/docs/api/policy-api.json
new file mode 100644
index 0000000..0037fd5
--- /dev/null
+++ b/docs/api/policy-api.json
@@ -0,0 +1,824 @@
+{
+ "swagger" : "2.0",
+ "basePath" : "/",
+ "tags" : [ {
+ "name" : "Policy"
+ } ],
+ "schemes" : [ "http", "https" ],
+ "paths" : {
+ "/policy/api/v1/policytypes/{policyTypeId}/versions/{policyTypeVersion}/policies" : {
+ "get" : {
+ "tags" : [ "Policy" ],
+ "summary" : "Retrieve all versions of a policy created for a particular policy type version",
+ "description" : "Returns a list of all versions of specified policy created for the specified policy type version",
+ "operationId" : "getAllPolicies",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "policyTypeId",
+ "in" : "path",
+ "description" : "ID of policy type",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "policyTypeVersion",
+ "in" : "path",
+ "description" : "Version of policy type",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "X-ONAP-RequestID",
+ "in" : "header",
+ "description" : "RequestID for http transaction",
+ "required" : false,
+ "type" : "string",
+ "format" : "uuid"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation; All policies matching specified policy type will be returned.",
+ "headers" : {
+ "X-MinorVersion" : {
+ "type" : "string",
+ "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
+ },
+ "X-PatchVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
+ },
+ "X-LatestVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate an API's latest version"
+ },
+ "X-ONAP-RequestID" : {
+ "type" : "string",
+ "format" : "uuid",
+ "description" : "Used to track REST transactions for logging purpose"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/definitions/ToscaServiceTemplate"
+ }
+ },
+ "401" : {
+ "description" : "Authentication Error"
+ },
+ "403" : {
+ "description" : "Authorization Error"
+ },
+ "404" : {
+ "description" : "Resource Not Found"
+ },
+ "500" : {
+ "description" : "Internal Server Error"
+ }
+ },
+ "security" : [ {
+ "basicAuth" : [ ]
+ } ],
+ "x-interface info" : {
+ "api-version" : "1.0.0",
+ "last-mod-release" : "Dublin"
+ }
+ },
+ "post" : {
+ "tags" : [ "Policy" ],
+ "summary" : "Create a new policy for a policy type version",
+ "description" : "Create a new policy for a policy type. Client should provide TOSCA body of the new policy",
+ "operationId" : "createPolicy",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "policyTypeId",
+ "in" : "path",
+ "description" : "ID of policy type",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "policyTypeVersion",
+ "in" : "path",
+ "description" : "Version of policy type",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "X-ONAP-RequestID",
+ "in" : "header",
+ "description" : "RequestID for http transaction",
+ "required" : false,
+ "type" : "string",
+ "format" : "uuid"
+ }, {
+ "in" : "body",
+ "name" : "body",
+ "description" : "Entity body of policy",
+ "required" : true,
+ "type" : "ToscaServiceTemplate",
+ "schema" : {
+ "$ref" : "#/definitions/ToscaServiceTemplate"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation; Newly created policy matching specified policy type will be returned.",
+ "headers" : {
+ "X-MinorVersion" : {
+ "type" : "string",
+ "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
+ },
+ "X-PatchVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
+ },
+ "X-LatestVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate an API's latest version"
+ },
+ "X-ONAP-RequestID" : {
+ "type" : "string",
+ "format" : "uuid",
+ "description" : "Used to track REST transactions for logging purpose"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/definitions/ToscaServiceTemplate"
+ }
+ },
+ "400" : {
+ "description" : "Invalid Body"
+ },
+ "401" : {
+ "description" : "Authentication Error"
+ },
+ "403" : {
+ "description" : "Authorization Error"
+ },
+ "404" : {
+ "description" : "Resource Not Found"
+ },
+ "500" : {
+ "description" : "Internal Server Error"
+ }
+ },
+ "security" : [ {
+ "basicAuth" : [ ]
+ } ],
+ "x-interface info" : {
+ "api-version" : "1.0.0",
+ "last-mod-release" : "Dublin"
+ }
+ }
+ },
+ "/policy/api/v1/policytypes/{policyTypeId}/versions/{policyTypeVersion}/policies/{policyId}" : {
+ "get" : {
+ "tags" : [ "Policy" ],
+ "summary" : "Retrieve all version details of a policy created for a particular policy type version",
+ "description" : "Returns a list of all version details of the specified policy",
+ "operationId" : "getAllVersionsOfPolicy",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "policyTypeId",
+ "in" : "path",
+ "description" : "ID of policy type",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "policyTypeVersion",
+ "in" : "path",
+ "description" : "Version of policy type",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "policyId",
+ "in" : "path",
+ "description" : "ID of policy",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "X-ONAP-RequestID",
+ "in" : "header",
+ "description" : "RequestID for http transaction",
+ "required" : false,
+ "type" : "string",
+ "format" : "uuid"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation; All versions of specified policy matching specified policy type will be returned.",
+ "headers" : {
+ "X-MinorVersion" : {
+ "type" : "string",
+ "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
+ },
+ "X-PatchVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
+ },
+ "X-LatestVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate an API's latest version"
+ },
+ "X-ONAP-RequestID" : {
+ "type" : "string",
+ "format" : "uuid",
+ "description" : "Used to track REST transactions for logging purpose"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/definitions/ToscaServiceTemplate"
+ }
+ },
+ "401" : {
+ "description" : "Authentication Error"
+ },
+ "403" : {
+ "description" : "Authorization Error"
+ },
+ "404" : {
+ "description" : "Resource Not Found"
+ },
+ "500" : {
+ "description" : "Internal Server Error"
+ }
+ },
+ "security" : [ {
+ "basicAuth" : [ ]
+ } ],
+ "x-interface info" : {
+ "api-version" : "1.0.0",
+ "last-mod-release" : "Dublin"
+ }
+ }
+ },
+ "/policy/api/v1/policytypes/{policyTypeId}/versions/{policyTypeVersion}/policies/{policyId}/versions/{policyVersion}" : {
+ "get" : {
+ "tags" : [ "Policy" ],
+ "summary" : "Retrieve one version of a policy created for a particular policy type version",
+ "description" : "Returns a particular version of specified policy created for the specified policy type version",
+ "operationId" : "getSpecificVersionOfPolicy",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "policyTypeId",
+ "in" : "path",
+ "description" : "ID of policy type",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "policyTypeVersion",
+ "in" : "path",
+ "description" : "Version of policy type",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "policyId",
+ "in" : "path",
+ "description" : "ID of policy",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "policyVersion",
+ "in" : "path",
+ "description" : "Version of policy",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "X-ONAP-RequestID",
+ "in" : "header",
+ "description" : "RequestID for http transaction",
+ "required" : false,
+ "type" : "string",
+ "format" : "uuid"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation; The specified policy matching specified policy type will be returned.",
+ "headers" : {
+ "X-MinorVersion" : {
+ "type" : "string",
+ "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
+ },
+ "X-PatchVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
+ },
+ "X-LatestVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate an API's latest version"
+ },
+ "X-ONAP-RequestID" : {
+ "type" : "string",
+ "format" : "uuid",
+ "description" : "Used to track REST transactions for logging purpose"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/definitions/ToscaServiceTemplate"
+ }
+ },
+ "401" : {
+ "description" : "Authentication Error"
+ },
+ "403" : {
+ "description" : "Authorization Error"
+ },
+ "404" : {
+ "description" : "Resource Not Found"
+ },
+ "500" : {
+ "description" : "Internal Server Error"
+ }
+ },
+ "security" : [ {
+ "basicAuth" : [ ]
+ } ],
+ "x-interface info" : {
+ "api-version" : "1.0.0",
+ "last-mod-release" : "Dublin"
+ }
+ },
+ "delete" : {
+ "tags" : [ "Policy" ],
+ "summary" : "Delete a particular version of a policy",
+ "description" : "Delete a particular version of a policy. It must follow one rule. Rule: the version that has been deployed in PDP group(s) cannot be deleted",
+ "operationId" : "deleteSpecificVersionOfPolicy",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "policyTypeId",
+ "in" : "path",
+ "description" : "PolicyType ID",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "policyTypeVersion",
+ "in" : "path",
+ "description" : "Version of policy type",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "policyId",
+ "in" : "path",
+ "description" : "ID of policy",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "policyVersion",
+ "in" : "path",
+ "description" : "Version of policy",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "X-ONAP-RequestID",
+ "in" : "header",
+ "description" : "RequestID for http transaction",
+ "required" : false,
+ "type" : "string",
+ "format" : "uuid"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation; Newly deleted policy matching specified policy type will be returned.",
+ "headers" : {
+ "X-MinorVersion" : {
+ "type" : "string",
+ "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
+ },
+ "X-PatchVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
+ },
+ "X-LatestVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate an API's latest version"
+ },
+ "X-ONAP-RequestID" : {
+ "type" : "string",
+ "format" : "uuid",
+ "description" : "Used to track REST transactions for logging purpose"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/definitions/ToscaServiceTemplate"
+ }
+ },
+ "401" : {
+ "description" : "Authentication Error"
+ },
+ "403" : {
+ "description" : "Authorization Error"
+ },
+ "404" : {
+ "description" : "Resource Not Found"
+ },
+ "409" : {
+ "description" : "Delete Conflict, Rule Violation"
+ },
+ "500" : {
+ "description" : "Internal Server Error"
+ }
+ },
+ "security" : [ {
+ "basicAuth" : [ ]
+ } ],
+ "x-interface info" : {
+ "api-version" : "1.0.0",
+ "last-mod-release" : "Dublin"
+ }
+ }
+ },
+ "/policy/api/v1/policytypes/{policyTypeId}/versions/{policyTypeVersion}/policies/{policyId}/versions/latest" : {
+ "get" : {
+ "tags" : [ "Policy" ],
+ "summary" : "Retrieve the latest version of a particular policy",
+ "description" : "Returns the latest version of specified policy",
+ "operationId" : "getLatestVersionOfPolicy",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "policyTypeId",
+ "in" : "path",
+ "description" : "ID of policy type",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "policyTypeVersion",
+ "in" : "path",
+ "description" : "Version of policy type",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "policyId",
+ "in" : "path",
+ "description" : "ID of policy",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "X-ONAP-RequestID",
+ "in" : "header",
+ "description" : "RequestID for http transaction",
+ "required" : false,
+ "type" : "string",
+ "format" : "uuid"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation; Latest version of specified policy matching specified policy type will be returned.",
+ "headers" : {
+ "X-MinorVersion" : {
+ "type" : "string",
+ "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
+ },
+ "X-PatchVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
+ },
+ "X-LatestVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate an API's latest version"
+ },
+ "X-ONAP-RequestID" : {
+ "type" : "string",
+ "format" : "uuid",
+ "description" : "Used to track REST transactions for logging purpose"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/definitions/ToscaServiceTemplate"
+ }
+ },
+ "401" : {
+ "description" : "Authentication Error"
+ },
+ "403" : {
+ "description" : "Authorization Error"
+ },
+ "404" : {
+ "description" : "Resource Not Found"
+ },
+ "500" : {
+ "description" : "Internal Server Error"
+ }
+ },
+ "security" : [ {
+ "basicAuth" : [ ]
+ } ],
+ "x-interface info" : {
+ "api-version" : "1.0.0",
+ "last-mod-release" : "Dublin"
+ }
+ }
+ },
+ "/policy/api/v1/policytypes/{policyTypeId}/versions/{policyTypeVersion}/policies/{policyId}/versions/deployed" : {
+ "get" : {
+ "tags" : [ "Policy" ],
+ "summary" : "Retrieve deployed versions of a particular policy in pdp groups",
+ "description" : "Returns deployed versions of specified policy in pdp groups",
+ "operationId" : "getDeployedVersionsOfPolicy",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "policyTypeId",
+ "in" : "path",
+ "description" : "ID of policy type",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "policyTypeVersion",
+ "in" : "path",
+ "description" : "Version of policy type",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "policyId",
+ "in" : "path",
+ "description" : "ID of policy",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "X-ONAP-RequestID",
+ "in" : "header",
+ "description" : "RequestID for http transaction",
+ "required" : false,
+ "type" : "string",
+ "format" : "uuid"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation; Deployed versions of specified policy matching specified policy type will be returned.",
+ "headers" : {
+ "X-MinorVersion" : {
+ "type" : "string",
+ "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
+ },
+ "X-PatchVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
+ },
+ "X-LatestVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate an API's latest version"
+ },
+ "X-ONAP-RequestID" : {
+ "type" : "string",
+ "format" : "uuid",
+ "description" : "Used to track REST transactions for logging purpose"
+ }
+ },
+ "schema" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/ToscaPolicy"
+ }
+ }
+ },
+ "401" : {
+ "description" : "Authentication Error"
+ },
+ "403" : {
+ "description" : "Authorization Error"
+ },
+ "404" : {
+ "description" : "Resource Not Found"
+ },
+ "500" : {
+ "description" : "Internal Server Error"
+ }
+ },
+ "security" : [ {
+ "basicAuth" : [ ]
+ } ],
+ "x-interface info" : {
+ "api-version" : "1.0.0",
+ "last-mod-release" : "Dublin"
+ }
+ }
+ }
+ },
+ "securityDefinitions" : {
+ "basicAuth" : {
+ "description" : "",
+ "type" : "basic"
+ }
+ },
+ "definitions" : {
+ "ToscaConstraint" : {
+ "type" : "object",
+ "properties" : {
+ "valid_values" : {
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ }
+ },
+ "equal" : {
+ "type" : "string"
+ },
+ "greater_than" : {
+ "type" : "string"
+ },
+ "greater_or_equal" : {
+ "type" : "string"
+ },
+ "less_than" : {
+ "type" : "string"
+ },
+ "less_or_equal" : {
+ "type" : "string"
+ }
+ }
+ },
+ "ToscaDataType" : {
+ "type" : "object",
+ "properties" : {
+ "name" : {
+ "type" : "string"
+ },
+ "version" : {
+ "type" : "string"
+ },
+ "derived_from" : {
+ "type" : "string"
+ },
+ "metadata" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "string"
+ }
+ },
+ "description" : {
+ "type" : "string"
+ },
+ "constraints" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/ToscaConstraint"
+ }
+ },
+ "properties" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/definitions/ToscaProperty"
+ }
+ }
+ }
+ },
+ "ToscaEntrySchema" : {
+ "type" : "object",
+ "properties" : {
+ "name" : {
+ "type" : "string"
+ },
+ "type" : {
+ "type" : "string"
+ },
+ "typeVersion" : {
+ "type" : "string"
+ },
+ "description" : {
+ "type" : "string"
+ },
+ "constraints" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/ToscaConstraint"
+ }
+ }
+ }
+ },
+ "ToscaPolicyType" : {
+ "type" : "object",
+ "properties" : {
+ "name" : {
+ "type" : "string"
+ },
+ "version" : {
+ "type" : "string"
+ },
+ "derived_from" : {
+ "type" : "string"
+ },
+ "metadata" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "string"
+ }
+ },
+ "description" : {
+ "type" : "string"
+ },
+ "properties" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/definitions/ToscaProperty"
+ }
+ }
+ }
+ },
+ "ToscaPolicyTypeIdentifier" : {
+ "type" : "object",
+ "properties" : {
+ "name" : {
+ "type" : "string"
+ },
+ "version" : {
+ "type" : "string"
+ }
+ }
+ },
+ "ToscaProperty" : {
+ "type" : "object",
+ "properties" : {
+ "name" : {
+ "type" : "string"
+ },
+ "type" : {
+ "type" : "string"
+ },
+ "typeVersion" : {
+ "type" : "string"
+ },
+ "description" : {
+ "type" : "string"
+ },
+ "default" : {
+ "type" : "string"
+ },
+ "required" : {
+ "type" : "boolean"
+ },
+ "status" : {
+ "type" : "string",
+ "enum" : [ "SUPPORTED", "UNSUPPORTED", "EXPERIMENTAL", "DEPRECATED" ]
+ },
+ "constraints" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/ToscaConstraint"
+ }
+ },
+ "entry_schema" : {
+ "$ref" : "#/definitions/ToscaEntrySchema"
+ }
+ }
+ },
+ "ToscaServiceTemplate" : {
+ "type" : "object",
+ "properties" : {
+ "name" : {
+ "type" : "string"
+ },
+ "version" : {
+ "type" : "string"
+ },
+ "derived_from" : {
+ "type" : "string"
+ },
+ "metadata" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "string"
+ }
+ },
+ "description" : {
+ "type" : "string"
+ },
+ "tosca_definitions_version" : {
+ "type" : "string"
+ },
+ "topology_template" : {
+ "$ref" : "#/definitions/ToscaTopologyTemplate"
+ },
+ "policy_types" : {
+ "type" : "array",
+ "items" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/definitions/ToscaPolicyType"
+ }
+ }
+ },
+ "data_types" : {
+ "type" : "array",
+ "items" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/definitions/ToscaDataType"
+ }
+ }
+ }
+ }
+ },
+ "ToscaTopologyTemplate" : {
+ "type" : "object",
+ "properties" : {
+ "description" : {
+ "type" : "string"
+ },
+ "policies" : {
+ "type" : "array",
+ "items" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/definitions/ToscaPolicy"
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/docs/api/policytype-api.json b/docs/api/policytype-api.json
new file mode 100644
index 0000000..2215164
--- /dev/null
+++ b/docs/api/policytype-api.json
@@ -0,0 +1,662 @@
+{
+ "swagger" : "2.0",
+ "basePath" : "/",
+ "tags" : [ {
+ "name" : "PolicyType"
+ } ],
+ "schemes" : [ "http", "https" ],
+ "paths" : {
+ "/policy/api/v1/policytypes" : {
+ "get" : {
+ "tags" : [ "PolicyType" ],
+ "summary" : "Retrieve existing policy types",
+ "description" : "Returns a list of existing policy types stored in Policy Framework",
+ "operationId" : "getAllPolicyTypes",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "X-ONAP-RequestID",
+ "in" : "header",
+ "description" : "RequestID for http transaction",
+ "required" : false,
+ "type" : "string",
+ "format" : "uuid"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation; All policy types will be returned.",
+ "headers" : {
+ "X-MinorVersion" : {
+ "type" : "string",
+ "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
+ },
+ "X-PatchVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
+ },
+ "X-LatestVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate an API's latest version"
+ },
+ "X-ONAP-RequestID" : {
+ "type" : "string",
+ "format" : "uuid",
+ "description" : "Used to track REST transactions for logging purpose"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/definitions/ToscaServiceTemplate"
+ }
+ },
+ "401" : {
+ "description" : "Authentication Error"
+ },
+ "403" : {
+ "description" : "Authorization Error"
+ },
+ "500" : {
+ "description" : "Internal Server Error"
+ }
+ },
+ "security" : [ {
+ "basicAuth" : [ ]
+ } ],
+ "x-interface info" : {
+ "api-version" : "1.0.0",
+ "last-mod-release" : "Dublin"
+ }
+ },
+ "post" : {
+ "tags" : [ "PolicyType" ],
+ "summary" : "Create a new policy type",
+ "description" : "Create a new policy type. Client should provide TOSCA body of the new policy type",
+ "operationId" : "createPolicyType",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "in" : "body",
+ "name" : "body",
+ "description" : "Entity body of policy type",
+ "required" : true,
+ "type" : "ToscaServiceTemplate",
+ "schema" : {
+ "$ref" : "#/definitions/ToscaServiceTemplate"
+ }
+ }, {
+ "name" : "X-ONAP-RequestID",
+ "in" : "header",
+ "description" : "RequestID for http transaction",
+ "required" : false,
+ "type" : "string",
+ "format" : "uuid"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation; The newly created policy type will be returned.",
+ "headers" : {
+ "X-MinorVersion" : {
+ "type" : "string",
+ "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
+ },
+ "X-PatchVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
+ },
+ "X-LatestVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate an API's latest version"
+ },
+ "X-ONAP-RequestID" : {
+ "type" : "string",
+ "format" : "uuid",
+ "description" : "Used to track REST transactions for logging purpose"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/definitions/ToscaServiceTemplate"
+ }
+ },
+ "400" : {
+ "description" : "Invalid Body"
+ },
+ "401" : {
+ "description" : "Authentication Error"
+ },
+ "403" : {
+ "description" : "Authorization Error"
+ },
+ "500" : {
+ "description" : "Internal Server Error"
+ }
+ },
+ "security" : [ {
+ "basicAuth" : [ ]
+ } ],
+ "x-interface info" : {
+ "api-version" : "1.0.0",
+ "last-mod-release" : "Dublin"
+ }
+ }
+ },
+ "/policy/api/v1/policytypes/{policyTypeId}" : {
+ "get" : {
+ "tags" : [ "PolicyType" ],
+ "summary" : "Retrieve all available versions of a policy type",
+ "description" : "Returns a list of all available versions for the specified policy type",
+ "operationId" : "getAllVersionsOfPolicyType",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "policyTypeId",
+ "in" : "path",
+ "description" : "ID of policy type",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "X-ONAP-RequestID",
+ "in" : "header",
+ "description" : "RequestID for http transaction",
+ "required" : false,
+ "type" : "string",
+ "format" : "uuid"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation; All versions of specified policy type will be returned.",
+ "headers" : {
+ "X-MinorVersion" : {
+ "type" : "string",
+ "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
+ },
+ "X-PatchVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
+ },
+ "X-LatestVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate an API's latest version"
+ },
+ "X-ONAP-RequestID" : {
+ "type" : "string",
+ "format" : "uuid",
+ "description" : "Used to track REST transactions for logging purpose"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/definitions/ToscaServiceTemplate"
+ }
+ },
+ "401" : {
+ "description" : "Authentication Error"
+ },
+ "403" : {
+ "description" : "Authorization Error"
+ },
+ "404" : {
+ "description" : "Resource Not Found"
+ },
+ "500" : {
+ "description" : "Internal Server Error"
+ }
+ },
+ "security" : [ {
+ "basicAuth" : [ ]
+ } ],
+ "x-interface info" : {
+ "api-version" : "1.0.0",
+ "last-mod-release" : "Dublin"
+ }
+ }
+ },
+ "/policy/api/v1/policytypes/{policyTypeId}/versions/{versionId}" : {
+ "get" : {
+ "tags" : [ "PolicyType" ],
+ "summary" : "Retrieve one particular version of a policy type",
+ "description" : "Returns a particular version for the specified policy type",
+ "operationId" : "getSpecificVersionOfPolicyType",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "policyTypeId",
+ "in" : "path",
+ "description" : "ID of policy type",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "versionId",
+ "in" : "path",
+ "description" : "Version of policy type",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "X-ONAP-RequestID",
+ "in" : "header",
+ "description" : "RequestID for http transaction",
+ "required" : false,
+ "type" : "string",
+ "format" : "uuid"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation; One specified version of specified policy type will be returned.",
+ "headers" : {
+ "X-MinorVersion" : {
+ "type" : "string",
+ "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
+ },
+ "X-PatchVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
+ },
+ "X-LatestVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate an API's latest version"
+ },
+ "X-ONAP-RequestID" : {
+ "type" : "string",
+ "format" : "uuid",
+ "description" : "Used to track REST transactions for logging purpose"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/definitions/ToscaServiceTemplate"
+ }
+ },
+ "401" : {
+ "description" : "Authentication Error"
+ },
+ "403" : {
+ "description" : "Authorization Error"
+ },
+ "404" : {
+ "description" : "Resource Not Found"
+ },
+ "500" : {
+ "description" : "Internal Server Error"
+ }
+ },
+ "security" : [ {
+ "basicAuth" : [ ]
+ } ],
+ "x-interface info" : {
+ "api-version" : "1.0.0",
+ "last-mod-release" : "Dublin"
+ }
+ },
+ "delete" : {
+ "tags" : [ "PolicyType" ],
+ "summary" : "Delete one version of a policy type",
+ "description" : "Delete one version of a policy type. It must follow two rules. Rule 1: pre-defined policy types cannot be deleted; Rule 2: policy types that are in use (parameterized by a TOSCA policy) cannot be deleted. The parameterizing TOSCA policies must be deleted first.",
+ "operationId" : "deleteSpecificVersionOfPolicyType",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "policyTypeId",
+ "in" : "path",
+ "description" : "ID of policy type",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "versionId",
+ "in" : "path",
+ "description" : "Version of policy type",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "X-ONAP-RequestID",
+ "in" : "header",
+ "description" : "RequestID for http transaction",
+ "required" : false,
+ "type" : "string",
+ "format" : "uuid"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation; Newly deleted policy type will be returned.",
+ "headers" : {
+ "X-MinorVersion" : {
+ "type" : "string",
+ "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
+ },
+ "X-PatchVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
+ },
+ "X-LatestVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate an API's latest version"
+ },
+ "X-ONAP-RequestID" : {
+ "type" : "string",
+ "format" : "uuid",
+ "description" : "Used to track REST transactions for logging purpose"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/definitions/ToscaServiceTemplate"
+ }
+ },
+ "401" : {
+ "description" : "Authentication Error"
+ },
+ "403" : {
+ "description" : "Authorization Error"
+ },
+ "404" : {
+ "description" : "Resource Not Found"
+ },
+ "409" : {
+ "description" : "Delete Conflict, Rule Violation"
+ },
+ "500" : {
+ "description" : "Internal Server Error"
+ }
+ },
+ "security" : [ {
+ "basicAuth" : [ ]
+ } ],
+ "x-interface info" : {
+ "api-version" : "1.0.0",
+ "last-mod-release" : "Dublin"
+ }
+ }
+ },
+ "/policy/api/v1/policytypes/{policyTypeId}/versions/latest" : {
+ "get" : {
+ "tags" : [ "PolicyType" ],
+ "summary" : "Retrieve latest version of a policy type",
+ "description" : "Returns latest version for the specified policy type",
+ "operationId" : "getLatestVersionOfPolicyType",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "policyTypeId",
+ "in" : "path",
+ "description" : "ID of policy type",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "X-ONAP-RequestID",
+ "in" : "header",
+ "description" : "RequestID for http transaction",
+ "required" : false,
+ "type" : "string",
+ "format" : "uuid"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation; Latest version of specified policy type will be returned.",
+ "headers" : {
+ "X-MinorVersion" : {
+ "type" : "string",
+ "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
+ },
+ "X-PatchVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
+ },
+ "X-LatestVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate an API's latest version"
+ },
+ "X-ONAP-RequestID" : {
+ "type" : "string",
+ "format" : "uuid",
+ "description" : "Used to track REST transactions for logging purpose"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/definitions/ToscaServiceTemplate"
+ }
+ },
+ "401" : {
+ "description" : "Authentication Error"
+ },
+ "403" : {
+ "description" : "Authorization Error"
+ },
+ "404" : {
+ "description" : "Resource Not Found"
+ },
+ "500" : {
+ "description" : "Internal Server Error"
+ }
+ },
+ "security" : [ {
+ "basicAuth" : [ ]
+ } ],
+ "x-interface info" : {
+ "api-version" : "1.0.0",
+ "last-mod-release" : "Dublin"
+ }
+ }
+ }
+ },
+ "securityDefinitions" : {
+ "basicAuth" : {
+ "description" : "",
+ "type" : "basic"
+ }
+ },
+ "definitions" : {
+ "ToscaConstraint" : {
+ "type" : "object",
+ "properties" : {
+ "valid_values" : {
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ }
+ },
+ "equal" : {
+ "type" : "string"
+ },
+ "greater_than" : {
+ "type" : "string"
+ },
+ "greater_or_equal" : {
+ "type" : "string"
+ },
+ "less_than" : {
+ "type" : "string"
+ },
+ "less_or_equal" : {
+ "type" : "string"
+ }
+ }
+ },
+ "ToscaDataType" : {
+ "type" : "object",
+ "properties" : {
+ "name" : {
+ "type" : "string"
+ },
+ "version" : {
+ "type" : "string"
+ },
+ "derived_from" : {
+ "type" : "string"
+ },
+ "metadata" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "string"
+ }
+ },
+ "description" : {
+ "type" : "string"
+ },
+ "constraints" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/ToscaConstraint"
+ }
+ },
+ "properties" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/definitions/ToscaProperty"
+ }
+ }
+ }
+ },
+ "ToscaEntrySchema" : {
+ "type" : "object",
+ "properties" : {
+ "name" : {
+ "type" : "string"
+ },
+ "type" : {
+ "type" : "string"
+ },
+ "typeVersion" : {
+ "type" : "string"
+ },
+ "description" : {
+ "type" : "string"
+ },
+ "constraints" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/ToscaConstraint"
+ }
+ }
+ }
+ },
+ "ToscaPolicyType" : {
+ "type" : "object",
+ "properties" : {
+ "name" : {
+ "type" : "string"
+ },
+ "version" : {
+ "type" : "string"
+ },
+ "derived_from" : {
+ "type" : "string"
+ },
+ "metadata" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "string"
+ }
+ },
+ "description" : {
+ "type" : "string"
+ },
+ "properties" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/definitions/ToscaProperty"
+ }
+ }
+ }
+ },
+ "ToscaPolicyTypeIdentifier" : {
+ "type" : "object",
+ "properties" : {
+ "name" : {
+ "type" : "string"
+ },
+ "version" : {
+ "type" : "string"
+ }
+ }
+ },
+ "ToscaProperty" : {
+ "type" : "object",
+ "properties" : {
+ "name" : {
+ "type" : "string"
+ },
+ "type" : {
+ "type" : "string"
+ },
+ "typeVersion" : {
+ "type" : "string"
+ },
+ "description" : {
+ "type" : "string"
+ },
+ "default" : {
+ "type" : "string"
+ },
+ "required" : {
+ "type" : "boolean"
+ },
+ "status" : {
+ "type" : "string",
+ "enum" : [ "SUPPORTED", "UNSUPPORTED", "EXPERIMENTAL", "DEPRECATED" ]
+ },
+ "constraints" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/ToscaConstraint"
+ }
+ },
+ "entry_schema" : {
+ "$ref" : "#/definitions/ToscaEntrySchema"
+ }
+ }
+ },
+ "ToscaServiceTemplate" : {
+ "type" : "object",
+ "properties" : {
+ "name" : {
+ "type" : "string"
+ },
+ "version" : {
+ "type" : "string"
+ },
+ "derived_from" : {
+ "type" : "string"
+ },
+ "metadata" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "string"
+ }
+ },
+ "description" : {
+ "type" : "string"
+ },
+ "tosca_definitions_version" : {
+ "type" : "string"
+ },
+ "topology_template" : {
+ "$ref" : "#/definitions/ToscaTopologyTemplate"
+ },
+ "policy_types" : {
+ "type" : "array",
+ "items" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/definitions/ToscaPolicyType"
+ }
+ }
+ },
+ "data_types" : {
+ "type" : "array",
+ "items" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/definitions/ToscaDataType"
+ }
+ }
+ }
+ }
+ },
+ "ToscaTopologyTemplate" : {
+ "type" : "object",
+ "properties" : {
+ "description" : {
+ "type" : "string"
+ },
+ "policies" : {
+ "type" : "array",
+ "items" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/definitions/ToscaPolicy"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/docs/api/statistics-api.json b/docs/api/statistics-api.json
new file mode 100644
index 0000000..a55f03c
--- /dev/null
+++ b/docs/api/statistics-api.json
@@ -0,0 +1,147 @@
+{
+ "swagger" : "2.0",
+ "basePath" : "/",
+ "tags" : [{
+ "name" : "Statistics"
+ }],
+ "schemes" : [ "http", "https" ],
+ "paths" : {
+ "/policy/api/v1/statistics" : {
+ "get" : {
+ "tags" : [ "Statistics" ],
+ "summary" : "Retrieve current statistics",
+ "description" : "Returns current statistics including the counters of API invocation",
+ "operationId" : "getStatistics",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "X-ONAP-RequestID",
+ "in" : "header",
+ "description" : "RequestID for http transaction",
+ "required" : false,
+ "type" : "string",
+ "format" : "uuid"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation; All statistics counters of API invocation will be returned.",
+ "headers" : {
+ "X-MinorVersion" : {
+ "type" : "string",
+ "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
+ },
+ "X-PatchVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
+ },
+ "X-LatestVersion" : {
+ "type" : "string",
+ "description" : "Used only to communicate an API's latest version"
+ },
+ "X-ONAP-RequestID" : {
+ "type" : "string",
+ "format" : "uuid",
+ "description" : "Used to track REST transactions for logging purpose"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/definitions/StatisticsReport"
+ }
+ },
+ "401" : {
+ "description" : "Authentication Error"
+ },
+ "403" : {
+ "description" : "Authorization Error"
+ },
+ "500" : {
+ "description" : "Internal Server Error"
+ }
+ },
+ "security" : [ {
+ "basicAuth" : [ ]
+ } ],
+ "x-interface info" : {
+ "api-version" : "1.0.0",
+ "last-mod-release" : "Dublin"
+ }
+ }
+ }
+ },
+ "securityDefinitions" : {
+ "basicAuth" : {
+ "description" : "",
+ "type" : "basic"
+ }
+ },
+ "definitions" : {
+ "StatisticsReport" : {
+ "type" : "object",
+ "properties" : {
+ "code" : {
+ "type" : "integer",
+ "format" : "int32"
+ },
+ "totalApiCallCount" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "apiCallSuccessCount" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "apiCallFailureCount" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "totalPolicyGetCount" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "totalPolicyPostCount" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "totalPolicyTypeGetCount" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "totalPolicyTypePostCount" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "policyGetSuccessCount" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "policyGetFailureCount" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "policyPostSuccessCount" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "policyPostFailureCount" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "policyTypeGetSuccessCount" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "policyTypeGetFailureCount" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "policyTypePostSuccessCount" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "policyTypePostFailureCount" : {
+ "type" : "integer",
+ "format" : "int64"
+ }
+ }
+ }
+ }
+}