# eis-customers
The EMIL CustomerService API description

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

- API version: 1.0
- Package version: 1.14.0
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
For more information, please visit [https://www.emil.de](https://www.emil.de)

## 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 eis.customers
```
(you may need to run `pip` with root permission: `sudo pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git`)

Then import the package:
```python
import eis.customers
```

### 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 eis.customers
```

## Getting Started

The environment variables must be set in order to properly use this SDK.

```shell 
export EMIL_USERNAME=XXXXXXX
export EMIL_PASSWORD=XXXXXXX
```

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

```python
import time
import eis.customers
from pprint import pprint
from eis.customers.api import authentication_api
from eis.customers.model.forgot_password_request_dto import ForgotPasswordRequestDto
from eis.customers.model.initiate_auth_request_dto import InitiateAuthRequestDto
from eis.customers.model.initiate_auth_response_class import InitiateAuthResponseClass
from eis.customers.model.refresh_token_dto import RefreshTokenDto
from eis.customers.model.reset_password_by_customer_request_dto import ResetPasswordByCustomerRequestDto
from eis.customers.model.respond_to_auth_challenge_class import RespondToAuthChallengeClass
from eis.customers.model.respond_to_auth_challenge_request_dto import RespondToAuthChallengeRequestDto
# Defining the host is optional and defaults to https://apiv2.emil.de
# See configuration.py for a list of all supported configuration parameters.
configuration = eis.customers.Configuration(
    host = "https://apiv2.emil.de"
)



# Enter a context with an instance of the API client
with eis.customers.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = authentication_api.AuthenticationApi(api_client)
    forgot_password_request_dto = ForgotPasswordRequestDto(
        email="Makenna.Ernser53@hotmail.com",
        tenant_slug="InsureMe",
    ) # ForgotPasswordRequestDto | 

    try:
        # Forgot password by customer
        api_instance.forgot_password(forgot_password_request_dto)
    except eis.customers.ApiException as e:
        print("Exception when calling AuthenticationApi->forgot_password: %s\n" % e)
```

## Documentation for API Endpoints

All URIs are relative to *https://apiv2.emil.de*

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*AuthenticationApi* | [**forgot_password**](docs/AuthenticationApi.md#forgot_password) | **POST** /v1/customers/forgot-password | Forgot password by customer
*AuthenticationApi* | [**initiate_auth**](docs/AuthenticationApi.md#initiate_auth) | **POST** /v1/customers/auth/initiate | Initiate auth by customer
*AuthenticationApi* | [**refresh_token**](docs/AuthenticationApi.md#refresh_token) | **POST** /v1/customers/refresh-token | Refresh token by customer
*AuthenticationApi* | [**reset_password**](docs/AuthenticationApi.md#reset_password) | **POST** /v1/customers/reset-password | Change password by customer
*AuthenticationApi* | [**respond_to_auth_challenge**](docs/AuthenticationApi.md#respond_to_auth_challenge) | **POST** /v1/customers/auth/respond | Respond to auth challenge
*AuthenticationApi* | [**verify_reset_password_token**](docs/AuthenticationApi.md#verify_reset_password_token) | **GET** /v1/customers/verify-reset-password | Verify a reset password token
*ClaimsApi* | [**create_customer_claim**](docs/ClaimsApi.md#create_customer_claim) | **POST** /v1/customers/{customerCode}/claims | Create a new claim
*ClaimsApi* | [**get_customer_claim**](docs/ClaimsApi.md#get_customer_claim) | **GET** /v1/customers/{customerCode}/claims/{claimCode} | Get claim
*ClaimsApi* | [**list_customer_claims**](docs/ClaimsApi.md#list_customer_claims) | **GET** /v1/customers/{customerCode}/claims | List claims
*ClaimsApi* | [**update_customer_claim**](docs/ClaimsApi.md#update_customer_claim) | **PUT** /v1/customers/{customerCode}/claims/{claimCode} | Update claim
*ClaimsApi* | [**upload_customer_claim_documents**](docs/ClaimsApi.md#upload_customer_claim_documents) | **POST** /v1/customers/{customerCode}/claims/{claimCode}/documents | Upload claim documents
*CustomersApi* | [**get_customer**](docs/CustomersApi.md#get_customer) | **GET** /v1/customers/{customerCode} | Get customer details
*CustomersApi* | [**list_customers**](docs/CustomersApi.md#list_customers) | **GET** /v1/customers | Get customers list
*CustomersApi* | [**update_customer**](docs/CustomersApi.md#update_customer) | **PUT** /v1/customers/{customerCode} | Update customer details
*DocumentsApi* | [**get_customer_document_download_url**](docs/DocumentsApi.md#get_customer_document_download_url) | **GET** /v1/customers/{customerCode}/documents/{documentCode}/download-url | Get a download url for document
*DocumentsApi* | [**list_documents**](docs/DocumentsApi.md#list_documents) | **GET** /v1/customers/{customerCode}/documents | List documents of a customer
*DocumentsApi* | [**upload_account_documents**](docs/DocumentsApi.md#upload_account_documents) | **POST** /v1/customers/{customerCode}/documents | Upload account documents
*InvitesApi* | [**create_customer**](docs/InvitesApi.md#create_customer) | **POST** /v1/customers/create | Register a customer after invite
*InvitesApi* | [**invite_by_customer**](docs/InvitesApi.md#invite_by_customer) | **POST** /v1/customers/invites/by-customer | Invite a customer by self
*InvitesApi* | [**invite_by_tenant**](docs/InvitesApi.md#invite_by_tenant) | **POST** /v1/customers/invites/by-tenant | Invite a customer by tenant
*InvitesApi* | [**verify_invite**](docs/InvitesApi.md#verify_invite) | **GET** /v1/customers/invites/verify | Verify customer&#39;s invite token
*InvoicesApi* | [**list_invoices**](docs/InvoicesApi.md#list_invoices) | **GET** /v1/customers/{customerCode}/invoices | List invoices of a customer
*LeadsApi* | [**create_lead**](docs/LeadsApi.md#create_lead) | **POST** /v1/customers/{customerCode}/leads | Create the lead
*LeadsApi* | [**get_lead**](docs/LeadsApi.md#get_lead) | **GET** /v1/customers/{customerCode}/leads/{code} | Retrieve the lead
*LeadsApi* | [**list_leads**](docs/LeadsApi.md#list_leads) | **GET** /v1/customers/{customerCode}/leads | List leads
*LeadsApi* | [**update_lead**](docs/LeadsApi.md#update_lead) | **PUT** /v1/customers/{customerCode}/leads/{code} | Update the lead
*PaymentsApi* | [**complete_payment_setup**](docs/PaymentsApi.md#complete_payment_setup) | **POST** /v1/customers/{customerCode}/payment_setup/complete | Request payment setup complete
*PaymentsApi* | [**initiate_payment_setup**](docs/PaymentsApi.md#initiate_payment_setup) | **POST** /v1/customers/{customerCode}/payment_setup/initiate | Request payment setup initiation
*PoliciesApi* | [**get_customer_policy_data_by_date**](docs/PoliciesApi.md#get_customer_policy_data_by_date) | **GET** /v1/customers/{customerCode}/policies/{policyCode}/current-version | Get current version details
*PoliciesApi* | [**get_policy**](docs/PoliciesApi.md#get_policy) | **GET** /v1/customers/{customerCode}/policies/{policyCode} | Get policy details
*PoliciesApi* | [**list_policies**](docs/PoliciesApi.md#list_policies) | **GET** /v1/customers/{customerCode}/policies | List policies
*PoliciesApi* | [**request_policy_update**](docs/PoliciesApi.md#request_policy_update) | **POST** /v1/customers/{customerCode}/policies/{policyCode}/request-update | Request policy update
*PoliciesApi* | [**terminate_customer_policy**](docs/PoliciesApi.md#terminate_customer_policy) | **POST** /v1/customers/{customerCode}/policies/{policyCode}/terminate | Terminate a policy
*PoliciesApi* | [**upload_customer_policy_documents**](docs/PoliciesApi.md#upload_customer_policy_documents) | **POST** /v1/customers/{customerCode}/policies/{policyCode}/documents | Upload policy documents
*PoliciesApi* | [**withdraw_customer_policy**](docs/PoliciesApi.md#withdraw_customer_policy) | **POST** /v1/customers/{customerCode}/policies/{policyCode}/withdraw | Withdraw the policy
*ProductsApi* | [**get_product**](docs/ProductsApi.md#get_product) | **GET** /v1/customers/{customerCode}/products/{productCode} | Get product details
*ProductsApi* | [**list_products**](docs/ProductsApi.md#list_products) | **GET** /v1/customers/{customerCode}/products | List available products
*DefaultApi* | [**check**](docs/DefaultApi.md#check) | **GET** /customerservice/health | 


## Documentation For Models

 - [AccountClass](docs/AccountClass.md)
 - [AccountPolicyClass](docs/AccountPolicyClass.md)
 - [AuthenticationResultClass](docs/AuthenticationResultClass.md)
 - [ClaimClass](docs/ClaimClass.md)
 - [CompleteBraintreePaymentSetupRequestDto](docs/CompleteBraintreePaymentSetupRequestDto.md)
 - [CompletePaymentSetupPspRequest](docs/CompletePaymentSetupPspRequest.md)
 - [CompletePaymentSetupResponseClass](docs/CompletePaymentSetupResponseClass.md)
 - [CompleteStripePaymentSetupRequestDto](docs/CompleteStripePaymentSetupRequestDto.md)
 - [CreateAccountRequestDto](docs/CreateAccountRequestDto.md)
 - [CreateBankAccountRequestDto](docs/CreateBankAccountRequestDto.md)
 - [CreateCustomerClaimRequestDto](docs/CreateCustomerClaimRequestDto.md)
 - [CreateCustomerClaimResponseClass](docs/CreateCustomerClaimResponseClass.md)
 - [CreateCustomerRequestDto](docs/CreateCustomerRequestDto.md)
 - [CreateCustomerResponseClass](docs/CreateCustomerResponseClass.md)
 - [CreateLeadRequestDto](docs/CreateLeadRequestDto.md)
 - [CreateLeadResponseClass](docs/CreateLeadResponseClass.md)
 - [CreatePaymentMethodRequestDto](docs/CreatePaymentMethodRequestDto.md)
 - [CreatePolicyRequestDto](docs/CreatePolicyRequestDto.md)
 - [CreatePresignedPostResponseClass](docs/CreatePresignedPostResponseClass.md)
 - [CustomerClass](docs/CustomerClass.md)
 - [CustomerDocumentClass](docs/CustomerDocumentClass.md)
 - [CustomerProductClass](docs/CustomerProductClass.md)
 - [ForgotPasswordRequestDto](docs/ForgotPasswordRequestDto.md)
 - [GetCustomerClaimResponseClass](docs/GetCustomerClaimResponseClass.md)
 - [GetCustomerDocumentDownloadUrlResponseClass](docs/GetCustomerDocumentDownloadUrlResponseClass.md)
 - [GetCustomerResponseClass](docs/GetCustomerResponseClass.md)
 - [GetLeadResponseClass](docs/GetLeadResponseClass.md)
 - [GetPolicyResponseClass](docs/GetPolicyResponseClass.md)
 - [GetProductResponseClass](docs/GetProductResponseClass.md)
 - [GrpcUpdateLeadRequestDto](docs/GrpcUpdateLeadRequestDto.md)
 - [InitiateAuthRequestDto](docs/InitiateAuthRequestDto.md)
 - [InitiateAuthResponseClass](docs/InitiateAuthResponseClass.md)
 - [InitiateBraintreePaymentSetupResponseClass](docs/InitiateBraintreePaymentSetupResponseClass.md)
 - [InitiatePaymentSetupResponseClass](docs/InitiatePaymentSetupResponseClass.md)
 - [InitiateStripePaymentSetupResponseClass](docs/InitiateStripePaymentSetupResponseClass.md)
 - [InlineResponse200](docs/InlineResponse200.md)
 - [InlineResponse503](docs/InlineResponse503.md)
 - [InviteByCustomerRequestDto](docs/InviteByCustomerRequestDto.md)
 - [InviteByCustomerResponseClass](docs/InviteByCustomerResponseClass.md)
 - [InviteByTenantRequestDto](docs/InviteByTenantRequestDto.md)
 - [InviteByTenantResponseClass](docs/InviteByTenantResponseClass.md)
 - [InviteClass](docs/InviteClass.md)
 - [InvoiceClass](docs/InvoiceClass.md)
 - [LeadBankAccountClass](docs/LeadBankAccountClass.md)
 - [LeadClass](docs/LeadClass.md)
 - [ListCustomerClaimsResponseClass](docs/ListCustomerClaimsResponseClass.md)
 - [ListDocumentsResponseClass](docs/ListDocumentsResponseClass.md)
 - [ListInvoicesResponseClass](docs/ListInvoicesResponseClass.md)
 - [ListLeadsResponseClass](docs/ListLeadsResponseClass.md)
 - [ListPoliciesResponseClass](docs/ListPoliciesResponseClass.md)
 - [ListProductsResponseClass](docs/ListProductsResponseClass.md)
 - [PolicyClass](docs/PolicyClass.md)
 - [PolicyObjectClass](docs/PolicyObjectClass.md)
 - [PolicyObjectDto](docs/PolicyObjectDto.md)
 - [PolicyPremiumClass](docs/PolicyPremiumClass.md)
 - [PolicyPremiumItemClass](docs/PolicyPremiumItemClass.md)
 - [PolicyVersionClass](docs/PolicyVersionClass.md)
 - [PremiumOverrideDto](docs/PremiumOverrideDto.md)
 - [PremiumOverrideRequestClass](docs/PremiumOverrideRequestClass.md)
 - [PremiumOverrideRequestDto](docs/PremiumOverrideRequestDto.md)
 - [RefreshTokenDto](docs/RefreshTokenDto.md)
 - [RequestPolicyUpdateRequestDto](docs/RequestPolicyUpdateRequestDto.md)
 - [RequestPolicyUpdateResponseClass](docs/RequestPolicyUpdateResponseClass.md)
 - [ResetPasswordByCustomerRequestDto](docs/ResetPasswordByCustomerRequestDto.md)
 - [RespondToAuthChallengeClass](docs/RespondToAuthChallengeClass.md)
 - [RespondToAuthChallengeRequestDto](docs/RespondToAuthChallengeRequestDto.md)
 - [SepaDto](docs/SepaDto.md)
 - [SharedCustomerPolicyObjectRequestDto](docs/SharedCustomerPolicyObjectRequestDto.md)
 - [SharedInvoiceItemClass](docs/SharedInvoiceItemClass.md)
 - [SharedInvoiceStatusClass](docs/SharedInvoiceStatusClass.md)
 - [TerminateCustomerPolicyRequestDto](docs/TerminateCustomerPolicyRequestDto.md)
 - [TerminateCustomerPolicyResponseClass](docs/TerminateCustomerPolicyResponseClass.md)
 - [TimesliceClass](docs/TimesliceClass.md)
 - [UpdateAccountRequestDto](docs/UpdateAccountRequestDto.md)
 - [UpdateCustomerClaimRequestDto](docs/UpdateCustomerClaimRequestDto.md)
 - [UpdateCustomerClaimResponseClass](docs/UpdateCustomerClaimResponseClass.md)
 - [UpdateCustomerRequestDto](docs/UpdateCustomerRequestDto.md)
 - [UpdateCustomerResponseClass](docs/UpdateCustomerResponseClass.md)
 - [UpdateLeadRequestDto](docs/UpdateLeadRequestDto.md)
 - [UpdateLeadResponseClass](docs/UpdateLeadResponseClass.md)
 - [UploadCustomerClaimDocumentsRequestDto](docs/UploadCustomerClaimDocumentsRequestDto.md)
 - [UploadCustomerPolicyDocumentsRequestDto](docs/UploadCustomerPolicyDocumentsRequestDto.md)
 - [UploadedDocumentDto](docs/UploadedDocumentDto.md)
 - [VerifyCustomerInviteResponseClass](docs/VerifyCustomerInviteResponseClass.md)
 - [WithdrawCustomerPolicyResponseClass](docs/WithdrawCustomerPolicyResponseClass.md)


## Documentation For Authorization


## bearer

- **Type**: Bearer authentication (JWT)


## Author

kontakt@emil.de


## Notes for Large OpenAPI documents
If the OpenAPI document is large, imports in eis.customers.apis and eis.customers.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 eis.customers.api.default_api import DefaultApi`
- `from eis.customers.model.pet import Pet`

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

