-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapi-spec.yaml
204 lines (203 loc) · 6.6 KB
/
api-spec.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
openapi: 3.0.0
info:
version: 1.0.0
title: Heroku-Salesforce API
description: Example Heroku app as an API using Salesforce SDK.
servers:
- url: http://127.0.0.1:3000
paths:
/accounts:
get:
operationId: GetAccounts
description: Returns list of array of Accounts
responses:
'200':
description: Successfully returned a list of Accounts
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
name:
type: string
'500':
$ref: '#/components/responses/DeveloperError'
'503':
$ref: '#/components/responses/UnknownError'
/unitofwork:
post:
operationId: UnitOfWork
description:
Receives a payload containing Account, Contact, and Case details and uses the
Unit of Work pattern to assign the corresponding values to to its Record
while maintaining the relationships. It then commits the unit of work and
returns the Record Id's for each object.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
accountName:
type: string
lastName:
type: string
subject:
type: string
callbackUrl:
type: string
responses:
'201':
description: Received UnitOfWork API request
'500':
$ref: '#/components/responses/DeveloperError'
'503':
$ref: '#/components/responses/UnknownError'
callbacks:
unitOfWorkResponse:
'{$request.body#/callbackUrl}':
post:
description: Response from /unitofwork API
operationId: unitOfWorkResponseCallback
requestBody:
content:
application/json:
schema:
type: object
properties:
accountId:
type: string
contactId:
type: string
cases:
type: object
properties:
serviceCaseId:
type: string
followupCaseId:
type: string
responses: # Expected responses to the callback message
'200':
description: Your server returns this code if it accepts the callback
/generate-pdf:
post:
summary: Generate PDF
description: Endpoint to generate a PDF from a URL with Puppeteer options.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
filename:
type: string
description: The name of the file to be generated.
recordId:
type: string
description: Unique record identifier.
path:
type: string
description: The URL to generate the PDF from.
example: https://www.google.com
required: true
pageFormat:
type: string
description: The format of the page (e.g., Letter, A4).
example: Letter
headless:
type: boolean
description: Flag to run Puppeteer in headless mode.
example: true
puppeteerProduct:
type: string
description: Puppeteer product to use (chrome or firefox).
example: chrome
revisionInfo:
type: string
description: Information regarding the document revision.
incognito:
type: boolean
description: Run browser in incognito mode.
example: false
emulateMediaType:
type: string
description: Media type to emulate for print.
example: print
width:
type: string
description: Custom page width.
height:
type: string
description: Custom page height.
margin:
type: string
description: Page margins.
scale:
type: number
description: Scale factor for the page.
example: 0
displayHeaderFooter:
type: boolean
description: Whether to display header and footer in the PDF.
example: false
headerTemplate:
type: string
description: HTML content for the header template.
footerTemplate:
type: string
description: HTML content for the footer template.
printBackground:
type: boolean
description: Whether to print the background graphics.
example: false
landscape:
type: boolean
description: Print in landscape mode.
example: false
pageRanges:
type: string
description: Specify page ranges (e.g., '1-5').
required:
- path
responses:
'200':
description: PDF generated successfully.
content:
application/pdf:
schema:
type: string
format: binary
'400':
description: Invalid request parameters.
components:
responses:
DeveloperError:
description: DeveloperError
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
UnknownError:
description: UnknownError
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
# Schema for error response body
Error:
type: object
properties:
code:
type: string
message:
type: string
required:
- code
- message