vgs_api_client 0.0.1.alpha202205210249 → 0.0.1.alpha202205210401

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5a2632704605cce5c043722479649a1e6b1e3ac1290a0513432fb4de6bbaeb02
4
- data.tar.gz: e7d3b262c20ecb41e178956d434d2103234575d6893a7000eccb8fd6e2fb7984
3
+ metadata.gz: 3c6208809ab176a04c4a3eb43bf5bea36a2cafa7a64c0717e8890c3050663573
4
+ data.tar.gz: 9cda4a453d85c9d7337963135079611c3fb50194dc894bdb8faea95ab96b8240
5
5
  SHA512:
6
- metadata.gz: c94d142e8d77b056bdcf42f8cdf8c34e3fd2f67af06188c075c1171e1f98bbb18980910ba9cd6810f1a3c506d721f770cc27352a66878f4f16c28ed63b20a1fa
7
- data.tar.gz: 44783f8e7e368e35b564a6a850893e2fe5a166f3e9d1796f9af40df69145c55e634496d9e6256445671aeca44aefb3a964b482ac7b89525609731b2c2a1d5891
6
+ metadata.gz: 5c16f665f080e0be4d2bda5150f4333f0ad56b3790848ba367f21a9d683d610965a188259deaa9d199a4bfa31dea46d45b41b4c6d64ef449cc758a0862e1b600
7
+ data.tar.gz: 5c1e24bac909ed4330e266f44b56754cfa34cca04342b62528a56474e0bc6eb9dbc8f44e8f8a43c3390cd7e7c77ee8e9179adf1c039337fbfaf35e7c3c20e3e4
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1.alpha202205210249
1
+ 0.0.1.alpha202205210401
data/api.yaml CHANGED
@@ -3,7 +3,7 @@ info:
3
3
  title: Vault HTTP API
4
4
  description: |
5
5
  The VGS Vault HTTP API is used for storing, retrieving, and managing sensitive data (aka Tokenization) within a VGS Vault.
6
-
6
+
7
7
  The VGS API is organized around REST. Our API is built with a predictable resource-oriented structure, uses JSON-encoded requests and responses, follows standard HTTP verbs/responses, and uses industry standard authentication.
8
8
 
9
9
  ## What is VGS
