{ "swagger" : "2.0", "info" : { "description" : "Policy Xacml PDP Service", "version" : "Swagger Server", "title" : "", "x-component" : "Policy Framework", "x-planned-retirement-date" : "tbd" }, "host" : "policy-xacml-pdp:6969", "basePath" : "/", "tags" : [ { "name" : "HealthCheck" }, { "name" : "Decision" }, { "name" : "Statistics" } ], "schemes" : [ "http", "https" ], "paths" : { "/policy/pdpx/v1/healthcheck" : { "get" : { "tags" : [ "HealthCheck" ], "summary" : "Perform a system healthcheck", "description" : "Provides healthy status of the Policy Xacml PDP component", "operationId" : "healthcheck", "consumes" : [ "application/json", "application/yaml" ], "produces" : [ "application/json", "application/yaml" ], "parameters" : [ { "name" : "X-ONAP-RequestID", "in" : "header", "description" : "RequestID for http transaction", "required" : false, "type" : "string", "format" : "uuid" } ], "responses" : { "200" : { "description" : "successful operation", "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" : { "last-mod-release" : "Dublin", "pdpx-version" : "1.0.0" } } }, "/policy/pdpx/v1/xacml" : { "post" : { "tags" : [ "Decision" ], "summary" : "Fetch the decision using specified decision parameters", "description" : "Returns the policy decision from Policy Xacml PDP", "operationId" : "xacml", "consumes" : [ "application/xacml+json", "application/xacml+xml" ], "produces" : [ "application/xacml+json", "application/xacml+xml" ], "parameters" : [ { "in" : "body", "name" : "body", "required" : false, "schema" : { "$ref" : "#/definitions/Request" } }, { "name" : "X-ONAP-RequestID", "in" : "header", "description" : "RequestID for http transaction", "required" : false, "type" : "string", "format" : "uuid" } ], "responses" : { "200" : { "description" : "successful operation", "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/Response" } }, "400" : { "description" : "Bad Request", "schema" : { "$ref" : "#/definitions/ErrorResponse" } }, "401" : { "description" : "Authentication Error" }, "403" : { "description" : "Authorization Error" }, "500" : { "description" : "Internal Server Error" } }, "security" : [ { "basicAuth" : [ ] } ], "x-interface info" : { "last-mod-release" : "Frankfurt", "pdpx-version" : "1.0.0" } } }, "/policy/pdpx/v1/statistics" : { "get" : { "tags" : [ "Statistics" ], "summary" : "Fetch current statistics", "description" : "Provides current statistics of the Policy Xacml PDP component", "operationId" : "statistics", "consumes" : [ "application/json", "application/yaml" ], "produces" : [ "application/json", "application/yaml" ], "parameters" : [ { "name" : "X-ONAP-RequestID", "in" : "header", "description" : "RequestID for http transaction", "required" : false, "type" : "string", "format" : "uuid" } ], "responses" : { "200" : { "description" : "successful operation", "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" : { "last-mod-release" : "Dublin", "pdpx-version" : "1.0.0" } } }, "/policy/pdpx/v1/decision" : { "post" : { "tags" : [ "Decision" ], "summary" : "Fetch the decision using specified decision parameters", "description" : "Returns the policy decision from Policy Xacml PDP", "operationId" : "decision", "consumes" : [ "application/json", "application/yaml" ], "produces" : [ "application/json", "application/yaml" ], "parameters" : [ { "in" : "body", "name" : "body", "required" : false, "schema" : { "$ref" : "#/definitions/DecisionRequest" } }, { "name" : "X-ONAP-RequestID", "in" : "header", "description" : "RequestID for http transaction", "required" : false, "type" : "string", "format" : "uuid" } ], "responses" : { "200" : { "description" : "successful operation", "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/DecisionResponse" } }, "400" : { "description" : "Bad Request", "schema" : { "$ref" : "#/definitions/ErrorResponse" } }, "401" : { "description" : "Authentication Error" }, "403" : { "description" : "Authorization Error" }, "500" : { "description" : "Internal Server Error" } }, "security" : [ { "basicAuth" : [ ] } ], "x-interface info" : { "last-mod-release" : "Dublin", "pdpx-version" : "1.0.0" } } } }, "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" } } }, "Advice" : { "type" : "object", "properties" : { "attributeAssignments" : { "type" : "array", "items" : { "$ref" : "#/definitions/AttributeAssignment" } }, "id" : { "$ref" : "#/definitions/Identifier" } } }, "Attribute" : { "type" : "object", "properties" : { "attributeId" : { "$ref" : "#/definitions/Identifier" }, "values" : { "type" : "array", "items" : { "$ref" : "#/definitions/AttributeValueObject" } }, "category" : { "$ref" : "#/definitions/Identifier" }, "issuer" : { "type" : "string" }, "includeInResults" : { "type" : "boolean" } } }, "AttributeAssignment" : { "type" : "object", "properties" : { "attributeValue" : { "$ref" : "#/definitions/AttributeValueObject" }, "attributeId" : { "$ref" : "#/definitions/Identifier" }, "category" : { "$ref" : "#/definitions/Identifier" }, "issuer" : { "type" : "string" }, "dataTypeId" : { "$ref" : "#/definitions/Identifier" } } }, "AttributeCategory" : { "type" : "object", "properties" : { "category" : { "$ref" : "#/definitions/Identifier" }, "attributes" : { "type" : "array", "items" : { "$ref" : "#/definitions/Attribute" } } } }, "AttributeValue" : { "type" : "object", "properties" : { "xpathCategory" : { "$ref" : "#/definitions/Identifier" }, "dataTypeId" : { "$ref" : "#/definitions/Identifier" }, "value" : { "type" : "object" } } }, "AttributeValueObject" : { "type" : "object", "properties" : { "xpathCategory" : { "$ref" : "#/definitions/Identifier" }, "dataTypeId" : { "$ref" : "#/definitions/Identifier" }, "value" : { "type" : "object" } } }, "IdReference" : { "type" : "object", "properties" : { "version" : { "$ref" : "#/definitions/Version" }, "id" : { "$ref" : "#/definitions/Identifier" } } }, "Identifier" : { "type" : "object", "properties" : { "uri" : { "type" : "string", "format" : "uri" } } }, "MissingAttributeDetail" : { "type" : "object", "properties" : { "attributeId" : { "$ref" : "#/definitions/Identifier" }, "category" : { "$ref" : "#/definitions/Identifier" }, "issuer" : { "type" : "string" }, "attributeValues" : { "type" : "array", "items" : { "$ref" : "#/definitions/AttributeValueObject" } }, "dataTypeId" : { "$ref" : "#/definitions/Identifier" } } }, "Obligation" : { "type" : "object", "properties" : { "attributeAssignments" : { "type" : "array", "items" : { "$ref" : "#/definitions/AttributeAssignment" } }, "id" : { "$ref" : "#/definitions/Identifier" } } }, "Response" : { "type" : "object", "properties" : { "results" : { "type" : "array", "items" : { "$ref" : "#/definitions/Result" } } } }, "Result" : { "type" : "object", "properties" : { "status" : { "$ref" : "#/definitions/Status" }, "decision" : { "type" : "string", "enum" : [ "PERMIT", "DENY", "INDETERMINATE", "INDETERMINATE_PERMIT", "INDETERMINATE_DENY", "INDETERMINATE_DENYPERMIT", "NOTAPPLICABLE" ] }, "associatedAdvice" : { "type" : "array", "items" : { "$ref" : "#/definitions/Advice" } }, "obligations" : { "type" : "array", "items" : { "$ref" : "#/definitions/Obligation" } }, "policyIdentifiers" : { "type" : "array", "items" : { "$ref" : "#/definitions/IdReference" } }, "policySetIdentifiers" : { "type" : "array", "items" : { "$ref" : "#/definitions/IdReference" } }, "attributes" : { "type" : "array", "items" : { "$ref" : "#/definitions/AttributeCategory" } } } }, "Status" : { "type" : "object", "properties" : { "statusCode" : { "$ref" : "#/definitions/StatusCode" }, "statusMessage" : { "type" : "string" }, "statusDetail" : { "$ref" : "#/definitions/StatusDetail" }, "ok" : { "type" : "boolean" } } }, "StatusCode" : { "type" : "object", "properties" : { "statusCodeValue" : { "$ref" : "#/definitions/Identifier" }, "child" : { "$ref" : "#/definitions/StatusCode" } } }, "StatusDetail" : { "type" : "object", "properties" : { "missingAttributeDetails" : { "type" : "array", "items" : { "$ref" : "#/definitions/MissingAttributeDetail" } } } }, "Version" : { "type" : "object", "properties" : { "version" : { "type" : "string" }, "versionDigits" : { "type" : "array", "items" : { "type" : "integer", "format" : "int32" } } } }, "ErrorResponse" : { "type" : "object", "properties" : { "responseCode" : { "type" : "string", "enum" : [ "OK", "CREATED", "ACCEPTED", "NO_CONTENT", "RESET_CONTENT", "PARTIAL_CONTENT", "MOVED_PERMANENTLY", "FOUND", "SEE_OTHER", "NOT_MODIFIED", "USE_PROXY", "TEMPORARY_REDIRECT", "BAD_REQUEST", "UNAUTHORIZED", "PAYMENT_REQUIRED", "FORBIDDEN", "NOT_FOUND", "METHOD_NOT_ALLOWED", "NOT_ACCEPTABLE", "PROXY_AUTHENTICATION_REQUIRED", "REQUEST_TIMEOUT", "CONFLICT", "GONE", "LENGTH_REQUIRED", "PRECONDITION_FAILED", "REQUEST_ENTITY_TOO_LARGE", "REQUEST_URI_TOO_LONG", "UNSUPPORTED_MEDIA_TYPE", "REQUESTED_RANGE_NOT_SATISFIABLE", "EXPECTATION_FAILED", "PRECONDITION_REQUIRED", "TOO_MANY_REQUESTS", "REQUEST_HEADER_FIELDS_TOO_LARGE", "INTERNAL_SERVER_ERROR", "NOT_IMPLEMENTED", "BAD_GATEWAY", "SERVICE_UNAVAILABLE", "GATEWAY_TIMEOUT", "HTTP_VERSION_NOT_SUPPORTED", "NETWORK_AUTHENTICATION_REQUIRED" ] }, "errorMessage" : { "type" : "string" }, "errorDetails" : { "type" : "array", "items" : { "type" : "string" } }, "warningDetails" : { "type" : "array", "items" : { "type" : "string" } } } }, "DOMConfiguration" : { "type" : "object", "properties" : { "parameterNames" : { "$ref" : "#/definitions/DOMStringList" } } }, "DOMImplementation" : { "type" : "object" }, "DOMStringList" : { "type" : "object", "properties" : { "length" : { "type" : "integer", "format" : "int32" } } }, "Document" : { "type" : "object", "properties" : { "documentElement" : { "$ref" : "#/definitions/Element" }, "xmlVersion" : { "type" : "string" }, "strictErrorChecking" : { "type" : "boolean" }, "documentURI" : { "type" : "string" }, "xmlStandalone" : { "type" : "boolean" }, "implementation" : { "$ref" : "#/definitions/DOMImplementation" }, "doctype" : { "$ref" : "#/definitions/DocumentType" }, "inputEncoding" : { "type" : "string" }, "xmlEncoding" : { "type" : "string" }, "domConfig" : { "$ref" : "#/definitions/DOMConfiguration" }, "localName" : { "type" : "string" }, "prefix" : { "type" : "string" }, "nodeValue" : { "type" : "string" }, "ownerDocument" : { "$ref" : "#/definitions/Document" }, "nodeName" : { "type" : "string" }, "childNodes" : { "$ref" : "#/definitions/NodeList" }, "nodeType" : { "type" : "integer", "format" : "int32" }, "namespaceURI" : { "type" : "string" }, "lastChild" : { "$ref" : "#/definitions/Node" }, "parentNode" : { "$ref" : "#/definitions/Node" }, "firstChild" : { "$ref" : "#/definitions/Node" }, "nextSibling" : { "$ref" : "#/definitions/Node" }, "previousSibling" : { "$ref" : "#/definitions/Node" }, "baseURI" : { "type" : "string" }, "textContent" : { "type" : "string" }, "attributes" : { "$ref" : "#/definitions/NamedNodeMap" } } }, "DocumentType" : { "type" : "object", "properties" : { "entities" : { "$ref" : "#/definitions/NamedNodeMap" }, "publicId" : { "type" : "string" }, "systemId" : { "type" : "string" }, "notations" : { "$ref" : "#/definitions/NamedNodeMap" }, "internalSubset" : { "type" : "string" }, "name" : { "type" : "string" }, "localName" : { "type" : "string" }, "prefix" : { "type" : "string" }, "nodeValue" : { "type" : "string" }, "ownerDocument" : { "$ref" : "#/definitions/Document" }, "nodeName" : { "type" : "string" }, "childNodes" : { "$ref" : "#/definitions/NodeList" }, "nodeType" : { "type" : "integer", "format" : "int32" }, "namespaceURI" : { "type" : "string" }, "lastChild" : { "$ref" : "#/definitions/Node" }, "parentNode" : { "$ref" : "#/definitions/Node" }, "firstChild" : { "$ref" : "#/definitions/Node" }, "nextSibling" : { "$ref" : "#/definitions/Node" }, "previousSibling" : { "$ref" : "#/definitions/Node" }, "baseURI" : { "type" : "string" }, "textContent" : { "type" : "string" }, "attributes" : { "$ref" : "#/definitions/NamedNodeMap" } } }, "Element" : { "type" : "object", "properties" : { "tagName" : { "type" : "string" }, "schemaTypeInfo" : { "$ref" : "#/definitions/TypeInfo" }, "localName" : { "type" : "string" }, "prefix" : { "type" : "string" }, "nodeValue" : { "type" : "string" }, "ownerDocument" : { "$ref" : "#/definitions/Document" }, "nodeName" : { "type" : "string" }, "childNodes" : { "$ref" : "#/definitions/NodeList" }, "nodeType" : { "type" : "integer", "format" : "int32" }, "namespaceURI" : { "type" : "string" }, "lastChild" : { "$ref" : "#/definitions/Node" }, "parentNode" : { "$ref" : "#/definitions/Node" }, "firstChild" : { "$ref" : "#/definitions/Node" }, "nextSibling" : { "$ref" : "#/definitions/Node" }, "previousSibling" : { "$ref" : "#/definitions/Node" }, "baseURI" : { "type" : "string" }, "textContent" : { "type" : "string" }, "attributes" : { "$ref" : "#/definitions/NamedNodeMap" } } }, "NamedNodeMap" : { "type" : "object", "properties" : { "length" : { "type" : "integer", "format" : "int32" } } }, "Node" : { "type" : "object", "properties" : { "localName" : { "type" : "string" }, "prefix" : { "type" : "string" }, "nodeValue" : { "type" : "string" }, "ownerDocument" : { "$ref" : "#/definitions/Document" }, "nodeName" : { "type" : "string" }, "childNodes" : { "$ref" : "#/definitions/NodeList" }, "nodeType" : { "type" : "integer", "format" : "int32" }, "namespaceURI" : { "type" : "string" }, "lastChild" : { "$ref" : "#/definitions/Node" }, "parentNode" : { "$ref" : "#/definitions/Node" }, "firstChild" : { "$ref" : "#/definitions/Node" }, "nextSibling" : { "$ref" : "#/definitions/Node" }, "previousSibling" : { "$ref" : "#/definitions/Node" }, "baseURI" : { "type" : "string" }, "textContent" : { "type" : "string" }, "attributes" : { "$ref" : "#/definitions/NamedNodeMap" } } }, "NodeList" : { "type" : "object", "properties" : { "length" : { "type" : "integer", "format" : "int32" } } }, "Request" : { "type" : "object", "properties" : { "requestDefaults" : { "$ref" : "#/definitions/RequestDefaults" }, "multiRequests" : { "type" : "array", "items" : { "$ref" : "#/definitions/RequestReference" } }, "status" : { "$ref" : "#/definitions/Status" }, "requestAttributesIncludedInResult" : { "type" : "array", "items" : { "$ref" : "#/definitions/AttributeCategory" } }, "combinedDecision" : { "type" : "boolean" }, "returnPolicyIdList" : { "type" : "boolean" }, "requestAttributes" : { "type" : "array", "items" : { "$ref" : "#/definitions/RequestAttributes" } } } }, "RequestAttributes" : { "type" : "object", "properties" : { "contentRoot" : { "$ref" : "#/definitions/Node" }, "xmlId" : { "type" : "string" }, "category" : { "$ref" : "#/definitions/Identifier" }, "attributes" : { "type" : "array", "items" : { "$ref" : "#/definitions/Attribute" } } } }, "RequestAttributesReference" : { "type" : "object", "properties" : { "referenceId" : { "type" : "string" } } }, "RequestDefaults" : { "type" : "object", "properties" : { "xpathVersion" : { "type" : "string", "format" : "uri" } } }, "RequestReference" : { "type" : "object", "properties" : { "attributesReferences" : { "type" : "array", "items" : { "$ref" : "#/definitions/RequestAttributesReference" } } } }, "TypeInfo" : { "type" : "object", "properties" : { "typeNamespace" : { "type" : "string" }, "typeName" : { "type" : "string" } } }, "StatisticsReport" : { "type" : "object", "properties" : { "code" : { "type" : "integer", "format" : "int32" }, "totalPolicyTypesCount" : { "type" : "integer", "format" : "int64" }, "totalPoliciesCount" : { "type" : "integer", "format" : "int64" }, "totalErrorCount" : { "type" : "integer", "format" : "int64" }, "permitDecisionsCount" : { "type" : "integer", "format" : "int64" }, "denyDecisionsCount" : { "type" : "integer", "format" : "int64" }, "indeterminantDecisionsCount" : { "type" : "integer", "format" : "int64" }, "notApplicableDecisionsCount" : { "type" : "integer", "format" : "int64" } } }, "DecisionResponse" : { "type" : "object", "properties" : { "status" : { "type" : "string" }, "message" : { "type" : "string" }, "advice" : { "type" : "object", "additionalProperties" : { "type" : "object" } }, "obligations" : { "type" : "object", "additionalProperties" : { "type" : "object" } }, "policies" : { "type" : "object", "additionalProperties" : { "type" : "object" } } } }, "DecisionRequest" : { "type" : "object", "properties" : { "onapName" : { "type" : "string" }, "onapComponent" : { "type" : "string" }, "onapInstance" : { "type" : "string" }, "requestId" : { "type" : "string" }, "context" : { "type" : "object", "additionalProperties" : { "type" : "object" } }, "action" : { "type" : "string" }, "resource" : { "type" : "object", "additionalProperties" : { "type" : "object" } } } } } }