# products.v1
EazyRent Products API ======================  Description ------------  The EazyRent Product API offers a comprehensive solution for managing rental and sale listings, including property details, media distribution, and data import capabilities. Designed for real estate professionals, this API allows users to create, update, and manage property listings efficiently while ensuring accurate data and broad market reach. With features to streamline listing distribution and import property data from other platforms, the Product API simplifies property management, helping agencies maintain up-to-date and comprehensive property portfolios.  Target Audience -----------------   * **Real Estate Agencies and Social Housing Providers:** Professionals who need a centralized system to manage property listings, including rental and sale offerings, media distribution, and data synchronization across various platforms.   * **Property Managers:** Organizations looking to efficiently organize and promote property listings, manage property details, and ensure accurate, consistent information across marketing channels.  Purpose ---------  The purpose of the EazyRent Product API is to enable streamlined property management within the EazyRent platform. By integrating this API, businesses can centralize their property data, automate distribution to marketing channels, and simplify the process of keeping listings updated. This provides agencies with a scalable, efficient way to manage property portfolios, ensuring quick, effective exposure to potential tenants and buyers.  How to use this API ---------------------  To get started with the EazyRent Product API, please refer to our comprehensive documentation for authentication details, endpoint descriptions, and integration guides. This resource will help you set up efficient property management workflows, from data import to listing updates and distribution, all accessible within your existing systems.

The `products.v1` package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:

- API version: 1
- Package version: 1.0.0
- Generator version: 7.14.0-SNAPSHOT
- Build package: org.openapitools.codegen.languages.PythonClientCodegen

## Requirements.

Python 3.9+

## Installation & Usage

This python library package is generated without supporting files like setup.py or requirements files

To be able to use it, you will need these dependencies in your own package that uses this library:

* urllib3 >= 2.1.0, < 3.0.0
* python-dateutil >= 2.8.2
* pydantic >= 2
* typing-extensions >= 4.7.1

## Getting Started

In your own code, to use this library to connect and interact with products.v1,
you can run the following:

```python

import products.v1
from products.v1.rest import ApiException
from pprint import pprint

# Defining the host is optional and defaults to /products/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = products.v1.Configuration(
    host = "/products/v1"
)

# 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 API key authorization: APIKeyHeader
configuration.api_key['APIKeyHeader'] = os.environ["API_KEY"]

# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
# configuration.api_key_prefix['APIKeyHeader'] = 'Bearer'

configuration.access_token = os.environ["ACCESS_TOKEN"]


# Enter a context with an instance of the API client
with products.v1.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = products.v1.BulkApi(api_client)
    file = None # bytearray | 
    descriptor = None # bytearray | 
    x_eaz_account_id = 'x_eaz_account_id_example' # str | The default is always the organization of the requesting user. If you like to get/set a result of another organization include the header. Make sure the user has permission to access the requested data. (optional)

    try:
        # Bulk import
        api_response = api_instance.bulk_import(file, descriptor, x_eaz_account_id=x_eaz_account_id)
        print("The response of BulkApi->bulk_import:\n")
        pprint(api_response)
    except ApiException as e:
        print("Exception when calling BulkApi->bulk_import: %s\n" % e)

```

## Documentation for API Endpoints

