lib/swagger/client/stash-pdf-metadata.yaml

198 lines
5.3 KiB
YAML
Raw Permalink Normal View History

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