@elastic-suite/gally-admin-shared
Version:
Shared package for gally admin BO
104 lines (88 loc) • 2.24 kB
text/typescript
import { HydraPropertyType } from './hydra'
import { HttpCode, Method } from './network'
export interface IDocsJsonContent {
schema: HydraPropertyType
}
export interface IDocsJsonBody {
description: string
content: Record<string, IDocsJsonContent>
required: boolean
}
export interface IDocsJsonParameter {
name: string
in: string
description: string
required: boolean
deprecated: boolean
allowEmptyValue: boolean
schema: HydraPropertyType
style: string
explode: boolean
allowReserved: boolean
}
export interface IDocsJsonLink {
operationId: string
parameters: Record<string, string>
description: string
}
export interface IDocsJsonResponse {
content?: Record<string, IDocsJsonContent>
description: string
links?: Record<string, IDocsJsonLink>
}
export type DocsJsonResponses = {
[code in HttpCode]?: IDocsJsonResponse
}
export interface IDocsJsonOperation {
operationId?: string
tags?: string[]
responses?: DocsJsonResponses
summary?: string
description?: string
parameters: IDocsJsonParameter[]
requestBody?: IDocsJsonBody
deprecated?: boolean
}
export type DocsJsonMethods = {
[method in Lowercase<Method>]?: IDocsJsonOperation
}
export interface IDocsJsonPath extends DocsJsonMethods {
parameters: string[]
ref?: string
}
export interface IDocsJsonSecurity {
apiKey: string[]
}
export interface IDocsJsonServer {
url: string
description: string
}
export interface IDocsJsonInfo {
title: string
description: string
version: string
}
export interface IDocsJsonSecuritySchemes {
type: string
description: string
name: string
in: string
}
export interface IDocsJsonComponents {
schemas: Record<string, HydraPropertyType>
responses: DocsJsonResponses
parameters: Record<string, unknown> // FIXME
examples: Record<string, unknown> // FIXME
requestBodies: Record<string, unknown> // FIXME
headers: Record<string, unknown> // FIXME
securitySchemes: Record<string, IDocsJsonSecuritySchemes>
}
export interface IDocsJson {
openapi: string
info: IDocsJsonInfo
servers: IDocsJsonServer[]
paths: Record<string, IDocsJsonPath>
components: Record<string, IDocsJsonComponents>
security: IDocsJsonSecurity[]
tags: string[]
}