# eis_commission
The EMIL CommissionService API description

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

- API version: 1.0
- Package version: 2.1.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.commission
```
(you may need to run `pip` with root permission: `sudo pip install git+https://github.com/emilDev/eis-commission-sdk.git`)

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

### 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.commission
```

## 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.commission
from pprint import pprint
from eis.commission.api import commission_agreement_products_api
from eis.commission.model.create_commission_agreement_product_request_dto import CreateCommissionAgreementProductRequestDto
from eis.commission.model.create_commission_agreement_product_response_class import CreateCommissionAgreementProductResponseClass
from eis.commission.model.get_commission_agreement_product_response_class import GetCommissionAgreementProductResponseClass
from eis.commission.model.list_commission_agreement_products_response_class import ListCommissionAgreementProductsResponseClass
from eis.commission.model.update_commission_agreement_product_request_dto import UpdateCommissionAgreementProductRequestDto
from eis.commission.model.update_commission_agreement_product_response_class import UpdateCommissionAgreementProductResponseClass
# 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.commission.Configuration(
    host = "https://apiv2.emil.de"
)

# 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.

# Bearer is automatically handled with exported environment variables. However, you
# can manuallay configure Bearer authorization (JWT): bearer
configuration = eis.commission.Configuration(
    access_token = 'YOUR_BEARER_TOKEN'
)

# After manual token becomes invalid, the SDK will default to re-login automatically
# with environment variable credentials.


# Enter a context with an instance of the API client
with eis.commission.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = commission_agreement_products_api.CommissionAgreementProductsApi(api_client)
    create_commission_agreement_product_request_dto = CreateCommissionAgreementProductRequestDto(
        commission_agreement_version_code="comm_ag_ver_V1StGXR8_Z5jdHi6B-myT",
        product_slug="home-insurance",
    ) # CreateCommissionAgreementProductRequestDto | 
    authorization = "Authorization_example" # str | Bearer Token: provided by the login endpoint under the name accessToken. (optional)

    try:
        # Create the commission agreement product
        api_response = api_instance.create_commission_agreement_product(create_commission_agreement_product_request_dto, authorization=authorization)
        pprint(api_response)
    except eis.commission.ApiException as e:
        print("Exception when calling CommissionAgreementProductsApi->create_commission_agreement_product: %s\n" % e)
```

