mirror of https://github.com/vernonkeenan/lib
260 lines
6.6 KiB
YAML
260 lines
6.6 KiB
YAML
swagger: "2.0"
|
|
info:
|
|
version: 0.3.0
|
|
title: "stash"
|
|
description: "PDF Storage Microservice"
|
|
termsOfService: "https://keenanvision.net/terms/"
|
|
contact:
|
|
email: "info@keenanvision.net"
|
|
license:
|
|
name: "Proprietary - Copyright (c) 2018-2024 by Vernon Keenan"
|
|
securityDefinitions:
|
|
ApiKeyAuth:
|
|
type: "apiKey"
|
|
in: "header"
|
|
name: "X-API-Key"
|
|
kvSessionCookie:
|
|
type: "apiKey"
|
|
in: "header"
|
|
name: "Cookie"
|
|
description: "Members session cookie. Credential values are never accepted in request bodies, responses, or logs."
|
|
security:
|
|
- ApiKeyAuth: []
|
|
schemes:
|
|
- "https"
|
|
basePath: "/vk/stash/v1"
|
|
host: "gw.tnxs.net"
|
|
consumes:
|
|
- "application/json"
|
|
produces:
|
|
- "application/json"
|
|
parameters:
|
|
limitQuery:
|
|
description: Maximum metadata records to return
|
|
in: query
|
|
name: limit
|
|
required: false
|
|
type: integer
|
|
format: int64
|
|
minimum: 1
|
|
maximum: 100
|
|
default: 25
|
|
offsetQuery:
|
|
description: Metadata records to skip
|
|
in: query
|
|
name: offset
|
|
required: false
|
|
type: integer
|
|
format: int64
|
|
minimum: 0
|
|
maximum: 10000
|
|
default: 0
|
|
responses:
|
|
AccessForbidden:
|
|
description: "Access forbidden, account lacks access"
|
|
schema:
|
|
$ref: "#/definitions/Error"
|
|
NotFound:
|
|
description: Resource was not found
|
|
schema:
|
|
$ref: "#/definitions/Error"
|
|
ServerError:
|
|
description: Server Internal Error
|
|
schema:
|
|
$ref: "#/definitions/Error"
|
|
Unauthorized:
|
|
description: "Access Unauthorized, invalid API-KEY was used"
|
|
schema:
|
|
$ref: "#/definitions/Error"
|
|
UnprocessableEntity:
|
|
description: "Unprocessable Entity, likely a bad parameter"
|
|
schema:
|
|
$ref: "#/definitions/Error"
|
|
DocumentResponse:
|
|
description: Rendered documents response
|
|
schema:
|
|
$ref: "#/definitions/DocumentResponse"
|
|
paths:
|
|
/pdfs:
|
|
get:
|
|
description: "Return bounded metadata for verified PDFs in the configured Keenan Vision tenant. Requires a native service principal with exact stash:pdf:read and an active Keenan Vision or Contributor session."
|
|
operationId: listPdfs
|
|
parameters:
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/DocumentResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
kvSessionCookie: []
|
|
summary: List verified tenant PDF metadata
|
|
tags:
|
|
- StashPdf
|
|
post:
|
|
deprecated: true
|
|
description: "Disabled. Stash is metadata-read-only; create and rendering fail closed before body validation or provider access."
|
|
operationId: postPdfs
|
|
responses:
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
summary: PDF creation is disabled
|
|
tags:
|
|
- StashPdf
|
|
/pdfs/{pdfId}:
|
|
get:
|
|
description: "Return metadata for one verified PDF in the configured Keenan Vision tenant. Requires a native service principal with exact stash:pdf:read and an active Keenan Vision or Contributor session."
|
|
operationId: getPdfs
|
|
parameters:
|
|
- name: pdfId
|
|
in: path
|
|
description: PDF record ID
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/DocumentResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
kvSessionCookie: []
|
|
summary: Get a single PDF record by ID
|
|
tags:
|
|
- StashPdf
|
|
definitions:
|
|
Document:
|
|
properties:
|
|
Filename:
|
|
type: string
|
|
ID:
|
|
type: string
|
|
SagaType:
|
|
type: string
|
|
ParentID:
|
|
type: string
|
|
Title:
|
|
type: string
|
|
URI:
|
|
type: string
|
|
type: object
|
|
DocumentResponse:
|
|
description: An array of rendered documents
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "#/definitions/Document"
|
|
type: array
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
type: object
|
|
Error:
|
|
properties:
|
|
Code:
|
|
format: int64
|
|
type: number
|
|
Fields:
|
|
type: string
|
|
Message:
|
|
type: string
|
|
type: object
|
|
NewPDF:
|
|
properties:
|
|
Description:
|
|
description: Description
|
|
type: string
|
|
Filename:
|
|
description: Filename only
|
|
type: string
|
|
HTML:
|
|
description: The HTML data in text format
|
|
type: string
|
|
LastAccessedByID:
|
|
description: Last Accessed By
|
|
type: string
|
|
ObjectType:
|
|
description: This document's financial object origination
|
|
type: string
|
|
OwnerID:
|
|
description: User who created the PDF
|
|
type: string
|
|
ParentID:
|
|
description: ID of the record that owns this PDF
|
|
type: string
|
|
Ref:
|
|
description: External reference if any
|
|
type: string
|
|
Title:
|
|
description: Document descriptive title
|
|
type: string
|
|
type: object
|
|
PDFRequest:
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "#/definitions/NewPDF"
|
|
type: array
|
|
Meta:
|
|
$ref: "#/definitions/RequestMeta"
|
|
type: object
|
|
RequestMeta:
|
|
properties:
|
|
ExternalAccount:
|
|
description: Account Number of the Reseller or OEM
|
|
type: string
|
|
required:
|
|
- ExternalAccount
|
|
type: object
|
|
ResponseMeta:
|
|
properties:
|
|
Contact:
|
|
description: Microservice Contact Info
|
|
type: string
|
|
Copyright:
|
|
description: Copyright Info
|
|
type: string
|
|
License:
|
|
description: License Information and Restrictions
|
|
type: string
|
|
OperationID:
|
|
description: Operation ID
|
|
type: string
|
|
RequestIP:
|
|
description: Request IP Address
|
|
type: string
|
|
RequestType:
|
|
description: Request Type
|
|
type: string
|
|
RequestURL:
|
|
description: Request URL
|
|
type: string
|
|
ServerInfo:
|
|
description: Data Server Info
|
|
type: string
|
|
ServerResponseTime:
|
|
description: Data Server Response Time (ms)
|
|
type: string
|
|
ServerTimestamp:
|
|
description: Backend Server Timestamp
|
|
type: string
|
|
ExternalAccount:
|
|
description: Account Number used for recording transactions
|
|
type: string
|
|
type: object
|