# | |
# ========================LICENSE_START================================= | |
# Copyright (C) 2024: Deutsche Telecom | |
# | |
# Licensed under the Apache License, Version 2.0 (the "License"); | |
# you may not use this file except in compliance with the License. | |
# You may obtain a copy of the License at | |
# | |
# http://www.apache.org/licenses/LICENSE-2.0 | |
# | |
# Unless required by applicable law or agreed to in writing, software | |
# distributed under the License is distributed on an "AS IS" BASIS, | |
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
# See the License for the specific language governing permissions and | |
# limitations under the License. | |
# ========================LICENSE_END=================================== | |
# | |
openapi: 3.0.3 | |
info: | |
title: "Policy OPA PDP Documentation" | |
description: Policy OPA PDP Service | |
version: 1.0.0 | |
x-component: Policy Framework | |
x-planned-retirement-date: tbd | |
contact: | |
name: Deena Mukundan | |
email: dm00536893@techmahindra.com | |
servers: | |
- url: http://policy-opa-pdp:8282/policy/pdpx/v1 | |
- url: https://policy-opa-pdp:8282/policy/pdpx/v1 | |
tags: | |
- name: Decision | |
- name: Statistics | |
- name: HealthCheck | |
paths: | |
/decision: | |
post: | |
tags: | |
- Decision | |
summary: Fetch the decision using specified decision parameters | |
description: Returns the policy decision from Policy OPA PDP | |
operationId: decision | |
parameters: | |
- name: X-ONAP-RequestID | |
in: header | |
description: RequestID for http transaction | |
schema: | |
type: string | |
format: uuid | |
requestBody: | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/OPADecisionRequest' | |
application/yaml: | |
schema: | |
$ref: '#/components/schemas/OPADecisionRequest' | |
required: false | |
responses: | |
200: | |
description: successful operation | |
headers: | |
X-LatestVersion: | |
description: Used only to communicate an API's latest version | |
schema: | |
type: string | |
X-PatchVersion: | |
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 | |
schema: | |
type: string | |
X-MinorVersion: | |
description: Used to request or communicate a MINOR version back from | |
the client to the server, and from the server back to the client | |
schema: | |
type: string | |
X-ONAP-RequestID: | |
description: Used to track REST transactions for logging purpose | |
schema: | |
type: string | |
format: uuid | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/OPADecisionResponse' | |
application/yaml: | |
schema: | |
$ref: '#/components/schemas/OPADecisionResponse' | |
400: | |
description: Bad Request | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/ErrorResponse' | |
application/yaml: | |
schema: | |
$ref: '#/components/schemas/ErrorResponse' | |
401: | |
description: Authentication Error | |
content: {} | |
403: | |
description: Authorization Error | |
content: {} | |
500: | |
description: Internal Server Error | |
content: {} | |
security: | |
- basicAuth: [] | |
x-interface info: | |
last-mod-release: Paris | |
pdpx-version: 1.0.0 | |
x-codegen-request-body-name: body | |
/healthcheck: | |
get: | |
tags: | |
- HealthCheck | |
summary: Perform a system healthcheck | |
description: Provides healthy status of the Policy OPA PDP component | |
operationId: healthcheck | |
parameters: | |
- name: X-ONAP-RequestID | |
in: header | |
description: RequestID for http transaction | |
schema: | |
type: string | |
format: uuid | |
responses: | |
200: | |
description: successful operation | |
headers: | |
X-LatestVersion: | |
description: Used only to communicate an API's latest version | |
schema: | |
type: string | |
X-PatchVersion: | |
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 | |
schema: | |
type: string | |
X-MinorVersion: | |
description: Used to request or communicate a MINOR version back from | |
the client to the server, and from the server back to the client | |
schema: | |
type: string | |
X-ONAP-RequestID: | |
description: Used to track REST transactions for logging purpose | |
schema: | |
type: string | |
format: uuid | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/HealthCheckReport' | |
application/yaml: | |
schema: | |
$ref: '#/components/schemas/HealthCheckReport' | |
401: | |
description: Authentication Error | |
content: {} | |
403: | |
description: Authorization Error | |
content: {} | |
500: | |
description: Internal Server Error | |
content: {} | |
security: | |
- basicAuth: [] | |
x-interface info: | |
last-mod-release: Paris | |
pdpx-version: 1.0.0 | |
/statistics: | |
get: | |
tags: | |
- Statistics | |
summary: Fetch current statistics | |
description: Provides current statistics of the Policy OPA PDP component | |
operationId: statistics | |
parameters: | |
- name: X-ONAP-RequestID | |
in: header | |
description: RequestID for http transaction | |
schema: | |
type: string | |
format: uuid | |
responses: | |
200: | |
description: successful operation | |
headers: | |
X-LatestVersion: | |
description: Used only to communicate an API's latest version | |
schema: | |
type: string | |
X-PatchVersion: | |
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 | |
schema: | |
type: string | |
X-MinorVersion: | |
description: Used to request or communicate a MINOR version back from | |
the client to the server, and from the server back to the client | |
schema: | |
type: string | |
X-ONAP-RequestID: | |
description: Used to track REST transactions for logging purpose | |
schema: | |
type: string | |
format: uuid | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/StatisticsReport' | |
application/yaml: | |
schema: | |
$ref: '#/components/schemas/StatisticsReport' | |
401: | |
description: Authentication Error | |
content: {} | |
403: | |
description: Authorization Error | |
content: {} | |
500: | |
description: Internal Server Error | |
content: {} | |
security: | |
- basicAuth: [] | |
x-interface info: | |
last-mod-release: Paris | |
pdpx-version: 1.0.0 | |
components: | |
schemas: | |
ErrorResponse: | |
type: object | |
properties: | |
responseCode: | |
type: string | |
enum: | |
- BAD_REQUEST | |
- UNAUTHORIZED | |
- METHOD_NOT_ALLOWED | |
- NOT_ACCEPTABLE | |
- 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 | |
policyName: | |
type: string | |
errorDetails: | |
type: array | |
items: | |
type: string | |
OPADecisionRequest: | |
type: object | |
properties: | |
onapName: | |
type: string | |
onapComponent: | |
type: string | |
onapInstance: | |
type: string | |
currentDateTime: | |
type: string | |
format: date-time | |
currentDate: | |
type: string | |
format: date | |
currentTime: | |
type: string | |
format: date-time | |
timeZone: | |
type: string | |
description: "Timezone in IANA format (e.g., 'America/NewYork', 'Europe/Paris', 'UTC')" | |
timeOffset: | |
type: string | |
pattern: '^[+-]?\d{2}:\d{2}$' | |
description: "Time offset in hours and minutes, e.g., '+02:00' or '-05:00'" | |
policyName: | |
type: string | |
input: | |
type: object | |
additionalProperties: true | |
example: | |
user: alice | |
action: read | |
object: id123 | |
type: dog | |
HealthCheckReport: | |
type: object | |
properties: | |
name: | |
type: string | |
url: | |
type: string | |
healthy: | |
type: boolean | |
code: | |
type: integer | |
format: int32 | |
message: | |
type: string | |
OPADecisionResponse: | |
type: object | |
properties: | |
statusMessage: | |
type: string | |
decision: | |
type: string | |
enum: | |
- PERMIT | |
- DENY | |
- INDETERMINATE | |
policyName: | |
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 | |
deploySuccessCount: | |
type: integer | |
format: int64 | |
deployFailureCount: | |
type: integer | |
format: int64 | |
undeploySuccessCount: | |
type: integer | |
format: int64 | |
undeployFailureCount: | |
type: integer | |
format: int64 | |
indeterminantDecisionsCount: | |
type: integer | |
format: int64 | |
securitySchemes: | |
basicAuth: | |
type: http | |
description: "" | |
scheme: basic |