# OpenGate Data Python

## Opengate-data

This reference is generated from the docstrings of **opengate-data 1.15.3**.

Opengate-data is a Python library (requires Python 3.10+) that helps you integrate OpenGate into your Python projects.

### Installation

To install the library, run:

```bash
pip install opengate-data
```

Or, if you are using [uv](https://github.com/astral-sh/uv):

```bash
uv add opengate-data
```

### Quick Start: Searching Entities

Here is a simple example of how to search for entities using the `EntitiesSearchBuilder`:

```python
from opengate_data import OpenGateClient

# Initialize the client
client = OpenGateClient(url="https://api.opengate.es", api_key="YOUR_API_KEY")

# Create a search builder
search = client.new_entities_search_builder()

# Build the query with filters and selection
search.with_filter(
    client.new_filter_builder().eq("provision.administration.organization", "your_org").build()
).with_select(
    client.new_select_builder().add("provision.device.identifier", ["value"]).build()
).with_limit(10, 0)

# Execute the search
results = search.execute()
print(results)
```

### Basic use with user and password

To initialize the `OpenGateClient` using a username and password:

```python
client = OpenGateClient(url="Url", user="User", password="Password")
```

### Basic use with api-key

To initialize the client using an api_key:

```python
client = OpenGateClient(url="Url", api_key="Api_Key")
```

### Basic use token_jwt with .env

To initialize the client using a token_jwt with a .env file.

1. Create a .env file with the following content: `TOKEN_JWT="token_jwt"`
2. Load the environment variable and initialize the client:

    ```python
    client = OpenGateClient()
    ```

By default, if you use `OpenGateClient` without parameters, and you set the environment variable `TOKEN_JWT`, `OpenGateClient` will be created with this value. If you want to use `TOKEN_JWT` from environment, you may delete the `OPENGATE_API_KEY` environment variable.

### Basic use with environment variables

The most professional way to initialize the client is by using standard environment variables. If you set these, you can simply call `OpenGateClient()`:

```python
# export OPENGATE_URL="https://api.opengate.es"
# export OPENGATE_API_KEY="YOUR_API_KEY"

client = OpenGateClient()
```

### Basic use of token_jwt with an environment variable

To initialize the client using a token_jwt from an environment variable, you can set the token_jwt directly in your environment without relying on a .env: 

1. Create environment variable

   - On UNIX systems, use:

     ```bash
     export TOKEN_JWT="token_jwt"
     ```

   - On Windows, use:

      ```bash
      set TOKEN_JWT="token_jwt"
      ```

2. Initialize the client.

    ```python
    client = OpenGateClient()
    ```

Similar to the previous example, if you use OpenGateClient without parameters, and you set the environment variable `TOKEN_JWT`, `OpenGateClient` will be created with this value. If you want to use `TOKEN_JWT` from environment, you may delete `API_KEY` variable environment.

### Basic use without url for services K8s

To initialize the OpenGateClient without specifying a URL, you can either **omit** the `url` parameter or set it to `None`.

```python
client = OpenGateClient(api_key="Api_Key")
# or
client = OpenGateClient(url=None, api_key="Api_Key")
```

Similar to the previous examples, you have the option to provide the **api_key** directly, set it to **None**, or **omit** it altogether. If you choose to **omit** it, the client will automatically retrieve the **api_key** from the environment variable if it is set. Additionally, you can also authenticate using a **username** and **password** by specifying those credentials instead.

### Features

The library consists of the following modules:

- **IA**
  - Models
  - Pipelines
  - Transformers
- **Collection**
  - Collection
  - Bulk Collection
  - Pandas Collection
- **Provision**
  - Asset
  - Bulk
  - Devices
  - Processor
- **Rules**
  - Rules
- **Searching**
  - Alarms
  - Datapoints
  - Data sets
  - Entities
  - Operations
  - Rules
  - Timeseries
- **File Connector**
  - File Connector

### Basic Examples of the OpenGate-Data Modules

The unit tests double as usage examples: `opengate_data/test/unit/` holds one
directory per module, each showing the configurations and use cases of its
builders.

### License

This project is licensed under the Apache License 2.0.


{{% children sort="weight" depth="100" %}}