## Documentation for API Endpoints

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

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*CommissionAgreementProductsApi* | [**create_commission_agreement_product**](docs/CommissionAgreementProductsApi.md#create_commission_agreement_product) | **POST** /commissionservice/v1/agreement-products | Create the commission agreement product
*CommissionAgreementProductsApi* | [**delete_commission_agreement_product**](docs/CommissionAgreementProductsApi.md#delete_commission_agreement_product) | **DELETE** /commissionservice/v1/agreement-products/{code} | Delete the commission agreement product
*CommissionAgreementProductsApi* | [**get_commission_agreement_product**](docs/CommissionAgreementProductsApi.md#get_commission_agreement_product) | **GET** /commissionservice/v1/agreement-products/{code} | Retrieve the commission agreement product
*CommissionAgreementProductsApi* | [**list_commission_agreement_products**](docs/CommissionAgreementProductsApi.md#list_commission_agreement_products) | **GET** /commissionservice/v1/agreement-products | List commission agreement products
*CommissionAgreementProductsApi* | [**update_commission_agreement_product**](docs/CommissionAgreementProductsApi.md#update_commission_agreement_product) | **PUT** /commissionservice/v1/agreement-products/{code} | Update the commission agreement product
*CommissionAgreementRulesApi* | [**create_commission_agreement_rule**](docs/CommissionAgreementRulesApi.md#create_commission_agreement_rule) | **POST** /commissionservice/v1/agreement-rules | Create the commission agreement rule
*CommissionAgreementRulesApi* | [**delete_commission_agreement_rule**](docs/CommissionAgreementRulesApi.md#delete_commission_agreement_rule) | **DELETE** /commissionservice/v1/agreement-rules/{code} | Delete the commission agreement rule
*CommissionAgreementRulesApi* | [**evaluate_commission_agreement_rule**](docs/CommissionAgreementRulesApi.md#evaluate_commission_agreement_rule) | **POST** /commissionservice/v1/agreement-rules/evaluate | Create the commission agreement rule evaluation
*CommissionAgreementRulesApi* | [**get_commission_agreement_rule**](docs/CommissionAgreementRulesApi.md#get_commission_agreement_rule) | **GET** /commissionservice/v1/agreement-rules/{code} | Retrieve the commission agreement rule
*CommissionAgreementRulesApi* | [**list_commission_agreement_rules**](docs/CommissionAgreementRulesApi.md#list_commission_agreement_rules) | **GET** /commissionservice/v1/agreement-rules | List commission agreement rules
*CommissionAgreementRulesApi* | [**update_commission_agreement_rule**](docs/CommissionAgreementRulesApi.md#update_commission_agreement_rule) | **PUT** /commissionservice/v1/agreement-rules/{code} | Update the commission agreement rule
*CommissionAgreementVersionsApi* | [**create_commission_agreement_version**](docs/CommissionAgreementVersionsApi.md#create_commission_agreement_version) | **POST** /commissionservice/v1/agreement-versions | Create the commission agreement version
*CommissionAgreementVersionsApi* | [**delete_commission_agreement_version**](docs/CommissionAgreementVersionsApi.md#delete_commission_agreement_version) | **DELETE** /commissionservice/v1/agreement-versions/{code} | Delete the commission agreement version
*CommissionAgreementVersionsApi* | [**get_commission_agreement_version**](docs/CommissionAgreementVersionsApi.md#get_commission_agreement_version) | **GET** /commissionservice/v1/agreement-versions/{code} | Retrieve the commission agreement version
*CommissionAgreementVersionsApi* | [**list_commission_agreement_versions**](docs/CommissionAgreementVersionsApi.md#list_commission_agreement_versions) | **GET** /commissionservice/v1/agreement-versions | List commission agreement versions
*CommissionAgreementsApi* | [**create_commission_agreement**](docs/CommissionAgreementsApi.md#create_commission_agreement) | **POST** /commissionservice/v1/agreements | Create the commission agreement
*CommissionAgreementsApi* | [**delete_commission_agreement**](docs/CommissionAgreementsApi.md#delete_commission_agreement) | **DELETE** /commissionservice/v1/agreements/{code} | Delete the commission agreement
*CommissionAgreementsApi* | [**get_commission_agreement**](docs/CommissionAgreementsApi.md#get_commission_agreement) | **GET** /commissionservice/v1/agreements/{code} | Retrieve the commission agreement
*CommissionAgreementsApi* | [**list_commission_agreements**](docs/CommissionAgreementsApi.md#list_commission_agreements) | **GET** /commissionservice/v1/agreements | List commission agreements
*CommissionAgreementsApi* | [**patch_commission_agreement_status**](docs/CommissionAgreementsApi.md#patch_commission_agreement_status) | **PATCH** /commissionservice/v1/agreements/{code}/status | Update the commission agreement status
*CommissionAgreementsApi* | [**update_commission_agreement**](docs/CommissionAgreementsApi.md#update_commission_agreement) | **PUT** /commissionservice/v1/agreements/{code} | Update the commission agreement
*CommissionCandidatesApi* | [**create_commission_candidate**](docs/CommissionCandidatesApi.md#create_commission_candidate) | **POST** /commissionservice/v1/commission-candidates | Create the commission candidate
*CommissionCandidatesApi* | [**delete_commission_candidate**](docs/CommissionCandidatesApi.md#delete_commission_candidate) | **DELETE** /commissionservice/v1/commission-candidates/{code} | Delete the commission candidate
*CommissionCandidatesApi* | [**get_commission_candidate**](docs/CommissionCandidatesApi.md#get_commission_candidate) | **GET** /commissionservice/v1/commission-candidates/{code} | Retrieve the commission candidate
*CommissionCandidatesApi* | [**list_commission_candidates**](docs/CommissionCandidatesApi.md#list_commission_candidates) | **GET** /commissionservice/v1/commission-candidates | List commission candidates
*CommissionCandidatesApi* | [**update_commission_candidate**](docs/CommissionCandidatesApi.md#update_commission_candidate) | **PUT** /commissionservice/v1/commission-candidates/{code} | Update the commission candidate
*CommissionRecipientsApi* | [**create_commission_recipient**](docs/CommissionRecipientsApi.md#create_commission_recipient) | **POST** /commissionservice/v1/commission-recipients | Create the commission recipient
*CommissionRecipientsApi* | [**delete_commission_recipient**](docs/CommissionRecipientsApi.md#delete_commission_recipient) | **DELETE** /commissionservice/v1/commission-recipients/{code} | Delete the commission recipient
*CommissionRecipientsApi* | [**get_commission_recipient**](docs/CommissionRecipientsApi.md#get_commission_recipient) | **GET** /commissionservice/v1/commission-recipients/{code} | Retrieve the commission recipient
*CommissionRecipientsApi* | [**list_commission_recipients**](docs/CommissionRecipientsApi.md#list_commission_recipients) | **GET** /commissionservice/v1/commission-recipients | List commission recipients
*CommissionRecipientsApi* | [**update_commission_recipient**](docs/CommissionRecipientsApi.md#update_commission_recipient) | **PUT** /commissionservice/v1/commission-recipients/{code} | Update the commission recipient
*CommissionSettlementsApi* | [**create_commission_settlement**](docs/CommissionSettlementsApi.md#create_commission_settlement) | **POST** /commissionservice/v1/commission-settlements | Create the commission settlement
*CommissionSettlementsApi* | [**delete_commission_settlement**](docs/CommissionSettlementsApi.md#delete_commission_settlement) | **DELETE** /commissionservice/v1/commission-settlements/{code} | Delete the commission settlement
*CommissionSettlementsApi* | [**get_commission_settlement**](docs/CommissionSettlementsApi.md#get_commission_settlement) | **GET** /commissionservice/v1/commission-settlements/{code} | Retrieve the commission settlement
*CommissionSettlementsApi* | [**list_commission_settlements**](docs/CommissionSettlementsApi.md#list_commission_settlements) | **GET** /commissionservice/v1/commission-settlements | List commission settlements
*CommissionSettlementsApi* | [**publish_commission_settlements**](docs/CommissionSettlementsApi.md#publish_commission_settlements) | **POST** /commissionservice/v1/commission-settlements/publish | Create the commission settlement publish
*CommissionSettlementsApi* | [**update_commission_settlement**](docs/CommissionSettlementsApi.md#update_commission_settlement) | **PUT** /commissionservice/v1/commission-settlements/{code} | Update the commission settlement
*CommissionsApi* | [**create_commission**](docs/CommissionsApi.md#create_commission) | **POST** /commissionservice/v1/commissions | Create the commission
*CommissionsApi* | [**delete_commission**](docs/CommissionsApi.md#delete_commission) | **DELETE** /commissionservice/v1/commissions/{code} | Delete the commission
*CommissionsApi* | [**estimate_commission**](docs/CommissionsApi.md#estimate_commission) | **POST** /commissionservice/v1/commissions/estimate | Retrieve the estimate commissions
*CommissionsApi* | [**get_commission**](docs/CommissionsApi.md#get_commission) | **GET** /commissionservice/v1/commissions/{code} | Retrieve the commission
*CommissionsApi* | [**list_commissions**](docs/CommissionsApi.md#list_commissions) | **GET** /commissionservice/v1/commissions | List commissions
*CommissionsApi* | [**update_commission**](docs/CommissionsApi.md#update_commission) | **PUT** /commissionservice/v1/commissions/{code} | Update the commission
*DefaultApi* | [**check**](docs/DefaultApi.md#check) | **GET** /commissionservice/health | Health Check


## Documentation For Models

 - [CommissionAgreementClass](docs/CommissionAgreementClass.md)
 - [CommissionAgreementMetadataDto](docs/CommissionAgreementMetadataDto.md)
 - [CommissionAgreementMetadataPartnerDto](docs/CommissionAgreementMetadataPartnerDto.md)
 - [CommissionAgreementProductClass](docs/CommissionAgreementProductClass.md)
 - [CommissionAgreementRuleClass](docs/CommissionAgreementRuleClass.md)
 - [CommissionAgreementRuleConfigDto](docs/CommissionAgreementRuleConfigDto.md)
 - [CommissionAgreementRuleEvaluationClass](docs/CommissionAgreementRuleEvaluationClass.md)
 - [CommissionAgreementVersionClass](docs/CommissionAgreementVersionClass.md)
 - [CommissionCandidateClass](docs/CommissionCandidateClass.md)
 - [CommissionClass](docs/CommissionClass.md)
 - [CommissionConditionsDto](docs/CommissionConditionsDto.md)
 - [CommissionConfigDto](docs/CommissionConfigDto.md)
 - [CommissionEstimateClass](docs/CommissionEstimateClass.md)
 - [CommissionItemClass](docs/CommissionItemClass.md)
 - [CommissionRecipientClass](docs/CommissionRecipientClass.md)
 - [CommissionSettlementClass](docs/CommissionSettlementClass.md)
 - [CreateCommissionAgreementProductRequestDto](docs/CreateCommissionAgreementProductRequestDto.md)
 - [CreateCommissionAgreementProductResponseClass](docs/CreateCommissionAgreementProductResponseClass.md)
 - [CreateCommissionAgreementRequestDto](docs/CreateCommissionAgreementRequestDto.md)
 - [CreateCommissionAgreementResponseClass](docs/CreateCommissionAgreementResponseClass.md)
 - [CreateCommissionAgreementRuleRequestDto](docs/CreateCommissionAgreementRuleRequestDto.md)
 - [CreateCommissionAgreementRuleResponseClass](docs/CreateCommissionAgreementRuleResponseClass.md)
 - [CreateCommissionAgreementVersionRequestDto](docs/CreateCommissionAgreementVersionRequestDto.md)
 - [CreateCommissionAgreementVersionResponseClass](docs/CreateCommissionAgreementVersionResponseClass.md)
 - [CreateCommissionCandidateRequestDto](docs/CreateCommissionCandidateRequestDto.md)
 - [CreateCommissionCandidateResponseClass](docs/CreateCommissionCandidateResponseClass.md)
 - [CreateCommissionItemRequestDto](docs/CreateCommissionItemRequestDto.md)
 - [CreateCommissionRecipientRequestDto](docs/CreateCommissionRecipientRequestDto.md)
 - [CreateCommissionRecipientResponseClass](docs/CreateCommissionRecipientResponseClass.md)
 - [CreateCommissionRequestDto](docs/CreateCommissionRequestDto.md)
 - [CreateCommissionResponseClass](docs/CreateCommissionResponseClass.md)
 - [CreateCommissionSettlementRequestDto](docs/CreateCommissionSettlementRequestDto.md)
 - [CreateCommissionSettlementResponseClass](docs/CreateCommissionSettlementResponseClass.md)
 - [EstimateCommissionsRequestDto](docs/EstimateCommissionsRequestDto.md)
 - [EstimateCommissionsResponseClass](docs/EstimateCommissionsResponseClass.md)
 - [EvaluateCommissionAgreementRuleRequestDto](docs/EvaluateCommissionAgreementRuleRequestDto.md)
 - [EvaluateCommissionAgreementRuleResponseClass](docs/EvaluateCommissionAgreementRuleResponseClass.md)
 - [EvaluatedCommissionClass](docs/EvaluatedCommissionClass.md)
 - [GetCommissionAgreementProductResponseClass](docs/GetCommissionAgreementProductResponseClass.md)
 - [GetCommissionAgreementResponseClass](docs/GetCommissionAgreementResponseClass.md)
 - [GetCommissionAgreementRuleResponseClass](docs/GetCommissionAgreementRuleResponseClass.md)
 - [GetCommissionAgreementVersionResponseClass](docs/GetCommissionAgreementVersionResponseClass.md)
 - [GetCommissionCandidateResponseClass](docs/GetCommissionCandidateResponseClass.md)
 - [GetCommissionRecipientResponseClass](docs/GetCommissionRecipientResponseClass.md)
 - [GetCommissionResponseClass](docs/GetCommissionResponseClass.md)
 - [GetCommissionSettlementResponseClass](docs/GetCommissionSettlementResponseClass.md)
 - [InlineResponse200](docs/InlineResponse200.md)
 - [InlineResponse503](docs/InlineResponse503.md)
 - [ListCommissionAgreementProductsResponseClass](docs/ListCommissionAgreementProductsResponseClass.md)
 - [ListCommissionAgreementRulesResponseClass](docs/ListCommissionAgreementRulesResponseClass.md)
 - [ListCommissionAgreementVersionsResponseClass](docs/ListCommissionAgreementVersionsResponseClass.md)
 - [ListCommissionAgreementsResponseClass](docs/ListCommissionAgreementsResponseClass.md)
 - [ListCommissionCandidatesResponseClass](docs/ListCommissionCandidatesResponseClass.md)
 - [ListCommissionRecipientsResponseClass](docs/ListCommissionRecipientsResponseClass.md)
 - [ListCommissionSettlementsResponseClass](docs/ListCommissionSettlementsResponseClass.md)
 - [ListCommissionsResponseClass](docs/ListCommissionsResponseClass.md)
 - [PatchCommissionAgreementStatusRequestDto](docs/PatchCommissionAgreementStatusRequestDto.md)
 - [PatchCommissionAgreementStatusResponseClass](docs/PatchCommissionAgreementStatusResponseClass.md)
 - [PublishCommissionSettlementsRequestDto](docs/PublishCommissionSettlementsRequestDto.md)
 - [PublishCommissionSettlementsResponseClass](docs/PublishCommissionSettlementsResponseClass.md)
 - [UpdateCommissionAgreementProductRequestDto](docs/UpdateCommissionAgreementProductRequestDto.md)
 - [UpdateCommissionAgreementProductResponseClass](docs/UpdateCommissionAgreementProductResponseClass.md)
 - [UpdateCommissionAgreementRequestDto](docs/UpdateCommissionAgreementRequestDto.md)
 - [UpdateCommissionAgreementResponseClass](docs/UpdateCommissionAgreementResponseClass.md)
 - [UpdateCommissionAgreementRuleRequestDto](docs/UpdateCommissionAgreementRuleRequestDto.md)
 - [UpdateCommissionAgreementRuleResponseClass](docs/UpdateCommissionAgreementRuleResponseClass.md)
 - [UpdateCommissionCandidateRequestDto](docs/UpdateCommissionCandidateRequestDto.md)
 - [UpdateCommissionCandidateResponseClass](docs/UpdateCommissionCandidateResponseClass.md)
 - [UpdateCommissionRecipientRequestDto](docs/UpdateCommissionRecipientRequestDto.md)
 - [UpdateCommissionRecipientResponseClass](docs/UpdateCommissionRecipientResponseClass.md)
 - [UpdateCommissionRequestDto](docs/UpdateCommissionRequestDto.md)
 - [UpdateCommissionResponseClass](docs/UpdateCommissionResponseClass.md)
 - [UpdateCommissionSettlementRequestDto](docs/UpdateCommissionSettlementRequestDto.md)
 - [UpdateCommissionSettlementResponseClass](docs/UpdateCommissionSettlementResponseClass.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.commission.apis and eis.commission.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.commission.api.default_api import DefaultApi`
- `from eis.commission.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.commission
from eis.commission.apis import *
from eis.commission.models import *
```

