{
  "swagger" : "2.0",
  "info" : {
    "description" : "Policy Xacml PDP Service",
    "version" : "Swagger Server",
    "title" : "",
    "x-component" : "Policy Framework",
    "x-planned-retirement-date" : "tbd"
  },
  "host" : "Pamelas-MBP-2.client.research.att.com:6969",
  "basePath" : "/",
  "tags" : [ {
    "name" : "Decision"
  }, {
    "name" : "Statistics"
  }, {
    "name" : "HealthCheck"
  } ],
  "schemes" : [ "http", "https" ],
  "paths" : {
    "/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" ],
        "produces" : [ "application/json" ],
        "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"
        }
      }
    },
    "/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" ],
        "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",
            "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/healthcheck" : {
      "get" : {
        "tags" : [ "HealthCheck" ],
        "summary" : "Perform a system healthcheck",
        "description" : "Provides healthy status of the Policy Xacml PDP component",
        "operationId" : "healthcheck",
        "consumes" : [ "application/json" ],
        "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",
            "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"
        }
      }
    }
  },
  "securityDefinitions" : {
    "basicAuth" : {
      "description" : "",
      "type" : "basic"
    }
  },
  "definitions" : {
    "DecisionResponse" : {
      "type" : "object",
      "properties" : {
        "status" : {
          "type" : "string"
        },
        "advice" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "object"
          }
        },
        "obligations" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "object"
          }
        },
        "policies" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "object"
          }
        }
      }
    },
    "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", "INTERNAL_SERVER_ERROR", "NOT_IMPLEMENTED", "BAD_GATEWAY", "SERVICE_UNAVAILABLE", "GATEWAY_TIMEOUT", "HTTP_VERSION_NOT_SUPPORTED" ]
        },
        "errorMessage" : {
          "type" : "string"
        },
        "errorDetails" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        },
        "warningDetails" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        }
      }
    },
    "DecisionRequest" : {
      "type" : "object",
      "properties" : {
        "onapName" : {
          "type" : "string"
        },
        "onapComponent" : {
          "type" : "string"
        },
        "onapInstance" : {
          "type" : "string"
        },
        "requestId" : {
          "type" : "string"
        },
        "action" : {
          "type" : "string"
        },
        "resource" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "object"
          }
        }
      }
    },
    "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"
        }
      }
    },
    "HealthCheckReport" : {
      "type" : "object",
      "properties" : {
        "name" : {
          "type" : "string"
        },
        "url" : {
          "type" : "string"
        },
        "healthy" : {
          "type" : "boolean"
        },
        "code" : {
          "type" : "integer",
          "format" : "int32"
        },
        "message" : {
          "type" : "string"
        }
      }
    }
  }
}