vgs_api_client 0.0.1.alpha202204281353 → 0.0.1.alpha202204281403

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: a207700a5a79dad3443087a5151c7cbdcc85268b3eca1ced2756ae46d3050e11
4
- data.tar.gz: ebbfb88d5916b3d37e48d20c257eba9cf64174e142694609b2a406c2085d6f9b
3
+ metadata.gz: 40db3da2cdb2786dcb78eecb5453946c44e6e64583e8b115c6909efd0f0d56d0
4
+ data.tar.gz: d1c991f46819c311e395161e89a64ed1486ccbfb914de6dc8808fc1b7d4f9eb8
5
5
  SHA512:
6
- metadata.gz: 4207b4669f841c37540255f11b8aad5c975d993b698010a115674364a2566ad64ca46fd9ec12a330163cd4017a7c24647c3c68e6670faab980ee3a77326ba706
7
- data.tar.gz: 3110a2051861e013f5d008fde01e509c0aae4706ad40496d78acbf51e2a0dc31a9f1c0611e89e8f594ddc7e0f567dbeb4158592d586052beb52b890ec381a0f6
6
+ metadata.gz: ef23d079ed77404ecccc3f03797e834a7d884cd9a51fd561035029f14900dfda5172cfe0444a59a9d0a3077d619373a48adc81a6d3728b749a7d8c55e8fb92ae
7
+ data.tar.gz: 7dd0b277eca8e4d951cc0dacffd0c522e7df1083d287acad072869b4d988f121ebd52c539be1fedb3f8190e66e6e74c60069513d62af7e8b8187bc5245471cc6
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1.alpha202204281353
1
+ 0.0.1.alpha202204281403
data/api.yaml ADDED
@@ -0,0 +1,534 @@
1
+ openapi: '3.0.0'
2
+ info:
3
+ title: Vault HTTP API
4
+ description: |
5
+ The VGS Vault HTTP API is used for storing, retrieving, and managing sensitive data (aka Tokenization) within a VGS Vault.
6
+
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
+
9
+ ## What is VGS
10
+
11
+ Storing sensitive data on your company’s infrastructure often comes with a heavy compliance burden. For instance, storing payments data yourself greatly increases the amount of work needed to become PCI compliant. It also increases your security risk in general. To combat this, companies will minimize the amount of sensitive information they have to handle or store.
12
+
13
+ VGS provides multiple methods for minimizing the sensitive information that needs to be stored which allows customers to secure any type of data for any use-case.
14
+
15
+ **Tokenization** is a method that focuses on securing the storage of data. This is the quickest way to get started and is free. [Get started with Tokenization](https://www.verygoodsecurity.com/docs/tokenization/getting-started).
16
+
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
+
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
+
21
+ ## Learn about Tokenization
22
+
23
+ - [Create an Account for Free Tokenization](https://dashboard.verygoodsecurity.com/tokenization)
24
+ - [Try a Tokenization Demo](https://www.verygoodsecurity.com/docs/tokenization/getting-started)
25
+ - [Install a Tokenization SDK](https://www.verygoodsecurity.com/docs/tokenization/client-libraries)
26
+
27
+ ### Authentication
28
+
29
+ This API uses `Basic` authentication.
30
+
31
+ Credentials to access the API can be generated on the
32
+ [dashboard](https://dashboard.verygoodsecurity.com) by going to the Settings
33
+ section of the vault of your choosing.
34
+
35
+ [Docs » Guides » Access credentials](https://www.verygoodsecurity.com/docs/settings/access-credentials)
36
+
37
+ ## Resource Limits
38
+
39
+ ### Data Limits
40
+
41
+ This API allows storing data up to 32MB in size.
42
+
43
+ ### Rate Limiting
44
+
45
+ The API allows up to 3,000 requests per minute. Requests are associated with
46
+ the vault, regardless of the access credentials used to authenticate the
47
+ request.
48
+
49
+ Your current rate limit is included as HTTP headers in every API response:
50
+
51
+ | Header Name | Description |
52
+ |-------------------------|----------------------------------------------------------|
53
+ | `x-ratelimit-remaining` | The number of requests remaining in the 1-minute window. |
54
+
55
+ If you exceed the rate limit, the API will reject the request with HTTP
56
+ [429 Too Many Requests](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/429).
57
+
58
+ ### Errors
59
+
60
+ The API uses standard HTTP status codes to indicate whether the request
61
+ succeeded or not.
62
+
63
+ In case of failure, the response body will be JSON in a predefined format.
64
+ For example, trying to create too many aliases at once results in the
65
+ following response:
66
+
67
+ ```json
68
+ {
69
+ "errors": [
70
+ {
71
+ "status": 400,
72
+ "title": "Bad request",
73
+ "detail": "Too many values (limit: 20)",
74
+ "href": "https://api.sandbox.verygoodvault.com/aliases"
75
+ }
76
+ ]
77
+ }
78
+ ```
79
+ version: '1.0.0'
80
+ contact:
81
+ email: support@verygoodsecurity.com
82
+ x-logo:
83
+ url: images/vgs-logo.png
84
+ href: https://www.verygoodsecurity.com
85
+ altText: VGS Logo
86
+
87
+ externalDocs:
88
+ description: Find out more about VGS
89
+ url: https://www.verygoodsecurity.com/
90
+
91
+ servers:
92
+ - url: https://api.sandbox.verygoodvault.com
93
+ description: Sandbox
94
+
95
+ - url: https://api.live.verygoodvault.com
96
+ description: Live
97
+
98
+ - url: https://api.live-eu-1.verygoodvault.com
99
+ description: Live EU
100
+
101
+ tags:
102
+ - name: aliases
103
+ x-displayName: Aliases
104
+ description: |
105
+ Unique IDs that retain all the essential information about the data
106
+ without compromising its security.
107
+
108
+ x-tagGroups:
109
+ - name: Data Management
110
+ tags:
111
+ - aliases
112
+
113
+ security:
114
+ - basicAuth: []
115
+
116
+ paths:
117
+ /aliases:
118
+ post:
119
+ operationId: createAliases
120
+ tags:
121
+ - aliases
122
+ summary: Create aliases
123
+ description: |
124
+ Stores multiple values at once & returns their aliases.
125
+
126
+ Alternatively, this endpoint may be used to associate additional (i.e.
127
+ secondary) aliases with the same underlying data as the reference
128
+ alias specified in the request body.
129
+
130
+ **NOTE:** You cannot reference the same alias more than once in a
131
+ single request.
132
+ requestBody:
133
+ content:
134
+ application/json:
135
+ schema:
136
+ $ref: '#/components/schemas/CreateAliasesRequest'
137
+ examples:
138
+ A:
139
+ summary: Create a new alias
140
+ value:
141
+ data:
142
+ - value: 122105155
143
+ classifiers:
144
+ - bank-account
145
+ format: UUID
146
+ storage: PERSISTENT
147
+ B:
148
+ summary: Reference an existing alias
149
+ value:
150
+ data:
151
+ - alias: tok_sandbox_bhtsCwFUzoJMw9rWUfEV5e
152
+ format: RAW_UUID
153
+ storage: PERSISTENT
154
+ responses:
155
+ '201':
156
+ description: Created
157
+ content:
158
+ application/json:
159
+ schema:
160
+ type: object
161
+ properties:
162
+ data:
163
+ type: array
164
+ items:
165
+ $ref: '#/components/schemas/RevealedData'
166
+ description: List of stored values along with their aliases.
167
+ default:
168
+ $ref: '#/components/responses/ApiErrorsResponse'
169
+ x-codeSamples:
170
+ - lang: Shell
171
+ label: cURL
172
+ source: |
173
+ curl https://api.sandbox.verygoodvault.com/aliases \
174
+ -X POST \
175
+ -u "$USERNAME:$PASSWORD" \
176
+ -H 'Content-Type: application/json' \
177
+ -d '{
178
+ "data": [
179
+ {
180
+ "value": "test@example.com",
181
+ "classifiers": [
182
+ "email_address"
183
+ ],
184
+ "format": "UUID"
185
+ "storage": "VOLATILE"
186
+ }
187
+ ]
188
+ }'
189
+
190
+ get:
191
+ operationId: revealMultipleAliases
192
+ tags:
193
+ - aliases
194
+ summary: Reveal multiple aliases
195
+ description: |
196
+ Given a list of aliases, retrieves all associated values stored in the
197
+ vault.
198
+
199
+ **NOTE:** This endpoint may expose sensitive data. Therefore, it is
200
+ disabled by default. To enable it, please contact your VGS account
201
+ manager or drop us a line at
202
+ [support@verygoodsecurity.com](mailto:support@verygoodsecurity.com).
203
+ parameters:
204
+ - name: q
205
+ in: query
206
+ required: true
207
+ description: Comma-separated list of aliases to reveal.
208
+ example:
209
+ - "tok_sandbox_5UpnbMvaihRuRwz5QXwBFw,tok_sandbox_9ToiJHedw1nE1Jfx1qYYgz"
210
+ schema:
211
+ type: string
212
+ responses:
213
+ '200':
214
+ description: OK
215
+ content:
216
+ application/json:
217
+ schema:
218
+ type: object
219
+ properties:
220
+ data:
221
+ type: object
222
+ additionalProperties:
223
+ x-additionalPropertiesName: alias
224
+ $ref: '#/components/schemas/RevealedData'
225
+ example:
226
+ tok_sandbox_5UpnbMvaihRuRwz5QXwBFw:
227
+ value: "476673481"
228
+ classifiers:
229
+ - bank-account
230
+ aliases:
231
+ - value: tok_sandbox_5UpnbMvaihRuRwz5QXwBFw
232
+ format: UUID
233
+ created_at: "2019-08-10T11:45:30Z"
234
+ storage: VOLATILE
235
+ tok_sandbox_9ToiJHedw1nE1Jfx1qYYgz:
236
+ value: "750360025"
237
+ classifiers:
238
+ - bank-account
239
+ aliases:
240
+ - value: tok_sandbox_9ToiJHedw1nE1Jfx1qYYgz
241
+ format: UUID
242
+ created_at: "2019-08-10T11:45:30Z"
243
+ storage: VOLATILE
244
+ default:
245
+ $ref: '#/components/responses/ApiErrorsResponse'
246
+ x-codeSamples:
247
+ - lang: Shell
248
+ label: cURL
249
+ source: |
250
+ curl https://api.sandbox.verygoodvault.com/aliases?q={{alias1}},{{alias2}} \
251
+ -u "$USERNAME:$PASSWORD"
252
+
253
+ /aliases/{alias}:
254
+ parameters:
255
+ - $ref: '#/components/parameters/alias'
256
+ get:
257
+ operationId: revealAlias
258
+ tags:
259
+ - aliases
260
+ summary: Reveal single alias
261
+ description: |
262
+ Retrieves a stored value along with its aliases.
263
+
264
+ **NOTE:** This endpoint may expose sensitive data. Therefore, it is
265
+ disabled by default. To enable it, please contact your VGS account
266
+ manager or drop us a line at
267
+ [support@verygoodsecurity.com](mailto:support@verygoodsecurity.com).
268
+ parameters:
269
+ - $ref: '#/components/parameters/alias'
270
+ responses:
271
+ '200':
272
+ description: OK
273
+ content:
274
+ application/json:
275
+ schema:
276
+ type: object
277
+ properties:
278
+ data:
279
+ type: array
280
+ items:
281
+ $ref: '#/components/schemas/RevealedData'
282
+ description: The retrieved value.
283
+ minItems: 1
284
+ maxItems: 1
285
+ default:
286
+ $ref: '#/components/responses/ApiErrorsResponse'
287
+ x-codeSamples:
288
+ - lang: Shell
289
+ label: cURL
290
+ source: |
291
+ curl https://api.sandbox.verygoodvault.com/aliases/{{alias}} \
292
+ -u "$USERNAME:$PASSWORD"
293
+ put:
294
+ operationId: updateAlias
295
+ tags:
296
+ - aliases
297
+ summary: Update data classifiers
298
+ description: |
299
+ Apply new classifiers to the value that the specified alias is
300
+ associated with.
301
+ requestBody:
302
+ content:
303
+ application/json:
304
+ schema:
305
+ $ref: '#/components/schemas/UpdateAliasRequest'
306
+ responses:
307
+ '204':
308
+ description: No Content
309
+ default:
310
+ $ref: '#/components/responses/ApiErrorsResponse'
311
+ x-codeSamples:
312
+ - lang: Shell
313
+ label: cURL
314
+ source: |
315
+ curl https://api.sandbox.verygoodvault.com/aliases/{{alias}} \
316
+ -X PUT \
317
+ -u "$USERNAME:$PASSWORD" \
318
+ -H 'Content-Type: application/json' \
319
+ -d '{
320
+ "data": {
321
+ "classifiers": [
322
+ "credit-cards", "PII"
323
+ ]
324
+ }
325
+ }'
326
+ delete:
327
+ operationId: deleteAlias
328
+ tags:
329
+ - aliases
330
+ summary: Delete alias
331
+ description: |
332
+ Removes a single alias.
333
+ parameters:
334
+ - $ref: '#/components/parameters/alias'
335
+ responses:
336
+ '204':
337
+ description: No Content
338
+ default:
339
+ $ref: '#/components/responses/ApiErrorsResponse'
340
+ x-codeSamples:
341
+ - lang: Shell
342
+ label: cURL
343
+ source: |
344
+ curl https://api.sandbox.verygoodvault.com/aliases/{{alias}} \
345
+ -X DELETE \
346
+ -u "$USERNAME:$PASSWORD"
347
+
348
+
349
+ components:
350
+
351
+ # See the following links for details:
352
+ # - https://swagger.io/docs/specification/authentication/basic-authentication/
353
+ securitySchemes:
354
+ basicAuth:
355
+ type: http
356
+ scheme: basic
357
+ description: The default authentication schema.
358
+
359
+ parameters:
360
+ alias:
361
+ name: alias
362
+ in: path
363
+ required: true
364
+ description: Alias to operate on.
365
+ schema:
366
+ type: string
367
+ example: tok_sandbox_bhtsCwFUzoJMw9rWUfEV5e
368
+
369
+ responses:
370
+ ApiErrorsResponse:
371
+ description: Something went wrong
372
+ content:
373
+ application/json:
374
+ schema:
375
+ type: object
376
+ properties:
377
+ errors:
378
+ type: array
379
+ items:
380
+ $ref: '#/components/schemas/ApiError'
381
+ description: List of errors that occurred while processing the request.
382
+ minItems: 1
383
+
384
+ schemas:
385
+ ApiError:
386
+ type: object
387
+ properties:
388
+ status:
389
+ type: integer
390
+ description: HTTP status code.
391
+ title:
392
+ type: string
393
+ description: High-level reason of why the request failed.
394
+ detail:
395
+ type: string
396
+ description: Explanation of what exactly went wrong.
397
+ href:
398
+ type: string
399
+ description: Request URL.
400
+
401
+ RevealedData:
402
+ type: "object"
403
+ properties:
404
+ value:
405
+ type: "string"
406
+ description: Decrypted value stored in the vault.
407
+ example: 122105155
408
+ classifiers:
409
+ type: "array"
410
+ items:
411
+ type: "string"
412
+ example: bank-account
413
+ description: List of tags the value is classified with.
414
+ aliases:
415
+ type: "array"
416
+ items:
417
+ $ref: '#/components/schemas/Alias'
418
+ description: List of aliases associated with the value.
419
+ created_at:
420
+ type: "string"
421
+ format: "date-time"
422
+ description: Creation time, in UTC.
423
+ example: "2019-05-15T12:30:45Z"
424
+ storage:
425
+ type: string
426
+ enum:
427
+ - PERSISTENT
428
+ - VOLATILE
429
+ default: PERSISTENT
430
+ description: |
431
+ Storage medium to use.
432
+
433
+ 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.
434
+
435
+ Alias:
436
+ type: "object"
437
+ properties:
438
+ alias:
439
+ type: "string"
440
+ example: tok_sandbox_bhtsCwFUzoJMw9rWUfEV5e
441
+ description: Opaque string used to substitute the raw value.
442
+ format:
443
+ $ref: '#/components/schemas/AliasFormat'
444
+
445
+ AliasFormat:
446
+ type: string
447
+ enum:
448
+ - FPE_ACC_NUM_T_FOUR
449
+ - FPE_ALPHANUMERIC_ACC_NUM_T_FOUR
450
+ - FPE_SIX_T_FOUR
451
+ - FPE_SSN_T_FOUR
452
+ - FPE_T_FOUR
453
+ - NUM_LENGTH_PRESERVING
454
+ - PFPT
455
+ - RAW_UUID
456
+ - UUID
457
+ description: |
458
+ Format of the generated alias string.
459
+
460
+ See [Alias Formats](#section/Introduction/Alias-Formats) for details.
461
+ example: UUID
462
+
463
+ CreateAliasesRequest:
464
+ type: object
465
+ properties:
466
+ data:
467
+ type: array
468
+ items:
469
+ oneOf:
470
+ - $ref: '#/components/schemas/CreateAliasesRequestNew'
471
+ - $ref: '#/components/schemas/CreateAliasesRequestReference'
472
+ minItems: 1
473
+ maxItems: 20
474
+ required:
475
+ - data
476
+
477
+ CreateAliasesRequestNew:
478
+ type: object
479
+ properties:
480
+ value:
481
+ type: string
482
+ description: Raw value to encrypt & store in the vault.
483
+ example: 122105155
484
+ classifiers:
485
+ type: array
486
+ items:
487
+ type: string
488
+ example: bank-account
489
+ description: List of tags to classify the value with.
490
+ format:
491
+ $ref: '#/components/schemas/AliasFormat'
492
+ storage:
493
+ type: string
494
+ enum:
495
+ - PERSISTENT
496
+ - VOLATILE
497
+ default: PERSISTENT
498
+ description: |
499
+ Storage medium to use.
500
+
501
+ 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
+ required:
503
+ - value
504
+ - format
505
+
506
+ CreateAliasesRequestReference:
507
+ type: object
508
+ properties:
509
+ alias:
510
+ type: string
511
+ description: Existing alias to use as a reference.
512
+ example: tok_sandbox_bhtsCwFUzoJMw9rWUfEV5e
513
+ format:
514
+ $ref: '#/components/schemas/AliasFormat'
515
+ required:
516
+ - alias
517
+ - format
518
+
519
+ UpdateAliasRequest:
520
+ type: object
521
+ properties:
522
+ data:
523
+ type: object
524
+ properties:
525
+ classifiers:
526
+ type: array
527
+ items:
528
+ type: string
529
+ example: bank-account
530
+ description: List of tags to classify the value with.
531
+ required:
532
+ - classifiers
533
+ required:
534
+ - data
@@ -31,7 +31,7 @@ module VgsApiClient
31
31
  # @option config [Configuration] Configuration for initializing the object, default to Configuration.default
32
32
  def initialize(config = Configuration.default)
33
33
  @config = config
34
- @user_agent = "vgs-api-client/0.0.1.alpha202204281353/ruby"
34
+ @user_agent = "vgs-api-client/0.0.1.alpha202204281403/ruby"
35
35
  @default_headers = {
36
36
  'Content-Type' => 'application/json',
37
37
  'User-Agent' => @user_agent
@@ -11,5 +11,5 @@ OpenAPI Generator version: 5.4.0
11
11
  =end
12
12
 
13
13
  module VgsApiClient
14
- VERSION = '0.0.1.alpha202204281353'
14
+ VERSION = '0.0.1.alpha202204281403'
15
15
  end
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module VGS
2
- VERSION = '0.0.1.alpha202204281353'
2
+ VERSION = '0.0.1.alpha202204281403'
3
3
  end
@@ -3,7 +3,7 @@
3
3
  LIB_VERSION=${LIB_VERSION:-0.0.1.alpha$(date "+%Y%m%d%H%M")}
4
4
 
5
5
  # fix version
6
- grep -rl 0.0.1.alpha202204281353 . | xargs sed -i "s/0.0.1.alpha202204281353/${LIB_VERSION}/g"
6
+ grep -rl 0.0.1.alpha202204281403 . | xargs sed -i "s/0.0.1.alpha202204281403/${LIB_VERSION}/g"
7
7
 
8
8
  # build
9
9
  gem build vgs_api_client.gemspec
data/scripts/test/run.sh CHANGED
@@ -5,7 +5,7 @@ set -e
5
5
  echo "Installing lib from local sources"
6
6
  # fix version
7
7
  VERSION=0.0.1.alpha$(date "+%Y%m%d%H%M")
8
- grep -rl 0.0.1.alpha202204281353 . | xargs sed -i "s/0.0.1.alpha202204281353/$VERSION/g"
8
+ grep -rl 0.0.1.alpha202204281403 . | xargs sed -i "s/0.0.1.alpha202204281403/$VERSION/g"
9
9
 
10
10
  bundle install
11
11
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vgs_api_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.alpha202204281353
4
+ version: 0.0.1.alpha202204281403
5
5
  platform: ruby
6
6
  authors:
7
7
  - Very Good Security
@@ -64,6 +64,7 @@ files:
64
64
  - RELEASE.md
65
65
  - Rakefile
66
66
  - VERSION
67
+ - api.yaml
67
68
  - docker-compose.yaml
68
69
  - lib/openapi_client.rb
69
70
  - lib/openapi_client/api/aliases_api.rb