openapi: 3.0.1
info:
title: OpenAPI definition for SDC Helm validator
description: Application for validating Helm charts.
version: v0
servers:
- url: http://localhost:8080
description: Generated server url
tags:
- name: Actuator
description: Monitor and interact
externalDocs:
description: Spring Boot Actuator Web API Documentation
url: https://docs.spring.io/spring-boot/docs/current/actuator-api/html/
paths:
/validate:
post:
tags:
- ValidationService
summary: Validate chart
description: Web endpoint for Helm charts validation. Helm chart in .tgz format
is required.
operationId: validate
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/ValidationRequestParameters'
required: true
responses:
"500":
description: Something went wrong during validation execution
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationErrorResponse'
"200":
description: Helm chart successfully validated
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationResult'
examples:
Simple Validation:
$ref: '#/components/examples/simpleValidation'
Lint Validation:
$ref: '#/components/examples/validationWithLint'
"400":
description: Chart cannot be validated using selected version
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationErrorResponse'
/versions:
get:
tags:
- VersionsService
summary: Show Helm versions
description: Web endpoint for showing supported Helm versions.
operationId: supportedVersions
responses:
"500":
description: Something went wrong during getting Helm versions
content:
'*/*':
schema:
$ref: '#/components/schemas/ValidationErrorResponse'
"200":
description: Supported Helm versions successfully returned
content:
'*/*':
schema:
$ref: '#/components/schemas/VersionsResponse'
/actuator:
get:
tags:
- Actuator
summary: Actuator root web endpoint
operationId: links_0
responses:
"200":
description: OK
content:
'*/*':
schema:
type: object
additionalProperties:
type: object
additionalProperties:
$ref: '#/components/schemas/Link'
/actuator/info:
get:
tags:
- Actuator
summary: Actuator web endpoint 'info'
operationId: handle_1
responses:
"200":
description: OK
content:
'*/*':
schema:
type: object
/actuator/health:
get:
tags:
- Actuator
summary: Actuator web endpoint 'health'
operationId: handle_2
responses:
"200":
description: OK
content:
'*/*':
schema:
type: object
/actuator/health/**:
get:
tags:
- Actuator
summary: Actuator web endpoint 'health-path'
operationId: handle_3
responses:
"200":
description: OK
content:
'*/*':
schema:
type: object
components:
schemas:
VersionsResponse:
properties:
versions:
type: array
items:
type: string
ValidationRequestParameters:
required:
- file
type: object
properties:
versionDesired:
type: string
description: "Desired Helm version which should be used to validate the\
\ chart. If parameter is not provided validation is processing with version\
\ based on chart's apiVersion. Version could be provided in 'semantic\
\ version' or 'major version'.
Allowed formats:
- Semantic version\
\ [X.Y.Z] e.g. 3.5.2
- Major version [vX] e.g. v3"
file:
type: string
format: binary
isLinted:
type: boolean
description: "If true, there will be an attempt to lint chart"
isStrictLinted:
type: boolean
description: Strict linting marks the chart as invalid if detect any warning
ValidationErrorResponse:
type: object
properties:
message:
type: string
ValidationResult:
type: object
properties:
renderErrors:
type: array
items:
type: string
lintWarning:
type: array
items:
type: string
lintError:
type: array
items:
type: string
versionUsed:
type: string
valid:
type: boolean
deployable:
type: boolean
Link:
type: object
properties:
href:
type: string
templated:
type: boolean
examples:
simpleValidation:
description: Example response when parameter isLinted is set to false
value: "{\"renderErrors\":[],\"versionUsed\":\"3.5.2\",\"deployable\":true}"
validationWithLint:
description: Example response when parameter isLinted is set to true
value: "{\"renderErrors\":[],\"lintWarning\":[],\"lintError\":[],\"versionUsed\"\
:\"3.5.2\",\"valid\":true,\"deployable\":true}"