All URIs are relative to */products/v1*

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*BulkApi* | [**bulk_import**](products/v1/docs/BulkApi.md#bulk_import) | **POST** /bulk/ | Bulk import
*BulkApi* | [**bulk_import_from_s3**](products/v1/docs/BulkApi.md#bulk_import_from_s3) | **POST** /bulk/s3/ | Bulk import from s3
*BulkApi* | [**validate_descriptor**](products/v1/docs/BulkApi.md#validate_descriptor) | **POST** /bulk/validate-descriptor/ | Validate descriptor
*BulkApi* | [**validate_import**](products/v1/docs/BulkApi.md#validate_import) | **POST** /bulk/validate/ | Validate import
*PhotosApi* | [**add_product_photo**](products/v1/docs/PhotosApi.md#add_product_photo) | **POST** /photos/ | Add product photo
*PhotosApi* | [**delete_photo**](products/v1/docs/PhotosApi.md#delete_photo) | **DELETE** /photos/{product_id}/{photo_id}/ | Delete photo
*PhotosApi* | [**get_photos**](products/v1/docs/PhotosApi.md#get_photos) | **GET** /photos/{product_id}/ | Get photos
*PhotosApi* | [**mark_photo_as_favorite**](products/v1/docs/PhotosApi.md#mark_photo_as_favorite) | **POST** /photos/{product_id}/{photo_id}/ | Mark photo as favorite
*ProductApi* | [**create_product**](products/v1/docs/ProductApi.md#create_product) | **POST** /products/ | Create product
*ProductApi* | [**delete_product**](products/v1/docs/ProductApi.md#delete_product) | **DELETE** /products/{id}/ | Delete product
*ProductApi* | [**get_product**](products/v1/docs/ProductApi.md#get_product) | **GET** /products/{id}/ | Get product
*ProductApi* | [**list_products**](products/v1/docs/ProductApi.md#list_products) | **GET** /products/ | List products
*ProductApi* | [**partial_update_product**](products/v1/docs/ProductApi.md#partial_update_product) | **PATCH** /products/{id}/ | Partial update product
*ProductApi* | [**update_product**](products/v1/docs/ProductApi.md#update_product) | **PUT** /products/{id}/ | Update product


## Documentation For Models

 - [Address](products/v1/docs/Address.md)
 - [AirConditioning](products/v1/docs/AirConditioning.md)
 - [BuildingInformation](products/v1/docs/BuildingInformation.md)
 - [ComputedColumn](products/v1/docs/ComputedColumn.md)
 - [CreateForRentProductInput](products/v1/docs/CreateForRentProductInput.md)
 - [CreateForRentProductOutput](products/v1/docs/CreateForRentProductOutput.md)
 - [CreateForSaleProductInput](products/v1/docs/CreateForSaleProductInput.md)
 - [CreateForSaleProductOutput](products/v1/docs/CreateForSaleProductOutput.md)
 - [CsvDescriptor](products/v1/docs/CsvDescriptor.md)
 - [CsvParams](products/v1/docs/CsvParams.md)
 - [Descriptor](products/v1/docs/Descriptor.md)
 - [Equipement](products/v1/docs/Equipement.md)
 - [ForRentProduct](products/v1/docs/ForRentProduct.md)
 - [ForSalesProduct](products/v1/docs/ForSalesProduct.md)
 - [GeoObject](products/v1/docs/GeoObject.md)
 - [HTTPValidationError](products/v1/docs/HTTPValidationError.md)
 - [InternalInformation](products/v1/docs/InternalInformation.md)
 - [JsonDescriptor](products/v1/docs/JsonDescriptor.md)
 - [JsonParams](products/v1/docs/JsonParams.md)
 - [ListForRentProduct](products/v1/docs/ListForRentProduct.md)
 - [ListForSalesProduct](products/v1/docs/ListForSalesProduct.md)
 - [ManagersEq](products/v1/docs/ManagersEq.md)
 - [MandateType](products/v1/docs/MandateType.md)
 - [Next](products/v1/docs/Next.md)
 - [PaginatedResponseUnionListForRentProductListForSalesProduct](products/v1/docs/PaginatedResponseUnionListForRentProductListForSalesProduct.md)
 - [PaginatedResponseUnionListForRentProductListForSalesProductResultsInner](products/v1/docs/PaginatedResponseUnionListForRentProductListForSalesProductResultsInner.md)
 - [PhotoColumn](products/v1/docs/PhotoColumn.md)
 - [PoolSpecification](products/v1/docs/PoolSpecification.md)
 - [Previous](products/v1/docs/Previous.md)
 - [Product](products/v1/docs/Product.md)
 - [ProductPhoto](products/v1/docs/ProductPhoto.md)
 - [ProductType](products/v1/docs/ProductType.md)
 - [PropertyFacilities](products/v1/docs/PropertyFacilities.md)
 - [ResponseCreateProduct](products/v1/docs/ResponseCreateProduct.md)
 - [ResponseGetProduct](products/v1/docs/ResponseGetProduct.md)
 - [ResponsePartialUpdateProduct](products/v1/docs/ResponsePartialUpdateProduct.md)
 - [ResponseUpdateProduct](products/v1/docs/ResponseUpdateProduct.md)
 - [ResponseValidateDescriptor](products/v1/docs/ResponseValidateDescriptor.md)
 - [RoomSpecification](products/v1/docs/RoomSpecification.md)
 - [SecurityFacilities](products/v1/docs/SecurityFacilities.md)
 - [UpdateForRentProduct](products/v1/docs/UpdateForRentProduct.md)
 - [UpdateForSaleProduct](products/v1/docs/UpdateForSaleProduct.md)
 - [UpdateProduct](products/v1/docs/UpdateProduct.md)
 - [ValidateImport200ResponseInner](products/v1/docs/ValidateImport200ResponseInner.md)
 - [ValidationError](products/v1/docs/ValidationError.md)
 - [ValidationErrorLocInner](products/v1/docs/ValidationErrorLocInner.md)
 - [XmlDescriptor](products/v1/docs/XmlDescriptor.md)
 - [XmlParams](products/v1/docs/XmlParams.md)
 - [ZipDescriptor](products/v1/docs/ZipDescriptor.md)
 - [ZipParams](products/v1/docs/ZipParams.md)


<a id="documentation-for-authorization"></a>
## Documentation For Authorization


Authentication schemes defined for the API:
<a id="OAuth2"></a>
### OAuth2

- **Type**: OAuth
- **Flow**: application
- **Authorization URL**: 
- **Scopes**: 
 - **profile**: Profile scope
 - **openid**: OpenId scope
 - **urn:zitadel:iam:org:projects:roles**: Get user roles
 - **urn:zitadel:iam:user:resourceowner**: Get user org
 - **urn:zitadel:iam:org:project:id:286048212773503426:aud**: Get grant to eazyrent project

<a id="APIKeyHeader"></a>
### APIKeyHeader

- **Type**: API key
- **API key parameter name**: Authorization
- **Location**: HTTP header


## Author




