Metadata-Version: 2.1
Name: vgs-api-client
Version: 0.0.1.dev202204131316
Summary: Vault HTTP API
Home-page: 
Author: Very Good Security
Author-email: support@verygoodsecurity.com
License: UNKNOWN
Keywords: VGS,VeryGoodSecurity,Vault HTTP API
Platform: UNKNOWN
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: urllib3 (>=1.25.3)
Requires-Dist: python-dateutil

# vgs api client
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\"
        }
    ]
}
```


This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:

- API version: 1.0.0
- Package version: 0.0.1dev202204131316
- Build package: org.openapitools.codegen.languages.PythonClientCodegen

## Requirements.

Python >=3.6

## Installation & Usage
### pip install

If the python package is hosted on a repository, you can install directly using:

```sh
pip install git+https://github.com/verygoodsecurity/vgs-api-client-python.git
```
(you may need to run `pip` with root permission: `sudo pip install git+https://github.com/verygoodsecurity/vgs-api-client-python.git`)

Then import the package:
```python
import vgs_api_client
```

### Setuptools

Install via [Setuptools](http://pypi.python.org/pypi/setuptools).

```sh
python setup.py install --user
```
(or `sudo python setup.py install` to install the package for all users)

Then import the package:
```python
import vgs_api_client
```

## Getting Started

Please follow the [installation procedure](#installation--usage) and then run the following:

```python

import time
import vgs_api_client
from pprint import pprint
from vgs_api_client.api import aliases_api
from vgs_api_client.model.create_aliases_request import CreateAliasesRequest
from vgs_api_client.model.inline_response200 import InlineResponse200
from vgs_api_client.model.inline_response2001 import InlineResponse2001
from vgs_api_client.model.inline_response201 import InlineResponse201
from vgs_api_client.model.inline_response_default import InlineResponseDefault
from vgs_api_client.model.update_alias_request import UpdateAliasRequest
# Defining the host is optional and defaults to https://api.sandbox.verygoodvault.com
# See configuration.py for a list of all supported configuration parameters.
configuration = vgs_api_client.Configuration(
    host = "https://api.sandbox.verygoodvault.com"
)

# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.

# Configure HTTP basic authorization: basicAuth
configuration = vgs_api_client.Configuration(
    username = 'YOUR_USERNAME',
    password = 'YOUR_PASSWORD'
)


# Enter a context with an instance of the API client
with vgs_api_client.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = aliases_api.AliasesApi(api_client)
    create_aliases_request = CreateAliasesRequest(
        data=[
            None,
        ],
    ) # CreateAliasesRequest |  (optional)

    try:
        # Create aliases
        api_response = api_instance.create_aliases(create_aliases_request=create_aliases_request)
        pprint(api_response)
    except vgs_api_client.ApiException as e:
        print("Exception when calling AliasesApi->create_aliases: %s\n" % e)
```

## Documentation for API Endpoints

All URIs are relative to *https://api.sandbox.verygoodvault.com*

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*AliasesApi* | [**create_aliases**](docs/AliasesApi.md#create_aliases) | **POST** /aliases | Create aliases
*AliasesApi* | [**delete_alias**](docs/AliasesApi.md#delete_alias) | **DELETE** /aliases/{alias} | Delete alias
*AliasesApi* | [**reveal_alias**](docs/AliasesApi.md#reveal_alias) | **GET** /aliases/{alias} | Reveal single alias
*AliasesApi* | [**reveal_multiple_aliases**](docs/AliasesApi.md#reveal_multiple_aliases) | **GET** /aliases | Reveal multiple aliases
*AliasesApi* | [**update_alias**](docs/AliasesApi.md#update_alias) | **PUT** /aliases/{alias} | Update data classifiers


## Documentation For Models

 - [Alias](docs/Alias.md)
 - [AliasFormat](docs/AliasFormat.md)
 - [ApiError](docs/ApiError.md)
 - [CreateAliasesRequest](docs/CreateAliasesRequest.md)
 - [CreateAliasesRequestNew](docs/CreateAliasesRequestNew.md)
 - [CreateAliasesRequestReference](docs/CreateAliasesRequestReference.md)
 - [InlineResponse200](docs/InlineResponse200.md)
 - [InlineResponse2001](docs/InlineResponse2001.md)
 - [InlineResponse201](docs/InlineResponse201.md)
 - [InlineResponseDefault](docs/InlineResponseDefault.md)
 - [RevealedData](docs/RevealedData.md)
 - [UpdateAliasRequest](docs/UpdateAliasRequest.md)
 - [UpdateAliasRequestData](docs/UpdateAliasRequestData.md)


## Documentation For Authorization


## basicAuth

- **Type**: HTTP basic authentication


## Author

support@verygoodsecurity.com


## Notes for Large OpenAPI documents
If the OpenAPI document is large, imports in vgs_api_client.apis and vgs_api_client.models may fail with a
RecursionError indicating the maximum recursion limit has been exceeded. In that case, there are a couple of solutions:

Solution 1:
Use specific imports for apis and models like:
- `from vgs_api_client.api.default_api import DefaultApi`
- `from vgs_api_client.model.pet import Pet`

Solution 2:
Before importing the package, adjust the maximum recursion limit as shown below:
```
import sys
sys.setrecursionlimit(1500)
import vgs_api_client
from vgs_api_client.apis import *
from vgs_api_client.models import *
```