@@ -17,13 +17,13 @@ info:
17
17
  **Zero Data** is a unique method invented by VGS in 2016 that securely stores data like Tokenization, however it also removes the customer’s environment from PCI scope completely providing maximum security, and minimum compliance scope. [Get started with Zero Data](https://www.verygoodsecurity.com/docs/getting-started/before-you-start).
18
18
 
19
19
  Additionally, for scenarios where neither technology is a complete solution, for instance with legacy systems, VGS provides a compliance product which guarantees customers are able to meet their compliance needs no matter what may happen. [Get started with Control](https://www.verygoodsecurity.com/docs/control).
20
-
20
+
21
21
  ## Learn about Tokenization
22
-
22
+
23
23
  - [Create an Account for Free Tokenization](https://dashboard.verygoodsecurity.com/tokenization)
24
24
  - [Try a Tokenization Demo](https://www.verygoodsecurity.com/docs/tokenization/getting-started)
25
25
  - [Install a Tokenization SDK](https://www.verygoodsecurity.com/docs/tokenization/client-libraries)
26
-
26
+
27
27
  ### Authentication
28
28
 
29
29
  This API uses `Basic` authentication.
@@ -35,9 +35,9 @@ info:
35
35
  [Docs » Guides » Access credentials](https://www.verygoodsecurity.com/docs/settings/access-credentials)
36
36
 
37
37
  ## Resource Limits
38
-
38
+
39
39
  ### Data Limits
40
-
40
+
41
41
  This API allows storing data up to 32MB in size.
42
42
 
43
43
  ### Rate Limiting
@@ -80,13 +80,14 @@ info:
80
80
  contact:
81
81
  email: support@verygoodsecurity.com
82
82
  x-logo:
83
- url: images/vgs-logo.png
83
+ url: https://www.verygoodsecurity.com/img/press-and-assets/vgs-logo-color.png
84
84
  href: https://www.verygoodsecurity.com
85
85
  altText: VGS Logo
86
+ termsOfService: https://www.verygoodsecurity.com/terms-and-conditions
86
87
 
87
88
  externalDocs:
88
- description: Find out more about VGS
89
- url: https://www.verygoodsecurity.com/
89
+ description: Visit the VGS documentation homepage
90
+ url: https://www.verygoodsecurity.com/docs/
90
91
 
91
92
  servers:
92
93
  - url: https://api.sandbox.verygoodvault.com
@@ -111,9 +112,280 @@ x-tagGroups:
111
112
  - aliases
112
113
 
113
114
  security:
114
- - basicAuth: []
115
+ - BasicAuth: []
115
116
 
116
117
  paths:
118
+ /functions:
119
+ post:
120
+ operationId: createFunction
121
+ summary: Creates a new function
122
+ tags:
123
+ - functions
124
+ description: |
125
+ Creates a new function.
126
+ requestBody:
127
+ content:
128
+ application/json:
129
+ schema:
130
+ $ref: '#/components/schemas/CreateFunctionRequest'
131
+ examples:
132
+ CreateFunctionOne:
133
+ summary: Create a new function
134
+ value:
135
+ data:
136
+ - src: |
137
+ def process(input, ctx):
138
+ return input
139
+ lang: larky
140
+ name: my-function
141
+ responses:
142
+ '201':
143
+ description: Created
144
+ content:
145
+ application/json:
146
+ schema:
147
+ type: object
148
+ properties:
149
+ data:
150
+ type: array
151
+ items:
152
+ $ref: '#/components/schemas/Function'
153
+ description: A retrieved function.
154
+ minItems: 1
155
+ maxItems: 20
156
+ examples:
157
+ CreateFunctionOne:
158
+ summary: Create a new function
159
+ value:
160
+ data:
161
+ - src: |
162
+ def process(input, ctx):
163
+ return input
164
+ lang: larky
165
+ name: my-function
166
+ hash: bc1f0c3322091740cead407000af9acc692e7fefd0d96446e07900dcd0f8e308
167
+
168
+ default:
169
+ $ref: '#/components/responses/ApiErrorsResponse'
170
+ get:
171
+ operationId: listFunctions
172
+ summary: Lists all functions
173
+ tags:
174
+ - functions
175
+ description: |
176
+ Lists all functions
177
+ responses:
178
+ '200':
179
+ description: OK
180
+ content:
181
+ application/json:
182
+ schema:
183
+ type: object
184
+ properties:
185
+ data:
186
+ type: array
187
+ items:
188
+ $ref: '#/components/schemas/Function'
189
+ description: A retrieved function.
190
+ minItems: 1
191
+ maxItems: 20
192
+ default:
193
+ $ref: '#/components/responses/ApiErrorsResponse'
194
+
195
+ /functions/{functionName}:
196
+ parameters:
197
+ - $ref: '#/components/parameters/functionName'
198
+ get:
199
+ operationId: getFunction
200
+ tags:
201
+ - functions
202
+ summary: Retrieve a single function
203
+ description: |
204
+ Retrieves a function
205
+ parameters:
206
+ - $ref: '#/components/parameters/functionName'
207
+ responses:
208
+ '200':
209
+ description: OK
210
+ content:
211
+ application/json:
212
+ schema:
213
+ type: object
214
+ properties:
215
+ data:
216
+ type: array
217
+ items:
218
+ $ref: '#/components/schemas/Function'
219
+ description: The retrieved function.
220
+ minItems: 1
221
+ maxItems: 1
222
+ default:
223
+ $ref: '#/components/responses/ApiErrorsResponse'
224
+
225
+ put:
226
+ operationId: updateFunction
227
+ tags:
228
+ - functions
229
+ summary: Update function
230
+ description: |
231
+ Update an existing function definition
232
+ requestBody:
233
+ content:
234
+ application/json:
235
+ schema:
236
+ $ref: '#/components/schemas/CreateFunctionRequestPayload'
237
+ responses:
238
+ '200':
239
+ description: No Content
240
+ default:
241
+ $ref: '#/components/responses/ApiErrorsResponse'
242
+
243
+ delete:
244
+ operationId: deleteFunction
245
+ tags:
246
+ - functions
247
+ summary: Deletes a function
248
+ description: |
249
+ Removes a single alias.
250
+ parameters:
251
+ - $ref: '#/components/parameters/functionName'
252
+ responses:
253
+ '204':
254
+ description: No Content
255
+ default:
256
+ $ref: '#/components/responses/ApiErrorsResponse'
257
+
258
+ /functions/{functionName}/invocations:
259
+ parameters:
260
+ - $ref: '#/components/parameters/functionName'
261
+ post:
262
+ operationId: invokeFunction
263
+ tags:
264
+ - functions
265
+ summary: Invoke a function
266
+ description: |
267
+ Invokes a function
268
+ parameters:
269
+ - $ref: '#/components/parameters/functionName'
270
+ requestBody:
271
+ content:
272
+ "text/plain":
273
+ schema:
274
+ type: string
275
+ format: byte
276
+ example:
277
+ aGVsbG8gd29ybGQK
278
+ description: Stream of bytes base64 encoded up to XX KB in size
279
+ application/http:
280
+ schema:
281
+ type: object
282
+ properties:
283
+ method:
284
+ type: string
285
+ enum:
286
+ - POST
287
+ - PATCH
288
+ - DELETE
289
+ - PUT
290
+ - GET
291
+ - HEAD
292
+ uri:
293
+ type: string
294
+ format: uri
295
+ example: https://example.com/software/htp/cics/index.html
296
+ version:
297
+ type: string
298
+ enum:
299
+ - "1.0"
300
+ - "1.1"
301
+ headers:
302
+ type: array
303
+ items:
304
+ type: object
305
+ properties:
306
+ key:
307
+ type: string
308
+ value:
309
+ type: string
310
+ body:
311
+ type: string
312
+ format: string
313
+
314
+ description: https://www.iana.org/assignments/media-types/media-types.xhtml
315
+ examples:
316
+ InvokeFunction1:
317
+ summary: Invoke a function with a HTTP request payload
318
+ value:
319
+ method: GET
320
+ uri: https://example.com/software/htp/cics/index.html
321
+ version: 1.0
322
+
323
+ "*":
324
+ schema:
325
+ type: string
326
+ format: binary?
327
+ description: Stream of bytes up to XX KB in size
328
+ responses:
329
+ '200':
330
+ description: OK
331
+ content:
332
+ application/http:
333
+ schema:
334
+ type: object
335
+ properties:
336
+ method:
337
+ type: string
338
+ enum:
339
+ - POST
340
+ - PATCH
341
+ - DELETE
342
+ - PUT
343
+ - GET
344
+ - HEAD
345
+ uri:
346
+ type: string
347
+ format: uri
348
+ example: https://example.com/software/htp/cics/index.html
349
+ version:
350
+ type: string
351
+ enum:
352
+ - "1.0"
353
+ - "1.1"
354
+ headers:
355
+ type: array
356
+ items:
357
+ type: object
358
+ properties:
359
+ key:
360
+ type: string
361
+ value:
362
+ type: string
363
+ body:
364
+ type: string
365
+ format: string
366
+
367
+ description: https://www.iana.org/assignments/media-types/media-types.xhtml
368
+ example:
369
+ method: POST
370
+ uri: https://example.com/software/htp/cics/index.html
371
+ version: 1.0
372
+ headers:
373
+ - key: Content-Type
374
+ value: text/plain
375
+ "text/plain":
376
+ schema:
377
+ type: string
378
+ description: Stream of bytes base64 up to XX KB in size
379
+ example:
380
+ aGVsbG8gd29ybGQK
381
+ "*":
382
+ schema:
383
+ type: string
384
+ format: binary
385
+ description: Stream of bytes up to XX KB in size
386
+ default:
387
+ $ref: '#/components/responses/ApiErrorsResponse'
388
+
117
389
  /aliases:
118
390
  post:
119
391
  operationId: createAliases
@@ -345,16 +617,41 @@ paths:
345
617
  -X DELETE \
346
618
  -u "$USERNAME:$PASSWORD"
347
619
 
348
-
349
620
  components:
350
621
 
351
622
  # See the following links for details:
352
623
  # - https://swagger.io/docs/specification/authentication/basic-authentication/
624
+ # https://swagger.io/docs/specification/authentication/
353
625
  securitySchemes:
354
- basicAuth:
626
+ BasicAuth:
355
627
  type: http
356
628
  scheme: basic
357
- description: The default authentication schema.
629
+ description: |
630
+ The default authentication scheme for [Data API](#data-apis) based requests
631
+ is [Basic authentication](https://en.wikipedia.org/wiki/Basic_access_authentication).
632
+ OAuth2:
633
+ type: oauth2
634
+ flows:
635
+ authorizationCode:
636
+ authorizationUrl: https://auth.verygoodsecurity.com/auth/realms/vgs/protocol/openid-connect/auth
637
+ tokenUrl: https://auth.verygoodsecurity.io/auth/realms/vgs/protocol/openid-connect/token
638
+ scopes:
639
+ credentials:read: Read vault credentials without reading secrets
640
+ credentials:write: Add, delete and manage credentials of vault
641
+ routes:read: Read your vault routes
642
+ routes:write: Create, read, update, delete your vault routes
643
+ vaults:read: Read details of your vaults
644
+ vaults:write: Read, create, update and delete your vaults
645
+ upstreams:read: Read your upstreams for SFTP routes
646
+ upstreams:write: Create and update upstreams for SFTP routes
647
+ certificates:read: Read certificates setup for your routes
648
+ certificates:write: Upload and delete certificates for routes
649
+ hostnames:read: Read/List Custom Hostnames of your vault routes
650
+ hostnames:write: Create/Delete Custom Hostname of your vault routes
651
+ functions:read: Read/List Functions
652
+ functions:write: Create/Delete Functions
653
+ description: |
654
+ The default authentication schema for [Management API](#management-apis) based requests.
358
655
 
359
656
  parameters:
360
657
  alias:
@@ -366,6 +663,15 @@ components:
366
663
  type: string
367
664
  example: tok_sandbox_bhtsCwFUzoJMw9rWUfEV5e
368
665
 
666
+ functionName:
667
+ name: functionName
668
+ in: path
669
+ required: true
670
+ description: Name of function to operate on
671
+ schema:
672
+ type: string
673
+ example: my-function-46Juzcyx
674
+
369
675
  responses:
370
676
  ApiErrorsResponse:
371
677
  description: Something went wrong
@@ -497,7 +803,7 @@ components:
497
803
  default: PERSISTENT
498
804
  description: |
499
805
  Storage medium to use.
500
-
806
+
501
807
  VOLATILE results in data being persisted into an in-memory data store for one hour which is required for PCI compliant storage of card security code data.
502
808
  required:
503
809
  - value
@@ -532,3 +838,69 @@ components:
532
838
  - classifiers
533
839
  required:
534
840
  - data
841
+
842
+ CreateFunctionRequest:
843
+ type: object
844
+ properties:
845
+ data:
846
+ type: array
847
+ items:
848
+ oneOf:
849
+ - $ref: '#/components/schemas/CreateFunctionRequestPayload'
850
+ minItems: 1
851
+ maxItems: 20
852
+ required:
853
+ - data
854
+
855
+ CreateFunctionRequestPayload:
856
+ type: object
857
+ properties:
858
+ name:
859
+ type: string
860
+ description: Prefix to name your function
861
+ pattern: "[a-zA-Z]+([A-Za-z0-9\\-_]){5,28}[a-zA-Z0-9]"
862
+ example: my-function
863
+ src:
864
+ type: string
865
+ description: Definition of function body
866
+ example: |
867
+ def process(input, ctx):
868
+ return input
869
+ lang:
870
+ type: string
871
+ enum:
872
+ - larky
873
+ default: larky
874
+ description: |
875
+ Language to write your function in.
876
+ required:
877
+ - name
878
+ - src
879
+
880
+ Function:
881
+ type: object
882
+ properties:
883
+ name:
884
+ type: string
885
+ example: my-function-46Juzcyx
886
+ src:
887
+ type: string
888
+ description: Definition of function body
889
+ example: |
890
+ def process(input, ctx):
891
+ return input
892
+ lang:
893
+ type: string
894
+ enum:
895
+ - larky
896
+ default: larky
897
+ description: |
898
+ Language to write your function in.
899
+ hash:
900
+ type: string
901
+ description: SHA256 representation of the function definition
902
+ example: bc1f0c3322091740cead407000af9acc692e7fefd0d96446e07900dcd0f8e308
903
+ required:
904
+ - value
905
+ - format
906
+
@@ -64,7 +64,7 @@ module VgsApiClient
64
64
  return_type = opts[:debug_return_type] || 'InlineResponse201'
65
65
 
66
66
  # auth_names
67
- auth_names = opts[:debug_auth_names] || ['basicAuth']
67
+ auth_names = opts[:debug_auth_names] || ['BasicAuth']
68
68
 
69
69
  new_options = opts.merge(
70
70
  :operation => :"AliasesApi.create_aliases",
@@ -127,7 +127,7 @@ module VgsApiClient
127
127
  return_type = opts[:debug_return_type]
128
128
 
129
129
  # auth_names
130
- auth_names = opts[:debug_auth_names] || ['basicAuth']
130
+ auth_names = opts[:debug_auth_names] || ['BasicAuth']
131
131
 
132
132
  new_options = opts.merge(
133
133
  :operation => :"AliasesApi.delete_alias",
@@ -190,7 +190,7 @@ module VgsApiClient
190
190
  return_type = opts[:debug_return_type] || 'InlineResponse2001'
191
191
 
192
192
  # auth_names
193
- auth_names = opts[:debug_auth_names] || ['basicAuth']
193
+ auth_names = opts[:debug_auth_names] || ['BasicAuth']
194
194
 
195
195
  new_options = opts.merge(
196
196
  :operation => :"AliasesApi.reveal_alias",
@@ -254,7 +254,7 @@ module VgsApiClient
254
254
  return_type = opts[:debug_return_type] || 'InlineResponse200'
255
255
 
256
256
  # auth_names
257
- auth_names = opts[:debug_auth_names] || ['basicAuth']
257
+ auth_names = opts[:debug_auth_names] || ['BasicAuth']
258
258
 
259
259
  new_options = opts.merge(
260
260
  :operation => :"AliasesApi.reveal_multiple_aliases",
@@ -324,7 +324,7 @@ module VgsApiClient
324
324
  return_type = opts[:debug_return_type]
325
325
 
326
326
  # auth_names
327
- auth_names = opts[:debug_auth_names] || ['basicAuth']
327
+ auth_names = opts[:debug_auth_names] || ['BasicAuth']
328
328
 
329
329
  new_options = opts.merge(
330
330
  :operation => :"AliasesApi.update_alias",