vgs_api_client 0.0.1.alpha202204211429 → 0.0.1.alpha202204222331

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +33 -0
  3. data/lib/{vgs_api_client → openapi_client}/api/aliases_api.rb +0 -0
  4. data/lib/{vgs_api_client → openapi_client}/api_client.rb +1 -1
  5. data/lib/{vgs_api_client → openapi_client}/api_error.rb +0 -0
  6. data/lib/{vgs_api_client → openapi_client}/configuration.rb +0 -0
  7. data/lib/{vgs_api_client → openapi_client}/models/alias_format.rb +0 -0
  8. data/lib/{vgs_api_client → openapi_client}/models/api_error.rb +0 -0
  9. data/lib/{vgs_api_client → openapi_client}/models/create_aliases_request.rb +0 -0
  10. data/lib/{vgs_api_client → openapi_client}/models/create_aliases_request_new.rb +0 -0
  11. data/lib/{vgs_api_client → openapi_client}/models/create_aliases_request_reference.rb +0 -0
  12. data/lib/{vgs_api_client → openapi_client}/models/inline_response200.rb +0 -0
  13. data/lib/{vgs_api_client → openapi_client}/models/inline_response2001.rb +0 -0
  14. data/lib/{vgs_api_client → openapi_client}/models/inline_response201.rb +0 -0
  15. data/lib/{vgs_api_client → openapi_client}/models/inline_response_default.rb +0 -0
  16. data/lib/{vgs_api_client → openapi_client}/models/model_alias.rb +0 -0
  17. data/lib/{vgs_api_client → openapi_client}/models/revealed_data.rb +0 -0
  18. data/lib/{vgs_api_client → openapi_client}/models/update_alias_request.rb +0 -0
  19. data/lib/{vgs_api_client → openapi_client}/models/update_alias_request_data.rb +0 -0
  20. data/lib/{vgs_api_client → openapi_client}/version.rb +1 -1
  21. data/lib/openapi_client.rb +53 -0
  22. data/lib/version.rb +3 -0
  23. data/lib/vgs_api_client.rb +80 -49
  24. data/openapi_client.gemspec +38 -0
  25. data/scripts/assemble/run.sh +1 -1
  26. data/scripts/test/run.sh +2 -2
  27. data/scripts/test-e2e/run.sh +1 -1
  28. data/spec/spec_helper.rb +1 -1
  29. data/spec/test_aliases_api_spec.rb +37 -45
  30. data/vgs_api_client.gemspec +14 -20
  31. metadata +34 -27
  32. data/lib/vgs.rb +0 -82
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c14c237ec86d9e84f28d8db552661c80e20f5e240a2039746e04163694da2ff7
4
- data.tar.gz: 3fd3572ede199aba935bee43cbf85e436385ae5058429c131d77d3a2932d8236
3
+ metadata.gz: accb9960204c2fb676b087b2058d010bb91ebf79f52b9b499c8274af88e3d504
4
+ data.tar.gz: '09fdb9b31c256659c5ec9ffc95d558e1998627b1c62daa9b290d01af65282c6d'
5
5
  SHA512:
6
- metadata.gz: 57fee0e7a7c1c46e13d7421d39d9ad8f0ae4ce0192a368ceb290dc5a7e54c0c72d5123f778c2a33ecac35e09e9edd398c4fc2016edb0e378f2c106c339a5c486
7
- data.tar.gz: 22d30c5985a7771b0748f11c408c8c923ffd6f05e55eab5d4b2d0c87346457a599eca23267f84465df46ec51e50040c6c3d018a8b2949c311b19197d2f5c2f38
6
+ metadata.gz: 8d8b2df4b825a2e03715ab0213f447976f686b7109dc54873e37899d9225b3d88f21015c814ca3bcf17638be8334c3b20874801b5f40ea1a66f6e1100f9a12b7
7
+ data.tar.gz: 03601153f237e61f623bd99a425b4b854302855dd98907e34cf0dc054cf856c435899233aecfd11a8dfe798475bff66f54259d0b8f0cb18bda05e582223feae2
data/README.md ADDED
@@ -0,0 +1,33 @@
1
+ # vgs-api-client-python
2
+
3
+ This repository contains a Ruby API client library for the Very Good Security API.
4
+
5
+ ### Requirements
6
+
7
+ Building and using the API client library requires Ruby 2.6+.
8
+
9
+ ### Installation
10
+
11
+ ```
12
+ gem install vgs-api-client
13
+ ```
14
+
15
+ ### Development
16
+
17
+ Follow [DEVELOPMENT](DEVELOPMENT.md) instruction.
18
+
19
+ ### Release
20
+
21
+ Follow [RELEASE](RELEASE.md) instruction.
22
+
23
+ ### Documentation
24
+
25
+ https://www.verygoodsecurity.com/docs/vault/api/
26
+
27
+ ### Tutorial
28
+
29
+ https://www.verygoodsecurity.com/docs/tokenization/ruby-tutorial
30
+
31
+ ### Support
32
+
33
+ support@verygoodsecurity.com
@@ -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.alpha202204211429/ruby"
34
+ @user_agent = "vgs-api-client/0.0.1.alpha202204222331/ruby"
35
35
  @default_headers = {
36
36
  'Content-Type' => 'application/json',
37
37
  'User-Agent' => @user_agent
File without changes
@@ -11,5 +11,5 @@ OpenAPI Generator version: 5.4.0
11
11
  =end
12
12
 
13
13
  module VgsApiClient
14
- VERSION = '0.0.1.alpha202204211429'
14
+ VERSION = '0.0.1.alpha202204222331'
15
15
  end
@@ -0,0 +1,53 @@
1
+ =begin
2
+ #Vault HTTP API
3
+
4
+ #The VGS Vault HTTP API is used for storing, retrieving, and managing sensitive data (aka Tokenization) within a VGS Vault. 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. ## What is VGS 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. 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. **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). **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). 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). ## Learn about Tokenization - [Create an Account for Free Tokenization](https://dashboard.verygoodsecurity.com/tokenization) - [Try a Tokenization Demo](https://www.verygoodsecurity.com/docs/tokenization/getting-started) - [Install a Tokenization SDK](https://www.verygoodsecurity.com/docs/tokenization/client-libraries) ### Authentication This API uses `Basic` authentication. Credentials to access the API can be generated on the [dashboard](https://dashboard.verygoodsecurity.com) by going to the Settings section of the vault of your choosing. [Docs » Guides » Access credentials](https://www.verygoodsecurity.com/docs/settings/access-credentials) ## Resource Limits ### Data Limits This API allows storing data up to 32MB in size. ### Rate Limiting The API allows up to 3,000 requests per minute. Requests are associated with the vault, regardless of the access credentials used to authenticate the request. Your current rate limit is included as HTTP headers in every API response: | Header Name | Description | |-------------------------|----------------------------------------------------------| | `x-ratelimit-remaining` | The number of requests remaining in the 1-minute window. | If you exceed the rate limit, the API will reject the request with HTTP [429 Too Many Requests](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/429). ### Errors The API uses standard HTTP status codes to indicate whether the request succeeded or not. In case of failure, the response body will be JSON in a predefined format. For example, trying to create too many aliases at once results in the following response: ```json { \"errors\": [ { \"status\": 400, \"title\": \"Bad request\", \"detail\": \"Too many values (limit: 20)\", \"href\": \"https://api.sandbox.verygoodvault.com/aliases\" } ] } ```
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: support@verygoodsecurity.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.4.0
10
+
11
+ =end
12
+
13
+ # Common files
14
+ require 'openapi_client/api_client'
15
+ require 'openapi_client/api_error'
16
+ require 'openapi_client/version'
17
+ require 'openapi_client/configuration'
18
+
19
+ # Models
20
+ require 'openapi_client/models/alias_format'
21
+ require 'openapi_client/models/api_error'
22
+ require 'openapi_client/models/create_aliases_request'
23
+ require 'openapi_client/models/create_aliases_request_new'
24
+ require 'openapi_client/models/create_aliases_request_reference'
25
+ require 'openapi_client/models/inline_response200'
26
+ require 'openapi_client/models/inline_response2001'
27
+ require 'openapi_client/models/inline_response201'
28
+ require 'openapi_client/models/inline_response_default'
29
+ require 'openapi_client/models/model_alias'
30
+ require 'openapi_client/models/revealed_data'
31
+ require 'openapi_client/models/update_alias_request'
32
+ require 'openapi_client/models/update_alias_request_data'
33
+
34
+ # APIs
35
+ require 'openapi_client/api/aliases_api'
36
+
37
+ module VgsApiClient
38
+ class << self
39
+ # Customize default settings for the SDK using block.
40
+ # VgsApiClient.configure do |config|
41
+ # config.username = "xxx"
42
+ # config.password = "xxx"
43
+ # end
44
+ # If no block given, return the default Configuration object.
45
+ def configure
46
+ if block_given?
47
+ yield(Configuration.default)
48
+ else
49
+ Configuration.default
50
+ end
51
+ end
52
+ end
53
+ end
data/lib/version.rb ADDED
@@ -0,0 +1,3 @@
1
+ module VGS
2
+ VERSION = '0.0.1.alpha202204222331'
3
+ end
@@ -1,53 +1,84 @@
1
- =begin
2
- #Vault HTTP API
3
-
4
- #The VGS Vault HTTP API is used for storing, retrieving, and managing sensitive data (aka Tokenization) within a VGS Vault. 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. ## What is VGS 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. 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. **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). **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). 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). ## Learn about Tokenization - [Create an Account for Free Tokenization](https://dashboard.verygoodsecurity.com/tokenization) - [Try a Tokenization Demo](https://www.verygoodsecurity.com/docs/tokenization/getting-started) - [Install a Tokenization SDK](https://www.verygoodsecurity.com/docs/tokenization/client-libraries) ### Authentication This API uses `Basic` authentication. Credentials to access the API can be generated on the [dashboard](https://dashboard.verygoodsecurity.com) by going to the Settings section of the vault of your choosing. [Docs » Guides » Access credentials](https://www.verygoodsecurity.com/docs/settings/access-credentials) ## Resource Limits ### Data Limits This API allows storing data up to 32MB in size. ### Rate Limiting The API allows up to 3,000 requests per minute. Requests are associated with the vault, regardless of the access credentials used to authenticate the request. Your current rate limit is included as HTTP headers in every API response: | Header Name | Description | |-------------------------|----------------------------------------------------------| | `x-ratelimit-remaining` | The number of requests remaining in the 1-minute window. | If you exceed the rate limit, the API will reject the request with HTTP [429 Too Many Requests](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/429). ### Errors The API uses standard HTTP status codes to indicate whether the request succeeded or not. In case of failure, the response body will be JSON in a predefined format. For example, trying to create too many aliases at once results in the following response: ```json { \"errors\": [ { \"status\": 400, \"title\": \"Bad request\", \"detail\": \"Too many values (limit: 20)\", \"href\": \"https://api.sandbox.verygoodvault.com/aliases\" } ] } ```
5
-
6
- The version of the OpenAPI document: 1.0.0
7
- Contact: support@verygoodsecurity.com
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 5.4.0
10
-
11
- =end
12
-
13
- # Common files
14
- require 'vgs_api_client/api_client'
15
- require 'vgs_api_client/api_error'
16
- require 'vgs_api_client/version'
17
- require 'vgs_api_client/configuration'
18
-
19
- # Models
20
- require 'vgs_api_client/models/alias_format'
21
- require 'vgs_api_client/models/api_error'
22
- require 'vgs_api_client/models/create_aliases_request'
23
- require 'vgs_api_client/models/create_aliases_request_new'
24
- require 'vgs_api_client/models/create_aliases_request_reference'
25
- require 'vgs_api_client/models/inline_response200'
26
- require 'vgs_api_client/models/inline_response2001'
27
- require 'vgs_api_client/models/inline_response201'
28
- require 'vgs_api_client/models/inline_response_default'
29
- require 'vgs_api_client/models/model_alias'
30
- require 'vgs_api_client/models/revealed_data'
31
- require 'vgs_api_client/models/update_alias_request'
32
- require 'vgs_api_client/models/update_alias_request_data'
33
-
34
- # APIs
35
- require 'vgs_api_client/api/aliases_api'
36
-
37
- module VgsApiClient
38
- class << self
39
- # Customize default settings for the SDK using block.
40
- # VgsApiClient.configure do |config|
41
- # config.username = "xxx"
42
- # config.password = "xxx"
43
- # end
44
- # If no block given, return the default Configuration object.
45
- def configure
46
- if block_given?
47
- yield(Configuration.default)
1
+ require 'openapi_client'
2
+
3
+ module VGS
4
+ class VgsApiException < StandardError
5
+ end
6
+
7
+ class Aliases
8
+ def initialize(config)
9
+ @aliases_api = VgsApiClient::AliasesApi.new(VgsApiClient::ApiClient.new(config))
10
+ end
11
+
12
+ def redact(data)
13
+ begin
14
+ requests = data.map do |item|
15
+ VgsApiClient::CreateAliasesRequestNew.new(attributes = {
16
+ :format => VgsApiClient::AliasFormat.build_from_hash(item[:format]),
17
+ :classifiers => item[:classifiers],
18
+ :value => item[:value],
19
+ :storage => item[:storage]
20
+ })
21
+ end
22
+
23
+ create_aliases_request = VgsApiClient::CreateAliasesRequest.new(attributes = {
24
+ :data => requests
25
+ })
26
+ response = @aliases_api.create_aliases(opts = {
27
+ :create_aliases_request => create_aliases_request.to_hash
28
+ })
29
+
30
+ rescue
31
+ raise VgsApiException, "Failed to redact data #{ data }"
32
+ else
33
+ response.data
34
+ end
35
+
36
+ end
37
+
38
+ def reveal(aliases)
39
+ begin
40
+ query = aliases.kind_of?(Array) ? aliases.join(",") : aliases
41
+ response = @aliases_api.reveal_multiple_aliases(q = query)
42
+ rescue
43
+ raise VgsApiException, "Failed to reveal aliases #{ aliases }"
48
44
  else
49
- Configuration.default
45
+ response.data
46
+ end
47
+ end
48
+
49
+ def delete(_alias)
50
+ begin
51
+ @aliases_api.delete_alias(_alias = _alias)
52
+ rescue
53
+ raise VgsApiException, "Failed to delete alias #{ _alias }"
54
+ end
55
+ end
56
+
57
+ def update(_alias, data)
58
+ begin
59
+ update_alias_request = VgsApiClient::UpdateAliasRequest.new(attributes = {
60
+ :data => VgsApiClient::UpdateAliasRequestData.new(attributes = {
61
+ :classifiers => data[:classifiers]
62
+ })
63
+ })
64
+ @aliases_api.update_alias(_alias = _alias, opts = {
65
+ :update_alias_request => update_alias_request.to_hash
66
+ })
67
+ rescue
68
+ raise VgsApiException, "Failed to update alias #{ _alias }"
50
69
  end
51
70
  end
52
71
  end
53
- end
72
+
73
+ def self.config(username, password, host = 'https://api.sandbox.verygoodvault.com')
74
+ raise ArgumentError, 'username is nil' if username.nil?
75
+ raise ArgumentError, 'password is nil' if password.nil?
76
+
77
+ config = VgsApiClient::Configuration.default
78
+ config.username = username
79
+ config.password = password
80
+ config.host = host
81
+ config
82
+ end
83
+
84
+ end
@@ -0,0 +1,38 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ =begin
4
+ #Vault HTTP API
5
+
6
+ #The VGS Vault HTTP API is used for storing, retrieving, and managing sensitive data (aka Tokenization) within a VGS Vault. 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. ## What is VGS 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. 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. **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). **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). 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). ## Learn about Tokenization - [Create an Account for Free Tokenization](https://dashboard.verygoodsecurity.com/tokenization) - [Try a Tokenization Demo](https://www.verygoodsecurity.com/docs/tokenization/getting-started) - [Install a Tokenization SDK](https://www.verygoodsecurity.com/docs/tokenization/client-libraries) ### Authentication This API uses `Basic` authentication. Credentials to access the API can be generated on the [dashboard](https://dashboard.verygoodsecurity.com) by going to the Settings section of the vault of your choosing. [Docs » Guides » Access credentials](https://www.verygoodsecurity.com/docs/settings/access-credentials) ## Resource Limits ### Data Limits This API allows storing data up to 32MB in size. ### Rate Limiting The API allows up to 3,000 requests per minute. Requests are associated with the vault, regardless of the access credentials used to authenticate the request. Your current rate limit is included as HTTP headers in every API response: | Header Name | Description | |-------------------------|----------------------------------------------------------| | `x-ratelimit-remaining` | The number of requests remaining in the 1-minute window. | If you exceed the rate limit, the API will reject the request with HTTP [429 Too Many Requests](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/429). ### Errors The API uses standard HTTP status codes to indicate whether the request succeeded or not. In case of failure, the response body will be JSON in a predefined format. For example, trying to create too many aliases at once results in the following response: ```json { \"errors\": [ { \"status\": 400, \"title\": \"Bad request\", \"detail\": \"Too many values (limit: 20)\", \"href\": \"https://api.sandbox.verygoodvault.com/aliases\" } ] } ```
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Contact: support@verygoodsecurity.com
10
+ Generated by: https://openapi-generator.tech
11
+ OpenAPI Generator version: 5.4.0
12
+
13
+ =end
14
+
15
+ $:.push File.expand_path("../lib", __FILE__)
16
+ require "openapi_client/version"
17
+
18
+ Gem::Specification.new do |s|
19
+ s.name = "openapi_client"
20
+ s.version = VgsApiClient::VERSION
21
+ s.platform = Gem::Platform::RUBY
22
+ s.authors = ["Very Good Security"]
23
+ s.email = ["support@verygoodsecurity.com"]
24
+ s.homepage = "https://openapi-generator.tech"
25
+ s.summary = "VGS Vault API"
26
+ s.description = "This gem maps to VGS Vault API"
27
+ s.license = "Unlicense"
28
+ s.required_ruby_version = ">= 2.4"
29
+
30
+ s.add_runtime_dependency 'typhoeus', '~> 1.0', '>= 1.0.1'
31
+
32
+ s.add_development_dependency 'rspec', '~> 3.6', '>= 3.6.0'
33
+
34
+ s.files = `find *`.split("\n").uniq.sort.select { |f| !f.empty? }
35
+ s.test_files = `find spec/*`.split("\n")
36
+ s.executables = []
37
+ s.require_paths = ["lib"]
38
+ 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.alpha202204211429 . | xargs sed -i "s/0.0.1.alpha202204211429/${LIB_VERSION}/g"
6
+ grep -rl 0.0.1.alpha202204222331 . | xargs sed -i "s/0.0.1.alpha202204222331/${LIB_VERSION}/g"
7
7
 
8
8
  # build
9
9
  gem build vgs_api_client.gemspec
data/scripts/test/run.sh CHANGED
@@ -5,9 +5,9 @@ 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.alpha202204211429 . | xargs sed -i "s/0.0.1.alpha202204211429/$VERSION/g"
8
+ grep -rl 0.0.1.alpha202204222331 . | xargs sed -i "s/0.0.1.alpha202204222331/$VERSION/g"
9
9
 
10
10
  bundle install
11
11
 
12
12
  echo "Running tests"
13
- bundle exec rspec ./spec/*.rb
13
+ bundle exec rspec -f documentation ./spec/*.rb
@@ -27,4 +27,4 @@ echo "Running tests"
27
27
  mv /vgs-api-client/tmp/Gemfile /vgs-api-client/
28
28
  mv /vgs-api-client/tmp/vgs_api_client.gemspec /vgs-api-client/
29
29
  bundle install --without production --binstubs
30
- bundle exec rspec ./spec/*.rb
30
+ bundle exec rspec -f documentation ./spec/*.rb
data/spec/spec_helper.rb CHANGED
@@ -11,7 +11,7 @@ OpenAPI Generator version: 5.4.0
11
11
  =end
12
12
 
13
13
  # load the gem
14
- require 'vgs_api_client'
14
+ require 'openapi_client'
15
15
 
16
16
  # The following was generated by the `rspec --init` command. Conventionally, all
17
17
  # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
@@ -1,29 +1,27 @@
1
1
  require 'spec_helper'
2
2
  require 'securerandom'
3
- require 'vgs'
3
+ require 'vgs_api_client'
4
4
 
5
5
  describe 'AliasesApiSpec' do
6
6
  before(:all) do
7
- config = VGS.config(username = ENV["VAULT_API_USERNAME"], password = ENV["VAULT_API_PASSWORD"])
8
- @aliases_api = VGS::Aliases.new(config)
7
+ config = VGS.config(username = ENV['VAULT_API_USERNAME'], password = ENV['VAULT_API_PASSWORD'])
8
+ @aliases_api = VGS::Aliases.new config
9
9
  end
10
10
 
11
11
  describe 'redact' do
12
12
  it 'should redact values' do
13
- data = [
14
- {
15
- :format => 'UUID',
16
- :value => '5201784564572092',
17
- :classifiers => %w[credit-card number],
18
- :storage => 'PERSISTENT',
19
- },
20
- {
21
- :format => 'UUID',
22
- :value => 'Joe Doe',
23
- :storage => 'VOLATILE',
24
- }
25
- ]
26
- aliases = @aliases_api.redact(data)
13
+ data = [{
14
+ format: 'UUID',
15
+ value: '5201784564572092',
16
+ classifiers: %w[credit-card number],
17
+ storage: 'PERSISTENT'
18
+ },
19
+ {
20
+ format: 'UUID',
21
+ value: 'Joe Doe',
22
+ storage: 'VOLATILE'
23
+ }]
24
+ aliases = @aliases_api.redact data
27
25
  expect(aliases.length).to eq 2
28
26
  data.each_with_index do |item, index|
29
27
  expect(aliases[index].value).to eq item[:value]
@@ -37,22 +35,20 @@ describe 'AliasesApiSpec' do
37
35
 
38
36
  describe 'reveal' do
39
37
  it 'should reveal aliases' do
40
- data = [
41
- {
42
- :format => 'UUID',
43
- :value => '5201784564572092',
44
- :classifiers => %w[credit-card number],
45
- :storage => 'PERSISTENT',
46
- },
47
- {
48
- :format => 'UUID',
49
- :value => 'Joe Doe',
50
- :storage => 'VOLATILE',
51
- }
52
- ]
38
+ data = [{
39
+ format: 'UUID',
40
+ value: '5201784564572092',
41
+ classifiers: %w[credit-card number],
42
+ storage: 'PERSISTENT'
43
+ },
44
+ {
45
+ format: 'UUID',
46
+ value: 'Joe Doe',
47
+ storage: 'VOLATILE'
48
+ }]
53
49
  aliases = @aliases_api.redact(data).map { |item| item.aliases[0]._alias }
54
50
 
55
- response = @aliases_api.reveal(aliases)
51
+ response = @aliases_api.reveal aliases
56
52
 
57
53
  expect(response.length).to eq 2
58
54
  original_values = data.map { |i| i[:value] }
@@ -63,15 +59,13 @@ describe 'AliasesApiSpec' do
63
59
 
64
60
  describe 'update' do
65
61
  it 'should update alias' do
66
- data = [
67
- {
68
- :format => 'UUID',
69
- :value => SecureRandom.alphanumeric(10),
70
- }
71
- ]
62
+ data = [{
63
+ format: 'UUID',
64
+ value: SecureRandom.alphanumeric(10)
65
+ }]
72
66
  _alias = @aliases_api.redact(data).map { |item| item.aliases[0]._alias }[0]
73
67
 
74
- @aliases_api.update(_alias = _alias, data = { :classifiers => ["secure"] })
68
+ @aliases_api.update _alias, classifiers: %w[secure]
75
69
 
76
70
  response = @aliases_api.reveal(_alias)
77
71
  expect(response[_alias].classifiers).to eq %w[secure]
@@ -80,15 +74,13 @@ describe 'AliasesApiSpec' do
80
74
 
81
75
  describe 'delete' do
82
76
  it 'should delete alias' do
83
- data = [
84
- {
85
- :format => 'UUID',
86
- :value => '5201784564572092',
87
- }
88
- ]
77
+ data = [{
78
+ format: 'UUID',
79
+ value: '5201784564572092'
80
+ }]
89
81
  _alias = @aliases_api.redact(data).map { |item| item.aliases[0]._alias }[0]
90
82
 
91
- @aliases_api.delete(_alias = _alias)
83
+ @aliases_api.delete _alias
92
84
 
93
85
  expect { @aliases_api.reveal(_alias) }.to raise_error(VGS::VgsApiException)
94
86
  end
@@ -1,31 +1,25 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
- =begin
4
- #Vault HTTP API
5
-
6
- #The VGS Vault HTTP API is used for storing, retrieving, and managing sensitive data (aka Tokenization) within a VGS Vault. 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. ## What is VGS 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. 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. **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). **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). 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). ## Learn about Tokenization - [Create an Account for Free Tokenization](https://dashboard.verygoodsecurity.com/tokenization) - [Try a Tokenization Demo](https://www.verygoodsecurity.com/docs/tokenization/getting-started) - [Install a Tokenization SDK](https://www.verygoodsecurity.com/docs/tokenization/client-libraries) ### Authentication This API uses `Basic` authentication. Credentials to access the API can be generated on the [dashboard](https://dashboard.verygoodsecurity.com) by going to the Settings section of the vault of your choosing. [Docs » Guides » Access credentials](https://www.verygoodsecurity.com/docs/settings/access-credentials) ## Resource Limits ### Data Limits This API allows storing data up to 32MB in size. ### Rate Limiting The API allows up to 3,000 requests per minute. Requests are associated with the vault, regardless of the access credentials used to authenticate the request. Your current rate limit is included as HTTP headers in every API response: | Header Name | Description | |-------------------------|----------------------------------------------------------| | `x-ratelimit-remaining` | The number of requests remaining in the 1-minute window. | If you exceed the rate limit, the API will reject the request with HTTP [429 Too Many Requests](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/429). ### Errors The API uses standard HTTP status codes to indicate whether the request succeeded or not. In case of failure, the response body will be JSON in a predefined format. For example, trying to create too many aliases at once results in the following response: ```json { \"errors\": [ { \"status\": 400, \"title\": \"Bad request\", \"detail\": \"Too many values (limit: 20)\", \"href\": \"https://api.sandbox.verygoodvault.com/aliases\" } ] } ```
7
-
8
- The version of the OpenAPI document: 1.0.0
9
- Contact: support@verygoodsecurity.com
10
- Generated by: https://openapi-generator.tech
11
- OpenAPI Generator version: 5.4.0
12
-
13
- =end
14
-
15
- $:.push File.expand_path("../lib", __FILE__)
16
- require "vgs_api_client/version"
3
+ require_relative "lib/version"
17
4
 
18
5
  Gem::Specification.new do |s|
19
6
  s.name = "vgs_api_client"
20
- s.version = VgsApiClient::VERSION
7
+ s.version = VGS::VERSION
21
8
  s.platform = Gem::Platform::RUBY
22
9
  s.authors = ["Very Good Security"]
23
- s.email = ["dev@verygoodsecurity.com"]
24
- s.homepage = "https://openapi-generator.tech"
25
- s.summary = "A ruby wrapper for the VGS Vault API"
10
+ s.email = ["support@verygoodsecurity.com"]
11
+ s.homepage = "https://github.com/verygoodsecurity/vgs-api-client-ruby"
12
+ s.summary = "VGS API Client"
26
13
  s.description = "This gem maps to VGS Vault API"
27
- s.license = "Unlicense"
28
- s.required_ruby_version = ">= 2.4"
14
+ s.license = "BSD 3-Clause Clear License"
15
+ s.required_ruby_version = ">= 2.6"
16
+
17
+ s.metadata = {
18
+ "homepage_uri" => "https://www.verygoodsecurity.com",
19
+ "bug_tracker_uri" => "https://github.com/verygoodsecurity/vgs-api-client-ruby/issues",
20
+ "documentation_uri" => "https://www.verygoodsecurity.com/docs",
21
+ "source_code_uri" => "https://github.com/verygoodsecurity/vgs-api-client-ruby"
22
+ }
29
23
 
30
24
  s.add_runtime_dependency 'typhoeus', '~> 1.0', '>= 1.0.1'
31
25
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vgs_api_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.alpha202204211429
4
+ version: 0.0.1.alpha202204222331
5
5
  platform: ruby
6
6
  authors:
7
7
  - Very Good Security
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-21 00:00:00.000000000 Z
11
+ date: 2022-04-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -52,7 +52,7 @@ dependencies:
52
52
  version: 3.6.0
53
53
  description: This gem maps to VGS Vault API
54
54
  email:
55
- - dev@verygoodsecurity.com
55
+ - support@verygoodsecurity.com
56
56
  executables: []
57
57
  extensions: []
58
58
  extra_rdoc_files: []
@@ -60,29 +60,32 @@ files:
60
60
  - DEVELOPMENT.md
61
61
  - Gemfile
62
62
  - LICENSE
63
+ - README.md
63
64
  - RELEASE.md
64
65
  - Rakefile
65
66
  - docker-compose.yaml
66
- - lib/vgs.rb
67
+ - lib/openapi_client.rb
68
+ - lib/openapi_client/api/aliases_api.rb
69
+ - lib/openapi_client/api_client.rb
70
+ - lib/openapi_client/api_error.rb
71
+ - lib/openapi_client/configuration.rb
72
+ - lib/openapi_client/models/alias_format.rb
73
+ - lib/openapi_client/models/api_error.rb
74
+ - lib/openapi_client/models/create_aliases_request.rb
75
+ - lib/openapi_client/models/create_aliases_request_new.rb
76
+ - lib/openapi_client/models/create_aliases_request_reference.rb
77
+ - lib/openapi_client/models/inline_response200.rb
78
+ - lib/openapi_client/models/inline_response2001.rb
79
+ - lib/openapi_client/models/inline_response201.rb
80
+ - lib/openapi_client/models/inline_response_default.rb
81
+ - lib/openapi_client/models/model_alias.rb
82
+ - lib/openapi_client/models/revealed_data.rb
83
+ - lib/openapi_client/models/update_alias_request.rb
84
+ - lib/openapi_client/models/update_alias_request_data.rb
85
+ - lib/openapi_client/version.rb
86
+ - lib/version.rb
67
87
  - lib/vgs_api_client.rb
68
- - lib/vgs_api_client/api/aliases_api.rb
69
- - lib/vgs_api_client/api_client.rb
70
- - lib/vgs_api_client/api_error.rb
71
- - lib/vgs_api_client/configuration.rb
72
- - lib/vgs_api_client/models/alias_format.rb
73
- - lib/vgs_api_client/models/api_error.rb
74
- - lib/vgs_api_client/models/create_aliases_request.rb
75
- - lib/vgs_api_client/models/create_aliases_request_new.rb
76
- - lib/vgs_api_client/models/create_aliases_request_reference.rb
77
- - lib/vgs_api_client/models/inline_response200.rb
78
- - lib/vgs_api_client/models/inline_response2001.rb
79
- - lib/vgs_api_client/models/inline_response201.rb
80
- - lib/vgs_api_client/models/inline_response_default.rb
81
- - lib/vgs_api_client/models/model_alias.rb
82
- - lib/vgs_api_client/models/revealed_data.rb
83
- - lib/vgs_api_client/models/update_alias_request.rb
84
- - lib/vgs_api_client/models/update_alias_request_data.rb
85
- - lib/vgs_api_client/version.rb
88
+ - openapi_client.gemspec
86
89
  - scripts/assemble/Dockerfile
87
90
  - scripts/assemble/run.sh
88
91
  - scripts/publish.sh
@@ -99,10 +102,14 @@ files:
99
102
  - spec/spec_helper.rb
100
103
  - spec/test_aliases_api_spec.rb
101
104
  - vgs_api_client.gemspec
102
- homepage: https://openapi-generator.tech
105
+ homepage: https://github.com/verygoodsecurity/vgs-api-client-ruby
103
106
  licenses:
104
- - Unlicense
105
- metadata: {}
107
+ - BSD 3-Clause Clear License
108
+ metadata:
109
+ homepage_uri: https://www.verygoodsecurity.com
110
+ bug_tracker_uri: https://github.com/verygoodsecurity/vgs-api-client-ruby/issues
111
+ documentation_uri: https://www.verygoodsecurity.com/docs
112
+ source_code_uri: https://github.com/verygoodsecurity/vgs-api-client-ruby
106
113
  post_install_message:
107
114
  rdoc_options: []
108
115
  require_paths:
@@ -111,7 +118,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
111
118
  requirements:
112
119
  - - ">="
113
120
  - !ruby/object:Gem::Version
114
- version: '2.4'
121
+ version: '2.6'
115
122
  required_rubygems_version: !ruby/object:Gem::Requirement
116
123
  requirements:
117
124
  - - ">"
@@ -121,7 +128,7 @@ requirements: []
121
128
  rubygems_version: 3.3.7
122
129
  signing_key:
123
130
  specification_version: 4
124
- summary: A ruby wrapper for the VGS Vault API
131
+ summary: VGS API Client
125
132
  test_files:
126
133
  - spec/api_client_spec.rb
127
134
  - spec/configuration_spec.rb
data/lib/vgs.rb DELETED
@@ -1,82 +0,0 @@
1
- module VGS
2
- class VgsApiException < StandardError
3
- end
4
-
5
- class Aliases
6
- def initialize(config)
7
- @aliases_api = VgsApiClient::AliasesApi.new(VgsApiClient::ApiClient.new(config))
8
- end
9
-
10
- def redact(data)
11
- begin
12
- requests = data.map do |item|
13
- VgsApiClient::CreateAliasesRequestNew.new(attributes = {
14
- :format => VgsApiClient::AliasFormat.build_from_hash(item[:format]),
15
- :classifiers => item[:classifiers],
16
- :value => item[:value],
17
- :storage => item[:storage]
18
- })
19
- end
20
-
21
- create_aliases_request = VgsApiClient::CreateAliasesRequest.new(attributes = {
22
- :data => requests
23
- })
24
- response = @aliases_api.create_aliases(opts = {
25
- :create_aliases_request => create_aliases_request.to_hash
26
- })
27
-
28
- rescue
29
- raise VgsApiException, "Failed to redact data #{ data }"
30
- else
31
- response.data
32
- end
33
-
34
- end
35
-
36
- def reveal(aliases)
37
- begin
38
- query = aliases.kind_of?(Array) ? aliases.join(",") : aliases
39
- response = @aliases_api.reveal_multiple_aliases(q = query)
40
- rescue
41
- raise VgsApiException, "Failed to reveal aliases #{ aliases }"
42
- else
43
- response.data
44
- end
45
- end
46
-
47
- def delete(_alias)
48
- begin
49
- @aliases_api.delete_alias(_alias = _alias)
50
- rescue
51
- raise VgsApiException, "Failed to delete alias #{ _alias }"
52
- end
53
- end
54
-
55
- def update(_alias, data)
56
- begin
57
- update_alias_request = VgsApiClient::UpdateAliasRequest.new(attributes = {
58
- :data => VgsApiClient::UpdateAliasRequestData.new(attributes = {
59
- :classifiers => data[:classifiers]
60
- })
61
- })
62
- @aliases_api.update_alias(_alias = _alias, opts = {
63
- :update_alias_request => update_alias_request.to_hash
64
- })
65
- rescue
66
- raise VgsApiException, "Failed to update alias #{ _alias }"
67
- end
68
- end
69
- end
70
-
71
- def self.config(username, password, host = 'https://api.sandbox.verygoodvault.com')
72
- raise ArgumentError, 'username is nil' if username.nil?
73
- raise ArgumentError, 'password is nil' if password.nil?
74
-
75
- config = VgsApiClient::Configuration.default
76
- config.username = username
77
- config.password = password
78
- config.host = host
79
- config
80
- end
81
-
82
- end