lib/swagger/stash-vernonkeenan.yaml

216 lines
5.0 KiB
YAML

swagger: "2.0"
info:
version: 0.3.0
title: "stash"
description: "PDF Storage Microservice"
termsOfService: "https://salesforcedevops.net/terms/"
contact:
email: "vern@vernonkeenan.com"
license:
name: "Proprietary - Copyright (c) 2018-2023 by Vernon Keenan"
securityDefinitions:
ApiKeyAuth:
type: "apiKey"
in: "header"
name: "X-API-Key"
security:
- ApiKeyAuth: []
schemes:
- "http"
basePath: "/v1"
host: "stash.vernonkeenan.com:8080"
consumes:
- "application/json"
produces:
- "application/json"
parameters:
X-API-Key:
name: X-API-Key
in: "header"
required: true
type: string
PDFRequest:
description: An array of new PDF records
in: body
name: PDFRequest
required: true
schema:
$ref: "#/definitions/PDFRequest"
pdfIdQueryRequired:
description: PDF record ID
in: query
name: pdfId
required: true
type: string
responses:
AccessForbidden:
description: "Access forbidden, account lacks access"
schema:
$ref: "#/definitions/Error"
NotFound:
description: Resource was not found
schema:
$ref: "#/definitions/Error"
PdfResponse:
description: Response with an array of pdfs
schema:
$ref: "#/definitions/DocumentResponse"
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:
post:
description: Store new PDFs
operationId: postPdfs
parameters:
- $ref: "#/parameters/PDFRequest"
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"
summary: Create new PDFs
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