mirror of https://github.com/vernonkeenan/lib
198 lines
5.3 KiB
YAML
198 lines
5.3 KiB
YAML
swagger: "2.0"
|
|
info:
|
|
version: 0.3.0
|
|
title: "stash"
|
|
description: "Read-only client projection of the Stash PDF metadata contract"
|
|
termsOfService: "https://keenanvision.net/terms/"
|
|
contact:
|
|
email: "info@keenanvision.net"
|
|
license:
|
|
name: "Proprietary - Copyright (c) 2018-2024 by Vernon Keenan"
|
|
x-provider-pr: "vernonkeenan/stash#16"
|
|
x-provider-head: "b2f5b4a6ae5ff507dfdc86bb7b9ee5a9bb924131"
|
|
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."
|
|
schemes:
|
|
- "http"
|
|
basePath: "/v1"
|
|
host: "stash.vernonkeenan.com:8080"
|
|
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: Sanitized PDF metadata 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
|
|
/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:
|
|
description: Sanitized PDF metadata; document bytes and legacy ownership fields are excluded.
|
|
properties:
|
|
Filename:
|
|
type: string
|
|
ID:
|
|
type: string
|
|
Title:
|
|
type: string
|
|
URI:
|
|
type: string
|
|
type: object
|
|
DocumentResponse:
|
|
description: An array of sanitized PDF metadata
|
|
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
|
|
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
|