blob: aaff2b92188d86e27d1925ac59343696613d3fdd [file] [log] [blame]
#
# ========================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