# packages

pkgId: d21b5f54bf649fd99ce8e190c589ae9fb7085aa40475a27fa23a4c83f903a67b
name: python-airflow-livy-operators
arch: src
version: 0.6
epoch: 0
release: 1
summary: Lets Airflow DAGs run Spark jobs via Livy: sessions and/or batches.
url: https://github.com/panovvv/airflow-livy-operators
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-livy-operators-0.6-1.src.rpm
checksum_type: sha256
description:
  [![Build Status](https://travis-ci.com/panovvv/airflow-livy-operators.svg?branch=master)](https://app.travis-ci.com/github/panovvv/airflow-livy-operators)
  [![Code coverage](https://codecov.io/gh/panovvv/airflow-livy-operators/branch/master/graph/badge.svg)](https://codecov.io/gh/panovvv/airflow-livy-operators)

  [![PyPI](https://img.shields.io/pypi/v/airflow-livy-operators)](https://pypi.org/project/airflow-livy-operators/)
  ![Airflow dep version](https://img.shields.io/badge/airflow-2.1.2-green)
  ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/airflow-livy-operators)

  ![PyPI - License](https://img.shields.io/pypi/l/airflow-livy-operators)


  Lets Airflow DAGs run Spark jobs via Livy:
  * Sessions,
  * Batches. This mode supports additional verification via Spark/YARN REST API.

  See [this blog post](https://shortn0tes.blogspot.com/2020/03/airflow-livy-spark.html "Blog post") for more information and detailed comparison of ways to run Spark jobs from Airflow.


  * `airflow_home/plugins`: Airflow Livy operators' code.
  * `airflow_home/dags`: example DAGs for Airflow.
  * `batches`: Spark jobs code, to be used in Livy batches.
  * `sessions`: Spark code for Livy sessions. You can add templates
  to files' contents in order to pass parameters into it.
  * `helper.sh`: helper shell script. Can be used to run sample DAGs,
  prep development environment and more.
  Run it to find out what other commands are available.





  Prerequisites:
  * Python 3. Make sure it's installed and in __$PATH__
  * Spark cluster with Livy. I heavily recommend you "mock" one on your machine with
  [my Spark cluster on Docker Compose](https://github.com/panovvv/bigdata-docker-compose).

  Now,
  1. __Optional - this step can be skipped if you're mocking a cluster on your
  machine__. Open *helper.sh*. Inside `init_airflow()` function you'll see Airflow
  Connections for Livy, Spark and YARN. Redefine as appropriate.
  1. Define the way the sample batch files from this repo are delivered to a cluster:
      1. if you're using a docker-compose cluster: redefine the BATCH_DIR variable
      as appropriate.
      1. if you're using your own cluster: modify the `copy_batches()` function so that it
      delivers the files to a place accessible by your cluster (could be `aws s3 cp` etc.)
  1. run `./helper.sh up` to bring up the whole infrastructure.
  Airflow UI will be available at
  [localhost:8888](http://localhost:8888 "Airflow UI").
     The credentials are `admin/admin`.
  1. Ctrl+C to stop Airflow. Then `./helper.sh down` to dispose of
  remaining Airflow processes (shouldn't be required if everything goes well.
  Run this if you can't start Airflow again due to some non-informative errors) .


  ```bash
  pip install airflow-livy-operators
  ```
  This is how you import them:
  ```python
  from airflow_livy.session import LivySessionOperator
  from airflow_livy.batch import LivyBatchOperator
  ```
  See sample DAGs under `airflow_home/dags` to learn how to use the operators.


  Alright, you want to contribute and need to be able to run the stuff on your machine,
  as well as the usual niceness that comes with IDEs (debugging, syntax highlighting).

  * `./helper.sh updev` runs Airflow with local operators' code (as opposed to
  pulling them from PyPi). Useful for development.
  * `./helper.sh full` - run tests (pytest) with coverage report
  (will be saved to *htmlcov/*), highlight code style errors (flake8),
  reformat all code ([black](https://black.readthedocs.io/en/stable/) +
  [isort](https://readthedocs.org/projects/isort/))
  * `./helper.sh ci` - same as above, but only check the code formatting. This
  same command is ran by CI.
  * (Pycharm-specific) point PyCharm to your newly-created virtual environment: go to
  `"Preferences" -> "Project: airflow-livy-operators" -> "Project interpreter", select
  "Existing environment"` and pick __python3__ executable from __venv__ folder
  (__venv/bin/python3__)



  * (Pycharm-specific) Step-by-step debugging with `airflow test`
  and running PySpark batch jobs locally (with debugging as well)
  is supported via run configurations under `.idea/runConfigurations`.
  You shouldn't have to do anything to use them - just open the folder
  in PyCharm as a project.
  * An example of how a batch can be ran on local Spark:
  ```bash
  python ./batches/join_2_files.py \
  "file:////Users/vpanov/data/vpanov/bigdata-docker-compose/data/grades.csv" \
  "file:///Users/vpanov/data/vpanov/bigdata-docker-compose/data/ssn-address.tsv" \
  -file1_sep=, -file1_header=true \
  -file1_schema="\`Last name\` STRING, \`First name\` STRING, SSN STRING, Test1 INT, Test2 INT, Test3 INT, Test4 INT, Final INT, Grade STRING" \
  -file1_join_column=SSN -file2_header=false \
  -file2_schema="\`Last name\` STRING, \`First name\` STRING, SSN STRING, Address1 STRING, Address2 STRING" \
  -file2_join_column=SSN -output_header=true \
  -output_columns="file1.\`Last name\` AS LastName, file1.\`First name\` AS FirstName, file1.SSN, file2.Address1, file2.Address2"



  ```


  * helper.sh - replace with modern tools (e.g. pipenv + Docker image)
  * Disable some of flake8 flags for cleaner code


pkgId: 20d52beeab39641c14fffa07bd617170f771793b001381d0ef123b4222796fe8
name: python-airflow-mcd
arch: src
version: 0.3.2
epoch: 0
release: 1
summary: Monte Carlo's Apache Airflow Provider
url: https://www.montecarlodata.com/
rpm_license: Apache Software License (Apache 2.0)
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-mcd-0.3.2-1.src.rpm
checksum_type: sha256
description:
  Monte Carlo's Airflow provider.



  Requires Python 3.7 or greater and is compatible with Airflow 1.10.14 or greater.

  You can install and update using pip. For instance:
  ```
  pip install -U airflow-mcd
  ```

  This package can be added like any other python dependency to Airflow (e.g. via `requirements.txt`).





  Sends a webhook back to Monte Carlo upon an event in Airflow. [Detailed examples and documentation here]
  (https://docs.getmontecarlo.com/docs/airflow-incidents-dags-and-tasks). Callbacks are at the DAG or Task level.

  To import: `from airflow_mcd.callbacks import mcd_callbacks`



  if you don't have existing callbacks, these provide all-in-one callbacks:

  `dag_callbacks`

  `task_callbacks`

  examples:

  ```
  dag = DAG(
      'dag_name',~~~~
      **mcd_callbacks.dag_callbacks,
  )

  task = BashOperator(
      task_id='task_name',
      bash_command='command',
      dag=dag,
      **mcd_callbacks.task_callbacks,
  )
  ```



  | Callback Type         | Description                                          | DAG                        | Task                        |
  | :-------------------- |:-----------------------------------------------------| :------------------------- |:----------------------------|
  | `on_success_callback` | Invoked when the DAG/task succeeds                   | `mcd_dag_success_callback` | `mcd_task_success_callback` |
  | `on_failure_callback` | Invoked when the DAG/task fails                      | `mcd_dag_failure_callback` | `mcd_task_failure_callback` |
  | `sla_miss_callback`   | Invoked when task(s) in a DAG misses its defined SLA | `mcd_sla_miss_callback`    | N/A                         |
  | `on_retry_callback`   | Invoked when the task is up for retry                | N/A                        | `mcd_task_retry_callback`   |
  | `on_execute_callback` | Invoked right before the task begins executing.      | N/A                        | `mcd_task_execute_callback` |

  examples:

  ```
  dag = DAG(
      'dag_name',
      on_success_callback=mcd_callbacks.mcd_dag_success_callback,
      on_failure_callback=mcd_callbacks.mcd_dag_failure_callback,
      sla_miss_callback=mcd_callbacks.mcd_sla_miss_callback,
  )

  task = BashOperator(
      task_id='task_name',
      bash_command='command',
      dag=dag,
      on_success_callback=mcd_callbacks.mcd_task_success_callback,
      on_failure_callback=mcd_callbacks.mcd_task_failure_callback,
      on_execute_callback=mcd_callbacks.mcd_task_execute_callback,
      task_retry_callback=mcd_callbacks.mcd_task_retry_callback,
  )
  ```




  - **SessionHook**

      Creates a [pycarlo](https://pypi.org/project/pycarlo/) compatible session. This is useful
      for creating your own operator built on top of our Python SDK.

      This hook expects an Airflow HTTP connection with the Monte Carlo API id as the "login" and the API token as the
      "password".

      Alternatively, you could define both the Monte Carlo API id and token in "extra" with the following format:
      ```
      {
          "mcd_id": "<ID>",
          "mcd_token": "<TOKEN>"
      }
      ```
      See [here](https://docs.getmontecarlo.com/docs/creating-an-api-token) for details on how to generate a token.



  - **BaseMcdOperator**

    This operator can be extended to build your own operator using our [SDK](https://pypi.org/project/pycarlo/) or any other
    dependencies. This is useful if you want implement your own custom logic (e.g. creating custom lineage after a task completes).

  - **SimpleCircuitBreakerOperator**

    This operator can be used to execute a circuit breaker compatible rule (custom SQL monitor) to run integrity tests
    before allowing any downstream tasks to execute. Raises an `AirflowFailException` if the rule condition is in
    breach when using an Airflow version newer than 1.10.11, as that is preferred for tasks that can be failed without
    retrying. Older Airflow versions raise an `AirflowException`. For instance:
    ```
    from datetime import datetime, timedelta

    from airflow import DAG

    try:
      from airflow.operators.bash import BashOperator
    except ImportError:
      
      from airflow.operators.bash_operator import BashOperator

    from airflow_mcd.operators import SimpleCircuitBreakerOperator

    mcd_connection_id = 'mcd_default_session'

    with DAG('sample-dag', start_date=datetime(2022, 2, 8), catchup=False, schedule_interval=timedelta(1)) as dag:
        task1 = BashOperator(
            task_id='example_elt_job_1',
            bash_command='echo I am transforming a very important table!',
        )
        breaker = SimpleCircuitBreakerOperator(
            task_id='example_circuit_breaker',
            mcd_session_conn_id=mcd_connection_id,
            rule_uuid='<RULE_UUID>'
        )
        task2 = BashOperator(
            task_id='example_elt_job_2',
            bash_command='echo I am building a very important dashboard from the table created in task1!',
            trigger_rule='none_failed'
        )

        task1 >> breaker >> task2
    ```
    This operator expects the following parameters:
      - `mcd_session_conn_id`: A SessionHook compatible connection.
      - `rule_uuid`: UUID of the rule (custom SQL monitor) to execute.

    The following parameters can also be passed:
     - `timeout_in_minutes` [default=5]: Polling timeout in minutes. Note that The Data Collector Lambda has a max timeout of
          15 minutes when executing a query. Queries that take longer to execute are not supported, so we recommend
          filtering down the query output to improve performance (e.g limit WHERE clause). If you expect a query to
          take the full 15 minutes we recommend padding the timeout to 20 minutes.
     - `fail_open` [default=True]: Prevent any errors or timeouts when executing a rule from stopping your pipeline.
          Raises `AirflowSkipException` if set to True and any issues are encountered. Recommended to set the
         [trigger_rule](https://airflow.apache.org/docs/apache-airflow/stable/concepts/dags.html#trigger-rules)
          param for any downstream tasks to `none_failed` in this case.

  - **dbt Operators**

    The following suite of Airflow operators can be used to execute dbt commands. They include our [dbt Core](https://docs.getmontecarlo.com/docs/dbt-core) integration (via our [Python SDK](https://pypi.org/project/pycarlo/)), to automatically send dbt artifacts to Monte Carlo.
      - `DbtBuildOperator`
      - `DbtRunOperator`
      - `DbtSeedOperator`
      - `DbtSnapshotOperator`
      - `DbtTestOperator`

    Example of usage:
    ```
    from airflow_mcd.operators.dbt import DbtRunOperator

    dbt_run = DbtRunOperator(
        task_id='run-model',          # Airflow task id
        project_name='some_project',  # name of project to associate dbt results
        job_name='some_job',          # name of job to associate dbt results
        models='some_model',          # dbt model selector
        mc_conn_id='monte_carlo',     # id of Monte Carlo API connection configured in Airflow
    )
    ```

    Many more operator options are available. See the base `DbtOperator` for a comprehensive list.

    ***Advanced Configuration***

    To reduce repetitive configuration of the dbt operators, you can define a `DefaultConfigProvider` that would apply
    configuration to every Monte Carlo dbt operator.

    Example of usage:
    ```
    from airflow_mcd.operators.dbt import DefaultConfig, DefaultConfigProvider

    class DefaultConfig(DefaultConfigProvider):
      """
      This default configuration will be applied to all Monte Carlo dbt operators.
      Any property defined here can be overridden with arguments provided to an operator.
      """
      def config(self) -> DbtConfig:
          return DbtConfig(
              mc_conn_id='monte_carlo',
              env={
                  'foo': 'bar',
              }
          )
    ```
    The location of this class should be provided in an environment variable:
    ```
    AIRFLOW_MCD_DBT_CONFIG_PROVIDER=configs.dbt.DefaultConfig
    ```

    If you are using AWS Managed Apache Airflow (MWAA), the location of this class should be defined in a configuration
    option in your Airflow environment:
    ```
    mc.airflow_mcd_dbt_config_provider=configs.dbt.DefaultConfig
    ```


  Locally make test will run all tests. See [README-dev.md](README-dev.md) for additional details on development. When
  ready for a review, create a PR against main.

  When ready to release, create a new Github release with a tag using semantic versioning (e.g. v0.42.0) and CircleCI will
  test and publish to PyPI. Note that an existing version will not be deployed.



  Apache 2.0 - See the [LICENSE](http://www.apache.org/licenses/LICENSE-2.0) for more information.


pkgId: dce8ecc46aa377e1834c00c75774e4c80c7b5479e6175a9ac13ce85a65976f44
name: python-airflow-metrics-gbq
arch: src
version: 0.1.0
epoch: 0
release: 1
summary: Airflow metrics to Google BigQuery
url: https://github.com/abyssnlp/airflow-metrics-gbq
rpm_license: BSD2
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-metrics-gbq-0.1.0-1.src.rpm
checksum_type: sha256
description:
  <p align="center">
      <a href="https://github.com/abyssnlp/airflow-metrics-gbq/actions/workflows/ci.yaml"><img alt="build" src="https://github.com/abyssnlp/airflow-metrics-gbq/actions/workflows/ci.yaml/badge.svg"/></a>
      <a href="https://github.com/abyssnlp/airflow-metrics-gbq/actions/workflows/release.yaml"><img alt="release" src="https://github.com/abyssnlp/airflow-metrics-gbq/actions/workflows/release.yaml/badge.svg"/></a>
      <a href="https://pypi.org/project/airflow-metrics-gbq"><img alt="PyPI" src="https://img.shields.io/pypi/v/airflow-metrics-gbq?style=plastic"></a>
      <img alt="PyPI - License" src="https://img.shields.io/pypi/l/airflow-metrics-gbq?color=blue&style=plastic">
  </p>


pkgId: 25e105867540a7bbbbda6be27ee3dca1d7807a3c45c8cb171c64ffcbd33014d7
name: python-airflow-multi-dagrun
arch: src
version: 2.3.1
epoch: 0
release: 1
summary: MultiDagRunPlugin for airflow
url: https://github.com/mastak/airflow_multi_dagrun
rpm_license: UNKNOWN
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-multi-dagrun-2.3.1-1.src.rpm
checksum_type: sha256
description:
  [![Build Status](https://travis-ci.com/mastak/airflow_multi_dagrun.svg?branch=master)](https://travis-ci.com/mastak/airflow_multi_dagrun)



  This plugin contains operators for triggering a DAG run multiple times
  and you can dynamically specify how many DAG run instances create.

  It can be useful when you have to handle a big data and you want to split it
  into chunks and run multiple instances of the same task in parallel.

  When you see a lot launched target DAGs you can set up more workers.
  So this makes it pretty easy to scale.



  ```bash
  pip install airflow_multi_dagrun
  ```



  Code for scheduling dags

  ```python
  import datetime as dt
  from airflow import DAG

  from airflow_multi_dagrun.operators import TriggerMultiDagRunOperator


  def generate_dag_run():
      for i in range(100):
          yield {'index': i}


  default_args = {
      'owner': 'airflow',
      'start_date': dt.datetime(2015, 6, 1),
  }


  dag = DAG('reindex_scheduler', schedule_interval=None, default_args=default_args)


  ran_dags = TriggerMultiDagRunOperator(
      task_id='gen_target_dag_run',
      dag=dag,
      trigger_dag_id='example_target_dag',
      python_callable=generate_dag_run,
  )
  ```

  This code will schedule dag with id `example_target_dag` 100 times and pass payload to it.


  Example of triggered dag:

   ```python
  dag = DAG(
      dag_id='example_target_dag',
      schedule_interval=None,
      default_args={'start_date': datetime.utcnow(), 'owner': 'airflow'},
  )


  def run_this_func(dag_run, **kwargs):
      print("Chunk received: {}".format(dag_run.conf['index']))


  chunk_handler = PythonOperator(
      task_id='chunk_handler',
      provide_context=True,
      python_callable=run_this_func,
      dag=dag
  )
  ```


  There is docker-compose config, so it requires docker to be installed: `docker`, `docker-compose`
  1. `make init` - create db
  2. `make add-admin` - create `admin` user (is asks a password)
  3. `make web` - start docker containers, run airflow webserver
  4. `make scheduler` - start docker containers, run airflow scheduler

  `make down` will stop and remove docker containers


  If you have found a bug or have some idea for improvement feel free to create an issue
  or pull request.


  Apache 2.0


pkgId: 6afa1873a34db1ecc0d00022c4688e880c8ddc24caeaa672f9463e16e40778bf
name: python-airflow-notify-sns
arch: src
version: 0.0.2
epoch: 0
release: 1
summary: Publish Airflow notification errors to SNS Topic
url: https://github.com/msantino/airflow-notify-sns
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-notify-sns-0.0.2-1.src.rpm
checksum_type: sha256
description:
  [![Python 3.7](https://img.shields.io/badge/python-3.7-blue.svg)](https://www.python.org/downloads/release/python-370/)
  [![PyPI version](https://badge.fury.io/py/publish-event-sns.svg)](https://badge.fury.io/py/airflow-notity-sns)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
  [![Twitter Follow](https://img.shields.io/twitter/follow/msantino.svg?style=social&label=Follow)](https://twitter.com/msantino)




  This package adds a callback function to use in failures to DAGs and Tasks in a Airflow project.




  ```bash
  pip install airflow-notify-sns
  ```




  ```python
  from datetime import timedelta


  from airflow import DAG, utils
  from airflow.operators.bash_operator import BashOperator


  from airflow_notify_sns import airflow_notify_sns


  dag = DAG(
      dag_id='test_dag',
      default_args={
          'owner': 'airflow',
          'depends_on_past': False,
          'start_date': utils.dates.days_ago(1),
          'retries': 3,
          'retry_delay': timedelta(minutes=5)
      },
      schedule_interval="@daily",
      dagrun_timeout=timedelta(minutes=60),
      sla_miss_callback=airflow_notify_sns,
      on_failure_callback=airflow_notify_sns
  )


  t = BashOperator(
      dag=dag,
      task_id='test_env',
      bash_command='/tmp/test.sh',
      env={'EXECUTION_DATE': '{{ ds }}'},
      on_failure_callback=airflow_notify_sns
  )
  ```

  When DAG or tasks ends in error, a notification will be send to a SNS Topic using AWS default connection (`aws_default`).



  This module will try to find a variable named `airflow_notify_sns_arn` in your Airflow environment, containing SNS Topic ARN where message will be published to.

  If variable is not found, function will abort execution with no error.


pkgId: 5dd746510cdace0dcc4fa81d3bbf2484f316709b8fec991e4c9d829e78f2b8f1
name: python-airflow-operators
arch: src
version: 0.1.4
epoch: 0
release: 1
summary: Custom operators for Apache Airflow
url: https://pypi.org/project/airflow-operators/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-operators-0.1.4-1.src.rpm
checksum_type: sha256
description:
  Custom operators for Apache Airflow



  > It is assumed that `Apache Airflow` is installed. It is not added to the dependencies for some reason.

  > The `mysqlclient` dependency is used. If it is not installed, there may be errors during installation.
  > Install it explicitly using the [documentation](https://pypi.org/project/mysqlclient/).





  - CustomConsumeFromTopicOperator
  - ConsumeMessageDataOperator



  - SQLAlchemySessionOperator


pkgId: cc7937018398e75243dc5baa29c068fe50576e887d2acff350b718688fe09a31
name: python-airflow-pentaho-plugin
arch: src
version: 1.2.0
epoch: 0
release: 1
summary: please add a summary manually as the author left a blank one
url: https://github.com/damavis/airflow-pentaho-plugin
rpm_license: Apache 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-pentaho-plugin-1.2.0-1.src.rpm
checksum_type: sha256
description:
  [![Build Status](https://api.travis-ci.com/damavis/airflow-pentaho-plugin.svg?branch=master)](https://app.travis-ci.com/damavis/airflow-pentaho-plugin)
  [![codecov](https://codecov.io/gh/damavis/airflow-pentaho-plugin/branch/master/graph/badge.svg)](https://codecov.io/gh/damavis/airflow-pentaho-plugin)
  [![PyPI](https://img.shields.io/pypi/v/airflow-pentaho-plugin)](https://pypi.org/project/airflow-pentaho-plugin/)
  [![PyPI - Downloads](https://img.shields.io/pypi/dm/airflow-pentaho-plugin)](https://pypi.org/project/airflow-pentaho-plugin/)

  This plugins runs Jobs and Transformations through Carte servers.
  It allows to orchestrate a massive number of trans/jobs taking care
  of the dependencies between them, even between different instances.
  This is done by using `CarteJobOperator` and `CarteTransOperator`

  It also runs Pan (transformations) and Kitchen (Jobs) in local mode,
  both from repository and local XML files. For this approach, use
  `KitchenOperator` and `PanOperator`



  1. A Apache Airflow system deployed.
  2. One or many working PDI CE installations.
  3. A Carte server for Carte Operators.



  The same setup process must be performed on webserver, scheduler
  and workers (that runs this tasks) to get it working. If you want to
  deploy specific workers to run this kind of tasks, see
  [Queues](https://airflow.apache.org/docs/stable/concepts.html#queues),
  in **Airflow** *Concepts* section.



  First of all, the package should be installed via `pip install` command.

  ```bash
  pip install airflow-pentaho-plugin
  ```



  Then, a new connection needs to be added to Airflow Connections, to do this,
  go to Airflow web UI, and click on `Admin -> Connections` on the top menu.
  Now, click on `Create` tab.

  Use HTTP connection type. Enter the **Conn Id**, this plugin uses `pdi_default`
  by default, the username and the password for your Pentaho Repository.

  At the bottom of the form, fill the **Extra** field with `pentaho_home`, the
  path where your pdi-ce is placed, and `rep`, the repository name for this
  connection, using a json formatted string like it follows.

  ```json
  {
      "pentaho_home": "/opt/pentaho",
      "rep": "Default"
  }
  ```



  In order to use `CarteJobOperator`, the connection should be set different. Fill
  `host` (including `http://` or `https://`) and `port` for Carte hostname and port,
  `username` and `password` for PDI repository, and `extra` as it follows.

  ```json
  {
      "rep": "Default",
      "carte_username": "cluster",
      "carte_password": "cluster"
  }
  ```





  CarteJobOperator is responsible for running jobs in remote slave servers. Here
  it is an example of `CarteJobOperator` usage.

  ```python



  from airflow_pentaho.operators.carte import CarteJobOperator




  avg_spent = CarteJobOperator(
      conn_id='pdi_default',
      task_id="average_spent",
      job="/home/bi/average_spent",
      params={"date": "{{ ds }}"},  # Date in yyyy-mm-dd format
      dag=dag)



  some_task >> avg_spent >> another_task
  ```



  Kitchen operator is responsible for running Jobs. Lets suppose that we have
  a defined *Job* saved on `/home/bi/average_spent` in our repository with
  the argument `date` as input parameter. Lets define the task using the
  `KitchenOperator`.

  ```python



  from airflow_pentaho.operators.kettle import KitchenOperator




  avg_spent = KitchenOperator(
      conn_id='pdi_default',
      queue="pdi",
      task_id="average_spent",
      directory="/home/bi",
      job="average_spent",
      params={"date": "{{ ds }}"},  # Date in yyyy-mm-dd format
      dag=dag)



  some_task >> avg_spent >> another_task
  ```



  CarteTransOperator is responsible for running transformations in remote slave
  servers. Here it is an example of `CarteTransOperator` usage.

  ```python



  from airflow_pentaho.operators.carte import CarteTransOperator




  enriche_customers = CarteTransOperator(
      conn_id='pdi_default',
      task_id="enrich_customer_data",
      job="/home/bi/enrich_customer_data",
      params={"date": "{{ ds }}"},  # Date in yyyy-mm-dd format
      dag=dag)



  some_task >> enrich_customers >> another_task
  ```



  Pan operator is responsible for running transformations. Lets suppose that
  we have one saved on `/home/bi/clean_somedata`. Lets define the task using the
  `PanOperator`. In this case, the transformation receives a parameter that
  determines the file to be cleaned.

  ```python



  from airflow_pentaho.operators.kettle import PanOperator




  clean_input = PanOperator(
      conn_id='pdi_default',
      queue="pdi",
      task_id="cleanup",
      directory="/home/bi",
      trans="clean_somedata",
      params={"file": "/tmp/input_data/{{ ds }}/sells.csv"},
      dag=dag)



  some_task >> clean_input >> another_task
  ```

  For more information, please see `sample_dags/pdi_flow.py`


pkgId: bd5b0820fb10b00ae66857aea54a2fa2db6f7a8dc8c23da6ad3fe758066dad90
name: python-airflow-powerbi-provider
arch: src
version: 1.0.8
epoch: 0
release: 1
summary: A provider package for Apache Airflow to refresh Powerbi Datasets
url: https://github.com/gschuurman/airflow-powerbi-provider
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-powerbi-provider-1.0.8-1.src.rpm
checksum_type: sha256
description:
  This is a sensor, hook, and operator to refresh powerbi datasets



  Create a connection in airflow with the following properties: \
  type: http \
  login: Client_ID
  Password: Client_secret \
  extra: \
  ```json
  {
    "tenant_id": "TENANT_ID"
  }
  ```


pkgId: 40d5fe91b08c9316e55cce4f1e1a2aae5062a769955560347739801e9034f300
name: python-airflow-provider-deeplynx
arch: src
version: 0.4.5
epoch: 0
release: 1
summary: An Apache Airflow provider package built for DeepLynx.
url: https://pypi.org/project/airflow-provider-deeplynx/
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-provider-deeplynx-0.4.5-1.src.rpm
checksum_type: sha256
description:
  This custom [Airflow provider package](https://airflow.apache.org/docs/apache-airflow-providers/) allows you to create Airflow tasks that interact with the [DeepLynx](https://github.com/idaholab/Deep-Lynx) data warehouse. Utilizing operators specifically designed for DeepLynx, this package enables seamless integration and communication between Airflow and DeepLynx, facilitating data management and processing workflows.



  To install the provider package from PyPI, simply run:

  ```sh
  pip install airflow-provider-deeplynx
  ```

  - Clone the repository to your local machine.
  - Navigate to the cloned repository directory: `cd airflow-provider-deeplynx`
  - Install the package using pip: `pip install .`
    - for development, you can install in editable mode with `pip install -e .`


  This package uses some environment variables for configuration. The environment variables should be set and available where your Airflow instance is running.
  - `SSL_CERT_FILE`: This should be the Airflow accessible path to the file containing the INL SSL certificate authority. This may be needed depending on your DeepLynx instance's setup [DeepLynx Authentication Methods](https://github.com/idaholab/Deep-Lynx/wiki/Authentication-Methods).
  - `DEEPLYNX_DATA_TEMP_FOLDER`: This is the Airflow environment path for where data is downloaded. If no value is set, this defaults to `AIRFLOW_HOME/logs/data`.


  Typical communication with DeepLynx requires a bearer token, so the first task of a DeepLynx DAG is usually to generate a token, which can be done with `GetOauthTokenOperator`. This token should be passed to downstream tasks using [XComs](https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/xcoms.html#xcoms), the token generation `task_id`, and the key `token`. `GetOauthTokenOperator` requires either a `conn_id` of an Airflow [Connection](https://airflow.apache.org/docs/apache-airflow/stable/authoring-and-scheduling/connections.html#connections-hooks) of type DeepLynx, or the parameters `host`, `api_key`, and `api_secret`. It is recommended to create a new Airflow connection of type DeepLynx through the [Airflow UI](https://airflow.apache.org/docs/apache-airflow/stable/howto/connection.html#creating-a-connection-with-the-ui), and input values for `DeepLynx URL`, `API Key`, and `API Secret`. You can then use this DeepLynx connection's id to set the
  `conn_id` for any airflow operators in this package (alternatively, you can supply the `host` parameter).

  Navigate to the Connections page with Admin -> Connections.
  ![image](create_deeplynx_conn_with_airflow_ui.png)

  Most functionality can be understood by looking at the provided [Example Dags](deeplynx_provider/example_dags). Class level documentation is also provided.


  Example DAGs are provided in [`deeplynx_provider/example_dags`](deeplynx_provider/example_dags). Copy the full directory into your airflow [`DAG_FOLDER`](https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/dags.html#loading-dags) to have them loaded into your airflow environment.


  A functional test DAG for the `airflow-provider-deeplynx` package. Users should create a DeepLynx connection in Airflow with `URL`, `API Key`,
  and `API Secret`. To run the DAG, supply the DeepLynx `connection_id`, optionally create a new `container_name`, and keep `data_source_name` as `TC-201`.
  This DAG will:
  - check if the supplied `container_name` exists and retrieve the `container_id` if so; if that container name does not exist, it will create a new container with the supplied name.
  - import container ontology and typemappings from [Container_Export.json](deeplynx_provider/example_dags/data/Container_Export.json)
  - set the data source active (named `TC-201`)
  - import timeseries data
  - query timeseries data using two different methods
  - upload the timeseries data result


  This DAG shows how you can use the `DeepLynxConfigurationOperator` to create a custom configuration for DeepLynx communication. It requires that you already have a DeepLynx container and data source created, and that you input your `connection_id`, `container_id`, and `data_source_id`.


  This DAG shows all the package supported ways that you can query for metatypes, relationships, and how to perform a graph query. This example requires users to create a graph in DeepLynx, and then to edit the DAG file itself so that the query bodies, parameters, and properties match your given graph data.


  This DAG shows how you can get a DeepLynx token using `GetOauthTokenOperator` by directly specifying `host`, `api_key`, and `api_secret` (instead of using `conn_id`)


  Class documentation is available [here](docs/deeplynx_provider). It was generated using [pdoc](https://github.com/pdoc3/pdoc) and the command `pdoc --output-dir=docs deeplynx_provider` ran from the root of this project.


  Communication with DeepLynx using this package can be configured with various options like SSL certificate and local file writing locations. Most of the time, the default DeepLynx config will work just fine, but to learn more continue reading.

  The operators in this provider package use the [Deep Lynx Python SDK](https://github.com/idaholab/Deep-Lynx-Python-Package) to communicate with DeepLynx. The [DeepLynxConfigurationOperator](deeplynx_provider/operators/configuration_operator.py) can be used to set your [Configuration](https://github.com/idaholab/Deep-Lynx-Python-Package/blob/main/deep_lynx/configuration.py) exactly how you want it, and this configuration is then passed to a task instance [XCom](https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/xcoms.html) so that downstream tasks derived from [DeepLynxBaseOperator](deeplynx_provider/operators/deeplynx_base_operator.py) can use this configuration.


  This package is setup to use [token](https://github.com/idaholab/Deep-Lynx/wiki/Authentication-Methods#token-token) authentication with DeepLynx, but other authentication methods are supported by setting the [DeepLynx Config](#deepLynx-config).



  - If using this Airflow package in a Docker environment to talk to a Dockerized DeepLynx, you should likely set your Deeplynx host/url to `http://host.docker.internal:8090`.


  - Airflow documentation on creating a custom provider [here](https://airflow.apache.org/docs/apache-airflow-providers/howto/create-custom-providers.html)
  - airflow-provider-sample project [here](https://github.com/astronomer/airflow-provider-sample)


pkgId: cd14670c991c84d1900a94c1416f43e2dc85bbc1c541b3ef1172e06d917a6596
name: python-airflow-provider-duckdb
arch: src
version: 0.2.0
epoch: 0
release: 1
summary: DuckDB (duckdb.org) provider for Apache Airflow
url: http://astronomer.io/
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-provider-duckdb-0.2.0-1.src.rpm
checksum_type: sha256
description:
  A DuckDB provider for Airflow. This provider exposes a hook/connection that returns a DuckDB connection.

  This works for either local or MotherDuck connections.



  ```bash
  pip install airflow-provider-duckdb
  ```



  The connection type is `duckdb`. It supports setting the following parameters:

  | Airflow field name | Airflow UI label            | Description                                                                |
  | ------------------ | --------------------------- | -------------------------------------------------------------------------- |
  | `host`             | Path to local database file | Path to local file. Leave blank (with no password) for in-memory database. |
  | `schema`           | MotherDuck database name    | Name of the MotherDuck database. Leave blank for default.                  |
  | `password`         | MotherDuck Service token    | MotherDuck Service token. Leave blank for local database.                  |

  These have been relabeled in the Airflow UI for clarity.

  For example, if you want to connect to a local file:

  | Airflow field name | Airflow UI label            | Value              |
  | ------------------ | --------------------------- | ------------------ |
  | `host`             | Path to local database file | `/path/to/file.db` |
  | `schema`           | MotherDuck database name    | (leave blank)      |
  | `password`         | MotherDuck Service token    | (leave blank)      |

  If you want to connect to a MotherDuck database:

  | Airflow field name | Airflow UI label            | Value                                        |
  | ------------------ | --------------------------- | -------------------------------------------- |
  | `host`             | Path to local database file | (leave blank)                                |
  | `schema`           | MotherDuck database name    | `<YOUR_DB_NAME>`, or leave blank for default |
  | `password`         | MotherDuck Service token    | `<YOUR_SERVICE_TOKEN>`                       |



  ```python
  import pandas as pd
  import pendulum

  from airflow.decorators import dag, task
  from duckdb_provider.hooks.duckdb_hook import DuckDBHook


  @dag(
      schedule=None,
      start_date=pendulum.datetime(2022, 1, 1, tz="UTC"),
      catchup=False,
  )
  def duckdb_transform():
      @task
      def create_df() -> pd.DataFrame:
          """
          Create a dataframe with some sample data
          """
          df = pd.DataFrame(
              {
                  "a": [1, 2, 3],
                  "b": [4, 5, 6],
                  "c": [7, 8, 9],
              }
          )
          return df

      @task
      def simple_select(df: pd.DataFrame) -> pd.DataFrame:
          """
          Use DuckDB to select a subset of the data
          """
          hook = DuckDBHook.get_hook('duckdb_default')
          conn = hook.get_conn()

          
          res = conn.execute("SELECT a, b, c FROM df WHERE a >= 2").df()

          return res

      @task
      def add_col(df: pd.DataFrame) -> pd.DataFrame:
          """
          Use DuckDB to add a column to the data
          """
          hook = DuckDBHook.get_hook('duckdb_default')
          conn = hook.get_conn()

          
          conn.execute("CREATE TABLE tb AS SELECT *, a + b AS d FROM df")

          
          return conn.execute("SELECT * FROM tb").df()

      @task
      def aggregate(df: pd.DataFrame) -> pd.DataFrame:
          """
          Use DuckDB to aggregate the data
          """
          hook = DuckDBHook.get_hook('duckdb_default')
          conn = hook.get_conn()

          
          return conn.execute("SELECT SUM(a), COUNT(b) FROM df").df()

      create_df_res = create_df()
      simple_select_res = simple_select(create_df_res)
      add_col_res = add_col(simple_select_res)
      aggregate_res = aggregate(add_col_res)


  duckdb_transform()
  ```


pkgId: a1262fc7701d7a5a72e1d3463e29b12b736c9d8bf6220c1c4272dff6d14773b3
name: python-airflow-provider-firebolt
arch: src
version: 0.4.1
epoch: 0
release: 1
summary: A Firebolt provider for Apache Airflow
url: https://github.com/firebolt-db/airflow-provider-firebolt
rpm_license: Apache-2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-provider-firebolt-0.4.1-1.src.rpm
checksum_type: sha256
description:
  <!--
   Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file
   distributed with this work for additional information
   regarding copyright ownership.  The ASF licenses this file
   to you under the Apache License, Version 2.0 (the
   "License"); you may not use this file except in compliance
   with the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.
   -->



  [![Unit tests](https://github.com/firebolt-db/airflow-provider-firebolt/actions/workflows/pull-request.yml/badge.svg)](https://github.com/firebolt-db/airflow-provider-firebolt/actions/workflows/pull-request.yml)
  ![Coverage](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/yuryfirebolt/22e274394fed6421b6f5d5a2c8016fa3/raw/firebolt-airflow-provider-coverage.json
  )


  <img width="1114" alt="Screen Shot 2022-02-02 at 2 57 37 PM" src="https://user-images.githubusercontent.com/7674553/152251803-427f45b5-2160-4434-9f3e-431db4d3e79e.png">

  This is the provider package for the `firebolt` provider. All classes for this provider package are in the `firebolt_provider` Python package.



  - <a href="#installation">Installation</a>[]()
  - <a href="#configuration">Configuration</a>[]()
  - <a href="#modules">Modules</a>[]()
      - <a href="#operators">Operators</a>[]()
      - <a href="#hooks">Hooks</a>[]()


  <a id="installation"></a>


  You can install this package via

  ```shell
  pip install airflow-provider-firebolt
  ```

  `airflow-provider-firebolt` requires `apache-airflow` 2.0+ and `firebolt-sdk` 1.1+.


  <a id="configuration"></a>


  In the Airflow user interface, configure a Connection for Firebolt. Configure the following fields:

  * `Conn Id`: `firebolt_conn_id`.
  * `Conn Type`: `Firebolt`.
  * `Client ID`: Service account ID.
  * `Client Secret`: Service account secret.
  * `Engine_Name`: Firebolt Engine Name.
  * `Account`: Name of the account you're connecting to.

  Client id and secret credentials can be obtained by registering a [Service account](https://docs.firebolt.io/godocs/Guides/managing-your-organization/service-accounts.html#manage-service-accounts).


  If you're accessing Firebolt UI via `app.firebolt.io` then use Username and Password instead of Client ID and Client Secret to connect.

  <a id="modules"></a>



  <a id="operators"></a>


  [operators.firebolt.FireboltOperator](https://github.com/firebolt-db/airflow-provider-firebolt/blob/main/firebolt_provider/operators/firebolt.py) runs a provided SQL script against Firebolt and returns results.

  [operators.firebolt.FireboltStartEngineOperator](https://github.com/firebolt-db/airflow-provider-firebolt/blob/main/firebolt_provider/operators/firebolt.py)
  [operators.firebolt.FireboltStopEngineOperator](https://github.com/firebolt-db/airflow-provider-firebolt/blob/main/firebolt_provider/operators/firebolt.py) starts/stops the specified engine, and waits until it is actually started/stopped. If the `engine_name` is not specified, it will use the `engine_name` from the connection, if it also not specified it will start the default engine of the connection database. Note: start/stop operator requires actual engine name, if engine URL is specified instead, start/stop engine operators will not be able to handle it correctly.




  <a id="hooks"></a>


  [hooks.firebolt.FireboltHook](https://github.com/firebolt-db/airflow-provider-firebolt/blob/main/firebolt_provider/hooks/firebolt.py) establishes a connection to Firebolt.



  See: [CONTRIBUTING.MD](https://github.com/firebolt-db/airflow-provider-firebolt/tree/main/CONTRIBUTING.MD)


pkgId: 12ca80efa325320cbad60cf671a422f7b1fa18aa815f7e543397f818acb543c0
name: python-airflow-provider-fivetran
arch: src
version: 1.1.4
epoch: 0
release: 1
summary: A Fivetran provider for Apache Airflow
url: https://github.com/fivetran/airflow-provider-fivetran
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-provider-fivetran-1.1.4-1.src.rpm
checksum_type: sha256
description:
  This package provides an operator, sensor, and hook that integrates [Fivetran](https://fivetran.com) into Apache Airflow. `FivetranOperator` allows you to start Fivetran jobs from Airflow and `FivetranSensor` allows you to monitor a Fivetran sync job for completion before running downstream processes.

  [Fivetran automates your data pipeline, and Airflow automates your data processing.](https://www.youtube.com/watch?v=siSx6L2ckSw&ab_channel=Fivetran)



  Prerequisites: An environment running `apache-airflow`.

  ```
  pip install airflow-provider-fivetran
  ```



  In the Airflow user interface, configure a Connection for Fivetran. Most of the Connection config fields will be left blank. Configure the following fields:

  * `Conn Id`: `fivetran_default`
  * `Conn Type`: `Fivetran`
  * `Fivetran API Key`: Your Fivetran API Key
  * `Fivetran API Secret`: Your Fivetran API Secret

  Find the Fivetran API Key and Secret in the [Fivetran Account Settings](https://fivetran.com/account/settings), under the **API Config** section. See our documentation for more information on [Fivetran API Authentication](https://fivetran.com/docs/rest-api/getting-started#authentication).

  The sensor and operator assume the `Conn Id` is set to `fivetran_default`, however if you are managing multipe Fivetran accounts, you can set this to anything you like. See the DAG in examples to see how to specify a custom `Conn Id`.





  `FivetranOperator` starts a Fivetran sync job. Note that when a Fivetran sync job is controlled via an Operator, it is no longer run on the schedule as managed by Fivetran. In other words, it is now scheduled only from Airflow.

  `FivetranOperator` requires that you specify the `connector_id` of the sync job to start. You can find `connector_id` in the Settings page of the connector you configured in the [Fivetran dashboard](https://fivetran.com/dashboard/connectors).

  Import into your DAG via:
  ```
  from fivetran_provider.operators.fivetran import FivetranOperator
  ```



  `FivetranSensor` monitors a Fivetran sync job for completion. Monitoring with `FivetranSensor` allows you to trigger downstream processes only when the Fivetran sync jobs have completed, ensuring data consistency. You can use multiple instances of `FivetranSensor` to monitor multiple Fivetran connectors.

  Note, it is possible to monitor a sync that is scheduled and managed from Fivetran; in other words, you can use `FivetranSensor` without using `FivetranOperator`. If used in this way, your DAG will wait until the sync job starts on its Fivetran-controlled schedule and then completes.

  `FivetranSensor` requires that you specify the `connector_id` of the sync job to start. You can find `connector_id` in the Settings page of the connector you configured in the [Fivetran dashboard](https://fivetran.com/dashboard/connectors).

  Import into your DAG via:
  ```
  from fivetran_provider.sensors.fivetran import FivetranSensor
  ```



  See the [**examples**](https://github.com/fivetran/airflow-provider-fivetran/tree/main/fivetran_provider/example_dags) directory for an example DAG.



  Please submit [issues](https://github.com/fivetran/airflow-provider-fivetran/issues) and [pull requests](https://github.com/fivetran/airflow-provider-fivetran/pulls) in our official repo:
  [https://github.com/fivetran/airflow-provider-fivetran](https://github.com/fivetran/airflow-provider-fivetran)

  We are happy to hear from you. Please email any feedback to the authors at [devrel@fivetran.com](mailto:devrel@fivetran.com).




  Special thanks to [Pete DeJoy](https://github.com/petedejoy), [Plinio Guzman](https://github.com/pgzmnk), and [David Koenitzer](https://github.com/sunkickr) of [Astronomer.io](https://www.astronomer.io/) for their contributions and support in getting this provider off the ground.


pkgId: 0af64327b4fc6bc953525930cf22e363b3a710579dadf4b414fab7732ec2c352
name: python-airflow-provider-fivetran-async
arch: src
version: 2.1.0
epoch: 0
release: 1
summary: A Fivetran async provider for Apache Airflow
url: https://github.com/astronomer/airflow-provider-fivetran-async
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-provider-fivetran-async-2.1.0-1.src.rpm
checksum_type: sha256
description:
  This package provides an async operator, sensor and hook that integrates [Fivetran](https://fivetran.com) into Apache Airflow.
  `FivetranSensor` allows you to monitor a Fivetran sync job for completion before running downstream processes.
  `FivetranOperator` submits a Fivetran sync job and polls for its status on the triggerer.
  Since an async sensor or operator frees up worker slot while polling is happening on the triggerer,
  they consume less resources when compared to traditional "sync" sensors and operators.

  [Fivetran automates your data pipeline, and Airflow automates your data processing.](https://www.youtube.com/watch?v=siSx6L2ckSw&ab_channel=Fivetran)



  Prerequisites: An environment running `apache-airflow`.

  ```
  pip install airflow-provider-fivetran-async
  ```



  In the Airflow user interface, configure a Connection for Fivetran. Most of the Connection config fields will be left blank. Configure the following fields:

  * `Conn Id`: `fivetran`
  * `Conn Type`: `Fivetran`
  * `Login`: Fivetran API Key
  * `Password`: Fivetran API Secret

  Find the Fivetran API Key and Secret in the [Fivetran Account Settings](https://fivetran.com/account/settings), under the **API Config** section. See our documentation for more information on [Fivetran API Authentication](https://fivetran.com/docs/rest-api/getting-started#authentication).

  The sensor assumes the `Conn Id` is set to `fivetran`, however if you are managing multiple Fivetran accounts, you can set this to anything you like. See the DAG in examples to see how to specify a custom `Conn Id`.





  ```python
  from fivetran_provider_async.operators import FivetranOperator
  ```

  `FivetranOperator` submits a Fivetran sync job and monitors it on trigger for completion.

  `FivetranOperator` requires that you specify the `connector_id` of the Fivetran connector you wish to trigger. You can find `connector_id` in the Settings page of the connector you configured in the [Fivetran dashboard](https://fivetran.com/dashboard/connectors).

  The `FivetranOperator` will wait for the sync to complete so long as `wait_for_completion=True` (this is the default). It is recommended that
  you run in deferrable mode (this is also the default). If `wait_for_completion=False`, the operator will return the timestamp for the last sync.

  Import into your DAG via:



  ```python
  from fivetran_provider_async.sensors import FivetranSensor
  ```

  `FivetranSensor` monitors a Fivetran sync job for completion.
  Monitoring with `FivetranSensor` allows you to trigger downstream processes only when the Fivetran sync jobs have completed, ensuring data consistency.

  `FivetranSensor` requires that you specify the `connector_id` of the Fivetran connector you want to wait for. You can find `connector_id` in the Settings page of the connector you configured in the [Fivetran dashboard](https://fivetran.com/dashboard/connectors).

  You can use multiple instances of `FivetranSensor` to monitor multiple Fivetran connectors.

  `FivetranSensor` is most commonly useful in two scenarios:

  1. Fivetran is using a separate scheduler than the Airflow scheduler.
  2. You set `wait_for_completion=False` in the `FivetranOperator`, and you need to await the `FivetranOperator` task later. (You may want to do this if you want to arrange your DAG such that some tasks are dependent on _starting_ a sync and other tasks are dependent on _completing_ a sync).

  If you are doing the 1st pattern, you may find it useful to set the `completed_after_time` to `data_interval_end`, or `data_interval_end` with some buffer:

  ```python
  fivetran_sensor = FivetranSensor(
      task_id="wait_for_fivetran_externally_scheduled_sync",
      connector_id="bronzing_largely",
      poke_interval=5,
      completed_after_time="{{ data_interval_end + macros.timedelta(minutes=1) }}",
  )
  ```

  If you are doing the 2nd pattern, you can use XComs to pass the target completed time to the sensor:

  ```python
  fivetran_op = FivetranOperator(
      task_id="fivetran_sync_my_db",
      connector_id="bronzing_largely",
      wait_for_completion=False,
  )

  fivetran_sensor = FivetranSensor(
      task_id="wait_for_fivetran_db_sync",
      connector_id="bronzing_largely",
      poke_interval=5,
      completed_after_time="{{ task_instance.xcom_pull('fivetran_sync_op', key='return_value') }}",
  )

  fivetran_op >> fivetran_sensor
  ```

  You may also specify the `FivetranSensor` without a `completed_after_time`.
  In this case, the sensor will make note of when the last completed time was, and will wait for a new completed time.



  See the [**examples**](https://github.com/astronomer/airflow-provider-fivetran-async/tree/main/fivetran_provider_async/example_dags) directory for an example DAG.



  Please submit [issues](https://github.com/astronomer/airflow-provider-fivetran-async/issues) and [pull requests](https://github.com/astronomer/airflow-provider-fivetran-async/pulls) in our official repo:
  [https://github.com/astronomer/airflow-provider-fivetran-async](https://github.com/astronomer/airflow-provider-fivetran-async)

  We are happy to hear from you. Please email any feedback to the authors at [humans@astronomer.io](mailto:humans@astronomer.io).


pkgId: 13e1cb6e97d373c1b765ce5b20bcb96d4925f215e74356d05d560bcdccc58604
name: python-airflow-provider-great-expectations
arch: src
version: 0.2.9
epoch: 0
release: 1
summary: An Apache Airflow provider for Great Expectations
url: https://github.com/astronomer/airflow-provider-great-expectations
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-provider-great-expectations-0.2.9-1.src.rpm
checksum_type: sha256
description:
  platform darwin -- Python 3.7.4, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
  rootdir: /Users/jpayne/repos-bombora/bombora-airflow-provider-great-expectations, configfile: pytest.ini, testpaths: tests
  plugins: anyio-3.3.0
  collected 7 items


pkgId: 6f3740b86adf2936df2d4d6fd8f0d05dd4492895b59a96892edef4f6843ba845
name: python-airflow-provider-hex
arch: src
version: 0.1.9
epoch: 0
release: 1
summary: Apache Airflow Hex provider containing Hooks and Operators
url: https://github.com/hex-inc/airflow-provider-hex
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-provider-hex-0.1.9-1.src.rpm
checksum_type: sha256
description:
  Provides an Airflow Operator and Hook to trigger Hex project runs.

  This [Airflow Provider Package](https://airflow.apache.org/docs/apache-airflow-providers/)
  provides Hooks and Operators for interacting with the Hex API.



  * Airflow >=2.2
  * Hex API Token



  Install the package.

  ```
  pip install airflow-provider-hex
  ```

  After creating a Hex API token, set up your Airflow Connection Credentials in the Airflow
  UI.

  ![Connection Setup](https://raw.githubusercontent.com/hex-inc/airflow-provider-hex/main/docs/hex-connection-setup.png)

  * Connection ID: `hex_default`
  * Connection Type: `Hex Connection`
  * Host: `https://app.hex.tech`
  * Hex API Token: `your-token-here`



  The [`airflow_provider_hex.operators.hex.HexRunProjectOperator`](/airflow_provider_hex/operators/hex.py)
  Operator runs Hex Projects, either synchronously or asynchronously.

  In the synchronous mode, the Operator will start a Hex Project run and then
  poll the run until either an error or success status is returned, or until
  the poll timeout. If the timeout occurs, the default behaviour is to attempt to
  cancel the run.

  In the asynchronous mode, the Operator will request that a Hex Project is run,
  but will not poll for completion. This can be useful for long-running projects.

  The operator accepts inputs in the form of a dictionary. These can be used to
  override existing input elements in your Hex project.

  You may also optionally include notifications for a particular run. See
  the [Hex API documentation](https://learn.hex.tech/docs/develop-logic/hex-api/api-reference#operation/RunProject) for details.



  The [`airflow_provider_hex.hooks.hex.HexHook`](/airflow_provider_hex/hooks/hex.py)
  provides a low-level interface to the Hex API.

  These can be useful for testing and development, as they provide both a generic
  `run` method which sends an authenticated request to the Hex API, as well as
  implementations of the `run` method that provide access to specific endpoints.




  A simplified example DAG demonstrates how to use the [Airflow Operator](/example_dags/example_hex.py)

  ```python
  from airflow_provider_hex.operators.hex import HexRunProjectOperator

  PROJ_ID = 'abcdef-ghijkl-mnopq'
  notifications: list[NotificationDetails] = [
      {
          "type": "SUCCESS",
          "includeSuccessScreenshot": True,
          "slackChannelIds": ["HEX666SQG"],
          "userIds": [],
          "groupIds": [],
      }
  ]
  ...
  sync_run = HexRunProjectOperator(
      task_id="run",
      hex_conn_id="hex_default",
      project_id=PROJ_ID,
      dag=dag,
      notifications=notifications
  )
  ```


pkgId: 7eb885e8d9dd5bf22691c5dfdc9b3726076e55c287aa48c9f183a247cd383c96
name: python-airflow-provider-hightouch
arch: src
version: 4.0.0
epoch: 0
release: 1
summary: Hightouch Provider for Airflow
url: https://github.com/hightouchio/airflow-provider-hightouch
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-provider-hightouch-4.0.0-1.src.rpm
checksum_type: sha256
description:
  Provides an Airflow Operator and Hook for [Hightouch](https://hightouch.io).
  This allows the user to initiate a run for a sync from Airflow.



  Pre-requisites: An environment running `apache-airflow` >= 1.10, including >= 2.

  ```
  pip install airflow-provider-hightouch
  ```



  In the Airflow Connections UI, create a new connection for Hightouch.

  - `Conn ID`: `hightouch_default`
  - `Conn Type`: `HTTP`
  - `Host`: `https://api.hightouch.com`
  - `Password`: enter the API key for your workspace. You can generate an API
    key from your [Workspace Settings](https://app.hightouch.io/settings)

  The Operator uses the `hightouch_default` connection id by default, but
  if needed, you can create additional Airflow Connections and reference them
  in the operator





  Starts a Hightouch Sync Run. Requires the `sync_id` or the `sync_slug` for the sync you wish to
  run.

  Returns the `sync_run_id` of the sync it triggers.

  The run is synchronous by default, and the task will be marked complete once the
  sync is successfully completed.

  However, you can request a asynchronous request instead by passing `synchronous=False`
  to the operator.

  If the API key is not authorized or if the request is invalid the task will fail.
  If a run is already in progress, a new run will be triggered following the
  completion of the existing run.



  Monitors a Hightouch Sync Run. Requires the `sync_id` and the `sync_run_id` of the sync you wish to monitor.
  To obtain the `sync_run_id` of a sync triggered in Airflow, we recommend using XComs to pass the return value
  of `HightouchTriggerSyncOperator`.



  Creating a run is as simple as importing the operator and providing it with
  a sync_id. An [example dag](./airflow_provider_hightouch/example_dags/example_hightouch_trigger_sync.py)
  is available as well.

  ```
  from airflow_provider_hightouch.operators.hightouch import HightouchTriggerSyncOperator

  with DAG(....) as dag:
  ...
      my_task = HightouchTriggerSyncOperator(task_id="run_my_sync", sync_id="123")
      my_other_task = HightouchTriggerSyncOperator(task_id="run_my_sync", sync_slug="my-sync-slug")
  ```



  Please submit [issues](https://github.com/hightouchio/airflow-provider-hightouch/issues) and
  [pull requests](https://github.com/hightouchio/airflow-provider-hightouch/pulls) in our official repo:
  [https://github.com/hightouchio/airflow-provider-hightouch](https://github.com/hightouchio/airflow-provider-hightouch)

  We are happy to hear from you, for any feedback please email the authors at [pedram@hightouch.io](mailto:pedram@hightouch.io).



  Special thanks to [Fivetran](https://github.com/fivetran/airflow-provider-fivetran)
  for their provider and [Marcos Marx](https://github.com/marcosmarxm/)'s Airbyte
  contribution in the core Airflow repo for doing this before we had to
  so we could generously learn from their hard work.


pkgId: f831a84b9c83e786d870b05b598a306e37e71fef3258c71e87b3ded862911e9a
name: python-airflow-provider-kafka
arch: src
version: 0.2.2
epoch: 0
release: 1
summary: Apache Airflow Kafka provider containing Deferrable Operators & Sensors.
url: https://github.com/astronomer/airflow-provider-kafka
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-provider-kafka-0.2.2-1.src.rpm
checksum_type: sha256
description:
  ![GitHub release (latest by date)](https://img.shields.io/github/v/release/astronomer/airflow-provider-kafka)![PyPI](https://img.shields.io/pypi/v/airflow-provider-kafka)![PyPI - Downloads](https://img.shields.io/pypi/dm/airflow-provider-kafka)


  An airflow provider to:
  - interact with kafka clusters
  - read from topics
  - write to topics
  - wait for specific messages to arrive to a topic

  This package currently contains

  3 hooks (`airflow_provider_kafka.hooks`) :
  - `admin_client.KafkaAdminClientHook` - a hook to work against the actual kafka admin client
  - `consumer.KafkaConsumerHook` - a hook that creates a consumer and provides it for interaction
  - `producer.KafkaProducerHook` - a hook that creates a producer and provides it for interaction

  4 operators (`airflow_provider_kafka.operators`) :
  - `await_message.AwaitKafkaMessageOperator` - a deferable operator (sensor) that awaits to encounter a message in the log before triggering down stream tasks.
  - `consume_from_topic.ConsumeFromTopicOperator` - an operator that reads from a topic and applies a function to each message fetched.
  - `produce_to_topic.ProduceToTopicOperator` - an operator that uses a iterable to produce messages as key/value pairs to a kafka topic.
  - `event_triggers_function.EventTriggersFunctionOperator` - an operator that listens for messages on the topic and then triggers a downstream function before going back to listening.

  1 trigger `airflow_provider_kafka.triggers` :
  - `await_message.AwaitMessageTrigger`




  ` pip install airflow-provider-kafka`

  Example usages :
  - [basic read/write/sense on a topic](example_dags/listener_dag_function.py)
  - [event listener pattern](example_dags/listener_dag_function.py)



  **Why confluent kafka and not (other library) ?** A few reasons: the [confluent-kafka](https://github.com/confluentinc/confluent-kafka-python) library is guaranteed to be 1:1 functional with librdkafka, is faster, and is maintained by a company with a commercial stake in ensuring the continued quality and upkeep of it as a product.

  **Why not release this into airflow directly ?** I could probably make the PR and get it through, but the airflow code base is getting huge and I don't want to burden the maintainers with code that they don't own for maintainence. Also there's been multiple attempts to get a Kafka provider in before and this is just faster.

  **Why is most of the configuration handled in a dict ?** Because that's how `confluent-kafka` does it. I'd rather maintain interfaces that people already using kafka are comfortable with as a starting point - I'm happy to add more options/ interfaces in later but would prefer to be thoughtful about it to ensure that there difference between these operators and the actual client interface are minimal.





  Unit tests are located at `tests/unit`, a kafka server isn't required to run these tests.
  execute with `pytest`



  Installing on M1 chip means a brew install of the `librdkafka` library before you can `pip install confluent-kafka`
  ```bash
  brew install librdkafka
  export C_INCLUDE_PATH=/opt/homebrew/Cellar/librdkafka/1.8.2/include
  export LIBRARY_PATH=/opt/homebrew/Cellar/librdkafka/1.8.2/lib
  pip install confluent-kafka
  ```


pkgId: a2251b74d0758ef7e2939f341f417f9e8d58b7d6f7b49c92ef8fcafc95e9db72
name: python-airflow-provider-mlflow
arch: src
version: 1.1.0
epoch: 0
release: 1
summary: Apache Airflow provider for MLflow
url: https://github.com/astronomer/airflow-provider-mlflow
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-provider-mlflow-1.1.0-1.src.rpm
checksum_type: sha256
description:
  An `Apache Airflow <https://airflow.apache.org/>`_ provider to interact with MLflow using Operators and Hooks for the following:
  - Registry
  - Deployments
  - Pyfunc
  https://mlflow.org/docs/latest/index.html


pkgId: 282ababc39c959c579d604d0f37aa30dbf62bbb81a630795f5d6f3e221275ed0
name: python-airflow-provider-rabbitmq
arch: src
version: 0.6.1
epoch: 0
release: 1
summary: A RabbitMQ provider for Apache Airflow
url: https://pypi.org/project/airflow-provider-rabbitmq/
rpm_license: UNKNOWN
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-provider-rabbitmq-0.6.1-1.src.rpm
checksum_type: sha256
description:
  [![PyPI version](https://badge.fury.io/py/airflow-provider-rabbitmq.svg)](https://badge.fury.io/py/airflow-provider-rabbitmq)






  In the Airflow user interface, configure a connection with the `Conn Type` set to RabbitMQ.
  Configure the following fields:

  - `Conn Id`: How you wish to reference this connection.
      The default value is `rabbitmq_default`.
  - `login`: Login for the RabbitMQ server.
  - `password`: Password for the RabbitMQ server.,
  - `port`: Port for the RabbitMQ server, typically 5672.
  - `host`: Host of the RabbitMQ server.
  - `vhost`: The virtual host you wish to connect to.





  The `RabbitMQOperator` publishes a message to your specificed RabbitMQ server.

  Import into your DAG using:

  ```Python
  from rabbitmq_provider.operators.rabbitmq import RabbitMQOperator
  ```



  The `RabbitMQSensor` checks a given queue for a message. Once it has found a message
  the sensor triggers downstream proccesses in your DAG.

  Import into your DAG using:

  ```Python
  from rabbitmq_provider.sensors.rabbitmq import RabbitMQSensor
  ```



  To run unit tests, use:

  ```shell
  poetry run pytest .
  ```

  A RabbitMQ instance is required to run the tests. Use the following command:

  ```shell
  docker run --rm -it --hostname my-rabbit -p 15672:15672 -p 5672:5672 rabbitmq:3-management
  ```


pkgId: ab3cafbbd4a958d2a9b8a2436a4043d06527fa159f703f48209a6211421512f1
name: python-airflow-provider-sifflet
arch: src
version: 1.1.2
epoch: 0
release: 1
summary: Provider package airflow-provider-sifflet for Apache Airflow
url: https://www.siffletdata.com/
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-provider-sifflet-1.1.2-1.src.rpm
checksum_type: sha256
description:
  This package provides operators and hook that integrate [Sifflet](https://www.siffletdata.com/) into Apache Airflow.
  All classes for this provider package are in the `sifflet_provider` Python package.

  You can install this package on top of an existing Airflow 2.1+ installation
  ```shell
  pip install airflow-provider-sifflet
  ```
  The package supports the following python versions: 3.7, 3.8, 3.9, 3.10, 3.11, 3.12

  In the Airflow user interface, you can configure a Connection for Sifflet in
  `Admin` -> `Connections` -> `Add a new record`.
  You will need to fill out the following:
      Connection Id: sifflet_default
      Connection Type: Sifflet
      Sifflet Tenant: <your_tenant_name> (for SaaS deployment)
      Sifflet Backend URL: <your_backend_url> (for Self-hosted deployment)
      Sifflet Token: <your_sifflet_access_token>
  `<your_sifflet_access_token>`: you can find more information on how to generate it [here](https://docs.siffletdata.com/docs/generate-an-api-token)
  One of these two parameters is required, depending on your type of Sifflet deployment:
  - **SaaS deployments**: `Sifflet Tenant`, if you access Sifflet with `https://abcdef.siffletdata.com`, then your tenant would be `abcdef`
  - **Self-hosted deployments**: `Sifflet Backend URL`, full URL to the Sifflet backend on your deployment, for instance: `https://sifflet-backend.mycompany.com`



  `SiffletDbtIngestOperator` sends your DBT artifacts to the Sifflet application.
  Example usage:
  ```python
  from sifflet_provider.operators.dbt import SiffletDbtIngestOperator
  sifflet_dbt_ingest = SiffletDbtIngestOperator(
      task_id="sifflet_dbt_ingest",
      input_folder="<path to dbt project folder>",
      target="prod",
      project_name="<dbt project name>",
  )
  ```

  `SiffletRunRuleOperator` Run one or several Sifflet rules - requires rule id(s).
  Example usage:
  ```python
  from sifflet_provider.operators.rule import SiffletRunRuleOperator
  sifflet_run_rule = SiffletRunRuleOperator(
      task_id="sifflet_run_rule",
      rule_ids=[
          "3e2e2687-cd20-11ec-b38b-06bb20181849",
          "3e19eb3e-cd20-11ec-b38b-06bb20181849",
          "3e1a86f1-cd20-11ec-b38b-06bb20181849",
          "3e2e1fc3-cd20-11ec-b38b-06bb20181849",
      ],
      error_on_rule_fail=True
  )
  ```


pkgId: 9746d226e1f8b61f6115ed25623b55baba3d88494264e0b94fe21bcf5bf43282
name: python-airflow-provider-sqream-blue
arch: src
version: 0.0.13
epoch: 0
release: 1
summary: About Apache Airflow - A platform to programmatically author, schedule, and monitor workflows.
url: https://github.com/SQream/apache-airflow-providers-sqream-blue
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-provider-sqream-blue-0.0.13-1.src.rpm
checksum_type: sha256
description:
  Apache Airflow is a popular open source orchestration tool. It allows users to write complex workflows composed of multiple kinds of actions and services using DAGs, and to schedule, debug and monitor workflow runs.
  Different kind of actions are represented with specialized Python classes, called “Operators”. Each SaaS database vendor can build one or more customized Operators for performing different DB operations (e.g. execute arbitrary SQL statements, schedule DB job runs etc.).
  This package is an Operator for executing SQL statments on SQream Blue using Python connector.


pkgId: 428d0bfad2b0ef7ba4d84087e692a086d1cf8d381b23e0c1cff2ed3de0258674
name: python-airflow-provider-tm1
arch: src
version: 0.1.0
epoch: 0
release: 1
summary: A package to simplify connecting to the TM1 REST API from Apache Airflow
url: https://pypi.org/project/airflow-provider-tm1/
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-provider-tm1-0.1.0-1.src.rpm
checksum_type: sha256
description:
  ![CI Build](https://github.com/airflow-provider-tm1/airflow-provider-tm1/actions/workflows/build-test.yml/badge.svg)

  A package by Knowledgeseed and Cubewise that provides a hook to simplify the connection to the IBM Cognos TM1 / Planning Analytics REST API.

  https://github.com/airflow-provider-tm1/airflow-provider-tm1

  This repository builds on https://github.com/MariusWirtz/airflow-tm1 and https://github.com/scrambldchannel/airflow-tm1 which offer only Airflow 1.x compatibility, and upgrades the provider to ensure Airflow 2.x compatibility. Some parts and have been reused from https://github.com/scrambldchannel/airflow-provider-tm1 as well.



  * Python 3.7+
  * Airflow 2.3+
  * TM1py 2.0+



  ```
  python -m venv .env
  source .env/bin/activate
  python -m pip install -r requirements.txt
  python -m build
  ```



  Install with pip `pip install airflow-provider-tm1`



  Create a connection in Airflow with at least the following parameters set:

  * Host
  * Login
  * Password
  * Port
  * Extras
    * ssl

  Any other parameter accepted by the TM1py RestService constructor (eg base_url, namespace etc) can also be added as a key in the Extras field in the connection.

  ![airflow_tm1_conn](docs/airflow_tm1_conn.png)

  In your DAG file:

  ```python
  from airflow_provider_tm1.operators.tm1_run_ti import TM1RunTIOperator

  ...

  t1 = TM1RunTIOperator (
          task_id='t1',
          tm1_conn_id='tm1_conn',
          process_name='airflow_test_params_success_dag',
          tm1_params={'testParam1': 'testParamValue'},
          timeout=20,
          cancel_at_timeout=True
      )
  ```

  This will attempt to connect to the TM1 server using the details provided and initialise an instance of the TM1Service class than be accessed at `airflow_provider_tm1.hooks.tm1.TM1Hook`

  See [TM1py](https://github.com/cubewise-code/tm1py) for more details.

  It's important to mention that TM1Py will execute TI process in asynchronous mode. The operator submits the request, receives the `async_id` from TM1 and starts polling the result using `async_id` until the response is retrieved or times out.
  Timeout is defined in seconds, default value is 300 seconds. It's also important that Airflow-side timeout does not
  involve automatically the cancellation of the TI process. If `cancel_at_timeout` is set `True`, Airflow will make an attempt
  to cancel the long-running TI process.

  For further examples, please see `tests_integration/dags` folder.



  Use `tests_integration/docker-compose.yaml` as a baseline, which spins up an Airflow including the TM1 provider and a base TM1 database to test against. Please note that `tm1-docker` image is properietary IBM product wrapped in Docker by Knowledgeseed and therefore it is only available internally for Knowledgeseed developers.

  To obtain a licensed IBM TM1 database for testing or production purpose, please see https://www.ibm.com/topics/tm1 for further details.



  See [LICENSE](https://github.com/scrambldchannel/airflow-tm1/LICENSE)

rpm_license:
[cell repeats an earlier one in this file: 10254 characters]


pkgId: 5d8ce348801fffa5293f734e7f6ebdf09ed9eda8510dae97f86bc499b43816d6
name: python-airflow-provider-xlsx
arch: src
version: 1.0.1
epoch: 0
release: 1
summary: Airflow operators for reading and writing XLSX files
url: https://github.com/andreax79/airflow-provider-xlsx
rpm_license: Apache License, Version 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-provider-xlsx-1.0.1-1.src.rpm
checksum_type: sha256
description:
  [Apache Airflow](https://github.com/apache/airflow) operators for converting XLSX files from/to Parquet, CSV and JSON.

  [![Build Status](https://github.com/andreax79/airflow-provider-xlsx/workflows/Tests/badge.svg)](https://github.com/andreax79/airflow-provider-xlsx/actions)
  [![PyPI version](https://badge.fury.io/py/airflow-provider-xlsx.svg)](https://badge.fury.io/py/airflow-provider-xlsx)
  [![PyPI](https://img.shields.io/pypi/pyversions/airflow-provider-xlsx.svg)](https://pypi.org/project/airflow-provider-xlsx)
  [![Downloads](https://pepy.tech/badge/airflow-provider-xlsx/month)](https://pepy.tech/project/airflow-provider-xlsx)
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)



  * Airflow Versions
      * 2.0 or newer



  ```console
  $ pip install airflow-provider-xlsx
  ```





  Read an XLSX or XLS file and convert it into Parquet, CSV, JSON, JSON Lines(one line per record) file.

  [API Documentation](https://airflow-provider-xlsx.readthedocs.io/en/latest/#module-xlsx_provider.operators.from_xlsx_operator)



  XLSX Source

  ![image](https://user-images.githubusercontent.com/1288154/130972144-e33f01af-2f9a-4e34-803a-907324a7adbf.png)

  Airflow Task

  ```python
  from xlsx_provider.operators.from_xlsx_operator import FromXLSXOperator

  xlsx_to_jsonl = FromXLSXOperator(
     task_id='xlsx_to_jsonl',
     source='{{ var.value.tmp_path }}/test.xlsx',
     target='{{ var.value.tmp_path }}/test.jsonl',
     file_format='jsonl',
     dag=dag
  )
  ```

  JSON Lines Output

  ```json
  {"month": "Jan", "high": -12.2, "mean": -16.2, "low": -20.1, "precipitation": 19}
  {"month": "Feb", "high": -10.3, "mean": -14.7, "low": -19.1, "precipitation": 14}
  {"month": "Mar", "high": -2.6, "mean": -7.2, "low": -11.8, "precipitation": 15}
  {"month": "Apr", "high": 8.1, "mean": 3.2, "low": -1.7, "precipitation": 24}
  {"month": "May", "high": 17.5, "mean": 11.6, "low": 5.6, "precipitation": 36}
  {"month": "Jun", "high": 24, "mean": 18.2, "low": 12.3, "precipitation": 58}
  {"month": "Jul", "high": 25.7, "mean": 20.2, "low": 14.7, "precipitation": 72}
  {"month": "Aug", "high": 22.2, "mean": 17, "low": 11.7, "precipitation": 66}
  {"month": "Sep", "high": 16.6, "mean": 11.5, "low": 6.4, "precipitation": 44}
  {"month": "Oct", "high": 6.8, "mean": 3.4, "low": 0, "precipitation": 38}
  ```



  Execute an SQL query an XLSX/XLS file and export the result into a Parquet or CSV file

  This operators loads an XLSX or XLS file into an in-memory SQLite database, executes a query on the db and stores the result into a Parquet, CSV, JSON, JSON Lines(one line per record) file. The output columns names and types are determinated by the SQL query output.

  [API Documentation](https://airflow-provider-xlsx.readthedocs.io/en/latest/#xlsx-provider-operators-operators-from-xlsx-query-operator)



  XLSX Source

  ![image](https://user-images.githubusercontent.com/1288154/130963470-f7f05ca0-a952-47e1-86ec-c6cd322746f6.png)

  SQL Query

  ```sql
   select
       g as high_tech_sector,
       h as eur_bilion,
       i as share
   from
       high_tech
   where
       _index > 1
       and high_tech_sector <> ''
       and lower(high_tech_sector) <> 'total'
  ```

  Airflow Task

  ```python
  from xlsx_provider.operators.from_xlsx_query_operator import FromXLSXQueryOperator

  xlsx_to_csv = FromXLSXQueryOperator(
     task_id='xlsx_to_csv',
     source='{{ var.value.tmp_path }}/high_tech.xlsx',
     target='{{ var.value.tmp_path }}/high_tech.parquet',
     file_format='csv',
     csv_delimiter=',',
     table_name='high_tech',
     worksheet='Figure 3',
     query='''
         select
             g as high_tech_sector,
             h as eur_bilion,
             i as share
         from
             high_tech
         where
             _index > 1
             and high_tech_sector <> ''
             and lower(high_tech_sector) <> 'total'
     ''',
     dag = dag
  )
  ```

  Output

  ```
  high_tech_sector,value,share
  Pharmacy,78280,0.231952169555313
  Electronics-telecommunications,75243,0.222954583130376
  Scientific instruments,64010,0.189670433253542
  Aerospace,44472,0.131776952366115
  Computers office machines,21772,0.0645136852766778
  Non-electrical machinery,20813,0.0616714981835167
  Chemistry,19776,0.058598734453222
  Electrical machinery,9730,0.028831912195612
  Armament,3384,0.0100300315856265
  ```



  Read a Parquest, CSV, JSON, JSON Lines(one line per record) file and convert it into XLSX.

  [API Documentation](https://airflow-provider-xlsx.readthedocs.io/en/latest/#xlsx-provider-operators-operators-to-xlsx-operator)



  ```python
  from xlsx_provider.operators.to_xlsx_operator import ToXLSXOperator

  parquet_to_xlsx = ToXLSXOperator(
     task_id='parquet_to_xlsx',
     source='{{ var.value.tmp_path }}/test.parquet',
     target='{{ var.value.tmp_path }}/test.xlsx',
     dag=dag
  )

  ```



  * Apache Airflow - https://github.com/apache/airflow
  * Project home page (GitHub) - https://github.com/andreax79/airflow-provider-xlsx
  * Documentation (Read the Docs) - https://airflow-provider-xlsx.readthedocs.io/en/latest
  * openpyxl, library to read/write Excel 2010 xlsx/xlsm/xltx/xltm files - https://foss.heptapod.net/openpyxl/openpyxl
  * lrd, library for reading data and formatting information from Excel files in the historical .xls format - https://github.com/python-excel/xlrd
  * Python library for Apache Arrow - https://github.com/apache/arrow/tree/master/python


pkgId: dd6ff9734e43eea75f516a4dc8d6c0abe76f64fe6e89fd45236f9cbabd9761c8
name: python-airflow-providers-clickhouse
arch: src
version: 0.0.1
epoch: 0
release: 1
summary: Apache Airflow providers for Yandex Clickhouse Database
url: https://github.com/klimenkoIv/apache-airflow-providers-clickhouse
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-providers-clickhouse-0.0.1-1.src.rpm
checksum_type: sha256
description:
  Provider allow connect Apache Airflow to Yandex Clickhouse Database and perform query using ClickhouseOperator


pkgId: 1ed215d8f78c0a409b772720a38bb0ed3fe4cda3a151fab85c1e53482d943d58
name: python-airflow-providers-wherobots
arch: src
version: 1.0.0
epoch: 0
release: 1
summary: Airflow extension for communicating with Wherobots Cloud
url: https://pypi.org/project/airflow-providers-wherobots/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-providers-wherobots-1.0.0-1.src.rpm
checksum_type: sha256
description:
  Airflow providers to bring [Wherobots Cloud](https://www.wherobots.com)'s
  spatial compute to your data workflows and ETLs.



  If you use [Poetry](https://python-poetry.org) in your project, add the
  dependency with `poetry add`:

  ```
  $ poetry add airflow-providers-wherobots
  ```

  Otherwise, just `pip install` it:

  ```
  $ pip install airflow-providers-wherobots
  ```



  Create a Connection in Airflow. This can be done from Apache Airflow's [Web UI](https://airflow.apache.org/docs/apache-airflow/stable/howto/connection.html#creating-connection-ui),
  or from the command-line. The default Wherobots connection name
  is `wherobots_default`; if you use another name you must specify that
  name with the `wherobots_conn_id` parameter when initializing Wherobots
  operators.

  The only required fields for the connection are:
  - the Wherobots API endpoint in the `host` field;
  - your Wherobots API key in the `password` field.

  ```
  $ airflow connections add "wherobots_default" \
      --conn-type "generic" \
      --conn-host "api.cloud.wherobots.com" \
      --conn-password "$(< api.key)"
  ```





  Wherobots allows users to upload their code (.py, .jar),
  execute it on the cloud, and monitor the status of the run.
  Each execution is called a `Run`.

  The `WherobotsRunOperator` allows you to execute a `Run` on Wherobots Cloud.
  `WherobotsRunOperator` triggers the run according to the parameters you provide,
  and waits for the run to finish before completing the task.

  Refer to the [Wherobots Managed Storage Documentation](https://docs.wherobots.com/latest/develop/storage-management/storage/)
  to learn more about how to upload and manage your code on Wherobots Cloud.

  Below is an example of `WherobotsRunOperator`

  ```python
  operator = WherobotsRunOperator(
          task_id="your_task_id",
          name="airflow_operator_test_run_{{ ts_nodash }}",
          run_python={
              "uri": "s3://wbts-wbc-m97rcg45xi/42ly7mi0p1/data/shared/classification.py"
          },
          runtime="tiny-a10-gpu",
          dag=dag,
          poll_logs=True,
      )
  ```



  The arguments for the `WherobotsRunOperator` constructor:

  The `run_*` arguments are mutually exclusive, you can only specify one of them.
  * `name: str`: The name of the run.
    If not specified, a default name will be
    generated.
  * `runtime: str`: The runtime decides the size of the workloads that execute the run.
    The default value is `tiny`.
    Find the list of available runtimes in your Wherobots Cloud account
    -> Organization Settings -> General -> RUNTIME CONFIGURATION.

    Find the runtime IDs in the bracket on the right side of the city name.

    ![runtimes.png](doc%2Fruntimes.png)

  * `poll_logs: bool`: If `True`, the operator will poll the logs of the run until it finishes.
    If `False`, the operator will not poll the logs, just track the status of the run.
  * `polling_interval`: The interval in seconds to poll the status of the run.
    The default value is `30`.
  * `run_python: dict`: A dictionary with the following keys:
    * `uri: str`: The URI of the Python file to run.
    * `args: list[str]`: A list of arguments to pass to the Python file.
  * `run_jar: dict`: A dictionary with the following keys:
    * `uri: str`: The URI of the JAR file to run.
    * `args: list[str]`: A list of arguments to pass to the JAR file.
    * `mainClass: str`: The main class to run in the JAR file.
  * `environment: dict`: A dictionary with the following keys:
    * `sparkDriverDiskGB: int`: The disk size for the Spark driver.
    * `sparkExecutorDiskGB: int`: The disk size for the Spark executor.
    * `sparkConfigs: dict`: A dictionary of Spark configurations.
    * `dependencies: list[dict]`: A list of dependant libraries to install.

  The `dependencies` argument is a list of dictionaries.
  There are two types of dependencies supported.

  1. `PYPI` dependencies:
  ```json
  {
      "sourceType": "PYPI",
      "libraryName": "package_name",
      "libraryVersion": "package_version"
  }
  ```

  2. `FILE` dependencies:
  ```json
  {
      "sourceType": "FILE",
      "filePath": "s3://bucket/path/to/dependency.whl"
  }
  ```
  File types supported: `.whl`, `.zip`, `.jar`




  The `WherobotsSqlOperator` allows you to run SQL queries on the
  Wherobots cloud, from which you can build your ETLs and data
  transformation workflows by querying, manipulating, and producing
  datasets with WherobotsDB.

  Refer to the [Wherobots Documentation](https://docs.wherobots.com) and
  this [guidance](https://docs.wherobots.com/latest/tutorials/sedonadb/vector-data/vector-load/)
  to learn how to read data, transform data, and write results in Spatial
  SQL with WherobotsDB.

  Refer to the [Wherobots Apache Airflow Provider Documentation](https://docs.wherobots.com/latest/develop/airflow-provider)
  to get more detailed guidance about how to use the Wherobots Apache Airflow Provider.



  Below is an example Airflow DAG that executes a SQL query on Wherobots
  Cloud:

  ```python
  import datetime

  from airflow import DAG
  from airflow_providers_wherobots.operators.sql import WherobotsSqlOperator


  with DAG(
      dag_id="example_wherobots_sql_dag",
      start_date=datetime.datetime.now(),
      schedule="@hourly",
      catchup=False
  ):
      
      
      operator = WherobotsSqlOperator(
          task_id="execute_query",
          sql=f"""
          INSERT INTO wherobots.test.airflow_example
          SELECT id, geometry, confidence, geohash
          FROM wherobots_open_data.overture.places_place
          LIMIT 100
          """,
          return_last=False,
      )
  ```


pkgId: 8dc46d1c64d95ff6515bc87bc73b70e770eca0d7d218f7a38348ac291353d81d
name: python-airflow-providers-wherobots
arch: src
version: 1.1.1
epoch: 0
release: 1
summary: Airflow extension for communicating with Wherobots Cloud
url: https://pypi.org/project/airflow-providers-wherobots/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-providers-wherobots-1.1.1-1.src.rpm
checksum_type: sha256
description:
  Airflow providers to bring [Wherobots Cloud](https://www.wherobots.com)'s
  spatial compute to your data workflows and ETLs.



  If you use [Poetry](https://python-poetry.org) in your project, add the
  dependency with `poetry add`:

  ```
  $ poetry add airflow-providers-wherobots
  ```

  Otherwise, just `pip install` it:

  ```
  $ pip install airflow-providers-wherobots
  ```



  Create a Connection in Airflow. This can be done from Apache Airflow's
  [Web UI](https://airflow.apache.org/docs/apache-airflow/stable/howto/connection.html#creating-connection-ui),
  or from the command-line. The default Wherobots connection name is
  `wherobots_default`; if you use another name you must specify that name with the
  `wherobots_conn_id` parameter when initializing Wherobots operators.

  The only required fields for the connection are:
  - the Wherobots API endpoint in the `host` field;
  - your Wherobots API key in the `password` field.

  ```
  $ airflow connections add "wherobots_default" \
      --conn-type "generic" \
      --conn-host "api.cloud.wherobots.com" \
      --conn-password "$(< api.key)"
  ```





  Wherobots allows users to upload their code (.py, .jar), execute it on the
  cloud, and monitor the status of the run. Each execution is called a `Run`.

  The `WherobotsRunOperator` allows you to execute a `Run` on Wherobots Cloud.
  `WherobotsRunOperator` triggers the run according to the parameters you provide,
  and waits for the run to finish before completing the task.

  Refer to the [Wherobots Managed Storage Documentation](https://docs.wherobots.com/latest/develop/storage-management/storage/)
  to learn more about how to upload and manage your code on Wherobots Cloud.

  Below is an example of `WherobotsRunOperator`

  ```python
  operator = WherobotsRunOperator(
          task_id="your_task_id",
          name="airflow_operator_test_run_{{ ts_nodash }}",
          runtime=Runtime.TINY_A10_GPU,
          run_python={
              "uri": "s3://wbts-wbc-m97rcg45xi/42ly7mi0p1/data/shared/classification.py"
          },
          dag=dag,
          poll_logs=True,
      )
  ```



  The arguments for the `WherobotsRunOperator` constructor:

  * `name: str`: The name of the run. If not specified, a default name will be
    generated.
  * `runtime: Runtime`: The runtime dictates the size and amount of resources
    powering the run. The default value is `Runtime.TINY`; see available values
    [here](https://github.com/wherobots/wherobots-python-dbapi/blob/main/wherobots/db/runtime.py).
  * `poll_logs: bool`: If `True`, the operator will poll the logs of the run until it finishes.
    If `False`, the operator will not poll the logs, just track the status of the run.
  * `polling_interval`: The interval in seconds to poll the status of the run.
    The default value is `30`.
  * `timeout_seconds: int`: This parameter sets a maximum run time (in seconds) to prevent runaway processes.
  If the specified value exceeds the Max Workload Alive Hours, the timeout will be capped at the maximum permissible limit.
  Defaults to `3600` seconds (1 hour).
  * `run_python: dict`: A dictionary with the following keys:
    * `uri: str`: The URI of the Python file to run.
    * `args: list[str]`: A list of arguments to pass to the Python file.
  * `run_jar: dict`: A dictionary with the following keys:
    * `uri: str`: The URI of the JAR file to run.
    * `args: list[str]`: A list of arguments to pass to the JAR file.
    * `mainClass: str`: The main class to run in the JAR file.
  * `environment: dict`: A dictionary with the following keys:
    * `sparkDriverDiskGB: int`: The disk size for the Spark driver.
    * `sparkExecutorDiskGB: int`: The disk size for the Spark executor.
    * `sparkConfigs: dict`: A dictionary of Spark configurations.
    * `dependencies: list[dict]`: A list of dependant libraries to install.

  > [!IMPORTANT]
  > Wherobots Community Edition users only have access to the "Tiny" runtime type.

  > [!WARNING]
  > The `run_*` arguments are mutually exclusive, you can only specify one of them.

  The `dependencies` argument is a list of dictionaries. There are two
  types of dependencies supported.

  1. `PYPI` dependencies:
  ```json
  {
      "sourceType": "PYPI",
      "libraryName": "package_name",
      "libraryVersion": "package_version"
  }
  ```

  2. `FILE` dependencies:
  ```json
  {
      "sourceType": "FILE",
      "filePath": "s3://bucket/path/to/dependency.whl"
  }
  ```

  The file types supported are `.whl`, `.zip`, and `.jar`.




  The `WherobotsSqlOperator` allows you to run SQL queries on the Wherobots cloud,
  from which you can build your ETLs and data transformation workflows by
  querying, manipulating, and producing datasets with WherobotsDB.

  Refer to the [Wherobots Documentation](https://docs.wherobots.com) and this
  [guidance](https://docs.wherobots.com/latest/tutorials/sedonadb/vector-data/vector-load/)
  to learn how to read data, transform data, and write results in Spatial SQL with
  WherobotsDB.

  Refer to the [Wherobots Apache Airflow Provider Documentation](https://docs.wherobots.com/latest/develop/airflow-provider)
  to get more detailed guidance about how to use the Wherobots Apache Airflow Provider.



  Below is an example Airflow DAG that executes a SQL query on Wherobots Cloud:

  ```python
  import datetime

  from airflow import DAG
  from airflow_providers_wherobots.operators.sql import WherobotsSqlOperator


  with DAG(
      dag_id="example_wherobots_sql_dag",
      start_date=datetime.datetime.now(),
      schedule="@hourly",
      catchup=False
  ):
      
      
      operator = WherobotsSqlOperator(
          task_id="execute_query",
          return_last=False,
          runtime=Runtime.TINY,
          sql=f"""
          INSERT INTO wherobots.test.airflow_example
          SELECT id, geometry, confidence, geohash
          FROM wherobots_open_data.overture.places_place
          LIMIT 100
          """,
      )
  ```



  * `runtime: Runtime`: The runtime dictates the size and amount of resources
    powering the run. The default value is `Runtime.TINY`; see available values
    [here](https://github.com/wherobots/wherobots-python-dbapi/blob/main/wherobots/db/runtime.py).
  * `sql: str`: The Spatial SQL query to execute.


pkgId: 148850509a5c167b3bddab36208e434f7c4f129f1927d76d732559e44141d99c
name: python-airflow-pydantic
arch: src
version: 0.0.0
epoch: 0
release: 1
summary: airflow-pydantic
url: https://github.com/timkpaine/airflow-pydantic
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-pydantic-0.0.0-1.src.rpm
checksum_type: sha256
rpm_license:
  Apache License Version 2.0, January 2004 http://www.apache.org/licenses/  TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION  1. Definitions.  "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.  "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.  "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.  "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.  "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.  "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.  "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).  "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.  "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."  "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.  2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.  3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.  4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:  (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and  (b) You must cause any modified files to carry prominent notices stating that You changed the files; and  (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and  (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.  You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.  5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.  6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.  7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.  8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.  9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.  END OF TERMS AND CONDITIONS  APPENDIX: How to apply the Apache License to your work.  To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!)  The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.  Copyright 2024, the find-and-replace-me authors  Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at  http://www.apache.org/licenses/LICENSE-2.0  Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


pkgId: e7179ffc881ded42748816699e87249c857a6f53b3163b8d89033f153ea34ab4
name: python-airflow-python-sdk
arch: src
version: 1.0.1
epoch: 0
release: 1
summary: Airflow API (Stable)
url: https://pypi.org/project/airflow-python-sdk/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-python-sdk-1.0.1-1.src.rpm
checksum_type: sha256
description:
  *ConfigApi* | [**get_config**](docs/ConfigApi.md#get_config) | **GET** /config | Get current configuration
  *ConnectionApi* | [**delete_connection**](docs/ConnectionApi.md#delete_connection) | **DELETE** /connections/{connection_id} | Delete a connection
  *ConnectionApi* | [**get_connection**](docs/ConnectionApi.md#get_connection) | **GET** /connections/{connection_id} | Get a connection
  *ConnectionApi* | [**get_connections**](docs/ConnectionApi.md#get_connections) | **GET** /connections | List connections
  *ConnectionApi* | [**patch_connection**](docs/ConnectionApi.md#patch_connection) | **PATCH** /connections/{connection_id} | Update a connection
  *ConnectionApi* | [**post_connection**](docs/ConnectionApi.md#post_connection) | **POST** /connections | Create a connection
  *DAGApi* | [**get_dag**](docs/DAGApi.md#get_dag) | **GET** /dags/{dag_id} | Get basic information about a DAG
  *DAGApi* | [**get_dag_details**](docs/DAGApi.md#get_dag_details) | **GET** /dags/{dag_id}/details | Get a simplified representation of DAG
  *DAGApi* | [**get_dag_source**](docs/DAGApi.md#get_dag_source) | **GET** /dagSources/{file_token} | Get a source code
  *DAGApi* | [**get_dags**](docs/DAGApi.md#get_dags) | **GET** /dags | List DAGs
  *DAGApi* | [**get_task**](docs/DAGApi.md#get_task) | **GET** /dags/{dag_id}/tasks/{task_id} | Get simplified representation of a task
  *DAGApi* | [**get_tasks**](docs/DAGApi.md#get_tasks) | **GET** /dags/{dag_id}/tasks | Get tasks for DAG
  *DAGApi* | [**patch_dag**](docs/DAGApi.md#patch_dag) | **PATCH** /dags/{dag_id} | Update a DAG
  *DAGApi* | [**post_clear_task_instances**](docs/DAGApi.md#post_clear_task_instances) | **POST** /dags/{dag_id}/clearTaskInstances | Clear a set of task instances
  *DAGApi* | [**post_set_task_instances_state**](docs/DAGApi.md#post_set_task_instances_state) | **POST** /dags/{dag_id}/updateTaskInstancesState | Set a state of task instances
  *DAGRunApi* | [**delete_dag_run**](docs/DAGRunApi.md#delete_dag_run) | **DELETE** /dags/{dag_id}/dagRuns/{dag_run_id} | Delete a DAG run
  *DAGRunApi* | [**get_dag_run**](docs/DAGRunApi.md#get_dag_run) | **GET** /dags/{dag_id}/dagRuns/{dag_run_id} | Get a DAG run
  *DAGRunApi* | [**get_dag_runs**](docs/DAGRunApi.md#get_dag_runs) | **GET** /dags/{dag_id}/dagRuns | List DAG runs
  *DAGRunApi* | [**get_dag_runs_batch**](docs/DAGRunApi.md#get_dag_runs_batch) | **POST** /dags/~/dagRuns/list | List DAG runs (batch)
  *DAGRunApi* | [**post_dag_run**](docs/DAGRunApi.md#post_dag_run) | **POST** /dags/{dag_id}/dagRuns | Trigger a new DAG run
  *EventLogApi* | [**get_event_log**](docs/EventLogApi.md#get_event_log) | **GET** /eventLogs/{event_log_id} | Get a log entry
  *EventLogApi* | [**get_event_logs**](docs/EventLogApi.md#get_event_logs) | **GET** /eventLogs | List log entries
  *ImportErrorApi* | [**get_import_error**](docs/ImportErrorApi.md#get_import_error) | **GET** /importErrors/{import_error_id} | Get an import error
  *ImportErrorApi* | [**get_import_errors**](docs/ImportErrorApi.md#get_import_errors) | **GET** /importErrors | List import errors
  *MonitoringApi* | [**get_health**](docs/MonitoringApi.md#get_health) | **GET** /health | Get instance status
  *MonitoringApi* | [**get_version**](docs/MonitoringApi.md#get_version) | **GET** /version | Get version information
  *PoolApi* | [**delete_pool**](docs/PoolApi.md#delete_pool) | **DELETE** /pools/{pool_name} | Delete a pool
  *PoolApi* | [**get_pool**](docs/PoolApi.md#get_pool) | **GET** /pools/{pool_name} | Get a pool
  *PoolApi* | [**get_pools**](docs/PoolApi.md#get_pools) | **GET** /pools | List pools
  *PoolApi* | [**patch_pool**](docs/PoolApi.md#patch_pool) | **PATCH** /pools/{pool_name} | Update a pool
  *PoolApi* | [**post_pool**](docs/PoolApi.md#post_pool) | **POST** /pools | Create a pool
  *TaskInstanceApi* | [**get_extra_links**](docs/TaskInstanceApi.md#get_extra_links) | **GET** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/links | List extra links
  *TaskInstanceApi* | [**get_log**](docs/TaskInstanceApi.md#get_log) | **GET** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/logs/{task_try_number} | Get logs
  *TaskInstanceApi* | [**get_task_instance**](docs/TaskInstanceApi.md#get_task_instance) | **GET** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id} | Get a task instance
  *TaskInstanceApi* | [**get_task_instances**](docs/TaskInstanceApi.md#get_task_instances) | **GET** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances | List task instances
  *TaskInstanceApi* | [**get_task_instances_batch**](docs/TaskInstanceApi.md#get_task_instances_batch) | **POST** /dags/~/dagRuns/~/taskInstances/list | List task instances (batch)
  *VariableApi* | [**delete_variable**](docs/VariableApi.md#delete_variable) | **DELETE** /variables/{variable_key} | Delete a variable
  *VariableApi* | [**get_variable**](docs/VariableApi.md#get_variable) | **GET** /variables/{variable_key} | Get a variable
  *VariableApi* | [**get_variables**](docs/VariableApi.md#get_variables) | **GET** /variables | List variables
  *VariableApi* | [**patch_variable**](docs/VariableApi.md#patch_variable) | **PATCH** /variables/{variable_key} | Update a variable
  *VariableApi* | [**post_variables**](docs/VariableApi.md#post_variables) | **POST** /variables | Create a variable
  *XComApi* | [**get_xcom_entries**](docs/XComApi.md#get_xcom_entries) | **GET** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/xcomEntries | List XCom entries
  *XComApi* | [**get_xcom_entry**](docs/XComApi.md#get_xcom_entry) | **GET** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/xcomEntries/{xcom_key} | Get an XCom entry

   - [ClassReference](docs/ClassReference.md)
   - [ClearTaskInstance](docs/ClearTaskInstance.md)
   - [CollectionInfo](docs/CollectionInfo.md)
   - [Color](docs/Color.md)
   - [Config](docs/Config.md)
   - [ConfigOption](docs/ConfigOption.md)
   - [ConfigSection](docs/ConfigSection.md)
   - [Connection](docs/Connection.md)
   - [ConnectionAllOf](docs/ConnectionAllOf.md)
   - [ConnectionCollection](docs/ConnectionCollection.md)
   - [ConnectionCollectionAllOf](docs/ConnectionCollectionAllOf.md)
   - [ConnectionCollectionItem](docs/ConnectionCollectionItem.md)
   - [CronExpression](docs/CronExpression.md)
   - [DAG](docs/DAG.md)
   - [DAGCollection](docs/DAGCollection.md)
   - [DAGCollectionAllOf](docs/DAGCollectionAllOf.md)
   - [DAGDetail](docs/DAGDetail.md)
   - [DAGDetailAllOf](docs/DAGDetailAllOf.md)
   - [DAGRun](docs/DAGRun.md)
   - [DAGRunCollection](docs/DAGRunCollection.md)
   - [DAGRunCollectionAllOf](docs/DAGRunCollectionAllOf.md)
   - [DagState](docs/DagState.md)
   - [Error](docs/Error.md)
   - [EventLog](docs/EventLog.md)
   - [EventLogCollection](docs/EventLogCollection.md)
   - [EventLogCollectionAllOf](docs/EventLogCollectionAllOf.md)
   - [ExtraLink](docs/ExtraLink.md)
   - [ExtraLinkCollection](docs/ExtraLinkCollection.md)
   - [HealthInfo](docs/HealthInfo.md)
   - [HealthStatus](docs/HealthStatus.md)
   - [ImportError](docs/ImportError.md)
   - [ImportErrorCollection](docs/ImportErrorCollection.md)
   - [ImportErrorCollectionAllOf](docs/ImportErrorCollectionAllOf.md)
   - [InlineResponse200](docs/InlineResponse200.md)
   - [InlineResponse2001](docs/InlineResponse2001.md)
   - [ListDagRunsForm](docs/ListDagRunsForm.md)
   - [ListTaskInstanceForm](docs/ListTaskInstanceForm.md)
   - [MetadatabaseStatus](docs/MetadatabaseStatus.md)
   - [Pool](docs/Pool.md)
   - [PoolCollection](docs/PoolCollection.md)
   - [PoolCollectionAllOf](docs/PoolCollectionAllOf.md)
   - [RelativeDelta](docs/RelativeDelta.md)
   - [SLAMiss](docs/SLAMiss.md)
   - [ScheduleInterval](docs/ScheduleInterval.md)
   - [SchedulerStatus](docs/SchedulerStatus.md)
   - [Tag](docs/Tag.md)
   - [Task](docs/Task.md)
   - [TaskCollection](docs/TaskCollection.md)
   - [TaskCollectionAllOf](docs/TaskCollectionAllOf.md)
   - [TaskExtraLinks](docs/TaskExtraLinks.md)
   - [TaskInstance](docs/TaskInstance.md)
   - [TaskInstanceCollection](docs/TaskInstanceCollection.md)
   - [TaskInstanceCollectionAllOf](docs/TaskInstanceCollectionAllOf.md)
   - [TaskInstanceReference](docs/TaskInstanceReference.md)
   - [TaskInstanceReferenceCollection](docs/TaskInstanceReferenceCollection.md)
   - [TaskState](docs/TaskState.md)
   - [TimeDelta](docs/TimeDelta.md)
   - [TriggerRule](docs/TriggerRule.md)
   - [UpdateTaskInstancesState](docs/UpdateTaskInstancesState.md)
   - [Variable](docs/Variable.md)
   - [VariableAllOf](docs/VariableAllOf.md)
   - [VariableCollection](docs/VariableCollection.md)
   - [VariableCollectionAllOf](docs/VariableCollectionAllOf.md)
   - [VariableCollectionItem](docs/VariableCollectionItem.md)
   - [VersionInfo](docs/VersionInfo.md)
   - [WeightRule](docs/WeightRule.md)
   - [XCom](docs/XCom.md)
   - [XComAllOf](docs/XComAllOf.md)
   - [XComCollection](docs/XComCollection.md)
   - [XComCollectionAllOf](docs/XComCollectionAllOf.md)
   - [XComCollectionItem](docs/XComCollectionItem.md)


  - **Type**: HTTP basic authentication


  zach.z.liu@gmail.com

  If the OpenAPI document is large, imports in airflow_python_sdk.apis and airflow_python_sdk.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 airflow_python_sdk.api.default_api import DefaultApi`
  - `from airflow_python_sdk.model.pet import Pet`
  Solution 1:
  Before importing the package, adjust the maximum recursion limit as shown below:
  ```
  import sys
  sys.setrecursionlimit(1500)
  import airflow_python_sdk
  from airflow_python_sdk.apis import *
  from airflow_python_sdk.models import *
  ```


pkgId: f1d52bfe417cc0fe8327d03162cd5331e6450f6303c80648b3d9547c8326e2fa
name: python-airflow-schedule-insights
arch: src
version: 0.1.0a8
epoch: 0
release: 1
url: https://pypi.org/project/airflow-schedule-insights/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-schedule-insights-0.1.0a8-1.src.rpm
checksum_type: sha256
summary:
  An Apache Airflow plugin that visualizes DAG runs in a Gantt chart, predicts future runs, and identifies tasks that won't execute. Enhance your workflow monitoring and planning with intuitive visualizations.

description:
  The Airflow Schedule Insides Plugin for [Apache Airflow](https://github.com/apache/airflow) allows you to visualize DAG runs in a Gantt chart, predict future runs, and identify DAGs that won't run, providing a seamless and efficient workflow for managing your pipelines. Enhance your workflow monitoring and planning with intuitive visualizations.

  [![Tests Status](https://github.com/hipposys-ltd/airflow-schedule-insights/workflows/Tests/badge.svg)](https://github.com/hipposys-ltd/airflow-schedule-insights/actions)
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)



  - **Airflow Versions**: 2.4.0 or newer



  Add `airflow-schedule-insights` to your `requirements.txt` and restart the web server.



  1. Navigate to `Schedule Insides` in the `Browse` tab to access the plugin:

     ![Menu](https://github.com/hipposys-ltd/airflow-schedule-insights/releases/download/v0.1.0-alpha.0/plugin_menu.png)

  2. View all DAG runs in a Gantt chart:

     ![Gantt Chart Logs](https://github.com/hipposys-ltd/airflow-schedule-insights/releases/download/v0.1.0-alpha.0/gantt_chart_history_logs.png)

  3. Toggle the `Show Future Runs?` option to predict the next runs for your DAGs and generate a list of all the DAGs that won't run.

     **Note**: All event-driven DAGs (scheduled by datasets and triggers) are predicted only to their next run.

  4. Future DAGs will be highlighted in gray on the Gantt chart:

     ![Gantt Chart Future Runs](https://github.com/hipposys-ltd/airflow-schedule-insights/releases/download/v0.1.0-alpha.0/gantt_chart_future_runs.png)

  5. A table of future runs will be displayed, with events ordered by their start date:

     ![Future Runs Table](https://github.com/hipposys-ltd/airflow-schedule-insights/releases/download/v0.1.0-alpha.0/future_runs_table.png)

  6. Below this, you will find a table listing all the DAGs that won't run:

     ![Missing Future Runs Table](https://github.com/hipposys-ltd/airflow-schedule-insights/releases/download/v0.1.0-alpha.0/missing_future_runs_table.png)


pkgId: 604885854b99a5484b990eb244d6e4171e6ad0cd20e13aac67c4378a39ce744d
name: python-airflow-slurm-executor
arch: src
version: 0.0.8
epoch: 0
release: 1
summary: Plugin for Airflow to connect to slurm clusters
url: https://github.com/sunset666/Airflow-Slurm-Executor
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-slurm-executor-0.0.8-1.src.rpm
checksum_type: sha256
description:
  [![PyPI](https://img.shields.io/pypi/v/airflow-slurm-executor)](https://pypi.org/project/airflow-slurm-executor/)
  [![PyPI - Downloads](https://img.shields.io/pypi/dm/airflow-slurm-executor)](https://pypi.org/project/airflow-slurm-executor/)



  The Slurm executor is based on work done by Hanno Holties in https://git.astron.nl/eosc/slurmexecutorplugin, this one
  extends the use of parameters to be passed to the Slurm cluster so one can control the partition, the account, and other
  details about the jobs submission.

  It was changed from **srun** to **sbatch** as a default command to interact with the cluster, so multiple jobs can be
  submitted at a time.


  To use the plugin after installing the package change
  the AIRFLOW configuration file as such:
  ```


  executor = airflow_slurm_executor.SlurmExecutor
  ```



  One can pass the **executor_config** parameter in the default_args attribute to any DAG to customize some aspects of the
  job.
  ```
  with DAG(
      dag_id="my_dag",
      start_date=pendulum.datetime(2016, 1, 1),
      schedule="@daily",
      default_args={"executor_config": {"SlurmExecutor: {"attribute": "value"}}},
  ):
  ```
  The attributes implemented so far are:

  * **cpu_nodes**: Gives one control on which nodes to run this DAG, used as **nodelist** in slurm.
  * **gpu_config**: Gives one control on which gpu parameters can be used. The current supported schema is:
  ```{'gres': GPU_REQUIRED, 'queue': SPECIAL_GPU_PARTITION}``` If the queue/partition where the DAG task will be
  executed matches the parameter sent here, **cpu_nodes** will be ignored in favor of the **gres** node selecton.
  * **output_path**: Gives one control over where the slurm output log will be generated, remember the slurm nodes should
  have access to this location.
  * **account**: Gives one control over which account the jobs are going to be linked to.


pkgId: f31323904a935bdec0f168b343e6fdcb90885ceec2e9707eebff68d489512421
name: python-airflow-ssis-provider
arch: src
version: 1.0.8
epoch: 0
release: 1
summary: A provider package for Apache Airflow to run SSIS Packages
url: https://github.com/gschuurman/airflow-ssis-provider
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-ssis-provider-1.0.8-1.src.rpm
checksum_type: sha256
description:
  This is an operator and sensor that allows you to connect to SSIS and execute packges via Apache Airflow 2.8.0 or higher


  - mike-hosseini [Original Work](https://github.com/mike-hosseini/airflow-sql-server-plugin)


pkgId: 7553dd13c2b112d8bef2452b1fe3a3934fc951802085e227745b68bd86c91ec0
name: python-airflow-tools
arch: src
version: 0.10.0
epoch: 0
release: 1
summary: please add a summary manually as the author left a blank one
url: https://pypi.org/project/airflow-tools/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-tools-0.10.0-1.src.rpm
checksum_type: sha256
description:
  <div align="center">
    <!-- Logo -->
    <img src="./media/images/logo.webp" alt="logo" width="400"/>

    <!-- Add some space between the logo and badges -->
    <br/>

    <!-- Badges -->
    <a href="https://github.com/DeepKernelLabs/airflow-tools/actions?query=branch%3Amain">
      <img src="https://github.com/DeepKernelLabs/airflow-tools/actions/workflows/lint-and-test.yml/badge.svg?branch=main" alt="Badge 1"/>
    </a>
    <a href="https://opensource.org/licenses/Apache-2.0">
      <img src="https://img.shields.io/badge/License-Apache_2.0-blue.svg" alt="Badge 2"/>
    </a>
    <a href="https://img.shields.io/badge/python-3.10%20%7C%203.11-blue">
      <img src="https://img.shields.io/badge/python-3.10%20%7C%203.11-blue" alt="Badge 3"/>
    </a>

    <br/><br/>
  </div>

  Collection of Operators, Hooks and utility functions aimed at facilitating ELT pipelines.



  This is an opinionated library focused on ELT, which means that our goal is to facilitate loading data from various data sources into a data lake, as well as loading from a data lake to a data warehouse and running transformations inside a data warehouse.

  Airflow's operators notoriously suffer from an NxM problem, where if you have N data sources and M destinations you end up with NxM different operators (FTPToS3, S3ToFTP, PostgresToS3, FTPToPostgres etc.). We aim to mitigate this issue in two ways:

  1. **ELT focused:** cuts down on the number of possible sources and destinations, as we always want to do `source` -> `data lake` -> `data warehouse`.
  2. **Building common interfaces:** where possible we want to treat similar data sources in the same way. Airflow recently has done a good job at this by deprecating all specific SQL operators (`PostgresOperator`, `MySQLOperator`, etc.) in favour of a more generic `SQLExecuteQueryOperator` that works with any hook compatible with the dbapi2 interface. We take this philosophy and apply it any time we can, like providing a unified interface for all filesystem data sources that then enables us to have much more generic operators like `SQLToFilesystem`, `FilesystemToFilesystem`.



  We provide a thin wrapper over many hooks for filesystem data sources. These wrappers use the hook's specific methods to implement some common methods that we then use inside the operators without needing to worry about the hook's specific type. For now we provide support for the following filesystem hooks, some of them native or that belong to other providers and others implemented in this library:

  - WasbHook (Blob Storage/ADLS)
  - S3Hook (S3)
  - SFTPHook (SFTP)
  - FSHook (Local Filesystem)
  - AzureFileShareServicePrincipalHook (Azure Fileshare with support for service principal authentication)
  - AzureDatabricksVolumeHook (Unity Catalog Columes)

  Operators can create the correct hook at runtime by passing a connection ID with a connection type of `aws` or `adls`. Example code:

  ```python
  conn = BaseHook.get_connection(conn_id)
  hook = conn.get_hook()
  ```




  Creates a
  Example usage:

  ```python
  HttpToFilesystem(
      task_id='test_http_to_data_lake',
      http_conn_id='http_test',
      data_lake_conn_id='data_lake_test',
      data_lake_path=s3_bucket + '/source1/entity1/{{ ds }}/',
      endpoint='/api/users',
      method='GET',
      jmespath_expression='data[:2].{id: id, email: email}',
  )
  ```




  This sensor checks if a file exists in a generic filesystem.
  Type of filesystem is determined by the connection type.

  Current supported filesystem connections are (`conn_type` parameter):

  - `aws` (s3)
  - `azure_databricks_volume`
  - `azure_file_share_sp`
  - `sftp`
  - `fs` (LocalFileSystem)
  - `google_cloud_platform`
  - `wasb` (BlobStorageFilesystem)

  For example, with a connection with a S3 filesystem:

  ```bash
  AIRFLOW_CONN_TEST_S3_FILESYSTEM='{"conn_type": "aws", "extra": {"endpoint_url": "http://localhost:9090"}}'
  ```

  You can use a sensor like this:
  ```python
  FilesystemFileSensor(
      task_id='check_file_existence_exist_in_s3',
      filesystem_conn_id='test_s3_filesystem',
      source_path='data_lake/2023/10/01/test.csv',
      poke_interval=60,
      timeout=300,
  )
  ```


  APIs often return the response we are interested in wrapped in a key. JMESPATH expressions are a query language that we can use to select the response we are interested in. You can find more information on JMESPATH expressions and test them [here](https://jmespath.org/).

  The above expression selects the first two objects inside the key data, and then only the `id` and `email` attributes in each object. An example response can be found [here](https://reqres.in/api/users).



  To guarantee that the library works as intended we have an integration test that attempts to install it in a fresh virtual environment, and we aim to have a test for each Operator.


  The `lint-and-test.yml` [workflow](.github/workflows/lint-and-test.yml) sets up the necessary environment variables, but if you want to run them locally you will need the following environment variables:

  ```shell
  AIRFLOW_CONN_DATA_LAKE_TEST='{"conn_type": "aws", "extra": {"endpoint_url": "http://localhost:9090"}}'
  AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
  AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
  AWS_DEFAULT_REGION=us-east-1
  TEST_BUCKET=data_lake
  S3_ENDPOINT_URL=http://localhost:9090

  AIRFLOW_CONN_DATA_LAKE_TEST='{"conn_type": "aws", "extra": {"endpoint_url": "http://localhost:9090"}}' AIRFLOW_CONN_SFTP_TEST='{"conn_type": "sftp", "host": "localhost", "port": 22, "login": "test_user", "password": "pass"}' AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY TEST_BUCKET=data_lake S3_ENDPOINT_URL=http://localhost:9090 poetry run pytest tests/ --doctest-modules --junitxml=junit/test-results.xml --cov=com --cov-report=xml --cov-report=html
  AIRFLOW_CONN_SFTP_TEST='{"conn_type": "sftp", "host": "localhost", "port": 22, "login": "test_user", "password": "pass"}'
  ```

  And you also need to run [Adobe's S3 mock container](https://github.com/adobe/S3Mock) like this:

  ```shell
  docker run --rm -p 9090:9090 -e initialBuckets=data_lake -e debug=true -t adobe/s3mock
  ```

  and the SFTP container like this:

  ```shell
  docker run -p 22:22 -d atmoz/sftp test_user:pass:::root_folder
  ```






  If your or your team are using slack, you can send and receive notifications about failed dags using `dag_failure_slack_notification_webhook` method
  (in `notifications.slack.webhook`). You need to create a new Slack App and enable the "Incoming Webhooks". More info about sending messages using
  Slack Incoming Webhooks [here](https://api.slack.com/messaging/webhooks).

  You need to create a new Airflow connection with the name `SLACK_WEBHOOK_NOTIFICATION_CONN` (or `AIRFLOW_CONN_SLACK_WEBHOOK_NOTIFICATION_CONN`
  if you are using environment variables.)

  Default message will have the format below:

  ![image](https://github.com/DeepKernelLabs/airflow-tools/assets/152852247/52a5bf95-21bc-4c3b-8093-79953c0c5d61)

  But you can custom this message providing the below parameters:

  * **_text (str)[optional]:_** the main message will appear in the notification. If you provide your slack block will be ignored.
  * **_blocks (dict)[optional]:_** you can provide your custom slack blocks for your message.
  * **_include_blocks (bool)[optional]:_** indicates if the default block have to be used. If you provide your own blocks will be ignored.
  * **_source (typing.Literal['DAG', 'TASK'])[optional]:_** source of the failure (dag or task). Default: `DAG`.
  * **_image_url: (str)[optional]_** image url for you notification (`accessory`). You can use `AIRFLOW_TOOLS__SLACK_NOTIFICATION_IMG_URL` instead.



  ```python
  from datetime import datetime, timedelta

  from airflow import DAG

  from airflow.operators.bash import BashOperator
  from airflow_tools.notifications.slack.webhook import (
      dag_failure_slack_notification_webhook,    # <--- IMPORT
  )

  with DAG(
      "slack_notification_dkl",
      description="Slack notification on fail",
      schedule=timedelta(days=1),
      start_date=datetime(2021, 1, 1),
      catchup=False,
      tags=["example"],
      on_failure_callback=dag_failure_slack_notification_webhook(),  # <--- HERE
  ) as dag:

      t = BashOperator(
          task_id="failing_test",
          depends_on_past=False,
          bash_command="exit 1",
          retries=1,
      )


  if __name__ == "__main__":
      dag.test()
  ```

  You can used only in a task providing the parameter `source='TASK'`:

  ```python
      t = BashOperator(
          task_id="failing_test",
          depends_on_past=False,
          bash_command="exit 1",
          retries=1,
          on_failure_callback=dag_failure_slack_notification_webhook(source='TASK')
      )
  ```

  You can add a custom message (ignoring the slack blocks for a formatted message):

  ```python
  with DAG(
      ...
      on_failure_callback=dag_failure_slack_notification_webhook(
          text='The task {{ ti.task_id }} failed',
          include_blocks=False
      ),
  ) as dag:
  ```

  Or you can pass your own Slack blocks:

  ```python
  custom_slack_blocks = {
      "type": "section",
      "text": {
          "type": "mrkdwn",
          "text": "<https://api.slack.com/reference/block-kit/block|This is an example using custom Slack blocks>"
      }
  }

  with DAG(
      ...
      on_failure_callback=dag_failure_slack_notification_webhook(
          blocks=custom_slack_blocks
      ),
  ) as dag:
  ```


pkgId: 141ccdc4f60323e29ff9e7e4dd45b9fab58ff981f2e78c40802efddd4ef2e3b5
name: python-airflow-tools
arch: src
version: 0.9.0
epoch: 0
release: 1
summary: please add a summary manually as the author left a blank one
url: https://pypi.org/project/airflow-tools/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-tools-0.9.0-1.src.rpm
checksum_type: sha256
description:
  <div align="center">
    <!-- Logo -->
    <img src="./media/images/logo.webp" alt="logo" width="400"/>

    <!-- Add some space between the logo and badges -->
    <br/>

    <!-- Badges -->
    <a href="https://github.com/DeepKernelLabs/airflow-tools/actions?query=branch%3Amain">
      <img src="https://github.com/DeepKernelLabs/airflow-tools/actions/workflows/lint-and-test.yml/badge.svg?branch=main" alt="Badge 1"/>
    </a>
    <a href="https://opensource.org/licenses/Apache-2.0">
      <img src="https://img.shields.io/badge/License-Apache_2.0-blue.svg" alt="Badge 2"/>
    </a>
    <a href="https://img.shields.io/badge/python-3.10%20%7C%203.11-blue">
      <img src="https://img.shields.io/badge/python-3.10%20%7C%203.11-blue" alt="Badge 3"/>
    </a>

    <br/><br/>
  </div>

  Collection of Operators, Hooks and utility functions aimed at facilitating ELT pipelines.



  This is an opinionated library focused on ELT, which means that our goal is to facilitate loading data from various data sources into a data lake, as well as loading from a data lake to a data warehouse and running transformations inside a data warehouse.

  Airflow's operators notoriously suffer from an NxM problem, where if you have N data sources and M destinations you end up with NxM different operators (FTPToS3, S3ToFTP, PostgresToS3, FTPToPostgres etc.). We aim to mitigate this issue in two ways:

  1. **ELT focused:** cuts down on the number of possible sources and destinations, as we always want to do `source` -> `data lake` -> `data warehouse`.
  2. **Building common interfaces:** where possible we want to treat similar data sources in the same way. Airflow recently has done a good job at this by deprecating all specific SQL operators (`PostgresOperator`, `MySQLOperator`, etc.) in favour of a more generic `SQLExecuteQueryOperator` that works with any hook compatible with the dbapi2 interface. We take this philosophy and apply it any time we can, like providing a unified interface for all filesystem data sources that then enables us to have much more generic operators like `SQLToFilesystem`, `FilesystemToFilesystem`.



  We provide a thin wrapper over many hooks for filesystem data sources. These wrappers use the hook's specific methods to implement some common methods that we then use inside the operators without needing to worry about the hook's specific type. For now we provide support for the following filesystem hooks, some of them native or that belong to other providers and others implemented in this library:

  - WasbHook (Blob Storage/ADLS)
  - S3Hook (S3)
  - SFTPHook (SFTP)
  - FSHook (Local Filesystem)
  - AzureFileShareServicePrincipalHook (Azure Fileshare with support for service principal authentication)
  - AzureDatabricksVolumeHook (Unity Catalog Columes)

  Operators can create the correct hook at runtime by passing a connection ID with a connection type of `aws` or `adls`. Example code:

  ```python
  conn = BaseHook.get_connection(conn_id)
  hook = conn.get_hook()
  ```




  Creates a
  Example usage:

  ```python
  HttpToFilesystem(
      task_id='test_http_to_data_lake',
      http_conn_id='http_test',
      data_lake_conn_id='data_lake_test',
      data_lake_path=s3_bucket + '/source1/entity1/{{ ds }}/',
      endpoint='/api/users',
      method='GET',
      jmespath_expression='data[:2].{id: id, email: email}',
  )
  ```


  APIs often return the response we are interested in wrapped in a key. JMESPATH expressions are a query language that we can use to select the response we are interested in. You can find more information on JMESPATH expressions and test them [here](https://jmespath.org/).

  The above expression selects the first two objects inside the key data, and then only the `id` and `email` attributes in each object. An example response can be found [here](https://reqres.in/api/users).



  To guarantee that the library works as intended we have an integration test that attempts to install it in a fresh virtual environment, and we aim to have a test for each Operator.


  The `lint-and-test.yml` [workflow](.github/workflows/lint-and-test.yml) sets up the necessary environment variables, but if you want to run them locally you will need the following environment variables:

  ```shell
  AIRFLOW_CONN_DATA_LAKE_TEST='{"conn_type": "aws", "extra": {"endpoint_url": "http://localhost:9090"}}'
  AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
  AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
  AWS_DEFAULT_REGION=us-east-1
  TEST_BUCKET=data_lake
  S3_ENDPOINT_URL=http://localhost:9090

  AIRFLOW_CONN_DATA_LAKE_TEST='{"conn_type": "aws", "extra": {"endpoint_url": "http://localhost:9090"}}' AIRFLOW_CONN_SFTP_TEST='{"conn_type": "sftp", "host": "localhost", "port": 22, "login": "test_user", "password": "pass"' AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY TEST_BUCKET=data_lake S3_ENDPOINT_URL=http://localhost:9090 poetry run pytest tests/ --doctest-modules --junitxml=junit/test-results.xml --cov=com --cov-report=xml --cov-report=html
  AIRFLOW_CONN_SFTP_TEST='{"conn_type": "sftp", "host": "localhost", "port": 22, "login": "test_user", "password": "pass"}'
  ```

  And you also need to run [Adobe's S3 mock container](https://github.com/adobe/S3Mock) like this:

  ```shell
  docker run --rm -p 9090:9090 -e initialBuckets=data_lake -e debug=true -t adobe/s3mock
  ```

  and the SFTP container like this:

  ```shell
  docker run -p 22:22 -d atmoz/sftp test_user:pass:::root_folder
  ```






  If your or your team are using slack, you can send and receive notifications about failed dags using `dag_failure_slack_notification_webhook` method
  (in `notifications.slack.webhook`). You need to create a new Slack App and enable the "Incoming Webhooks". More info about sending messages using
  Slack Incoming Webhooks [here](https://api.slack.com/messaging/webhooks).

  You need to create a new Airflow connection with the name `SLACK_WEBHOOK_NOTIFICATION_CONN` (or `AIRFLOW_CONN_SLACK_WEBHOOK_NOTIFICATION_CONN`
  if you are using environment variables.)

  Default message will have the format below:

  ![image](https://github.com/DeepKernelLabs/airflow-tools/assets/152852247/52a5bf95-21bc-4c3b-8093-79953c0c5d61)

  But you can custom this message providing the below parameters:

  * **_text (str)[optional]:_** the main message will appear in the notification. If you provide your slack block will be ignored.
  * **_blocks (dict)[optional]:_** you can provide your custom slack blocks for your message.
  * **_include_blocks (bool)[optional]:_** indicates if the default block have to be used. If you provide your own blocks will be ignored.
  * **_source (typing.Literal['DAG', 'TASK'])[optional]:_** source of the failure (dag or task). Default: `DAG`.
  * **_image_url: (str)[optional]_** image url for you notification (`accessory`). You can use `AIRFLOW_TOOLS__SLACK_NOTIFICATION_IMG_URL` instead.



  ```python
  from datetime import datetime, timedelta

  from airflow import DAG

  from airflow.operators.bash import BashOperator
  from airflow_tools.notifications.slack.webhook import (
      dag_failure_slack_notification_webhook,    # <--- IMPORT
  )

  with DAG(
      "slack_notification_dkl",
      description="Slack notification on fail",
      schedule=timedelta(days=1),
      start_date=datetime(2021, 1, 1),
      catchup=False,
      tags=["example"],
      on_failure_callback=dag_failure_slack_notification_webhook(),  # <--- HERE
  ) as dag:

      t = BashOperator(
          task_id="failing_test",
          depends_on_past=False,
          bash_command="exit 1",
          retries=1,
      )


  if __name__ == "__main__":
      dag.test()
  ```

  You can used only in a task providing the parameter `source='TASK'`:

  ```python
      t = BashOperator(
          task_id="failing_test",
          depends_on_past=False,
          bash_command="exit 1",
          retries=1,
          on_failure_callback=dag_failure_slack_notification_webhook(source='TASK')
      )
  ```

  You can add a custom message (ignoring the slack blocks for a formatted message):

  ```python
  with DAG(
      ...
      on_failure_callback=dag_failure_slack_notification_webhook(
          text='The task {{ ti.task_id }} failed',
          include_blocks=False
      ),
  ) as dag:
  ```

  Or you can pass your own Slack blocks:

  ```python
  custom_slack_blocks = {
      "type": "section",
      "text": {
          "type": "mrkdwn",
          "text": "<https://api.slack.com/reference/block-kit/block|This is an example using custom Slack blocks>"
      }
  }

  with DAG(
      ...
      on_failure_callback=dag_failure_slack_notification_webhook(
          blocks=custom_slack_blocks
      ),
  ) as dag:
  ```


pkgId: 48206b9da6395d90c8df02367ad4d0fbef809565de9a7379a57e4fd96e149f5d
name: python-airflow-tools
arch: src
version: 0.9.4
epoch: 0
release: 1
summary: please add a summary manually as the author left a blank one
url: https://pypi.org/project/airflow-tools/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflow-tools-0.9.4-1.src.rpm
checksum_type: sha256
description:
  <div align="center">
    <!-- Logo -->
    <img src="./media/images/logo.webp" alt="logo" width="400"/>

    <!-- Add some space between the logo and badges -->
    <br/>

    <!-- Badges -->
    <a href="https://github.com/DeepKernelLabs/airflow-tools/actions?query=branch%3Amain">
      <img src="https://github.com/DeepKernelLabs/airflow-tools/actions/workflows/lint-and-test.yml/badge.svg?branch=main" alt="Badge 1"/>
    </a>
    <a href="https://opensource.org/licenses/Apache-2.0">
      <img src="https://img.shields.io/badge/License-Apache_2.0-blue.svg" alt="Badge 2"/>
    </a>
    <a href="https://img.shields.io/badge/python-3.10%20%7C%203.11-blue">
      <img src="https://img.shields.io/badge/python-3.10%20%7C%203.11-blue" alt="Badge 3"/>
    </a>

    <br/><br/>
  </div>

  Collection of Operators, Hooks and utility functions aimed at facilitating ELT pipelines.



  This is an opinionated library focused on ELT, which means that our goal is to facilitate loading data from various data sources into a data lake, as well as loading from a data lake to a data warehouse and running transformations inside a data warehouse.

  Airflow's operators notoriously suffer from an NxM problem, where if you have N data sources and M destinations you end up with NxM different operators (FTPToS3, S3ToFTP, PostgresToS3, FTPToPostgres etc.). We aim to mitigate this issue in two ways:

  1. **ELT focused:** cuts down on the number of possible sources and destinations, as we always want to do `source` -> `data lake` -> `data warehouse`.
  2. **Building common interfaces:** where possible we want to treat similar data sources in the same way. Airflow recently has done a good job at this by deprecating all specific SQL operators (`PostgresOperator`, `MySQLOperator`, etc.) in favour of a more generic `SQLExecuteQueryOperator` that works with any hook compatible with the dbapi2 interface. We take this philosophy and apply it any time we can, like providing a unified interface for all filesystem data sources that then enables us to have much more generic operators like `SQLToFilesystem`, `FilesystemToFilesystem`.



  We provide a thin wrapper over many hooks for filesystem data sources. These wrappers use the hook's specific methods to implement some common methods that we then use inside the operators without needing to worry about the hook's specific type. For now we provide support for the following filesystem hooks, some of them native or that belong to other providers and others implemented in this library:

  - WasbHook (Blob Storage/ADLS)
  - S3Hook (S3)
  - SFTPHook (SFTP)
  - FSHook (Local Filesystem)
  - AzureFileShareServicePrincipalHook (Azure Fileshare with support for service principal authentication)
  - AzureDatabricksVolumeHook (Unity Catalog Columes)

  Operators can create the correct hook at runtime by passing a connection ID with a connection type of `aws` or `adls`. Example code:

  ```python
  conn = BaseHook.get_connection(conn_id)
  hook = conn.get_hook()
  ```




  Creates a
  Example usage:

  ```python
  HttpToFilesystem(
      task_id='test_http_to_data_lake',
      http_conn_id='http_test',
      data_lake_conn_id='data_lake_test',
      data_lake_path=s3_bucket + '/source1/entity1/{{ ds }}/',
      endpoint='/api/users',
      method='GET',
      jmespath_expression='data[:2].{id: id, email: email}',
  )
  ```


  APIs often return the response we are interested in wrapped in a key. JMESPATH expressions are a query language that we can use to select the response we are interested in. You can find more information on JMESPATH expressions and test them [here](https://jmespath.org/).

  The above expression selects the first two objects inside the key data, and then only the `id` and `email` attributes in each object. An example response can be found [here](https://reqres.in/api/users).



  To guarantee that the library works as intended we have an integration test that attempts to install it in a fresh virtual environment, and we aim to have a test for each Operator.


  The `lint-and-test.yml` [workflow](.github/workflows/lint-and-test.yml) sets up the necessary environment variables, but if you want to run them locally you will need the following environment variables:

  ```shell
  AIRFLOW_CONN_DATA_LAKE_TEST='{"conn_type": "aws", "extra": {"endpoint_url": "http://localhost:9090"}}'
  AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
  AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
  AWS_DEFAULT_REGION=us-east-1
  TEST_BUCKET=data_lake
  S3_ENDPOINT_URL=http://localhost:9090

  AIRFLOW_CONN_DATA_LAKE_TEST='{"conn_type": "aws", "extra": {"endpoint_url": "http://localhost:9090"}}' AIRFLOW_CONN_SFTP_TEST='{"conn_type": "sftp", "host": "localhost", "port": 22, "login": "test_user", "password": "pass"}' AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY TEST_BUCKET=data_lake S3_ENDPOINT_URL=http://localhost:9090 poetry run pytest tests/ --doctest-modules --junitxml=junit/test-results.xml --cov=com --cov-report=xml --cov-report=html
  AIRFLOW_CONN_SFTP_TEST='{"conn_type": "sftp", "host": "localhost", "port": 22, "login": "test_user", "password": "pass"}'
  ```

  And you also need to run [Adobe's S3 mock container](https://github.com/adobe/S3Mock) like this:

  ```shell
  docker run --rm -p 9090:9090 -e initialBuckets=data_lake -e debug=true -t adobe/s3mock
  ```

  and the SFTP container like this:

  ```shell
  docker run -p 22:22 -d atmoz/sftp test_user:pass:::root_folder
  ```






  If your or your team are using slack, you can send and receive notifications about failed dags using `dag_failure_slack_notification_webhook` method
  (in `notifications.slack.webhook`). You need to create a new Slack App and enable the "Incoming Webhooks". More info about sending messages using
  Slack Incoming Webhooks [here](https://api.slack.com/messaging/webhooks).

  You need to create a new Airflow connection with the name `SLACK_WEBHOOK_NOTIFICATION_CONN` (or `AIRFLOW_CONN_SLACK_WEBHOOK_NOTIFICATION_CONN`
  if you are using environment variables.)

  Default message will have the format below:

  ![image](https://github.com/DeepKernelLabs/airflow-tools/assets/152852247/52a5bf95-21bc-4c3b-8093-79953c0c5d61)

  But you can custom this message providing the below parameters:

  * **_text (str)[optional]:_** the main message will appear in the notification. If you provide your slack block will be ignored.
  * **_blocks (dict)[optional]:_** you can provide your custom slack blocks for your message.
  * **_include_blocks (bool)[optional]:_** indicates if the default block have to be used. If you provide your own blocks will be ignored.
  * **_source (typing.Literal['DAG', 'TASK'])[optional]:_** source of the failure (dag or task). Default: `DAG`.
  * **_image_url: (str)[optional]_** image url for you notification (`accessory`). You can use `AIRFLOW_TOOLS__SLACK_NOTIFICATION_IMG_URL` instead.



  ```python
  from datetime import datetime, timedelta

  from airflow import DAG

  from airflow.operators.bash import BashOperator
  from airflow_tools.notifications.slack.webhook import (
      dag_failure_slack_notification_webhook,    # <--- IMPORT
  )

  with DAG(
      "slack_notification_dkl",
      description="Slack notification on fail",
      schedule=timedelta(days=1),
      start_date=datetime(2021, 1, 1),
      catchup=False,
      tags=["example"],
      on_failure_callback=dag_failure_slack_notification_webhook(),  # <--- HERE
  ) as dag:

      t = BashOperator(
          task_id="failing_test",
          depends_on_past=False,
          bash_command="exit 1",
          retries=1,
      )


  if __name__ == "__main__":
      dag.test()
  ```

  You can used only in a task providing the parameter `source='TASK'`:

  ```python
      t = BashOperator(
          task_id="failing_test",
          depends_on_past=False,
          bash_command="exit 1",
          retries=1,
          on_failure_callback=dag_failure_slack_notification_webhook(source='TASK')
      )
  ```

  You can add a custom message (ignoring the slack blocks for a formatted message):

  ```python
  with DAG(
      ...
      on_failure_callback=dag_failure_slack_notification_webhook(
          text='The task {{ ti.task_id }} failed',
          include_blocks=False
      ),
  ) as dag:
  ```

  Or you can pass your own Slack blocks:

  ```python
  custom_slack_blocks = {
      "type": "section",
      "text": {
          "type": "mrkdwn",
          "text": "<https://api.slack.com/reference/block-kit/block|This is an example using custom Slack blocks>"
      }
  }

  with DAG(
      ...
      on_failure_callback=dag_failure_slack_notification_webhook(
          blocks=custom_slack_blocks
      ),
  ) as dag:
  ```


pkgId: a32c68b215ec7b7515ef5a98dbe0a4cd6305315da929578cf41f7775181a637d
name: python-airflowctl
arch: src
version: 0.2.11
epoch: 0
release: 1
url: https://github.com/kaxil/airflowctl
rpm_license: Apache-2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airflowctl-0.2.11-1.src.rpm
checksum_type: sha256
summary:
  A CLI tool to streamline getting started with Apache Airflow™ and managing multiple Airflow projects.

description:
  example_dag_basic | example_dag_basic.py | airflow | True

  $ airflowctl airflow standalone
  ```
  Or you can activate the virtual environment first and then run the commands as shown below.
  Example:
  ```shell

  source .venv/bin/activate

  source .env
  airflow version
  ```
  To add a new DAG, add the DAG file to the `dags` directory.
  To edit an existing DAG, edit the DAG file in the `dags` directory.
  The changes will be reflected in the Airflow web server.

  `airflowctl` by default uses SQLite as the backend database and `SequentialExecutor` as the executor.
  However, if you want to use other databases or executors, you can stop the project and
  either a) edit the `airflow.cfg` file or b) add environment variables to the `.env` file.
  Example:
  ```shell

  airflowctl stop my_airflow_project


  echo "AIRFLOW__DATABASE__SQL_ALCHEMY_CONN=postgresql+psycopg2://airflow:airflow@localhost:5432/airflow" >> .env
  echo "AIRFLOW__CORE__EXECUTOR=LocalExecutor" >> .env

  airflowctl start my_airflow_project
  ```
  Check the [Airflow documentation](https://airflow.apache.org/docs/apache-airflow/stable/configurations-ref.html)
  for all the available Airflow configurations.

  For Airflow >= 2.6, you can run `LocalExecutor` with `sqlite` as the backend database by
  adding the following environment variable to the `.env` file:
  ```shell
  _AIRFLOW__SKIP_DATABASE_EXECUTOR_COMPATIBILITY_CHECK=1
  AIRFLOW__CORE__EXECUTOR=LocalExecutor
  ```
  > [!WARNING]
  > Sqlite is not recommended for production use. Use it only for development and testing only.

  For more information and options, you can use the `--help` flag with each command.

  `airflowctl` can be used with other Airflow projects as long as the project structure is the same.

  `airflowctl` can be used with [Astro CLI](https://github.com/astronomer/astro-cli) projects too.
  While `airflowctl` is a tool that allows you to run Airflow locally using virtual environments, Astro CLI
  allows you to run Airflow locally using docker.
  `airflowctl` can read the `airflow_settings.yaml` file generated by Astro CLI for reading connections & variables. It
  will then reuse it as `settings` file for `airflowctl`.
  For example, if you have an Astro CLI project:
  - Run the `airflowctl init . --build-start` command to initialize `airflowctl` from the project directory.
  Press `y` to continue when prompted.
  - It will then ask you for the Airflow version, enter the version you are using, by
  default uses the latest Airflow version, press enter to continue
  - It will use the installed Python version as the project's python version. If you
  want to use a different Python version, you can specify it in the `airflow_settings.yaml` file in the
  `python_version` field.
  ```shell

  $ cd astro_project
  $ airflowctl init . --build-start
  Directory /Users/xyz/astro_project is not empty. Continue? [y/N]: y
  Project /Users/xyz/astro_project added to tracking.
  Airflow project initialized in /Users/xyz/astro_project
  Detected Astro project. Using Astro settings file (/Users/kaxilnaik/Desktop/proj1/astro_project/airflow_settings.yaml).
  'airflow_version' not found in airflow_settings.yaml file. What is the Airflow version? [2.6.3]:
  Virtual environment created at /Users/xyz/astro_project/.venv
  ```
  If you see an error like the following, remove `airflow.cfg` file from the project directory and remove
  `AIRFLOW_HOME` from `.env` file if it exists and try again.
  ```shell
  Error: there might be a problem with your project starting up.
  The webserver health check timed out after 1m0s but your project will continue trying to start.
  Run 'astro dev logs --webserver | --scheduler' for details.
  ```

  This project is licensed under the terms of the [Apache 2.0 License](LICENSE)


pkgId: e87c3321d3a76ca341463596d6f844a53ef4955e34f6d40718bfd9d2413153ba
name: python-airfoils
arch: src
version: 0.2.2
epoch: 0
release: 1
summary: Airfoils (aerofoils)
url: https://github.com/airinnova/airfoils
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airfoils-0.2.2-1.src.rpm
checksum_type: sha256
description:
  * Airfoil generation with a *NACA-4* series definition
  * Import from files
      * Full support for airfoils from the `UIUC Airfoil Coordinates Database <https://m-selig.ae.illinois.edu/ads/coord_database.html>`_
  * Interpolation or computation of airfoil geometry parameters
      * Upper and lower surface coordinates
      * Camber line coordinates
      * Chord line coordinates (TODO)
      * Thickness distribution (TODO)
      * Maximum thickness (TODO)
  * Linear interpolation between two different airfoils (*MorphAirfoil*)
  * Plotting of airfoils


pkgId: d5de43422c4ca61379868b8f590fa69b816a83a7aba7582874037103948e7d50
name: python-airgradient
arch: src
version: 0.9.1
epoch: 0
release: 1
summary: Asynchronous Python client for AirGradient.
url: https://github.com/airgradienthq/python-airgradient
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airgradient-0.9.1-1.src.rpm
checksum_type: sha256
description:
  [![GitHub Release][releases-shield]][releases]
  [![Python Versions][python-versions-shield]][pypi]
  ![Project Stage][project-stage-shield]
  ![Project Maintenance][maintenance-shield]
  [![License][license-shield]](LICENSE.md)

  [![Build Status][build-shield]][build]
  [![Code Coverage][codecov-shield]][codecov]

  Asynchronous Python client for AirGradient.



  This package allows you to fetch data from AirGradient.



  ```bash
  pip install airgradient
  ```



  ```python
  import asyncio

  from airgradient import AirGradientClient


  async def main() -> None:
      """Show example of fetching measurement."""
      async with AirGradientClient("10.0.0.123") as client:
          measurements = await client.get_current_measures()
          print(measurements)


  if __name__ == "__main__":
      asyncio.run(main())
  ```



  This repository keeps a change log using [GitHub's releases][releases]
  functionality. The format of the log is based on
  [Keep a Changelog][keepchangelog].

  Releases are based on [Semantic Versioning][semver], and use the format
  of ``MAJOR.MINOR.PATCH``. In a nutshell, the version will be incremented
  based on the following:

  - ``MAJOR``: Incompatible or major changes.
  - ``MINOR``: Backwards-compatible new features and enhancements.
  - ``PATCH``: Backwards-compatible bugfixes and package updates.



  This is an active open-source project. We are always open to people who want to
  use the code or contribute to it.

  We've set up a separate document for our
  [contribution guidelines](.github/CONTRIBUTING.md).

  Thank you for being involved! :heart_eyes:



  This Python project is fully managed using the [Poetry][poetry] dependency manager. But also relies on the use of NodeJS for certain checks during development.

  You need at least:

  - Python 3.11+
  - [Poetry][poetry-install]
  - NodeJS 12+ (including NPM)

  To install all packages, including all development requirements:

  ```bash
  npm install
  poetry install
  ```

  As this repository uses the [pre-commit][pre-commit] framework, all changes
  are linted and tested with each commit. You can run all checks and tests
  manually, using the following command:

  ```bash
  poetry run pre-commit run --all-files
  ```

  To run just the Python tests:

  ```bash
  poetry run pytest
  ```



  The content is by [Joost Lekkerkerker][joostlek].

  For a full list of all authors and contributors,
  check [the contributor's page][contributors].



  MIT License

  Copyright (c) 2024 AirGradient

  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files (the "Software"), to deal
  in the Software without restriction, including without limitation the rights
  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  copies of the Software, and to permit persons to whom the Software is
  furnished to do so, subject to the following conditions:

  The above copyright notice and this permission notice shall be included in all
  copies or substantial portions of the Software.

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  SOFTWARE.

  [build-shield]: https://github.com/airgradienthq/python-airgradient/actions/workflows/tests.yaml/badge.svg
  [build]: https://github.com/airgradienthq/python-airgradient/actions
  [codecov-shield]: https://codecov.io/gh/airgradienthq/python-airgradient/branch/master/graph/badge.svg
  [codecov]: https://codecov.io/gh/airgradienthq/python-airgradient
  [commits-shield]: https://img.shields.io/github/commit-activity/y/airgradienthq/python-airgradient.svg
  [commits]: https://github.com/airgradienthq/python-airgradient/commits/master
  [contributors]: https://github.com/airgradienthq/python-airgradient/graphs/contributors
  [joostlek]: https://github.com/joostlek
  [keepchangelog]: http://keepachangelog.com/en/1.0.0/
  [license-shield]: https://img.shields.io/github/license/airgradienthq/python-airgradient.svg
  [maintenance-shield]: https://img.shields.io/maintenance/yes/2024.svg
  [poetry-install]: https://python-poetry.org/docs/#installation
  [poetry]: https://python-poetry.org
  [pre-commit]: https://pre-commit.com/
  [project-stage-shield]: https://img.shields.io/badge/project%20stage-stable-green.svg
  [python-versions-shield]: https://img.shields.io/pypi/pyversions/airgradient
  [releases-shield]: https://img.shields.io/github/release/airgradienthq/python-airgradient.svg
  [releases]: https://github.com/airgradienthq/python-airgradient/releases
  [semver]: http://semver.org/spec/v2.0.0.html
  [pypi]: https://pypi.org/project/airgradient/


pkgId: 8d1bea07084658ffc1c9ddcf18334cda6a925ec69484bc61b547bea5d6743fc0
name: python-airgram
arch: src
version: 0.1.3
epoch: 0
release: 1
summary: Wrapper for the airgram api
url: https://github.com/the01/python-airgram
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airgram-0.1.3-1.src.rpm
checksum_type: sha256
description:
  At the time of writing (2015-08-20) airgram is using wrong certificates (`see <https://api.airgramapp.com/1/>`_), which are intended for herokuapp.com. Because of this cert verification needs to be turned off.


pkgId: be4a032a9cbcb7d87b623d4446555a97ec062f86dbd6867f530e823155d5a46d
name: python-airiam
arch: src
version: 0.1.83
epoch: 0
release: 1
summary: Least privilege AWS IAM Terraformer
url: https://github.com/bridgecrewio/AirIAM
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airiam-0.1.83-1.src.rpm
checksum_type: sha256
description:
  [![Maintained by Bridgecrew.io](https://img.shields.io/badge/maintained%20by-bridgecrew.io-blueviolet)](https://bridgecrew.io)
  [![code_coverage](https://raw.githubusercontent.com/bridgecrewio/AirIAM/master/coverage.svg?sanitize=true)](https://github.com/bridgecrewio/AirIAM/actions?query=workflow%3Abuild-and-test)
  ![Terraform Version](https://img.shields.io/badge/tf-%3E%3D0.12.0-blue.svg)
  [![build](https://github.com/bridgecrewio/AirIAM/workflows/build/badge.svg)](https://github.com/bridgecrewio/airiam/actions?query=workflow%3Abuild)
  [![PyPI](https://img.shields.io/pypi/v/airiam)](https://pypi.org/project/airiam/)
  [![Downloads](https://pepy.tech/badge/airiam)](https://pepy.tech/project/airiam)
  [![slack-community](https://slack.bridgecrew.io/badge.svg)](https://slack.bridgecrew.io/?utm_source=github&utm_medium=organic_oss&utm_campaign=airiam)

  <p align="center">
      <img src="https://github.com/bridgecrewio/AirIAM/raw/master/docs/web/images/airiam-logo.png" height="100" />
  </p>

  AirIAM is an AWS IAM to least privilege Terraform execution framework. It compiles AWS IAM usage and leverages that data to create a least-privilege IAM Terraform that replaces the exiting IAM management method.

  AirIAM was created to promote immutable and version-controlled IAM management to replace today's manual and error prone methods.



  - [**Table of contents**](#table-of-contents)
  - [Introduction](#introduction)
  - [Features](#features)
  - [Commands](#commands)
    - [Usage](#usage)
    - [Data Flow](#data-flow)
  - [Examples](#examples)
  - [Getting Started](#getting-started)
    - [Installation](#installation)
    - [Using Pip](#using-pip)
    - [Using brew (MacOS Only)](#using-brew-macos-only)
    - [Recommended flow](#recommended-flow)
    - [FAQ](#faq)
  - [Alternatives](#alternatives)
    - [AWS IAM Cleanup Tools](#aws-iam-cleanup-tools)
    - [AWS IAM Policy Management Tools](#aws-iam-policy-management-tools)
    - [Migration of AWS to Terraform Tools](#migration-of-aws-to-terraform-tools)
  - [Contributing](#contributing)
  - [Support](#support)



  AirIAM scans existing IAM usage patterns and provides a simple method to migrate IAM configurations into a right-sized
  Terraform plan. It identifies unused users, roles, groups, policies and policy attachments and replaces them with a
  Least Privileges Terraform code modelled to manage AWS IAM.

  By moving all IAM configurations into Terraform code, admins can start tracking, auditing and modifying IAM configurations as part of their standard infrastructure-as-code development provisioning processes.

  AirIAM is battle-tested and is recommended for use in Dev, QA and test environments that have been previously managed by humans. It is design to result in minimal impact on existing workloads.

  If you are interested in migrating a Prod account, contact us at info@bridgecrew.io for some helpful tips.

  ![flow](images/ComponentDiagram.png)



  - Detects unused IAM resources using native AWS and [Amazon Access Advisor](https://aws.amazon.com/blogs/security/identify-unused-iam-roles-remove-confidently-last-used-timestamp/) APIs.
  - Provides scripts to remove unused entities en-masse.
  - Effortless migration of existing IAM configurations into a simple Least Privileges Terraform model.
  - Integrates with [Checkov](https://checkov.io), a static-code analysis tool for Terraform, to track unwanted configuration changes and configuration drift.




  - `find_unused` - Detects unused users, roles, groups, policies and policy attachments. It also adds links to automation scripts that could remove these entities entirely using Bridgecrew Community. [Learn more
    about these scripts and automation](RecommendedIntegrations.md).
    ```shell script
      usage: airiam find_unused [-h] [-p PROFILE] [-l LAST_USED_THRESHOLD]
                            [--no-cache] [-o {cli}]

      optional arguments:
        -h, --help            show this help message and exit
        -p PROFILE, --profile PROFILE
                              AWS profile to be used (default: None)
        -l LAST_USED_THRESHOLD, --last-used-threshold LAST_USED_THRESHOLD
                              "Last Used" threshold, in days, for an entity to be
                              considered unused (default: 90)
        --no-cache            Generate a fresh set of data from AWS IAM API calls
                              (default: False)
        -o {cli}, --output {cli}
                              Output format (default: OutputFormat.cli)
    ```
  - `recommend_groups` - Identifies what permissions are in use and creates 3 generalized groups according to that usage. Supported groups:
      - Admins - Users who have the AdministratorAccess policy attached. It will be added to the admins group which will have the managed policy `arn:aws:iam::aws:policy/AdministratorAccess` attached.
      - PowerUsers - Users who have write access to **any** of the services. In case of more than 10 policies being attached to that group, a number of groups will be created for PowerUsers, and the relevant users will be members of all of them.
      - ReadOnly - Users who only have read access to the account. Will be members of the readonly group which will have the managed policy `arn:aws:iam::aws:policy/ReadOnlyAccess` attached.
    ```shell script
      usage: airiam recommend_groups [-h] [-p PROFILE] [-o {cli}]
                                     [-l LAST_USED_THRESHOLD] [--no-cache]

      optional arguments:
        -h, --help            show this help message and exit
        -p PROFILE, --profile PROFILE
                              AWS profile to be used (default: None)
        -o {cli}, --output {cli}
                              Output format (default: OutputFormat.cli)
        -l LAST_USED_THRESHOLD, --last-used-threshold LAST_USED_THRESHOLD
                              "Last Used" threshold, in days, for an entity to be
                              considered unused (default: 90)
        --no-cache            Generate a fresh set of data from AWS IAM API calls
                              (default: False)
    ```
  - `terraform` - Creates Terraform files based on the outputs and the transformations applied by the optional arguments supplied.

    ```shell script
      usage: airiam terraform [-h] [-p PROFILE] [-d DIRECTORY] [--without-unused]
                              [--without-groups] [-l LAST_USED_THRESHOLD]
                              [--no-cache] [--without-import]

      optional arguments:
        -h, --help            show this help message and exit
        -p PROFILE, --profile PROFILE
                              AWS profile to be used (default: None)
        -d DIRECTORY, --directory DIRECTORY
                              Path where the output terraform code and state will be
                              stored (default: results)
        --without-unused      Create terraform code without unused entities
                              (default: False)
        --without-groups      Create terraform code without recommendation for user
                              groups (default: False)
        -l LAST_USED_THRESHOLD, --last-used-threshold LAST_USED_THRESHOLD
                              "Last Used" threshold, in days, for an entity to be
                              considered unused (default: 90)
        --no-cache            Generate a fresh set of data from AWS IAM API calls
                              (default: False)
        --without-import      Import the resulting entities to terraform's state
                              file. Note - this might take a long time (default:
                              False)
    ```
      Important notes for `terraform` command:

      a. AirIAM replaces all hardcoded values with the matching terraform references, which results in replacements of all group memberships and policy attachments.
      If this is run using a user, please make sure the user has the relevant privileges directly attached. A matching warning will be displayed if relevant.

      c. AirIAM tags all the resources it touched so it will be easy to identify the entities which are not managed through AirIAM. This results in terraform modifying the relevant entities by adding these tags.

      d. By default, AirIAM will import the currently existing IAM entities and their relationships, which might take a while depending on the number of configurations.



  The three commands above run sequentially, and in-sync, as seen in the diagram below.

  When executing, AirIAM starts by scanning a selected AWS account using the specified profile.
  If `find_unused` is specified, the results are printed and the execution completes.
  If `recommend_groups` is specified, after the stage of group recommendation the results are printed and the execution completes.
  If the `terraform` command is specified it takes all the results and creates the Terraform code and state file required to replace the existing IAM configuration.



  ![Data Flow](images/DataFlow.svg)



  ![Example Movie](docs/web/images/airiam-recording.gif)







  ```cli
  pip3 install airiam --user
  ```



  ```cli
  brew tap bridgecrewio/airiam https://github.com/bridgecrewio/airiam
  brew update
  brew install airiam
  ```


  The recommended workflow for using this tool is as follows:

  1. Run the `find_unused` command and delete the unused access keys + unused console logins - these cannot be migrated to terraform because they hold secrets known only to the relevant user - his password and private credentials.
  2. Run the `terraform` command without any flags, creating a terraform setup that mirrors your existing IAM setup. This will take a while as all of the entities will be imported to your state file
  3. Commit the terraform files (without the state file) to a new repository.
  4. Run the terraform command again, this time with the flag `--without-import` and `--without-unused`. This will edit the .tf files to contain only the entities that are in use.
  5. Create a new branch and commit the new terraform files.
  6. Create a Pull Request / Merge Request from this branch to the default branch. Check out the differences and make sure all the changes are good. Consult relevant stakeholders in your organization if necessary.
  7. After approval - merge the PR and apply the changes using terraform apply. Please note this action will require Admin IAM access to the account.



  If you run into the following error:

  ```error
  airiam is not recognized as an internal or external command
  ```

  Please make sure python is in your `PATH` by running the following command:

  ```path
  export PATH="/Users//Library/Python/3.7/bin:$PATH"
  ```





  For AWS IAM usage scanners check out [CloudTracker](https://github.com/duo-labs/cloudtracker), [Trailscraper](https://github.com/flosell/trailscraper/),
  [Aadvark](https://github.com/Netflix-Skunkworks/aardvark) & [Repokid](https://github.com/Netflix/repokid).
  The main difference between these tools and AirIAM is that AirIAM also moves the problem into static terraform code form, which allows an entire set of code analysis tools to manage and identify deviations and changes.



  For static IAM policy linting, check out [Parliament](https://github.com/duo-labs/parliament). Parliament is actually integrated into AirIAM, and is run on the policies it gets from your AWS account.

  For automatically creating IAM policies and managing them as code, check out  [aws-iam-generator](https://github.com/awslabs/aws-iam-generator),
  [PolicySentry](https://github.com/salesforce/policy_sentry).

  [Cloudsplaining](https://github.com/salesforce/cloudsplaining) is another tool from salesforce that analyzes existing IAM set-up
  and identifies risky / over privileged roles.

  These tools help create better policies, but do not help with existing AWS IAM set-up.



  For other tools that help migrate existing AWS IAM set-up to terraform, check out
  [terracognita](https://github.com/cycloidio/terracognita/) and [terraforming](https://github.com/dtan4/terraforming).
  AirIAM is the only tool which supports migrating all relevant IAM entities to terraform v0.12.



  Contribution is welcomed!

  We would love to hear about other IAM governance models for additional use cases as well as new ways to identify over-permissive IAM resources.



  [Bridgecrew](https://bridgecrew.io) builds and maintains AirIAM to encourage the adoption of IAM-as-code and enforcement of IAM Rightsizing and Least Privileges best practices in policy-as-code.

  Start with our [Documentation](https://bridgecrewio.github.io/airiam/) for quick tutorials and examples.

  If you need direct support you can contact us at info@bridgecrew.io.


pkgId: de95fc0c8016d551026a2b3d77fead5f8f91822e4f1ced940e1ea4b1b391ca75
name: python-airiasearch
arch: src
version: 0.1.2
epoch: 0
release: 1
url: https://github.com/airia-in/airiasearch.git
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airiasearch-0.1.2-1.src.rpm
checksum_type: sha256
summary:
  airiasearch is a powerful tool designed by team AIRIA that utilizes airiadb to deliver intent-based search capabilities. By interpreting the underlying intent behind user queries, airiasearch provides more accurate and relevant search results, enhancing the efficiency and effectiveness of information retrieval.


pkgId: d17c52d7bd807a38d44da4ecc98f67282cc923e058cefafdde639c31213988ea
name: python-airium
arch: src
version: 0.2.6
epoch: 0
release: 1
url: https://gitlab.com/kamichal/airium
rpm_license: MIT license
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airium-0.2.6-1.src.rpm
checksum_type: sha256
summary:
  Easy and quick html builder with natural syntax correspondence (python->html). No templates needed. Serves pure pythonic library with no dependencies.

description:
  Bidirectional `HTML`-`python` translator.

  [![PyPI version](https://img.shields.io/pypi/v/airium.svg)](https://pypi.python.org/pypi/airium/)
  [![pipeline status](https://gitlab.com/kamichal/airium/badges/master/pipeline.svg)](https://gitlab.com/kamichal/airium/-/commits/master)
  [![coverage report](https://gitlab.com/kamichal/airium/badges/master/coverage.svg)](https://gitlab.com/kamichal/airium/-/commits/master)
  [![PyPI pyversion](https://img.shields.io/pypi/pyversions/AIRIUM.svg)](https://pypi.org/project/airium/)
  [![PyPI license](https://img.shields.io/pypi/l/AIRIUM.svg)](https://pypi.python.org/pypi/airium/)
  [![PyPI status](https://img.shields.io/pypi/status/AIRIUM.svg)](https://pypi.python.org/pypi/airium/)

  Key features:

  - simple, straight-forward
  - template-less (just the python, you may say goodbye to all the templates)
  - DOM structure is strictly represented by python indentation (with context-managers)
  - gives much cleaner `HTML` than regular templates
  - equipped with reverse translator: `HTML` to python
  - can output either pretty (default) or minified `HTML` code





  ```python
  from airium import Airium

  a = Airium()

  a('<!DOCTYPE html>')
  with a.html(lang="pl"):
      with a.head():
          a.meta(charset="utf-8")
          a.title(_t="Airium example")

      with a.body():
          with a.h3(id="id23409231", klass='main_header'):
              a("Hello World.")

  html = str(a)  # casting to string extracts the value

  html_bytes = bytes(a)  # casting to bytes is a shortcut to str(a).encode('utf-8')

  print(html)
  ```

  Prints such a string:

  ```html
  <!DOCTYPE html>
  <html lang="pl">
    <head>
      <meta charset="utf-8" />
      <title>Airium example</title>
    </head>
    <body>
      <h3 id="id23409231" class="main_header">
        Hello World.
      </h3>
    </body>
  </html>
  ```

  In order to store it as a file, just:

  ```python
  with open('that/file/path.html', 'wb') as f:
      f.write(bytes(html))
  ```



  ```python
  from airium import Airium

  a = Airium()

  with a.div():
      a.img(src='source.png', alt='alt text')
      a('the text')

  html_str = str(a)
  print(html_str)
  ```

  ```html

  <div>
      <img src="source.png" alt="alt text"/>
      the text
  </div>
  ```



  ```python
  from airium import Airium

  a = Airium()

  with a.table(id='table_372'):
      with a.tr(klass='header_row'):
          a.th(_t='no.')
          a.th(_t='Firstname')
          a.th(_t='Lastname')

      with a.tr():
          a.td(_t='1.')
          a.td(id='jbl', _t='Jill')
          a.td(_t='Smith')  # can use _t or text

      with a.tr():
          a.td(_t='2.')
          a.td(_t='Roland', id='rmd')
          a.td(_t='Mendel')

  table_str = str(a)
  print(table_str)


  with open('/tmp/airium_www.example.com.py') as f:
      f.write(table_str)
  ```

  Now `table_str` contains such a string:

  ```html

  <table id="table_372">
    <tr class="header_row">
      <th>no.</th>
      <th>Firstname</th>
      <th>Lastname</th>
    </tr>
    <tr>
      <td>1.</td>
      <td id="jbl">Jill</td>
      <td>Smith</td>
    </tr>
    <tr>
      <td>2.</td>
      <td id="rmd">Roland</td>
      <td>Mendel</td>
    </tr>
  </table>
  ```



  _New in version 0.2.2_

  Having a structure with large number of `with` statements:

  ```python
  from airium import Airium

  a = Airium()

  with a.article():
      with a.table():
          with a.thead():
              with a.tr():
                  a.th(_t='Column 1')
                  a.th(_t='Column 2')
          with a.tbody():
              with a.tr():
                  with a.td():
                      a.strong(_t='Value 1')
                  a.td(_t='Value 2')

  table_str = str(a)
  print(table_str)
  ```

  You may use a shortcut that is equivalent to:

  ```python
  from airium import Airium

  a = Airium()

  with a.article().table():
      with a.thead().tr():
          a.th(_t="Column 1")
          a.th(_t="Column 2")
      with a.tbody().tr():
          a.td().strong(_t="Value 1")
          a.td(_t="Value 2")

  table_str = str(a)
  print(table_str)
  ```

  ```html

  <article>
    <table>
      <thead>
        <tr>
          <th>Column 1</th>
          <th>Column 2</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>
            <strong>Value 1</strong>
          </td>
          <td>Value 2</td>
        </tr>
      </tbody>
    </table>
  </article>
  ```





  By default, airium biulds `HTML` code indented with spaces and with line breaks being line feed `\n` characters.
  It can be changed while creating an `Airium` instance. In general all avaliable arguments whit their default values are:

  ```python
  a = Airium(
      base_indent='  ',  # str
      current_level=0,  # int
      source_minify=False,  # bool
      source_line_break_character="\n",  # str
  )
  ```



  That's a mode when size of the code is minimized, i.e. contains as less whitespaces as it's possible.
  The option can be enabled with `source_minify` argument, i.e.:

  ```python
  a = Airium(source_minify=True)
  ```

  In case if you need to explicitly add a line break in the source code (not the `<br/>`):

  ```python
  a = Airium(source_minify=True)
  a.h1(_t="Here's your table")
  with a.table():
      with a.tr():
          a.break_source_line()
          a.th(_t="Cell 11")
          a.th(_t="Cell 12")
      with a.tr():
          a.break_source_line()
          a.th(_t="Cell 21")
          a.th(_t="Cell 22")
      a.break_source_line()
  a.p(_t="Another content goes here")
  ```

  Will result with such a code:

  ```html
  <h1>Here's your table</h1><table><tr>
  <th>Cell 11</th><th>Cell 12</th></tr><tr>
  <th>Cell 21</th><th>Cell 22</th></tr>
  </table><p>Another content goes here</p>
  ```

  Note that the `break_source_line` cannot be used
  in [context manager chains](#chaining-shortcut-for-elements-with-only-one-child).



  The default indent of the generated HTML code has two spaces per each indent level.
  You can change it to `\t` or 4 spaces by setting `Airium` constructor argument, e.g.:

  ```python
  a = Airium(base_indent="\t")  # one tab symbol
  a = Airium(base_indent="    ")  # 4 spaces per each indentation level
  a = Airium(base_indent=" ")  # 1 space per one level

  ```

  Note that this setting is ignored when `source_minify` argument is set to `True` (see above).

  There is a special case when you set the base indent to empty string. It would disable indentation,
  but line breaks will be still added. In order to get rid of line breaks, check the `source_minify` argument.



  The `current_level` being an integer can be set to non-negative
  value, wich will cause `airium` to start indentation with level offset given by the number.



  By default, just a line feed (`\n`) is used for terminating lines of the generated code.
  You can change it to different style, e.g. `\r\n` or `\r` by setting `source_line_break_character` to the desired value.

  ```python
  a = Airium(source_line_break_character="\r\n")  # windows' style
  ```

  Note that the setting has no effect when `source_minify` argument is set to `True` (see above).



  Airium can be used with frameworks like Flask or Django. It can completely replace
  template engines, reducing code-files scater, which may bring better code organization, and some other reasons.

  Here is an example of using airium with django. It implements reusable `basic_body` and a view called `index`.

  ```python

  import contextlib
  import inspect

  from airium import Airium
  from django.http import HttpResponse


  @contextlib.contextmanager
  def basic_body(a: Airium, useful_name: str = ''):
      """Works like a Django/Ninja template."""

      a('<!DOCTYPE html>')
      with a.html(lang='en'):
          with a.head():
              a.meta(charset='utf-8')
              a.meta(content='width=device-width, initial-scale=1', name='viewport')
              
              a.link(href='https://unpkg.com/@picocss/pico@1.4.1/css/pico.css', rel='stylesheet')
              a.title(_t=f'Hello World')

          with a.body():
              with a.div():
                  with a.nav(klass='container-fluid'):
                      with a.ul():
                          with a.li():
                              with a.a(klass='contrast', href='./'):
                                  a.strong(_t="⌨ Foo Bar")
                      with a.ul():
                          with a.li():
                              a.a(klass='contrast', href='#', **{'data-theme-switcher': 'auto'}, _t='Auto')
                          with a.li():
                              a.a(klass='contrast', href='#', **{'data-theme-switcher': 'light'}, _t='Light')
                          with a.li():
                              a.a(klass='contrast', href='#', **{'data-theme-switcher': 'dark'}, _t='Dark')

                  with a.header(klass='container'):
                      with a.hgroup():
                          a.h1(_t=f"You're on the {useful_name}")
                          a.h2(_t="It's a page made by our automatons with a power of steam engines.")

              with a.main(klass='container'):
                  yield  # This is the point where main content gets inserted

              with a.footer(klass='container'):
                  with a.small():
                      margin = 'margin: auto 10px;'
                      a.span(_t='© Airium HTML generator example', style=margin)

              
              a.script(src='https://picocss.com/examples/js/minimal-theme-switcher.js')


  def index(request) -> HttpResponse:
      a = Airium()
      with basic_body(a, f'main page: {request.path}'):
          with a.article():
              a.h3(_t="Hello World from Django running Airium")
              with a.p().small():
                  a("This bases on ")
                  with a.a(href="https://picocss.com/examples/company/"):
                      a("Pico.css / Company example")

              with a.p():
                  a("Instead of a HTML template, airium has been used.")
                  a("The whole body is generated by a template "
                    "and the article code looks like that:")

              with a.code().pre():
                  a(inspect.getsource(index))

      return HttpResponse(bytes(a))  # from django.http import HttpResponse
  ```

  Route it in `urls.py` just like a regular view:

  ```python

  from django.contrib import admin
  from django.urls import path

  import your_app

  urlpatterns = [
      path('index/', your_app.views.index),
      path('admin/', admin.site.urls),
  ]
  ```

  The result ing web page on my machine looks like that:

  ![Airium/Django templateless example](airium_django_example.png)



  Airium is equipped with a transpiler `[HTML -> py]`.
  It generates python code out of a given `HTML` string.



  Ensure you have [installed](#installation) `[parse]` extras. Then call in command line:

  ```bash
  airium http://www.example.com
  ```

  That will fetch the document and translate it to python code.
  The code calls `airium` statements that reproduce the `HTML` document given.
  It may give a clue - how to define `HTML` structure for a given
  web page using `airium` package.

  To store the translation's result into a file:

  ```bash
  airium http://www.example.com > /tmp/airium_example_com.py
  ```

  You can also parse local `HTML` files:

  ```bash
  airium /path/to/your_file.html > /tmp/airium_my_file.py
  ```

  You may also try to parse your Django templates. I'm not sure if it works,
  but there will be probably not much to fix.



  ```python
  from airium import from_html_to_airium


  html_str = """\
  <!DOCTYPE html>
  <html lang="pl">
    <head>
      <meta charset="utf-8" />
      <title>Airium example</title>
    </head>
    <body>
      <h3 id="id23409231" class="main_header">
        Hello World.
      </h3>
    </body>
  </html>
  """



  py_str = from_html_to_airium(html_str)


  assert py_str == """\





  from airium import Airium

  a = Airium()

  a('<!DOCTYPE html>')
  with a.html(lang='pl'):
      with a.head():
          a.meta(charset='utf-8')
          a.title(_t='Airium example')
      with a.body():
          a.h3(klass='main_header', id='id23409231', _t='Hello World.')
  """
  ```



  > so far in version 0.2.2:

  - result of translation does not keep exact amount of leading whitespaces
    within `<pre>` tags. They come over-indented in python code.

  This is not however an issue when code is generated from python to `HTML`.

  - although it keeps the proper tags structure, the transpiler does not
    chain all the `with` statements, so in some cases the generated
    code may be much indented.

  - it's not too fast



  If you need a new virtual environment, call:

  ```bash
  virtualenv venv
  source venv/bin/activate
  ```

  Having it activated - you may install airium like this:

  ```bash
  pip install airium
  ```

  In order to use reverse translation - two additional packages are needed, run:

  ```bash
  pip install airium[parse]
  ```

  Then check if the transpiler works by calling:

  ```bash
  airium --help
  ```

  > Enjoy!


pkgId: 9b152b876ff2e507c434b91141699eeb1d9362aecd7ecb6def071a0e809f95be
name: python-airless
arch: src
version: 0.0.73
epoch: 0
release: 1
url: https://github.com/astercapital/airless
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airless-0.0.73-1.src.rpm
checksum_type: sha256
summary:
  Airless is a package that aims to build a serverless and lightweight orchestration platform, creating workflows of multiple tasks being executed on FaaS platform

description:
  <!-- Pytest Coverage Comment:Begin -->
  <!-- Pytest Coverage Comment:End -->

  [![PyPI version](https://badge.fury.io/py/airless.svg)](https://badge.fury.io/py/airless)

  Airless is a package that aims to build a serverless and lightweight orchestration platform, creating workflows of multiple tasks being executed on [Google Cloud Functions](https://cloud.google.com/functions)




  Airflow is the industry standard when we talk about job orchestration and worflow management. However, in some cases, we believe it may not be the best solution. I would like to highlight 3 main cases we face that Airflow struggles to handle.

  * Serverless

  At the beginning of a project we want to avoid dealing with infrastructure since it demands time and it has a fixed cost to reserve an instance to run Airflow. Since we didn't have that many jobs, it didn't make sense to have an instance of Airflow up 24-7.

  When the project starts to get bigger and, if we use Airflow's instance to run the tasks, we start facing performance issues on the workflow.

  In order to avoid this problems we decided to build a 100% serverless platform.

  * Parallel processing

  The main use case we designed Airless for is for data scrappers. The problem with data scrappers is that normally you want them to process a lot of tasks in parallel, for instance, first you want to fetch a website and collect all links in that page and send them forward for another task to be executed and then that task does the same and so on and so forth.

  Building this workflow that does not know before hand how many tasks are going to be executed is something hard be built on Airflow.

  * Data sharing between tasks

  In order to built this massive parallel processing workflow that we explained on the previous topic, we need to be able to dynamically create and send data to the next task. So use the data from the first task as a trigger and an input data for the next tasks.



  Airless builts its workflows based on [Google Cloud Functions](https://cloud.google.com/functions), [Google Pub/Sub](https://cloud.google.com/pubsub) and [Google Cloud Scheduler](https://cloud.google.com/scheduler).

  1. Everything starts with the Cloud Scheduler, which is a serverless product from Google Cloud that is able to publish a message to a Pub/Sub with a cron scheduler
  2. When a message is published to a Pub/Sub it can trigger a Cloud Function and get executed with that message as an input
  3. This Cloud Functions is able to publish as many messages as it wants to as many Pub/Sub topics as it wants
  4. Repeat from 2






  * `ENV`
  * `GCP_PROJECT`
  * `PUBSUB_TOPIC_ERROR`
  * `LOG_LEVEL`
  * `PUBSUB_TOPIC_EMAIL_SEND`
  * `PUBSUB_TOPIC_SLACK_SEND`
  * `BIGQUERY_DATASET_ERROR`
  * `BIGQUERY_TABLE_ERROR`
  * `EMAIL_SENDER_ERROR`
  * `EMAIL_RECIPIENTS_ERROR`
  * `SLACK_CHANNELS_ERROR`


pkgId: d2069bd9c1e3448ffaca457dbfbff2b407d95e2b067d0e555b6bd9b19030775e
name: python-airless-captcha
arch: src
version: 0.0.5
epoch: 0
release: 1
summary: Airless Captcha is a package that resolve captcha challenge and based on airless framework
url: https://github.com/astercapital/airless
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airless-captcha-0.0.5-1.src.rpm
checksum_type: sha256
description:
  [![PyPI version](https://badge.fury.io/py/airless-captcha.svg)](https://badge.fury.io/py/airless-captcha)

  airless-captcha is an extension of the [Airless](https://github.com/astercapital/airless) package, designed specifically as a service interface to solve CAPTCHA challenges while using airless.



  airless-captcha is a library that implements a airless service interface for solving CAPTCHA challenges across multiple providers, simplifying the integration of various CAPTCHA services within applications.



  Ensure you have Airless installed as airless-captcha depends on it.

  ```sh
  pip install airless>=0.0.69
  pip install airless-captcha
  ```


pkgId: 28d0e7e27c76d03f771329460f03856db1a10dd3770ad8dc12f6108bc3a3d377
name: python-airless-core
arch: src
version: 0.1.2
epoch: 0
release: 1
url: https://github.com/astercapital/airless
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airless-core-0.1.2-1.src.rpm
checksum_type: sha256
summary:
  Airless is a package that aims to build a serverless and lightweight orchestration platform, creating workflows of multiple tasks being executed on FaaS platform

description:
  [![PyPI version](https://badge.fury.io/py/airless-core.svg)](https://badge.fury.io/py/airless-core)

  airless-core have the core components for [Airless](https://github.com/astercapital/airless) to work.


pkgId: 9779fb9216aac97c96b92047516274b6f22ee311c4d9073d90e9c178daf71708
name: python-airless-email
arch: src
version: 0.0.3
epoch: 0
release: 1
summary: Airless package to manage email
url: https://github.com/astercapital/airless
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airless-email-0.0.3-1.src.rpm
checksum_type: sha256
description:
  [![PyPI version](https://badge.fury.io/py/airless-email.svg)](https://badge.fury.io/py/airless-email)

  airless-email were build to work with emails using [Airless](https://github.com/astercapital/airless) module.

  Need to set `SECRET_SMTP` and `GCP_PROJECT` to use `GoogleEmailHook`


pkgId: a6e5a734b3ada80d7b8a6841d2515f9daabaae34f7a3f650715d470e557d4186
name: python-airless-google-cloud-core
arch: src
version: 0.0.2
epoch: 0
release: 1
summary: Airless package with the main components to use airless in google cloud
url: https://github.com/astercapital/airless
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airless-google-cloud-core-0.0.2-1.src.rpm
checksum_type: sha256
description:
  [![PyPI version](https://badge.fury.io/py/airless-google-cloud-core.svg)](https://badge.fury.io/py/airless-google-cloud-core)

  airless-google-cloud-core [Airless](https://github.com/astercapital/airless) package with the main components to use airless in google cloud.


pkgId: e4cdb493c0f6765431967b597605d700dff126b2218d6a0fac044f1c36aaf0a5
name: python-airo-tulip
arch: src
version: 0.1.0
epoch: 0
release: 1
summary: Python driver for the KELO Robile platform based on KELO tulip.
url: https://github.com/airo-ugent/airo-tulip
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airo-tulip-0.1.0-1.src.rpm
checksum_type: sha256
description:
  The `airo-tulip` package is a Python port of the KELO Tulip software with some additional functionality.
  You can use it to control the KELO Robile drives of a mobile platform and read out relevant sensor data from it.
  The structure of the code base is different from that of the original C++ implementation provided by the manufacturer.

  In this README, we over the structure of the `airo-tulip` package and discuss some design choices that were made during the implementation.

  The `docs` folder contains additional documentation files (in no particular order):

  - `kelo_setup.md` on how to set up the KELO hardware and software, a prerequisite to using `airo-tulip`
  - `rerun.md` on how to use Rerun running on the remote KELO CPU brick
  - `virtual_display.md` on how to enable a virtual display for use in a VNC connection without needing to connect a display to the KELO CPU brick
  - `external_devices.md` on how to connect to other devices mounted on the KELO, with the KELO acting as the router
  - `how_it_works.md` on how the code base is structured and why

  Even though you don't need to understand or even read *all* of these to use `airo-tulip`,
  we do recommend it to get a holistic overview of how the platform works and
  why `airo-tulip` is implemented the way it is.



  There are two layers to the `airo-tulip` package: the `hardware` module that interfaces with the KELO and other attached hardware,
  and the `api` module that allows (optionally remote) users of the library to interface with this `hardware` over a TCP connection.
  The code in the `hardware` module is supposed to be run on the KELO itself, while the code in the `api` module (more specifically in `api.client`)
  can be run from any device that can access the KELO over Ethernet or Wi-Fi. While it possible to use `airo-tulip` without
  `api`, by using `hardware.platform_driver` directly, this is not recommended, and we only document the usage through the `api` module.

  **Note:** when interfacing with the server from a client on a remote machine, make sure that the `airo-tulip` versions
  match on client and server, or else you may observe unexpected behaviour or crashes.

  Using this package implies some hardware and software set-up on the KELO mobile platform itself, which is documented
  in [`docs/kelo_setup.md`](docs/kelo_setup.md). If you simply use this library for robotics experiments, this set-up
  will most likely have been performed for you. Still, please read that file thoroughly before continuing.
  If you are the first to set up your custom KELO mobile platform, it is also recommended to read that file to get
  up and running quickly.





  This package is available [on PyPI](https://pypi.org/project/airo-tulip/) and can be installed with one command:

  ```shell
  pip install airo-tulip
  ```

  Note that the package requires at least Python 3.9.

  For example, using [pyenv](https://github.com/pyenv) to set the local Python version to 3.9:

  ```shell
  pyenv install 3.9 && pyenv local 3.9
  python3 -m venv env
  source env/bin/activate
  pip install airo-tulip
  ```

  Or, using conda:

  ```shell
  conda create -n airo-tulip-env python=3.9
  conda activate airo-tulip-env
  pip install airo-tulip
  ```



  If you wish to install a development version, clone the repository with `git` and use `pip` to install the `airo-tulip/` package
  in editable mode.
  Note that the `main` branch is the active development branch: you may want to check out a certain commit associated with
  a version tag.

  Using pyenv:

  ```shell
  git clone https://github.com/airo-ugent/airo_kelo
  cd airo_kelo
  pyenv install 3.9 && pyenv local 3.9
  python3 -m venv env
  source env/bin/activate
  pip install -e airo-tulip/
  ```

  Or using conda:

  ```shell
  git clone https://github.com/airo-ugent/airo_kelo
  cd airo_kelo
  conda create -n airo-tulip-env python=3.9
  conda activate airo-tulip-env
  pip install -e airo-tulip/
  ```



  `airo_tulip.api.server` provides a class `TulipServer` which initializes the KELO platform and accepts an incoming
  connection from a `airo_tulip.api.client.KELORobile`. To accept incoming connections from any device on the network,
  listen on the IPv4 address `0.0.0.0`. The `RobotConfiguration` that must be supplied, is based on how the KELO bricks
  are mounted. This information is received from KELO robotics together with your platform and is specific to your use case.
  The EtherCAT device is also specific to your platform set-up.

  To run the server, start it from a Python script:

  ```python
  from airo_tulip.api.server import TulipServer, RobotConfiguration
  from airo_tulip.hardware.structs import WheelConfig

  def create_wheel_configs():
      wheel_configs = []

      wc0 = WheelConfig(
          ethercat_number=3,
          x=0.233,
          y=0.1165,
          a=1.57
      )
      wheel_configs.append(wc0)

      wc1 = WheelConfig(
          ethercat_number=5,
          x=0.233,
          y=-0.1165,
          a=1.57
      )
      wheel_configs.append(wc1)

      wc2 = WheelConfig(
          ethercat_number=7,
          x=-0.233,
          y=-0.1165,
          a=-1.57
      )
      wheel_configs.append(wc2)

      wc3 = WheelConfig(
          ethercat_number=9,
          x=-0.233,
          y=0.1165,
          a=1.57
      )
      wheel_configs.append(wc3)

      return wheel_configs


  device = "eno1"
  wheel_configs = create_wheel_configs()

  server = TulipServer(RobotConfiguration(device, wheel_configs), "0.0.0.0")
  server.run()
  ```



  Once you have started the server on the KELO, you can connect to it with an `api.client.KELORobile` instance:

  ```python
  from airo_tulip.api.client import KELORobile

  kelo_ip = "10.10.129.21"
  client = KELORobile(kelo_ip)
  ```

  You can then send commands to the KELO platform by calling the methods on the `client` object, e.g.,

  ```python
  client.set_platform_velocity_target(0.5, 0.0, 0.0, timeout=1.0)
  ```

  to drive approximately 0.5 meters, at 0.5 meters per second, along the platform's +X axis.



  Without mounting external devices on the KELO, you can pretty much only drive around (which is cool, but not very useful).
  Refer to [`docs/external_devices.md`](docs/external_devices.md) for information on how to set up and access external devices
  such as a UR cobot with a Robotiq gripper.



  For more information on how this code base is structured, and why, please refer to [`docs/how_it_works.md`](docs/how_it_works.md).


pkgId: 302593b74b1209d053eb956993351e7728b2053dc00ec6a19d7152bf0fb94fac
name: python-airoboros
arch: src
version: 2.2.2
epoch: 0
release: 1
summary: Updated and improved implementation of the self-instruct system.
url: https://github.com/jondurbin/airoboros
rpm_license: Apache 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airoboros-2.2.2-1.src.rpm
checksum_type: sha256
description:
  This is my take on implementing the [Self-Instruct paper](https://arxiv.org/abs/2212.10560).  The approach is quite heavily modified, and does not use any human-generated seeds.

  This updated implementation supports either the /v1/completions endpoint or /v1/chat/completions, which is particularly useful in that it supports gpt-4 and gpt-3.5-turbo (which is 1/10 the cost of text-davinci-003).

  Huge thank you to the folks over at [a16z](https://a16z.com/) for sponsoring the costs associated with building models and associated tools!



  via pip:
  ```
  pip install --no-build-isolation airoboros
  ```

  from source (keeping the source):
  ```
  git clone https://github.com/jondurbin/airoboros
  pip install -e --no-build-isolation ./airoboros
  ```



  * support for either /v1/completions or /v1/chat/completions APIs (which allows gpt-3.5-turbo instead of text-davinci-003, as well as gpt-4 if you have access)
  * support for custom topics list, custom topic generation prompt, or completely random topics
  * in-memory vector db (Chroma) for similarity comparison, which is much faster than calculating rouge score for each generated instruction
  * (seemingly) better prompts, which includes injection of random topics to relate the instructions to, which creates much more diverse synthetic instructions
  * asyncio producers with configurable batch size
  * several "instructors", each targetting specific use-cases, such as Orca style reasoning/math, role playing, etc.
  * tries to ensure the context, if provided, is relevant to the topic and contains all the information that would be necessary to respond to the instruction, and nost just a link to article/etc.
  * generally speaking, this implementation tries to reduce some of the [noise](https://github.com/tloen/alpaca-lora/issues/65)



  Problem and proposed solution:

  - Models can only ever be as good as the data they are trained on.
  - High quality data is difficult to curate manually, so ideally the process can be automated by AI/LLMs.
  - Large models (gpt-4, etc.) are pricey to build/run and out of reach for individuals/small-medium business, and are subject to RLHF bias, censorship, and changes without notice.
  - Smaller models (llama-2-70b, etc.) can reach somewhat comparable performance in specific tasks to much larger models when trained on high quality data.
  - The airoboros tool allows building datasets that are focused on specific tasks, which can then be used to build a plethora of individual expert models.  This means we can crowdsource building experts.
  - Using either a classifier model, or simply calculating vector embeddings for each item in the dataset and using faiss index/cosine similarity/etc. search, incoming requests can be routed to a particular expert (e.g. dynamically loading LoRAs) to get extremely high quality responses.

  Progress:

  - ✅ PoC that training via self-instruction, that is, datasets generated from language models, works reasonably well.
  - ✅ Iterate on the PoC to use higher quality prompts, more variety of instructions, etc.
  - ✅ Split the code into separate "instructors", for specializing in any particular task (creative writing, songs, roleplay, coding, execution planning, function calling, etc.)
  - [in progress]: PoC that an ensemble of LoRAs split by the category (i.e., the instructor used in airoboros) has better performance than the same param count model tuned on all data
  - [in progress]: Remove the dependency on OpenAI/gpt-4 to generate the training data so all datasets can be completely free and open source.
  - [future]: Automatic splitting of experts at some threshold, e.g. "coding" is split into python, js, golang, etc.
  - [future]: Hosted service/site to build and/or extend datasets or models using airoboros.
  - [future]: Depending on success of all of the above, potentially a hosted inference option with an exchange for private/paid LoRAs.



  <img src="https://github.com/jondurbin/airoboros/blob/main/assets/lmoe.jpeg" alt="LMoE" width="300" class="center"/>

  LMoE is the simplest architecture I can think of for a mixture of experts.  It doesn't use a switch transformer, doesn't require slicing and merging layers with additional fine-tuning, etc.  It just dynamically loads the best PEFT/LoRA adapter model based on the incoming request.

  By using this method, we can theoretically crowdsource generation of dozens (or hundreds/thousands?) of very task-specific adapters and have an extremely powerful ensemble of models with very limited resources on top of a single base model (llama-2 7b/13b/70b).



  The self-instruct code contained within this project uses many different "instructors" to generate training data to accomplish specific tasks.  The output includes the instructor/category that generated the data.  We can use this to automatically segment the training data to fine-tune specific "experts".

  See `scripts/segment_experts.py` for an example of how the training data can be segmented, with a sampling of each other expert in the event of misrouting.

  See `scripts/tune_expert.py` for an example of creating the adapter models (with positional args for expert name, model size, etc.)

  __*NOTE: this assumes use of my fork of qlora https://github.com/jondurbin/qlora*__



  The "best" routing mechanism would probably be to train a classifier based on the instructions for each category, with the category/expert being the label, but that prohibits dynamic loading of new experts.

  Instead, this supports 3 options:

  - faiss index similarity search using the training data for each expert (default)
  - agent-based router using the "function" expert (query the LLM with a list of available experts and their descriptions, ask which would be best based on the user's input)
  - specify the agent in the JSON request



  First, download the base llama-2 model for whichever model size you want, e.g.: [llama-2-7b-hf](https://huggingface.co/meta-llama/Llama-2-7b-hf)

  Next, download the LMoE package that corresponds to that base model, e.g.: [airoboros-lmoe-7b-2.1](https://huggingface.co/jondurbin/airoboros-lmoe-7b-2.1)

  *NOTE: 13b also available, 70b in progress*

  Here's an example command to start the server:

  ```
  python -m airoboros.lmoe.api \
    --base-model ./llama-2-7b-hf \
    --lmoe ./airoboros-lmoe-7b-2.1 \
    --router-max-samples 1000 \
    --router-k 25 \
    --port 8000 \
    --host 127.0.0.1
  ```
  *to use the agent-based router, add `--agent-router` to the arguments*

  This uses flash attention via bettertransformers (in optimum).  You may need to install torch nightly if you see an error like 'no kernel available', e.g.:

  ```
  pip install -U --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu118
  ```

  Once started, you can infer using the same API scheme you'd query OpenAI API with, e.g.:

  ```
  curl -H 'content-type: application/json' http://127.0.0.1:8000/v1/chat/completions -d '
  {
    "model": "llama-2-7b-hf",
    "temperature": 0.7,
    "max_tokens": 2048,
    "messages": [
      {
        "role": "system",
        "content": "A chat."
      },
      {
        "role": "user",
        "content": "How much wood would a woodchuck chuck if a woodchuck could chuck wood?"
      }
    ]
  }'
  ```

  I've also added an vllm-based server, but the results aren't quite as good (not sure why yet).  To use it, make sure you install `vllm` and `fschat`, or `pip install airoboros[vllm]`

  ```
  python -m airoboros.lmoe.vllm \
    --model ./llama-2-7b-hf \
    --lmoe-path ../airoboros-lmoe-7b-2.1 \
    --router-max-samples 100 \
    --router-k 25 \
    --port 8000 \
    --host 127.0.0.1
  ```





  To better accommodate the plethora of options, the configuration has been moved to a YAML config file.

  Please create a copy of `example-config.yaml` and configure as desired.

  Once you have the desired configuration, run:

  ```
  airoboros generate-instructions --config-path /path/to/config.yaml
  ```





  Again, this is now all YAML configuration based!  Please create a customized version of the YAML config file, then run:

  ```
  airoboros generate-topics --config-path /path/to/config.yaml
  ```

  You can override the `topic_prompt` string in the configuration to use a different topic generation prompt.




  https://bmc.link/jondurbin

  ETH
  0xce914eAFC2fe52FdceE59565Dd92c06f776fcb11

  BTC
  bc1qdwuth4vlg8x37ggntlxu5cjfwgmdy5zaa7pswf







  2.1 dataset
  * [airoboros-l2-7b-2.1](https://huggingface.co/jondurbin/airoboros-l2-7b-2.1)
  * [airoboros-l2-13b-2.1](https://huggingface.co/jondurbin/airoboros-l2-13b-2.1)
  * [airoboros-l2-70b-2.1](https://huggingface.co/jondurbin/airoboros-l2-70b-2.1)
  * [airoboros-c34b-2.1](https://huggingface.co/jondurbin/airoboros-c34b-2.1)

  2.0/m2.0
  * [airoboros-l2-7b-gpt4-2.0](https://huggingface.co/jondurbin/airoboros-l2-7b-gpt4-2.0)
  * [airoboros-l2-7b-gpt4-m2.0](https://huggingface.co/jondurbin/airoboros-l2-7b-gpt4-m2.0)
  * [airoboros-l2-13b-gpt4-2.0](https://huggingface.co/jondurbin/airoboros-l2-13b-gpt4-2.0)
  * [airoboros-l2-13b-gpt4-m2.0](https://huggingface.co/jondurbin/airoboros-l2-13b-gpt4-m2.0)

  Previous generation (1.4.1 dataset)
  * [airoboros-l2-70b-gpt4-1.4.1](https://huggingface.co/jondurbin/airoboros-l2-70b-gpt4-1.4.1)
  * [airoboros-l2-13b-gpt4-1.4.1](https://huggingface.co/jondurbin/airoboros-l2-13b-gpt4-1.4.1)
  * [airoboros-l2-7b-gpt4-1.4.1](https://huggingface.co/jondurbin/airoboros-l2-7b-gpt4-1.4.1)



  Latest version (2.0 / m2.0 datasets)
  * [airoboros-33b-gpt4-2.0](https://huggingface.co/jondurbin/airoboros-33b-gpt4-2.0)
  * [airoboros-33b-gpt4-m2.0](https://huggingface.co/jondurbin/airoboros-33b-gpt4-m2.0)

  Previous generation (1.4.1 dataset)
  * [airoboros-65b-gpt4-1.4](https://huggingface.co/jondurbin/airoboros-65b-gpt4-1.4)
  * [airoboros-33b-gpt4-1.4](https://huggingface.co/jondurbin/airoboros-33b-gpt4-1.4)
  * [airoboros-13b-gpt4-1.4](https://huggingface.co/jondurbin/airoboros-13b-gpt4-1.4)
  * [airoboros-7b-gpt4-1.4](https://huggingface.co/jondurbin/airoboros-7b-gpt4-1.4)
  * *older versions on HF as well*


  * [airoboros-mpt-30b-gpt4-1.4](https://huggingface.co/jondurbin/airoboros-mpt-30b-gpt4-1p4-five-epochs)


  * [airoboros-gpt-3.5-turbo-100k-7b](https://huggingface.co/jondurbin/airoboros-gpt-3.5-turbo-100k-7b)
  * [airoboros-13b](https://huggingface.co/jondurbin/airoboros-13b)
  * [airoboros-7b](https://huggingface.co/jondurbin/airoboros-7b)



  * [airoboros-gpt-3.5-turbo](https://huggingface.co/datasets/jondurbin/airoboros-uncensored)
  * [airoboros-gpt4](https://huggingface.co/datasets/jondurbin/airoboros-gpt4)
  * [airoboros-gpt4-1.1](https://huggingface.co/datasets/jondurbin/airoboros-gpt4-1.1)
  * [airoboros-gpt4-1.2](https://huggingface.co/datasets/jondurbin/airoboros-gpt4-1.2)
  * [airoboros-gpt4-1.3](https://huggingface.co/datasets/jondurbin/airoboros-gpt4-1.3)
  * [airoboros-gpt4-1.4](https://huggingface.co/datasets/jondurbin/airoboros-gpt4-1.4)
  * [airoboros-gpt4-2.0 (June only GPT4)](https://huggingface.co/datasets/jondurbin/airoboros-gpt4-2.0)
  * [airoboros-gpt4-m2.0](https://huggingface.co/datasets/jondurbin/airoboros-gpt4-m2.0)
  * [airoboros-2.1 (recommended)](https://huggingface.co/datasets/jondurbin/airoboros-2.1)


pkgId: 84bb897c2a7408293fbc24c35354e4af8b6df49029f54a46a08539e842a23571
name: python-airontools
arch: src
version: 0.1.51
epoch: 0
release: 1
summary: Machine learning tools to complement the AIronSuit package.
url: https://github.com/AtrejuArtax/airontools
rpm_license: BSD
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airontools-0.1.51-1.src.rpm
checksum_type: sha256
description:
  AIronTools (Beta) is a Python library that provides the user with higher level state-of-the-art deep learning tools built to work with
  [tensorflow](https://github.com/tensorflow/tensorflow) as a backend. The main goal of this repository is to enable fast model
  design for both POCs and production.

  Key features:

  1. Out-of-the-box models ready to be used.
  2. Block constructor to build customised blocks/models.
  3. Layer constructor to build customised layers such as sequential, convolutional, self-attention or dense, and combinations of them.
  4. Preprocessing tools.
  5. On the fly non-topological hyper-parameter optimization. For now only the dropout regularization is compatible with this feature, in the future others such as l1 and l2 regularization will be compatible too.
  6. Latent representations for visualization purposes.



  `pip install airontools`



  ``` python
  import numpy as np
  import tensorflow as tf
  from airontools.constructors.models.unsupervised.vae import VAE
  from numpy.random import normal

  tabular_data = np.concatenate(
      [
          normal(loc=0.5, scale=1, size=(100, 10)),
          normal(loc=-0.5, scale=1, size=(100, 10)),
      ]
  )
  model = VAE(
      input_shape=tabular_data.shape[1:],
      latent_dim=3,
  )
  model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.001))
  model.fit(
      tabular_data,
      epochs=10,
  )
  print(f"VAE evaluation: {model.evaluate(tabular_data)['loss']:.4f}")

  ```



  see usage examples in [aironsuit/examples](https://github.com/AtrejuArtax/aironsuit/tree/master/examples)


pkgId: 70ede72f57e4227928a8ab085fd7ed16f1850e8e722f35f709798d0b265893b2
name: python-airosentris
arch: src
version: 0.1.7
epoch: 0
release: 1
summary: A sentiment analysis platform with AI runner and trainer components
url: https://gitlab.com/sindika/project/airosentris/airosentris-python-lib
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airosentris-0.1.7-1.src.rpm
checksum_type: sha256
description:
  Airosentris is a sentiment analysis platform that includes powerful components for training and running AI models. Designed for ease of use, it enables developers to integrate sentiment analysis capabilities into their applications quickly.



  - **AiroRunner:** Execute trained sentiment analysis models efficiently.
  - **AiroTrainer:** Train sentiment analysis models using customizable algorithms.
  - **Easy Integration:** Seamlessly integrate with your existing applications.
  - **Highly Customizable:** Tailor the AI models to fit specific requirements.



  You can install Airosentris via pip:

  ```bash
  pip install airosentris
  ```






  To determine the version of CUDA installed on your system, you can use the following command:

  ```shell
  nvcc --version
  ```

  This command checks the NVIDIA CUDA Compiler Driver version, which is part of the CUDA Toolkit. It will output the CUDA version currently installed.



  To install PyTorch with GPU support for CUDA 12.1, follow these steps:



  Open Command Prompt or your preferred terminal.



  Run the following command to install PyTorch with CUDA 12.1 support:

  ```shell
  pip install torch==2.3.1+cu121 --extra-index-url https://download.pytorch.org/whl/cu121
  ```

  This command installs the specified version of PyTorch (2.3.1) with CUDA 12.1 support. The `--extra-index-url` flag points to the PyTorch wheel (whl) files for CUDA 12.1.



  To verify that PyTorch is correctly installed and is using the GPU, run the following Python code:

  ```python
  import torch
  print(torch.__version__)
  print(torch.cuda.is_available())
  print(torch.cuda.get_device_name(0))
  ```

  This code will:
  - Print the PyTorch version.
  - Check if CUDA is available.
  - Print the name of the GPU device if available.



  You should see an output similar to this if everything is correctly set up:

  ```
  2.3.1
  True
  NVIDIA GeForce GTX 1080
  ```



  - Ensure that your CUDA drivers are properly installed and match the version you intend to use with PyTorch.
  - If you do not have CUDA installed, you can download and install the CUDA Toolkit from the [NVIDIA CUDA website](https://developer.nvidia.com/cuda-toolkit-archive).
  - Make sure you have the appropriate version of cuDNN installed, which is typically bundled with the CUDA Toolkit.

  By following these steps, you should be able to install and verify PyTorch with GPU support for CUDA 12.1 on your Windows system.


pkgId: 749f65800d00fe4beec3eb0df41c1d676b8953c96b2b22b4b89ad6cdc378df85
name: python-airouter
arch: src
version: 0.1.33
epoch: 0
release: 1
summary: please add a summary manually as the author left a blank one
url: https://pypi.org/project/airouter/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airouter-0.1.33-1.src.rpm
checksum_type: sha256
description:
  ```
  pip install airouter
  ```

  ```python
  import airouter

  outputs = airouter.StreamedCompletion.create(
      model='gpt-3.5-turbo-1106',
      temperature=0.0,
      max_tokens=100,
      messages=[{'role': 'user', 'content': 'write a story about the big Large Language Models convention'}]
  )
  ```

  ```python
  import airouter

  outputs = airouter.StreamedCompletion.create(
      model='text-bison-32k',
      temperature=0.0,
      max_tokens=100,
      messages=[{'role': 'user', 'content': 'write a story about the big Large Language Models convention'}]
  )
  ```

  ```python
  import airouter

  outputs = airouter.StreamedCompletion.create(
      models=['gpt-3.5-turbo-1106', 'text-bison-32k'],
      temperature=0.0,
      max_tokens=100,
      messages=[{'role': 'user', 'content': 'write a story about the big Large Language Models convention'}]
  )
  ```

  ```python
  import airouter

  outputs = airouter.StreamedCompletion.create_interactive(
      models=['gpt-3.5-turbo-1106', 'text-bison-32k'],
      temperature=0.0,
      max_tokens=100,
      messages=[{'role': 'user', 'content': 'write a story about the big Large Language Models convention'}]
  )
  ```


pkgId: b9c327dc22e0889003b05ef85d66176651e6d6d3ab23504b319672cec33912cf
name: python-airpg
arch: src
version: 1.1.4
epoch: 0
release: 1
summary: A package to automatically access the inverted repeats of archived plastid genomes
url: https://github.com/michaelgruenstaeudl/airpg
rpm_license: GPLv3
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airpg-1.1.4-1.src.rpm
checksum_type: sha256
description:
  [![Build Status](https://travis-ci.com/michaelgruenstaeudl/airpg.svg?branch=master)](https://travis-ci.com/michaelgruenstaeudl/airpg)
  [![PyPI status](https://img.shields.io/pypi/status/airpg.svg)](https://pypi.python.org/pypi/airpg/)
  [![PyPI pyversions](https://img.shields.io/pypi/pyversions/airpg.svg)](https://pypi.python.org/pypi/airpg/)
  [![PyPI version shields.io](https://img.shields.io/pypi/v/airpg.svg)](https://pypi.python.org/pypi/airpg/)
  [![PyPI license](https://img.shields.io/pypi/l/airpg.svg)](https://pypi.python.org/pypi/airpg/)
  A Python package for automatically accessing the inverted repeats of thousands of plastid genomes stored on NCBI Nucleotide

  To get the most recent stable version of *airpg*, run:
      pip install airpg
  Or, alternatively, if you want to get the latest development version of *airpg*, run:
      pip install git+https://github.com/michaelgruenstaeudl/airpg.git


  Survey of all plastid genomes of flowering plants submitted to NCBI Nucleotide within the past 10 days.

  Survey of all plastid genomes of flowering plants submitted to NCBI Nucleotide within the current month.

  Survey of all plastid genomes of flowering plants submitted to NCBI Nucleotide in 2019 only. Note: The results of this survey are available on Zenodo via DOI [10.5281/zenodo.4335906](https://zenodo.org/record/4335906)

  Survey of all plastid genomes of flowering plants submitted to NCBI Nucleotide from January 2000 until, and including, December 2020. Note: The results of this survey are available on Zenodo via DOI [10.5281/zenodo.4335906](https://zenodo.org/record/4335906)
  <!--

  ```

  python3 -m build
  python3 -m twine upload --repository testpypi dist/*
  python3 -m pip install --index-url https://test.pypi.org/simple/ --no-deps airpg
  python3 -m twine upload dist/*
  python3 -m pip install airpg
  ```
  -->

  See [`CHANGELOG.md`](CHANGELOG.md) for a list of recent changes to the software.


pkgId: c3ea0634841ad25afd699a2261bcb3bd76413ce433530a557c556080ef83018a
name: python-airphin
arch: src
version: 0.0.13
epoch: 0
release: 1
summary: Airphin is a tool for migrating Airflow DAGs to DolphinScheduler Python API.
url: https://github.com/WhaleOps/airphin
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airphin-0.0.13-1.src.rpm
checksum_type: sha256
description:
  [![PyPi Version](https://img.shields.io/pypi/v/airphin.svg?style=flat-square&logo=PyPi)](https://pypi.org/project/airphin/)
  [![PyPi Python Versions](https://img.shields.io/pypi/pyversions/airphin.svg?style=flat-square&logo=python)](https://pypi.org/project/airphin/)
  [![PyPi License](https://img.shields.io/:license-Apache%202-blue.svg?style=flat-square)](https://raw.githubusercontent.com/WhaleOps/airphin/main/LICENSE)
  [![PyPi Status](https://img.shields.io/pypi/status/airphin.svg?style=flat-square)](https://pypi.org/project/airphin/)
  [![Downloads](https://pepy.tech/badge/airphin/month)](https://pepy.tech/project/airphin)
  [![Coverage Status](https://img.shields.io/codecov/c/github/WhaleOps/airphin/main.svg?style=flat-square)](https://codecov.io/github/WhaleOps/airphin?branch=main)
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square)](https://github.com/psf/black)
  [![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat-square&labelColor=ef8336)](https://pycqa.github.io/isort)
  [![CI](https://github.com/WhaleOps/airphin/actions/workflows/ci.yaml/badge.svg)](https://github.com/WhaleOps/airphin/actions/workflows/ci.yaml)
  [![Documentation Status](https://readthedocs.org/projects/airphin/badge/?version=latest)](https://airphin.readthedocs.io/en/latest/?badge=latest)

  Airphin is a tool for migrating Airflow DAGs to DolphinScheduler Python API.



  For now, it just for test and without publish to pypi but will be adding in the future.
  You could still install locally by yourself.

  ```shell
  python -m pip install --upgrade airphin
  ```



  Here will give a quick example to show how to migrate base on standard input.

  ```shell


  airphin test "from airflow.operators.bash import BashOperator

  test = BashOperator(
      task_id='test',
      bash_command='echo 1',
  )
  "
  ```

  And you will see the migrated result in the standard output. Airphin can only migrate standard input, it can
  also migrate file, directory and even can use in your python code. For more detail, please see [our usage](https://airphin.readthedocs.io/en/latest/start.html#usage).



  The documentation host on read the doc and is available at [https://airphin.readthedocs.io](https://airphin.readthedocs.io).



  For now, we support following statement from Airflow's DAG files



  | Before Migration             | After Migration                                                            |
  |------------------------------|----------------------------------------------------------------------------|
  | `from airflow import DAG`    | `from pydolphinscheduler.core.process_definition import ProcessDefinition` |
  | `with DAG(...) as dag: pass` | `with ProcessDefinition(...) as dag: pass`                                 |





  | Before Migration                                             | After Migration                                               |
  |--------------------------------------------------------------|---------------------------------------------------------------|
  | `from airflow.operators.dummy_operator import DummyOperator` | `from pydolphinscheduler.tasks.shell import Shell`            |
  | `from airflow.operators.dummy import DummyOperator`          | `from pydolphinscheduler.tasks.shell import Shell`            |
  | `dummy = DummyOperator(...)`                                 | `dummy = Shell(..., command="echo 'airflow dummy operator'")` |



  | Before Migration                                  | After Migration                                    |
  |---------------------------------------------------|----------------------------------------------------|
  | `from airflow.operators.bash import BashOperator` | `from pydolphinscheduler.tasks.shell import Shell` |
  | `bash = BashOperator(...)`                        | `bash = Shell(...)`                                |



  | Before Migration                                                    | After Migration                                |
  |---------------------------------------------------------------------|------------------------------------------------|
  | `from airflow.operators.spark_sql_operator import SparkSqlOperator` | `from pydolphinscheduler.tasks.sql import Sql` |
  | `spark = SparkSqlOperator(...)`                                     | `spark = Sql(...)`                             |



  | Before Migration                                               | After Migration                                      |
  |----------------------------------------------------------------|------------------------------------------------------|
  | `from airflow.operators.python_operator import PythonOperator` | `from pydolphinscheduler.tasks.python import Python` |
  | `python = PythonOperator(...)`                                 | `python = Python(...)`                               |


pkgId: 98e1d0505b47ff2bb1799cead1b85ea34ea137dbf45d0fdc41f718cb6ccc680d
name: python-airpiano
arch: src
version: 0.0.8
epoch: 0
release: 1
summary: airpiano
url: https://github.com/y-takefuji/airpiano
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airpiano-0.0.8-1.src.rpm
checksum_type: sha256
description:
  [![Open in Code Ocean](https://codeocean.com/codeocean-assets/badge/open-in-code-ocean.svg)](https://codeocean.com/capsule/8694970/tree)

  takefuji (2022) airpiano for playing piano in the air [Source Code]. https://doi.org/10.24433/CO.8862673.v1

  This is under review.

  airpiano has been downloaded by 23337 downloads worldwide as of Feb.12, 2024.

  When the paper is accepted, the contents of the air piano will be disclosed.
  airpiano is a Python program to play airpiano composed of 123 lines code.
  You can play 10 music notes by th right hand of five fingers.
  airpiano is based on the-state-of-the-art hand gesture recognition using mediapipe.
  airpiano uses musicalbeeps for generating music sounds by five fingers.
  The paper on airpiano is under submission.
  If the paper is accepted, the source code will be disclosed.


  Hand landmarks detected by MediaPipe are composed of 21 points in 2D image coordinates.

  ![hand_landmarks](https://github.com/y-takefuji/airpiano/assets/159754486/f6744528-ce37-4aa0-881f-c3f7fb1d185d)


  https://mediapipe.dev/images/mobile/hand_landmarks.png


  [![Watch the video](https://img.youtube.com/vi/7KCmVyRpSCo/maxresdefault.jpg)](https://youtu.be/7KCmVyRpSCo)




  "twinkle twinkle little star"
  https://youtu.be/7KCmVyRpSCo

  "Mary had a little lamb"
  https://youtu.be/3J5xjW66MP8

  "Tulip"
  https://youtu.be/H7lwHb69ZgM

  "buzz buzz buzz"
  https://youtu.be/oG3_ZsW3XrQ

  "The Cuckoo"
  https://youtu.be/evyfpph-WOY



  Python3.7 or Python3.8 is recommended for running airpiano.
  In order to run airpiano, the following libraries must be installed.

  $ pip install musicalbeeps

  $ pip install mediapipe

  $ pip install airpiano

  $ pip install airpiano --force-reinstall --no-cache-dir --no-binary :all:



  Moving thumb finger plays C5 note.

  Moving index finger plays D5 note.

  Middle finger plays E5 note.

  Ring finger plays F5 note.

  Little finger plays G5 note.

  Moving thumb finger deeply plays A5 note.

  Moving thumb finger deeply and index finger plays B5 note.

  Moving thumb finger deeply and middle finger plays C6 note.

  Moving thumb finger deeply and ring finger plays D6 note.

  Moving thumb finger deeply and little finger plays E6 note.


  $ airpiano


pkgId: 60bfddd1e029d6bd141859c05c5e291fa2c7db1ede1c2693a6bbe1125e07e31d
name: python-airplanesdk
arch: src
version: 0.3.48
epoch: 0
release: 1
summary: A Python SDK for writing Airplane tasks
url: https://airplane.dev
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airplanesdk-0.3.48-1.src.rpm
checksum_type: sha256
description:
  SDK for writing [Airplane](https://airplane.dev) tasks in Python.

  To learn more, see [the Airplane SDK docs](https://docs.airplane.dev/tasks/python-sdk).


pkgId: 3954d88f5fe4463105f508bfeaa7e1fb7558182946c67d2daceadb35d435a995
name: python-airport-manager
arch: src
version: 0.2.29
epoch: 0
release: 1
summary: Airport Manager: One-stop shop for all airport management needs.
url: https://github.com/itsjustshubh/airport_manager
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airport-manager-0.2.29-1.src.rpm
checksum_type: sha256
description:
  Airport Manager is a comprehensive terminal-based client designed to meet all your airport management needs. It provides various functionalities such as retrieving API tokens, fetching airport coordinates, finding areas by coordinates, and more.



  - **Get API Token**: Retrieve the API token for a given airport code.
  - **Get Airport Coordinates**: Fetch the coordinates for a specified airport.
  - **Find Area by Coordinates**: Identify the area within the airport for given coordinates.
  - **Find Areas for Coordinates**: Find multiple areas based on a list of coordinates.



  You can install Airport Manager using pip:

  ```sh
  pip install airport-manager
  ```


pkgId: 869dba833c3b38f5a14ce834ca6750532c14cf7c386689a6a8af96dfe43a2587
name: python-airportsdata
arch: src
version: 20240806
epoch: 0
release: 1
url: https://pypi.org/project/airportsdata/
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airportsdata-20240806-1.src.rpm
checksum_type: sha256
summary:
  Extensive database of location and timezone data for nearly every airport and landing strip in the world.

rpm_license:
  The MIT License (MIT)  Copyright (c) 2020- Mike Borsetti <mike@borsetti.com>  This project includes data from https://github.com/mwgg/Airports Copyright (c) 2014 mwgg  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


pkgId: f48fa33af36a167a758563896265f1088ecfb50e976f7f2af01bb63bca1e185d
name: python-airportstaff-dashboard
arch: src
version: 0.1.0
epoch: 0
release: 1
summary: Simple library for listing/managing airport staff dashboards
url: https://github.com/Comrade-Glitch-cloud/airportstaff_daashboard-Library
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airportstaff-dashboard-0.1.0-1.src.rpm
checksum_type: sha256
description:
  Simple library for listing/managing airport staff dashboards.



  - Displays feedback entries as lists
  - Displays found items as lists



  ```bash
  pip install airportstaff_dashboard


pkgId: 0cf4a638b730604d1382f9f16e0c6d0a680b36f31ed3085ea1c86e4443ec99c7
name: python-airpress
arch: src
version: 1.0.3
epoch: 0
release: 1
summary: A frustration-free compression tool for PKPass archives.
url: https://github.com/captain-fox/airpress
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airpress-1.0.3-1.src.rpm
checksum_type: sha256
description:
  [![PyPI version](https://img.shields.io/pypi/v/airpress.svg)](https://pypi.python.org/pypi/airpress)
  [![PyPI version](https://img.shields.io/pypi/pyversions/airpress.svg)](https://pypi.python.org/pypi/airpress)
  [![Build Status](https://travis-ci.org/captain-fox/airpress.svg?branch=master)](https://travis-ci.org/captain-fox/airpress)

  AirPress lets you create, sign and zip PKPass archives for Apple Wallet in runtime memory without a need for temporary files or directories.


  From PyPI:

  `pip install airpress`


  ```python
  from airpress import PKPass


  p = PKPass(
      ('icon.png', bytes(...)),
      ('logo.png', bytes(...)),
      ('pass.json', bytes(...)),
      ...
  )
  p.sign(cert=bytes(...), key=bytes(...), password=bytes(...))  # `password` argument is optional
  _ = bytes(p)  # Creates `bytes` object containing signed and compressed `.pkpass` archive
  ```
  In most cases you're likely to return `pkpass` as `http` response and `bytes` object is exactly what you need.
  `PKPass` will raise human-readable errors in case something is
  wrong with pass package you're trying to sign and compress.


  Accessing `PKPass` assets that are already added to pass package is as easy as working with dictionary.

  Retrieve asset:
  ```python
  icon = p['icon.png']
  ```

  It can also be used as alternative to add/update asset:

  ```python
  p['icon.png'] = bytes(...)
  ```

  Remove asset from pass package:
  ```python
  del p['logo.png']
  ```




  [If you don't have your pass type certificate, follow this guide to create one.](https://www.skycore.com/help/creating-pass-signing-certificate/)


  Export your developer certificate as `.p12` file and convert it into a pair of cert and key `.pem` files:

  `openssl pkcs12 -in "Certificates.p12" -clcerts -nokeys -out certificate.pem`

  `openssl pkcs12 -in "Certificates.p12" -nocerts -out key.pem`

  You will be asked for an export password (or export phrase), you may leave it blank or provide a passphrase.
  It's this value that you later should supply to PKPass compressor (or leave blank).



  In case you'd like to play around with locally stored files, or your server keeps assets in the same file storage
  as source code, this example shows you how to read locally stored assets as `bytes` objects, compress `pkpass` archive
  and save it to script's parent directory.

  ```python
  import os
  from airpress import PKPass



  p = PKPass()


  for filename in os.listdir('your_dir_with_assets'):
      with open(os.path.join(os.path.dirname(__file__), 'your_dir_with_assets', filename), 'rb') as file:
          data = file.read()
          
          p.add_to_pass_package((filename, data))


  with open(
          os.path.join(os.path.dirname(__file__), 'your_dir_with_credentials/key.pem'), 'rb'
  ) as key, open(
      os.path.join(os.path.dirname(__file__), 'your_dir_with_credentials/certificate.pem'), 'rb'
  ) as cert:
      
      p.key = key.read()
      p.cert = cert.read()
      p.password = bytes('passpass', 'utf8')



  p.sign()


  with open('your_dir_for_output/data.pkpass', 'wb') as file:
      file.write(bytes(p))
  ```

  Hope you find this package useful!
  I'd love to hear your feedback and suggestions for this tiny library as there's always room for improvement.


pkgId: b91fc366abbfc7e695785d25291620373b846d3c1b2ba90a2167d25b5478bafe
name: python-airpyllution
arch: src
version: 2.0.1
epoch: 0
release: 1
summary: A package which provides various functionalities on air pollution data.
url: https://pypi.org/project/airpyllution/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airpyllution-2.0.1-1.src.rpm
checksum_type: sha256
description:
  [![codecov](https://codecov.io/gh/UBC-MDS/airpyllution/branch/main/graph/badge.svg?token=c6vEGpbs3h)](https://codecov.io/gh/UBC-MDS/airpyllution)
  [![build](https://github.com/UBC-MDS/airpyllution/actions/workflows/build.yml/badge.svg)](https://github.com/UBC-MDS/airpyllution/actions/workflows/build.yml)
  [![deploy](https://github.com/UBC-MDS/airpyllution/actions/workflows/deploy.yml/badge.svg)](https://github.com/UBC-MDS/airpyllution/actions/workflows/deploy.yml)

  `airpyllution` is a Python package for visualizing or obtaining future, historic and current air pollution data using the [OpenWeather API](https://openweathermap.org). Our goal is to enable users the ability to explore air pollution levels in locations around the world by providing visual charts and graphs. We make the data accessible and easy to comprehend in just a few lines of code.

  Although there is an abundance of python weather packages and APIs in the Python ecosystem (e.g. [python-weather](https://pypi.org/project/python-weather/), [weather-forecast](https://pypi.org/project/weather-forecast/)), this particular package looks at specifically air pollution data and uses the [Air Pollution API](https://openweathermap.org/api/air-pollution) from OpenWeather. This is a unique package which provides simple and easy to use functions and allows users to quickly access and visualise data.

  The data returned from the API includes the polluting gases such as Carbon monoxide (CO), Nitrogen monoxide (NO), Nitrogen dioxide (NO2), Ozone (O3), Sulphur dioxide (SO2), Ammonia (NH3), and particulates (PM2.5 and PM10).

  Using the OpenWeatherMap API requires sign up to gain access to an API key.
  For more information about API call limits and API care recommendations please visit the [OpenWeather how to start](https://openweathermap.org/appid) page.

  This package contains 3 functions:
  - `get_air_pollution()`
  - `get_pollution_history()`
  - `get_pollution_forecast()`


  Fetches the air pollution levels based on a location. Based on the values of the polluting gases, this package uses the [Air Quality Index](https://en.wikipedia.org/wiki/Air_quality_index#CAQI) to determine the level of pollution for the location and produces a coloured map of the area displaying the varying regions of air quality.


  Requires a start and end date and fetches historic air pollution data for a specific location. The function returns a data frame with the values of the polluting gases over the specified date range.


  Fetches air pollution data for the next 5 days for a specific location. The function returns a time series plot of the predicted pollution levels.



  ```bash
  $ pip install airpyllution
  ```

  [![readthedocs](https://readthedocs.org/projects/pip/badge/?version=latest)](https://airpyllution.readthedocs.io/en/latest/)

  1. Create an [OpenWeather API Key](https://openweathermap.org/appid)
  2. Install airpyllution
  3. Refer to [ReadTheDocs](https://airpyllution.readthedocs.io/en/latest/) for a usage guide and examples.

  To use the package, import the package with the following commands:
  ```
  from airpyllution.airpyllution import get_air_pollution
  from airpyllution.airpyllution import get_pollution_history
  from airpyllution.airpyllution import get_pollution_forecast
  ```

  **Retrieve historic pollution data with specified date range and location:**
  ```
  get_pollution_history(1606488670, 1606747870, 49.28, 123.12, api_key)
  ```

  **Generate an interactive map containing current pollution data by location:**

  ```
  get_air_pollution(49.28, 123.12, api_key, "Current Air Pollution")
  ```

  ![](docs/air-pollution-map.png)

  **Generate a time-series line chart of forecasted air pollution data:**
  ```
  import altair as alt
  alt.renderers.enable("html");

  get_pollution_forecast(49.28, 123.12, api_key)
  ```
  ![](docs/forecast-example.png)


  - Christopher Alexander (@christopheralex)
  - Daniel King (@danfke)
  - Mel Liow (@mel-liow)


  Interested in contributing? Check out the contributing guidelines. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.


  `airpyllution` was created by Christopher Alexander, Daniel King, Mel Liow. It is licensed under the terms of the [Hippocratic License 3.0](https://github.com/UBC-MDS/airpyllution/blob/main/LICENSE).



  `airpyllution` was created with [`cookiecutter`](https://cookiecutter.readthedocs.io/en/latest/) and the `py-pkgs-cookiecutter` [template](https://github.com/py-pkgs/py-pkgs-cookiecutter).


pkgId: f109fc3056656631101c8f895c4e7e3cc3b0850c416dbadf5bea51efb3aa7ad2
name: python-airscrapy
arch: src
version: 1.0.0
epoch: 0
release: 1
summary: Scrapy contrib for Airflow
url: https://github.com/scrapoxy/airscrapy
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airscrapy-1.0.0-1.src.rpm
checksum_type: sha256
description:
  ```shell
  pip install airscrapy
  ```




  This operator runs Scrapy directly within the worker process
  by invoking the Scrapy engine directly, eliminating the need for a separate process.




  If the spider is structured as follows:

  ```python
  import scrapy

  class ExampleSpider(scrapy.Spider):
      name = "example"
      start_urls = [ "http://example.com" ]

      def parse(self, response):
          yield {
              'text': response.css('.info').extract_first()
          }
  ```

  Here’s how you can create a DAG using the operator:

  ```python
  from airflow import DAG
  from airscrapy import ScrapyOperator
  from myscrapers.spiders.example import ExampleSpider
  import os

  with DAG(
      dag_id="scrapers",
          
          params={
              "extra_settings": {
                  "CONCURRENT_REQUESTS": 2,
              }
          },
  ) as dag:
      
      os.environ["SCRAPY_SETTINGS_MODULE"] = "myscrapers.settings"

      task = ScrapyOperator(spider=ExampleSpider)

  if __name__ == "__main__":
      dag.test()
  ```

  The `extra_settings` parameter is used to dynamically include elements
  such as credentials or tokens, complementing the settings.py file.

  Additionally, ensure you set the `SCRAPY_SETTINGS_MODULE` environment variable.
  Without it, Scrapy won't be able to locate the settings.

  The DAG directory is organized as follows:

  ```
  dags
  |- myscrapers
     |- spiders
        |- __init__.py
        |- example.py
     |- __init__.py
     |- items.py
     |- middlewares.py
     |- pipelines.py
     |- settings.py
  |- mydag.py
  |- scrapy.cfg
  ```

  This structure enables us to run the DAG in local debugging mode:

  ```python
  python mydag.py
  ```


pkgId: d94679522bf7d559f46f50a0f86a1a47903f5d3464df1f969163fd2b2cb14288
name: python-airsmodel
arch: src
version: 0.4.17
epoch: 0
release: 1
summary: ARLAS Item Registration Service Model
url: https://pypi.org/project/airsmodel/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-airsmodel-0.4.17-1.src.rpm
checksum_type: sha256
description:
  This package contains the data model for sending requests to ARLAS Item Registration Services.


  ```txt
  airs_model
  ```



  | Abstract            | Extensible | Status         | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In                                                              |
  | :------------------ | :--------- | :------------- | :----------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
  | Can be instantiated | No         | Unknown status | No           | Forbidden         | Allowed               | none                | [model.schema.json](../../out/model.schema.json "open original schema") |



  `object` ([Item](model.md))



  | Property                  | Type   | Required | Nullable       | Defined by                                                                                                                                                                                                                                                             |
  | :------------------------ | :----- | :------- | :------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | [collection](#collection) | Merged | Optional | cannot be null | [Item](model-properties-name-of-the-collection-the-item-belongs-to.md "airs_model#/properties/collection")                                                                                                                                                             |
  | [catalog](#catalog)       | Merged | Optional | cannot be null | [Item](model-properties-name-of-the-catalog-the-item-belongs-to.md "airs_model#/properties/catalog")                                                                                                                                                                   |
  | [id](#id)                 | Merged | Optional | cannot be null | [Item](model-properties-unique-item-identifier-must-be-unique-within-the-collection.md "airs_model#/properties/id")                                                                                                                                                    |
  | [geometry](#geometry)     | Merged | Optional | cannot be null | [Item](model-properties-defines-the-full-footprint-of-the-asset-represented-by-this-item-formatted-according-to-rfc-7946-section-31-geojson-httpstoolsietforghtmlrfc7946_.md "airs_model#/properties/geometry")                                                        |
  | [bbox](#bbox)             | Merged | Optional | cannot be null | [Item](model-properties-bounding-box-of-the-asset-represented-by-this-item-using-either-2d-or-3d-geometries-the-length-of-the-array-must-be-2n-where-n-is-the-number-of-dimensions-could-also-be-none-in-the-case-of-a-null-geometry.md "airs_model#/properties/bbox") |
  | [centroid](#centroid)     | Merged | Optional | cannot be null | [Item](model-properties-coordinates-lonlat-of-the-geometrys-centroid.md "airs_model#/properties/centroid")                                                                                                                                                             |
  | [assets](#assets)         | Merged | Optional | cannot be null | [Item](model-properties-a-dictionary-mapping-string-keys-to-asset-objects-all-asset-values-in-the-dictionary-will-have-their-owner-attribute-set-to-the-created-item.md "airs_model#/properties/assets")                                                               |
  | [properties](#properties) | Merged | Optional | cannot be null | [Item](model-properties-item-properties.md "airs_model#/properties/properties")                                                                                                                                                                                        |
  | Additional Properties     | Any    | Optional | can be null    |                                                                                                                                                                                                                                                                        |





  `collection`

  *   is optional

  *   Type: merged type ([Name of the collection the item belongs to.](model-properties-name-of-the-collection-the-item-belongs-to.md))

  *   cannot be null

  *   defined in: [Item](model-properties-name-of-the-collection-the-item-belongs-to.md "airs_model#/properties/collection")



  merged type ([Name of the collection the item belongs to.](model-properties-name-of-the-collection-the-item-belongs-to.md))

  any of

  *   [Untitled string in Item](model-properties-name-of-the-collection-the-item-belongs-to-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-properties-name-of-the-collection-the-item-belongs-to-anyof-1.md "check type definition")





  `catalog`

  *   is optional

  *   Type: merged type ([Name of the catalog the item belongs to.](model-properties-name-of-the-catalog-the-item-belongs-to.md))

  *   cannot be null

  *   defined in: [Item](model-properties-name-of-the-catalog-the-item-belongs-to.md "airs_model#/properties/catalog")



  merged type ([Name of the catalog the item belongs to.](model-properties-name-of-the-catalog-the-item-belongs-to.md))

  any of

  *   [Untitled string in Item](model-properties-name-of-the-catalog-the-item-belongs-to-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-properties-name-of-the-catalog-the-item-belongs-to-anyof-1.md "check type definition")





  `id`

  *   is optional

  *   Type: merged type ([Unique item identifier. Must be unique within the collection.](model-properties-unique-item-identifier-must-be-unique-within-the-collection.md))

  *   cannot be null

  *   defined in: [Item](model-properties-unique-item-identifier-must-be-unique-within-the-collection.md "airs_model#/properties/id")



  merged type ([Unique item identifier. Must be unique within the collection.](model-properties-unique-item-identifier-must-be-unique-within-the-collection.md))

  any of

  *   [Untitled string in Item](model-properties-unique-item-identifier-must-be-unique-within-the-collection-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-properties-unique-item-identifier-must-be-unique-within-the-collection-anyof-1.md "check type definition")





  `geometry`

  *   is optional

  *   Type: merged type ([Defines the full footprint of the asset represented by this item, formatted according to \`RFC 7946, section 3.1 (GeoJSON) \<https://tools.ietf.org/html/rfc7946>\`\_](model-properties-defines-the-full-footprint-of-the-asset-represented-by-this-item-formatted-according-to-rfc-7946-section-31-geojson-httpstoolsietforghtmlrfc7946_.md))

  *   cannot be null

  *   defined in: [Item](model-properties-defines-the-full-footprint-of-the-asset-represented-by-this-item-formatted-according-to-rfc-7946-section-31-geojson-httpstoolsietforghtmlrfc7946_.md "airs_model#/properties/geometry")



  merged type ([Defines the full footprint of the asset represented by this item, formatted according to \`RFC 7946, section 3.1 (GeoJSON) \<https://tools.ietf.org/html/rfc7946>\`\_](model-properties-defines-the-full-footprint-of-the-asset-represented-by-this-item-formatted-according-to-rfc-7946-section-31-geojson-httpstoolsietforghtmlrfc7946_.md))

  any of

  *   [Untitled object in Item](model-properties-defines-the-full-footprint-of-the-asset-represented-by-this-item-formatted-according-to-rfc-7946-section-31-geojson-httpstoolsietforghtmlrfc7946_-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-properties-defines-the-full-footprint-of-the-asset-represented-by-this-item-formatted-according-to-rfc-7946-section-31-geojson-httpstoolsietforghtmlrfc7946_-anyof-1.md "check type definition")





  `bbox`

  *   is optional

  *   Type: merged type ([Bounding Box of the asset represented by this item using either 2D or 3D geometries. The length of the array must be 2\*n where n is the number of dimensions. Could also be None in the case of a null geometry.](model-properties-bounding-box-of-the-asset-represented-by-this-item-using-either-2d-or-3d-geometries-the-length-of-the-array-must-be-2n-where-n-is-the-number-of-dimensions-could-also-be-none-in-the-case-of-a-null-geometry.md))

  *   cannot be null

  *   defined in: [Item](model-properties-bounding-box-of-the-asset-represented-by-this-item-using-either-2d-or-3d-geometries-the-length-of-the-array-must-be-2n-where-n-is-the-number-of-dimensions-could-also-be-none-in-the-case-of-a-null-geometry.md "airs_model#/properties/bbox")



  merged type ([Bounding Box of the asset represented by this item using either 2D or 3D geometries. The length of the array must be 2\*n where n is the number of dimensions. Could also be None in the case of a null geometry.](model-properties-bounding-box-of-the-asset-represented-by-this-item-using-either-2d-or-3d-geometries-the-length-of-the-array-must-be-2n-where-n-is-the-number-of-dimensions-could-also-be-none-in-the-case-of-a-null-geometry.md))

  any of

  *   [Untitled array in Item](model-properties-bounding-box-of-the-asset-represented-by-this-item-using-either-2d-or-3d-geometries-the-length-of-the-array-must-be-2n-where-n-is-the-number-of-dimensions-could-also-be-none-in-the-case-of-a-null-geometry-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-properties-bounding-box-of-the-asset-represented-by-this-item-using-either-2d-or-3d-geometries-the-length-of-the-array-must-be-2n-where-n-is-the-number-of-dimensions-could-also-be-none-in-the-case-of-a-null-geometry-anyof-1.md "check type definition")





  `centroid`

  *   is optional

  *   Type: merged type ([Coordinates (lon/lat) of the geometry's centroid.](model-properties-coordinates-lonlat-of-the-geometrys-centroid.md))

  *   cannot be null

  *   defined in: [Item](model-properties-coordinates-lonlat-of-the-geometrys-centroid.md "airs_model#/properties/centroid")



  merged type ([Coordinates (lon/lat) of the geometry's centroid.](model-properties-coordinates-lonlat-of-the-geometrys-centroid.md))

  any of

  *   [Untitled array in Item](model-properties-coordinates-lonlat-of-the-geometrys-centroid-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-properties-coordinates-lonlat-of-the-geometrys-centroid-anyof-1.md "check type definition")





  `assets`

  *   is optional

  *   Type: merged type ([A dictionary mapping string keys to Asset objects. All Asset values in the dictionary will have their owner attribute set to the created Item.](model-properties-a-dictionary-mapping-string-keys-to-asset-objects-all-asset-values-in-the-dictionary-will-have-their-owner-attribute-set-to-the-created-item.md))

  *   cannot be null

  *   defined in: [Item](model-properties-a-dictionary-mapping-string-keys-to-asset-objects-all-asset-values-in-the-dictionary-will-have-their-owner-attribute-set-to-the-created-item.md "airs_model#/properties/assets")



  merged type ([A dictionary mapping string keys to Asset objects. All Asset values in the dictionary will have their owner attribute set to the created Item.](model-properties-a-dictionary-mapping-string-keys-to-asset-objects-all-asset-values-in-the-dictionary-will-have-their-owner-attribute-set-to-the-created-item.md))

  any of

  *   [Untitled object in Item](model-properties-a-dictionary-mapping-string-keys-to-asset-objects-all-asset-values-in-the-dictionary-will-have-their-owner-attribute-set-to-the-created-item-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-properties-a-dictionary-mapping-string-keys-to-asset-objects-all-asset-values-in-the-dictionary-will-have-their-owner-attribute-set-to-the-created-item-anyof-1.md "check type definition")





  `properties`

  *   is optional

  *   Type: merged type ([Item properties](model-properties-item-properties.md))

  *   cannot be null

  *   defined in: [Item](model-properties-item-properties.md "airs_model#/properties/properties")



  merged type ([Item properties](model-properties-item-properties.md))

  any of

  *   [Properties](model-defs-properties.md "check type definition")

  *   [Untitled null in Item](model-properties-item-properties-anyof-1.md "check type definition")



  Additional properties are allowed and do not have to follow a specific schema





  Reference this group by using

  ```json
  {"$ref":"airs_model#/$defs/Asset"}
  ```

  | Property                                                          | Type   | Required | Nullable       | Defined by                                                                                                                                                                                                                                                                            |
  | :---------------------------------------------------------------- | :----- | :------- | :------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
  | [name](#name)                                                     | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-assets-name-but-be-the-same-as-the-key-in-the-assets-dictionary.md "airs_model#/$defs/Asset/properties/name")                                                                                                                                      |
  | [size](#size)                                                     | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-assets-size-in-bytes.md "airs_model#/$defs/Asset/properties/size")                                                                                                                                                                                 |
  | [href](#href)                                                     | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-absolute-link-to-the-asset-object.md "airs_model#/$defs/Asset/properties/href")                                                                                                                                                                    |
  | [asset\_type](#asset_type)                                        | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-type-of-data-resourcetype.md "airs_model#/$defs/Asset/properties/asset_type")                                                                                                                                                                      |
  | [asset\_format](#asset_format)                                    | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-data-format-assetformat.md "airs_model#/$defs/Asset/properties/asset_format")                                                                                                                                                                      |
  | [storage\_\_requester\_pays](#storage__requester_pays)            | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-is-the-data-requester-pays-or-is-it-data-managercloud-provider-pays-defaults-to-false-whether-the-requester-pays-for-accessing-assets.md "airs_model#/$defs/Asset/properties/storage__requester_pays")                                             |
  | [storage\_\_tier](#storage__tier)                                 | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-cloud-provider-storage-tiers-standard-glacier-etc.md "airs_model#/$defs/Asset/properties/storage__tier")                                                                                                                                           |
  | [storage\_\_platform](#storage__platform)                         | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-paas-solutions-alibaba-aws-azure-gcp-ibm-oracle-other.md "airs_model#/$defs/Asset/properties/storage__platform")                                                                                                                                   |
  | [storage\_\_region](#storage__region)                             | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-the-region-where-the-data-is-stored-relevant-to-speed-of-access-and-inter-region-egress-costs-as-defined-by-paas-provider.md "airs_model#/$defs/Asset/properties/storage__region")                                                                 |
  | [airs\_\_managed](#airs__managed)                                 | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-whether-the-asset-is-managed-by-airs-or-not.md "airs_model#/$defs/Asset/properties/airs__managed")                                                                                                                                                 |
  | [airs\_\_object\_store\_bucket](#airs__object_store_bucket)       | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-object-store-bucket-for-the-asset-object.md "airs_model#/$defs/Asset/properties/airs__object_store_bucket")                                                                                                                                        |
  | [airs\_\_object\_store\_key](#airs__object_store_key)             | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-object-store-key-of-the-asset-object.md "airs_model#/$defs/Asset/properties/airs__object_store_key")                                                                                                                                               |
  | [title](#title)                                                   | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-optional-displayed-title-for-clients-and-users.md "airs_model#/$defs/Asset/properties/title")                                                                                                                                                      |
  | [description](#description)                                       | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-a-description-of-the-asset-providing-additional-details-such-as-how-it-was-processed-or-created-commonmark-029-syntax-may-be-used-for-rich-text-representation.md "airs_model#/$defs/Asset/properties/description")                                |
  | [type](#type)                                                     | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-optional-description-of-the-media-type-registered-media-types-are-preferred-see-mediatype-for-common-media-types.md "airs_model#/$defs/Asset/properties/type")                                                                                     |
  | [roles](#roles)                                                   | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-optional-semantic-roles-ie-thumbnail-overview-data-metadata-of-the-asset.md "airs_model#/$defs/Asset/properties/roles")                                                                                                                            |
  | [extra\_fields](#extra_fields)                                    | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-optional-additional-fields-for-this-asset-this-is-used-by-extensions-as-a-way-to-serialize-and-deserialize-properties-on-asset-object-json.md "airs_model#/$defs/Asset/properties/extra_fields")                                                   |
  | [gsd](#gsd)                                                       | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-ground-sampling-distance-resolution-of-the-asset.md "airs_model#/$defs/Asset/properties/gsd")                                                                                                                                                      |
  | [eo\_\_bands](#eo__bands)                                         | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-an-array-of-available-bands-where-each-object-is-a-band-object-if-given-requires-at-least-one-band.md "airs_model#/$defs/Asset/properties/eo__bands")                                                                                              |
  | [sar\_\_instrument\_mode](#sar__instrument_mode)                  | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-the-name-of-the-sensor-acquisition-mode-that-is-commonly-used-this-should-be-the-short-name-if-available-for-example-wv-for-wave-mode-of-sentinel-1-and-envisat-asar-satellites.md "airs_model#/$defs/Asset/properties/sar__instrument_mode")      |
  | [sar\_\_frequency\_band](#sar__frequency_band)                    | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-the-common-name-for-the-frequency-band-to-make-it-easier-to-search-for-bands-across-instruments-see-section-common-frequency-band-names-for-a-list-of-accepted-names.md "airs_model#/$defs/Asset/properties/sar__frequency_band")                  |
  | [sar\_\_center\_frequency](#sar__center_frequency)                | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-the-center-frequency-of-the-instrument-in-gigahertz-ghz.md "airs_model#/$defs/Asset/properties/sar__center_frequency")                                                                                                                             |
  | [sar\_\_polarizations](#sar__polarizations)                       | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-any-combination-of-polarizations.md "airs_model#/$defs/Asset/properties/sar__polarizations")                                                                                                                                                       |
  | [sar\_\_product\_type](#sar__product_type)                        | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-the-product-type-for-example-ssc-mgd-or-sgc.md "airs_model#/$defs/Asset/properties/sar__product_type")                                                                                                                                             |
  | [sar\_\_resolution\_range](#sar__resolution_range)                | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-the-range-resolution-which-is-the-maximum-ability-to-distinguish-two-adjacent-targets-perpendicular-to-the-flight-path-in-meters-m.md "airs_model#/$defs/Asset/properties/sar__resolution_range")                                                  |
  | [sar\_\_resolution\_azimuth](#sar__resolution_azimuth)            | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-the-azimuth-resolution-which-is-the-maximum-ability-to-distinguish-two-adjacent-targets-parallel-to-the-flight-path-in-meters-m.md "airs_model#/$defs/Asset/properties/sar__resolution_azimuth")                                                   |
  | [sar\_\_pixel\_spacing\_range](#sar__pixel_spacing_range)         | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-the-range-pixel-spacing-which-is-the-distance-between-adjacent-pixels-perpendicular-to-the-flight-path-in-meters-m-strongly-recommended-to-be-specified-for-products-of-type-grd.md "airs_model#/$defs/Asset/properties/sar__pixel_spacing_range") |
  | [sar\_\_pixel\_spacing\_azimuth](#sar__pixel_spacing_azimuth)     | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-the-azimuth-pixel-spacing-which-is-the-distance-between-adjacent-pixels-parallel-to-the-flight-path-in-meters-m-strongly-recommended-to-be-specified-for-products-of-type-grd.md "airs_model#/$defs/Asset/properties/sar__pixel_spacing_azimuth")  |
  | [sar\_\_looks\_range](#sar__looks_range)                          | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-number-of-range-looks-which-is-the-number-of-groups-of-signal-samples-looks-perpendicular-to-the-flight-path.md "airs_model#/$defs/Asset/properties/sar__looks_range")                                                                             |
  | [sar\_\_looks\_azimuth](#sar__looks_azimuth)                      | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-number-of-azimuth-looks-which-is-the-number-of-groups-of-signal-samples-looks-parallel-to-the-flight-path.md "airs_model#/$defs/Asset/properties/sar__looks_azimuth")                                                                              |
  | [sar\_\_looks\_equivalent\_number](#sar__looks_equivalent_number) | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-the-equivalent-number-of-looks-enl.md "airs_model#/$defs/Asset/properties/sar__looks_equivalent_number")                                                                                                                                           |
  | [sar\_\_observation\_direction](#sar__observation_direction)      | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-antenna-pointing-direction-relative-to-the-flight-trajectory-of-the-satellite-either-left-or-right.md "airs_model#/$defs/Asset/properties/sar__observation_direction")                                                                             |
  | [proj\_\_epsg](#proj__epsg)                                       | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-epsg-code-of-the-datasource.md "airs_model#/$defs/Asset/properties/proj__epsg")                                                                                                                                                                    |
  | [proj\_\_wkt2](#proj__wkt2)                                       | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-projjson-object-representing-the-coordinate-reference-system-crs-that-the-projgeometry-and-projbbox-fields-represent.md "airs_model#/$defs/Asset/properties/proj__wkt2")                                                                           |
  | [proj\_\_geometry](#proj__geometry)                               | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-defines-the-footprint-of-this-item.md "airs_model#/$defs/Asset/properties/proj__geometry")                                                                                                                                                         |
  | [proj\_\_bbox](#proj__bbox)                                       | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-bounding-box-of-the-item-in-the-asset-crs-in-2-or-3-dimensions.md "airs_model#/$defs/Asset/properties/proj__bbox")                                                                                                                                 |
  | [proj\_\_centroid](#proj__centroid)                               | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-coordinates-representing-the-centroid-of-the-item-in-latlong.md "airs_model#/$defs/Asset/properties/proj__centroid")                                                                                                                               |
  | [proj\_\_shape](#proj__shape)                                     | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-number-of-pixels-in-y-and-x-directions-for-the-default-grid.md "airs_model#/$defs/Asset/properties/proj__shape")                                                                                                                                   |
  | [proj\_\_transform](#proj__transform)                             | Merged | Optional | cannot be null | [Item](model-defs-asset-properties-the-affine-transformation-coefficients-for-the-default-grid.md "airs_model#/$defs/Asset/properties/proj__transform")                                                                                                                               |
  | Additional Properties                                             | Any    | Optional | can be null    |                                                                                                                                                                                                                                                                                       |





  `name`

  *   is optional

  *   Type: merged type ([Asset's name. But be the same as the key in the \`assets\` dictionary.](model-defs-asset-properties-assets-name-but-be-the-same-as-the-key-in-the-assets-dictionary.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-assets-name-but-be-the-same-as-the-key-in-the-assets-dictionary.md "airs_model#/$defs/Asset/properties/name")



  merged type ([Asset's name. But be the same as the key in the \`assets\` dictionary.](model-defs-asset-properties-assets-name-but-be-the-same-as-the-key-in-the-assets-dictionary.md))

  any of

  *   [Untitled string in Item](model-defs-asset-properties-assets-name-but-be-the-same-as-the-key-in-the-assets-dictionary-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-assets-name-but-be-the-same-as-the-key-in-the-assets-dictionary-anyof-1.md "check type definition")





  `size`

  *   is optional

  *   Type: merged type ([Asset's size in Bytes.](model-defs-asset-properties-assets-size-in-bytes.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-assets-size-in-bytes.md "airs_model#/$defs/Asset/properties/size")



  merged type ([Asset's size in Bytes.](model-defs-asset-properties-assets-size-in-bytes.md))

  any of

  *   [Untitled integer in Item](model-defs-asset-properties-assets-size-in-bytes-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-assets-size-in-bytes-anyof-1.md "check type definition")





  `href`

  *   is optional

  *   Type: merged type ([Absolute link to the asset object.](model-defs-asset-properties-absolute-link-to-the-asset-object.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-absolute-link-to-the-asset-object.md "airs_model#/$defs/Asset/properties/href")



  merged type ([Absolute link to the asset object.](model-defs-asset-properties-absolute-link-to-the-asset-object.md))

  any of

  *   [Untitled string in Item](model-defs-asset-properties-absolute-link-to-the-asset-object-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-absolute-link-to-the-asset-object-anyof-1.md "check type definition")





  `asset_type`

  *   is optional

  *   Type: merged type ([Type of data (ResourceType)](model-defs-asset-properties-type-of-data-resourcetype.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-type-of-data-resourcetype.md "airs_model#/$defs/Asset/properties/asset_type")



  merged type ([Type of data (ResourceType)](model-defs-asset-properties-type-of-data-resourcetype.md))

  any of

  *   [Untitled string in Item](model-defs-asset-properties-type-of-data-resourcetype-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-type-of-data-resourcetype-anyof-1.md "check type definition")





  `asset_format`

  *   is optional

  *   Type: merged type ([Data format (AssetFormat)](model-defs-asset-properties-data-format-assetformat.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-data-format-assetformat.md "airs_model#/$defs/Asset/properties/asset_format")



  merged type ([Data format (AssetFormat)](model-defs-asset-properties-data-format-assetformat.md))

  any of

  *   [Untitled string in Item](model-defs-asset-properties-data-format-assetformat-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-data-format-assetformat-anyof-1.md "check type definition")





  `storage__requester_pays`

  *   is optional

  *   Type: merged type ([Is the data requester pays or is it data manager/cloud provider pays. Defaults to false. Whether the requester pays for accessing assets](model-defs-asset-properties-is-the-data-requester-pays-or-is-it-data-managercloud-provider-pays-defaults-to-false-whether-the-requester-pays-for-accessing-assets.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-is-the-data-requester-pays-or-is-it-data-managercloud-provider-pays-defaults-to-false-whether-the-requester-pays-for-accessing-assets.md "airs_model#/$defs/Asset/properties/storage__requester_pays")



  merged type ([Is the data requester pays or is it data manager/cloud provider pays. Defaults to false. Whether the requester pays for accessing assets](model-defs-asset-properties-is-the-data-requester-pays-or-is-it-data-managercloud-provider-pays-defaults-to-false-whether-the-requester-pays-for-accessing-assets.md))

  any of

  *   [Untitled boolean in Item](model-defs-asset-properties-is-the-data-requester-pays-or-is-it-data-managercloud-provider-pays-defaults-to-false-whether-the-requester-pays-for-accessing-assets-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-is-the-data-requester-pays-or-is-it-data-managercloud-provider-pays-defaults-to-false-whether-the-requester-pays-for-accessing-assets-anyof-1.md "check type definition")





  `storage__tier`

  *   is optional

  *   Type: merged type ([Cloud Provider Storage Tiers (Standard, Glacier, etc.)](model-defs-asset-properties-cloud-provider-storage-tiers-standard-glacier-etc.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-cloud-provider-storage-tiers-standard-glacier-etc.md "airs_model#/$defs/Asset/properties/storage__tier")



  merged type ([Cloud Provider Storage Tiers (Standard, Glacier, etc.)](model-defs-asset-properties-cloud-provider-storage-tiers-standard-glacier-etc.md))

  any of

  *   [Untitled string in Item](model-defs-asset-properties-cloud-provider-storage-tiers-standard-glacier-etc-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-cloud-provider-storage-tiers-standard-glacier-etc-anyof-1.md "check type definition")





  `storage__platform`

  *   is optional

  *   Type: merged type ([PaaS solutions (ALIBABA, AWS, AZURE, GCP, IBM, ORACLE, OTHER)](model-defs-asset-properties-paas-solutions-alibaba-aws-azure-gcp-ibm-oracle-other.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-paas-solutions-alibaba-aws-azure-gcp-ibm-oracle-other.md "airs_model#/$defs/Asset/properties/storage__platform")



  merged type ([PaaS solutions (ALIBABA, AWS, AZURE, GCP, IBM, ORACLE, OTHER)](model-defs-asset-properties-paas-solutions-alibaba-aws-azure-gcp-ibm-oracle-other.md))

  any of

  *   [Untitled string in Item](model-defs-asset-properties-paas-solutions-alibaba-aws-azure-gcp-ibm-oracle-other-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-paas-solutions-alibaba-aws-azure-gcp-ibm-oracle-other-anyof-1.md "check type definition")





  `storage__region`

  *   is optional

  *   Type: merged type ([The region where the data is stored. Relevant to speed of access and inter region egress costs (as defined by PaaS provider)](model-defs-asset-properties-the-region-where-the-data-is-stored-relevant-to-speed-of-access-and-inter-region-egress-costs-as-defined-by-paas-provider.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-the-region-where-the-data-is-stored-relevant-to-speed-of-access-and-inter-region-egress-costs-as-defined-by-paas-provider.md "airs_model#/$defs/Asset/properties/storage__region")



  merged type ([The region where the data is stored. Relevant to speed of access and inter region egress costs (as defined by PaaS provider)](model-defs-asset-properties-the-region-where-the-data-is-stored-relevant-to-speed-of-access-and-inter-region-egress-costs-as-defined-by-paas-provider.md))

  any of

  *   [Untitled string in Item](model-defs-asset-properties-the-region-where-the-data-is-stored-relevant-to-speed-of-access-and-inter-region-egress-costs-as-defined-by-paas-provider-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-the-region-where-the-data-is-stored-relevant-to-speed-of-access-and-inter-region-egress-costs-as-defined-by-paas-provider-anyof-1.md "check type definition")





  `airs__managed`

  *   is optional

  *   Type: merged type ([Whether the asset is managed by AIRS or not.](model-defs-asset-properties-whether-the-asset-is-managed-by-airs-or-not.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-whether-the-asset-is-managed-by-airs-or-not.md "airs_model#/$defs/Asset/properties/airs__managed")



  merged type ([Whether the asset is managed by AIRS or not.](model-defs-asset-properties-whether-the-asset-is-managed-by-airs-or-not.md))

  any of

  *   [Untitled boolean in Item](model-defs-asset-properties-whether-the-asset-is-managed-by-airs-or-not-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-whether-the-asset-is-managed-by-airs-or-not-anyof-1.md "check type definition")



  The default value is:

  ```json
  true
  ```





  `airs__object_store_bucket`

  *   is optional

  *   Type: merged type ([Object store bucket for the asset object.](model-defs-asset-properties-object-store-bucket-for-the-asset-object.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-object-store-bucket-for-the-asset-object.md "airs_model#/$defs/Asset/properties/airs__object_store_bucket")



  merged type ([Object store bucket for the asset object.](model-defs-asset-properties-object-store-bucket-for-the-asset-object.md))

  any of

  *   [Untitled string in Item](model-defs-asset-properties-object-store-bucket-for-the-asset-object-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-object-store-bucket-for-the-asset-object-anyof-1.md "check type definition")





  `airs__object_store_key`

  *   is optional

  *   Type: merged type ([Object store key of the asset object.](model-defs-asset-properties-object-store-key-of-the-asset-object.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-object-store-key-of-the-asset-object.md "airs_model#/$defs/Asset/properties/airs__object_store_key")



  merged type ([Object store key of the asset object.](model-defs-asset-properties-object-store-key-of-the-asset-object.md))

  any of

  *   [Untitled string in Item](model-defs-asset-properties-object-store-key-of-the-asset-object-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-object-store-key-of-the-asset-object-anyof-1.md "check type definition")





  `title`

  *   is optional

  *   Type: merged type ([Optional displayed title for clients and users.](model-defs-asset-properties-optional-displayed-title-for-clients-and-users.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-optional-displayed-title-for-clients-and-users.md "airs_model#/$defs/Asset/properties/title")



  merged type ([Optional displayed title for clients and users.](model-defs-asset-properties-optional-displayed-title-for-clients-and-users.md))

  any of

  *   [Untitled string in Item](model-defs-asset-properties-optional-displayed-title-for-clients-and-users-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-optional-displayed-title-for-clients-and-users-anyof-1.md "check type definition")





  `description`

  *   is optional

  *   Type: merged type ([A description of the Asset providing additional details, such as how it was processed or created. CommonMark 0.29 syntax MAY be used for rich text representation.](model-defs-asset-properties-a-description-of-the-asset-providing-additional-details-such-as-how-it-was-processed-or-created-commonmark-029-syntax-may-be-used-for-rich-text-representation.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-a-description-of-the-asset-providing-additional-details-such-as-how-it-was-processed-or-created-commonmark-029-syntax-may-be-used-for-rich-text-representation.md "airs_model#/$defs/Asset/properties/description")



  merged type ([A description of the Asset providing additional details, such as how it was processed or created. CommonMark 0.29 syntax MAY be used for rich text representation.](model-defs-asset-properties-a-description-of-the-asset-providing-additional-details-such-as-how-it-was-processed-or-created-commonmark-029-syntax-may-be-used-for-rich-text-representation.md))

  any of

  *   [Untitled string in Item](model-defs-asset-properties-a-description-of-the-asset-providing-additional-details-such-as-how-it-was-processed-or-created-commonmark-029-syntax-may-be-used-for-rich-text-representation-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-a-description-of-the-asset-providing-additional-details-such-as-how-it-was-processed-or-created-commonmark-029-syntax-may-be-used-for-rich-text-representation-anyof-1.md "check type definition")





  `type`

  *   is optional

  *   Type: merged type ([Optional description of the media type. Registered Media Types are preferred. See MediaType for common media types.](model-defs-asset-properties-optional-description-of-the-media-type-registered-media-types-are-preferred-see-mediatype-for-common-media-types.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-optional-description-of-the-media-type-registered-media-types-are-preferred-see-mediatype-for-common-media-types.md "airs_model#/$defs/Asset/properties/type")



  merged type ([Optional description of the media type. Registered Media Types are preferred. See MediaType for common media types.](model-defs-asset-properties-optional-description-of-the-media-type-registered-media-types-are-preferred-see-mediatype-for-common-media-types.md))

  any of

  *   [Untitled string in Item](model-defs-asset-properties-optional-description-of-the-media-type-registered-media-types-are-preferred-see-mediatype-for-common-media-types-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-optional-description-of-the-media-type-registered-media-types-are-preferred-see-mediatype-for-common-media-types-anyof-1.md "check type definition")





  `roles`

  *   is optional

  *   Type: merged type ([Optional, Semantic roles (i.e. thumbnail, overview, data, metadata) of the asset.](model-defs-asset-properties-optional-semantic-roles-ie-thumbnail-overview-data-metadata-of-the-asset.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-optional-semantic-roles-ie-thumbnail-overview-data-metadata-of-the-asset.md "airs_model#/$defs/Asset/properties/roles")



  merged type ([Optional, Semantic roles (i.e. thumbnail, overview, data, metadata) of the asset.](model-defs-asset-properties-optional-semantic-roles-ie-thumbnail-overview-data-metadata-of-the-asset.md))

  any of

  *   [Untitled array in Item](model-defs-asset-properties-optional-semantic-roles-ie-thumbnail-overview-data-metadata-of-the-asset-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-optional-semantic-roles-ie-thumbnail-overview-data-metadata-of-the-asset-anyof-1.md "check type definition")





  `extra_fields`

  *   is optional

  *   Type: merged type ([Optional, additional fields for this asset. This is used by extensions as a way to serialize and deserialize properties on asset object JSON.](model-defs-asset-properties-optional-additional-fields-for-this-asset-this-is-used-by-extensions-as-a-way-to-serialize-and-deserialize-properties-on-asset-object-json.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-optional-additional-fields-for-this-asset-this-is-used-by-extensions-as-a-way-to-serialize-and-deserialize-properties-on-asset-object-json.md "airs_model#/$defs/Asset/properties/extra_fields")



  merged type ([Optional, additional fields for this asset. This is used by extensions as a way to serialize and deserialize properties on asset object JSON.](model-defs-asset-properties-optional-additional-fields-for-this-asset-this-is-used-by-extensions-as-a-way-to-serialize-and-deserialize-properties-on-asset-object-json.md))

  any of

  *   [Untitled object in Item](model-defs-asset-properties-optional-additional-fields-for-this-asset-this-is-used-by-extensions-as-a-way-to-serialize-and-deserialize-properties-on-asset-object-json-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-optional-additional-fields-for-this-asset-this-is-used-by-extensions-as-a-way-to-serialize-and-deserialize-properties-on-asset-object-json-anyof-1.md "check type definition")





  `gsd`

  *   is optional

  *   Type: merged type ([Ground Sampling Distance (resolution) of the asset](model-defs-asset-properties-ground-sampling-distance-resolution-of-the-asset.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-ground-sampling-distance-resolution-of-the-asset.md "airs_model#/$defs/Asset/properties/gsd")



  merged type ([Ground Sampling Distance (resolution) of the asset](model-defs-asset-properties-ground-sampling-distance-resolution-of-the-asset.md))

  any of

  *   [Untitled number in Item](model-defs-asset-properties-ground-sampling-distance-resolution-of-the-asset-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-ground-sampling-distance-resolution-of-the-asset-anyof-1.md "check type definition")





  `eo__bands`

  *   is optional

  *   Type: merged type ([An array of available bands where each object is a Band Object. If given, requires at least one band.](model-defs-asset-properties-an-array-of-available-bands-where-each-object-is-a-band-object-if-given-requires-at-least-one-band.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-an-array-of-available-bands-where-each-object-is-a-band-object-if-given-requires-at-least-one-band.md "airs_model#/$defs/Asset/properties/eo__bands")



  merged type ([An array of available bands where each object is a Band Object. If given, requires at least one band.](model-defs-asset-properties-an-array-of-available-bands-where-each-object-is-a-band-object-if-given-requires-at-least-one-band.md))

  any of

  *   [Untitled array in Item](model-defs-asset-properties-an-array-of-available-bands-where-each-object-is-a-band-object-if-given-requires-at-least-one-band-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-an-array-of-available-bands-where-each-object-is-a-band-object-if-given-requires-at-least-one-band-anyof-1.md "check type definition")





  `sar__instrument_mode`

  *   is optional

  *   Type: merged type ([The name of the sensor acquisition mode that is commonly used. This should be the short name, if available. For example, WV for "Wave mode" of Sentinel-1 and Envisat ASAR satellites.](model-defs-asset-properties-the-name-of-the-sensor-acquisition-mode-that-is-commonly-used-this-should-be-the-short-name-if-available-for-example-wv-for-wave-mode-of-sentinel-1-and-envisat-asar-satellites.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-the-name-of-the-sensor-acquisition-mode-that-is-commonly-used-this-should-be-the-short-name-if-available-for-example-wv-for-wave-mode-of-sentinel-1-and-envisat-asar-satellites.md "airs_model#/$defs/Asset/properties/sar__instrument_mode")



  merged type ([The name of the sensor acquisition mode that is commonly used. This should be the short name, if available. For example, WV for "Wave mode" of Sentinel-1 and Envisat ASAR satellites.](model-defs-asset-properties-the-name-of-the-sensor-acquisition-mode-that-is-commonly-used-this-should-be-the-short-name-if-available-for-example-wv-for-wave-mode-of-sentinel-1-and-envisat-asar-satellites.md))

  any of

  *   [Untitled string in Item](model-defs-asset-properties-the-name-of-the-sensor-acquisition-mode-that-is-commonly-used-this-should-be-the-short-name-if-available-for-example-wv-for-wave-mode-of-sentinel-1-and-envisat-asar-satellites-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-the-name-of-the-sensor-acquisition-mode-that-is-commonly-used-this-should-be-the-short-name-if-available-for-example-wv-for-wave-mode-of-sentinel-1-and-envisat-asar-satellites-anyof-1.md "check type definition")





  `sar__frequency_band`

  *   is optional

  *   Type: merged type ([The common name for the frequency band to make it easier to search for bands across instruments. See section "Common Frequency Band Names" for a list of accepted names.](model-defs-asset-properties-the-common-name-for-the-frequency-band-to-make-it-easier-to-search-for-bands-across-instruments-see-section-common-frequency-band-names-for-a-list-of-accepted-names.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-the-common-name-for-the-frequency-band-to-make-it-easier-to-search-for-bands-across-instruments-see-section-common-frequency-band-names-for-a-list-of-accepted-names.md "airs_model#/$defs/Asset/properties/sar__frequency_band")



  merged type ([The common name for the frequency band to make it easier to search for bands across instruments. See section "Common Frequency Band Names" for a list of accepted names.](model-defs-asset-properties-the-common-name-for-the-frequency-band-to-make-it-easier-to-search-for-bands-across-instruments-see-section-common-frequency-band-names-for-a-list-of-accepted-names.md))

  any of

  *   [Untitled string in Item](model-defs-asset-properties-the-common-name-for-the-frequency-band-to-make-it-easier-to-search-for-bands-across-instruments-see-section-common-frequency-band-names-for-a-list-of-accepted-names-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-the-common-name-for-the-frequency-band-to-make-it-easier-to-search-for-bands-across-instruments-see-section-common-frequency-band-names-for-a-list-of-accepted-names-anyof-1.md "check type definition")





  `sar__center_frequency`

  *   is optional

  *   Type: merged type ([The center frequency of the instrument, in gigahertz (GHz).](model-defs-asset-properties-the-center-frequency-of-the-instrument-in-gigahertz-ghz.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-the-center-frequency-of-the-instrument-in-gigahertz-ghz.md "airs_model#/$defs/Asset/properties/sar__center_frequency")



  merged type ([The center frequency of the instrument, in gigahertz (GHz).](model-defs-asset-properties-the-center-frequency-of-the-instrument-in-gigahertz-ghz.md))

  any of

  *   [Untitled number in Item](model-defs-asset-properties-the-center-frequency-of-the-instrument-in-gigahertz-ghz-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-the-center-frequency-of-the-instrument-in-gigahertz-ghz-anyof-1.md "check type definition")





  `sar__polarizations`

  *   is optional

  *   Type: merged type ([Any combination of polarizations.](model-defs-asset-properties-any-combination-of-polarizations.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-any-combination-of-polarizations.md "airs_model#/$defs/Asset/properties/sar__polarizations")



  merged type ([Any combination of polarizations.](model-defs-asset-properties-any-combination-of-polarizations.md))

  any of

  *   [Untitled string in Item](model-defs-asset-properties-any-combination-of-polarizations-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-any-combination-of-polarizations-anyof-1.md "check type definition")





  `sar__product_type`

  *   is optional

  *   Type: merged type ([The product type, for example SSC, MGD, or SGC](model-defs-asset-properties-the-product-type-for-example-ssc-mgd-or-sgc.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-the-product-type-for-example-ssc-mgd-or-sgc.md "airs_model#/$defs/Asset/properties/sar__product_type")



  merged type ([The product type, for example SSC, MGD, or SGC](model-defs-asset-properties-the-product-type-for-example-ssc-mgd-or-sgc.md))

  any of

  *   [Untitled string in Item](model-defs-asset-properties-the-product-type-for-example-ssc-mgd-or-sgc-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-the-product-type-for-example-ssc-mgd-or-sgc-anyof-1.md "check type definition")





  `sar__resolution_range`

  *   is optional

  *   Type: merged type ([The range resolution, which is the maximum ability to distinguish two adjacent targets perpendicular to the flight path, in meters (m).](model-defs-asset-properties-the-range-resolution-which-is-the-maximum-ability-to-distinguish-two-adjacent-targets-perpendicular-to-the-flight-path-in-meters-m.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-the-range-resolution-which-is-the-maximum-ability-to-distinguish-two-adjacent-targets-perpendicular-to-the-flight-path-in-meters-m.md "airs_model#/$defs/Asset/properties/sar__resolution_range")



  merged type ([The range resolution, which is the maximum ability to distinguish two adjacent targets perpendicular to the flight path, in meters (m).](model-defs-asset-properties-the-range-resolution-which-is-the-maximum-ability-to-distinguish-two-adjacent-targets-perpendicular-to-the-flight-path-in-meters-m.md))

  any of

  *   [Untitled number in Item](model-defs-asset-properties-the-range-resolution-which-is-the-maximum-ability-to-distinguish-two-adjacent-targets-perpendicular-to-the-flight-path-in-meters-m-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-the-range-resolution-which-is-the-maximum-ability-to-distinguish-two-adjacent-targets-perpendicular-to-the-flight-path-in-meters-m-anyof-1.md "check type definition")





  `sar__resolution_azimuth`

  *   is optional

  *   Type: merged type ([The azimuth resolution, which is the maximum ability to distinguish two adjacent targets parallel to the flight path, in meters (m).](model-defs-asset-properties-the-azimuth-resolution-which-is-the-maximum-ability-to-distinguish-two-adjacent-targets-parallel-to-the-flight-path-in-meters-m.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-the-azimuth-resolution-which-is-the-maximum-ability-to-distinguish-two-adjacent-targets-parallel-to-the-flight-path-in-meters-m.md "airs_model#/$defs/Asset/properties/sar__resolution_azimuth")



  merged type ([The azimuth resolution, which is the maximum ability to distinguish two adjacent targets parallel to the flight path, in meters (m).](model-defs-asset-properties-the-azimuth-resolution-which-is-the-maximum-ability-to-distinguish-two-adjacent-targets-parallel-to-the-flight-path-in-meters-m.md))

  any of

  *   [Untitled number in Item](model-defs-asset-properties-the-azimuth-resolution-which-is-the-maximum-ability-to-distinguish-two-adjacent-targets-parallel-to-the-flight-path-in-meters-m-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-the-azimuth-resolution-which-is-the-maximum-ability-to-distinguish-two-adjacent-targets-parallel-to-the-flight-path-in-meters-m-anyof-1.md "check type definition")





  `sar__pixel_spacing_range`

  *   is optional

  *   Type: merged type ([The range pixel spacing, which is the distance between adjacent pixels perpendicular to the flight path, in meters (m). Strongly RECOMMENDED to be specified for products of type GRD.](model-defs-asset-properties-the-range-pixel-spacing-which-is-the-distance-between-adjacent-pixels-perpendicular-to-the-flight-path-in-meters-m-strongly-recommended-to-be-specified-for-products-of-type-grd.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-the-range-pixel-spacing-which-is-the-distance-between-adjacent-pixels-perpendicular-to-the-flight-path-in-meters-m-strongly-recommended-to-be-specified-for-products-of-type-grd.md "airs_model#/$defs/Asset/properties/sar__pixel_spacing_range")



  merged type ([The range pixel spacing, which is the distance between adjacent pixels perpendicular to the flight path, in meters (m). Strongly RECOMMENDED to be specified for products of type GRD.](model-defs-asset-properties-the-range-pixel-spacing-which-is-the-distance-between-adjacent-pixels-perpendicular-to-the-flight-path-in-meters-m-strongly-recommended-to-be-specified-for-products-of-type-grd.md))

  any of

  *   [Untitled number in Item](model-defs-asset-properties-the-range-pixel-spacing-which-is-the-distance-between-adjacent-pixels-perpendicular-to-the-flight-path-in-meters-m-strongly-recommended-to-be-specified-for-products-of-type-grd-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-the-range-pixel-spacing-which-is-the-distance-between-adjacent-pixels-perpendicular-to-the-flight-path-in-meters-m-strongly-recommended-to-be-specified-for-products-of-type-grd-anyof-1.md "check type definition")





  `sar__pixel_spacing_azimuth`

  *   is optional

  *   Type: merged type ([The azimuth pixel spacing, which is the distance between adjacent pixels parallel to the flight path, in meters (m). Strongly RECOMMENDED to be specified for products of type GRD.](model-defs-asset-properties-the-azimuth-pixel-spacing-which-is-the-distance-between-adjacent-pixels-parallel-to-the-flight-path-in-meters-m-strongly-recommended-to-be-specified-for-products-of-type-grd.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-the-azimuth-pixel-spacing-which-is-the-distance-between-adjacent-pixels-parallel-to-the-flight-path-in-meters-m-strongly-recommended-to-be-specified-for-products-of-type-grd.md "airs_model#/$defs/Asset/properties/sar__pixel_spacing_azimuth")



  merged type ([The azimuth pixel spacing, which is the distance between adjacent pixels parallel to the flight path, in meters (m). Strongly RECOMMENDED to be specified for products of type GRD.](model-defs-asset-properties-the-azimuth-pixel-spacing-which-is-the-distance-between-adjacent-pixels-parallel-to-the-flight-path-in-meters-m-strongly-recommended-to-be-specified-for-products-of-type-grd.md))

  any of

  *   [Untitled number in Item](model-defs-asset-properties-the-azimuth-pixel-spacing-which-is-the-distance-between-adjacent-pixels-parallel-to-the-flight-path-in-meters-m-strongly-recommended-to-be-specified-for-products-of-type-grd-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-the-azimuth-pixel-spacing-which-is-the-distance-between-adjacent-pixels-parallel-to-the-flight-path-in-meters-m-strongly-recommended-to-be-specified-for-products-of-type-grd-anyof-1.md "check type definition")





  `sar__looks_range`

  *   is optional

  *   Type: merged type ([Number of range looks, which is the number of groups of signal samples (looks) perpendicular to the flight path.](model-defs-asset-properties-number-of-range-looks-which-is-the-number-of-groups-of-signal-samples-looks-perpendicular-to-the-flight-path.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-number-of-range-looks-which-is-the-number-of-groups-of-signal-samples-looks-perpendicular-to-the-flight-path.md "airs_model#/$defs/Asset/properties/sar__looks_range")



  merged type ([Number of range looks, which is the number of groups of signal samples (looks) perpendicular to the flight path.](model-defs-asset-properties-number-of-range-looks-which-is-the-number-of-groups-of-signal-samples-looks-perpendicular-to-the-flight-path.md))

  any of

  *   [Untitled number in Item](model-defs-asset-properties-number-of-range-looks-which-is-the-number-of-groups-of-signal-samples-looks-perpendicular-to-the-flight-path-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-number-of-range-looks-which-is-the-number-of-groups-of-signal-samples-looks-perpendicular-to-the-flight-path-anyof-1.md "check type definition")





  `sar__looks_azimuth`

  *   is optional

  *   Type: merged type ([Number of azimuth looks, which is the number of groups of signal samples (looks) parallel to the flight path.](model-defs-asset-properties-number-of-azimuth-looks-which-is-the-number-of-groups-of-signal-samples-looks-parallel-to-the-flight-path.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-number-of-azimuth-looks-which-is-the-number-of-groups-of-signal-samples-looks-parallel-to-the-flight-path.md "airs_model#/$defs/Asset/properties/sar__looks_azimuth")



  merged type ([Number of azimuth looks, which is the number of groups of signal samples (looks) parallel to the flight path.](model-defs-asset-properties-number-of-azimuth-looks-which-is-the-number-of-groups-of-signal-samples-looks-parallel-to-the-flight-path.md))

  any of

  *   [Untitled number in Item](model-defs-asset-properties-number-of-azimuth-looks-which-is-the-number-of-groups-of-signal-samples-looks-parallel-to-the-flight-path-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-number-of-azimuth-looks-which-is-the-number-of-groups-of-signal-samples-looks-parallel-to-the-flight-path-anyof-1.md "check type definition")





  `sar__looks_equivalent_number`

  *   is optional

  *   Type: merged type ([The equivalent number of looks (ENL).](model-defs-asset-properties-the-equivalent-number-of-looks-enl.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-the-equivalent-number-of-looks-enl.md "airs_model#/$defs/Asset/properties/sar__looks_equivalent_number")



  merged type ([The equivalent number of looks (ENL).](model-defs-asset-properties-the-equivalent-number-of-looks-enl.md))

  any of

  *   [Untitled number in Item](model-defs-asset-properties-the-equivalent-number-of-looks-enl-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-the-equivalent-number-of-looks-enl-anyof-1.md "check type definition")





  `sar__observation_direction`

  *   is optional

  *   Type: merged type ([Antenna pointing direction relative to the flight trajectory of the satellite, either left or right.](model-defs-asset-properties-antenna-pointing-direction-relative-to-the-flight-trajectory-of-the-satellite-either-left-or-right.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-antenna-pointing-direction-relative-to-the-flight-trajectory-of-the-satellite-either-left-or-right.md "airs_model#/$defs/Asset/properties/sar__observation_direction")



  merged type ([Antenna pointing direction relative to the flight trajectory of the satellite, either left or right.](model-defs-asset-properties-antenna-pointing-direction-relative-to-the-flight-trajectory-of-the-satellite-either-left-or-right.md))

  any of

  *   [Untitled string in Item](model-defs-asset-properties-antenna-pointing-direction-relative-to-the-flight-trajectory-of-the-satellite-either-left-or-right-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-antenna-pointing-direction-relative-to-the-flight-trajectory-of-the-satellite-either-left-or-right-anyof-1.md "check type definition")





  `proj__epsg`

  *   is optional

  *   Type: merged type ([EPSG code of the datasource.](model-defs-asset-properties-epsg-code-of-the-datasource.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-epsg-code-of-the-datasource.md "airs_model#/$defs/Asset/properties/proj__epsg")



  merged type ([EPSG code of the datasource.](model-defs-asset-properties-epsg-code-of-the-datasource.md))

  any of

  *   [Untitled integer in Item](model-defs-asset-properties-epsg-code-of-the-datasource-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-epsg-code-of-the-datasource-anyof-1.md "check type definition")





  `proj__wkt2`

  *   is optional

  *   Type: merged type ([PROJJSON object representing the Coordinate Reference System (CRS) that the proj:geometry and proj:bbox fields represent.](model-defs-asset-properties-projjson-object-representing-the-coordinate-reference-system-crs-that-the-projgeometry-and-projbbox-fields-represent.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-projjson-object-representing-the-coordinate-reference-system-crs-that-the-projgeometry-and-projbbox-fields-represent.md "airs_model#/$defs/Asset/properties/proj__wkt2")



  merged type ([PROJJSON object representing the Coordinate Reference System (CRS) that the proj:geometry and proj:bbox fields represent.](model-defs-asset-properties-projjson-object-representing-the-coordinate-reference-system-crs-that-the-projgeometry-and-projbbox-fields-represent.md))

  any of

  *   [Untitled string in Item](model-defs-asset-properties-projjson-object-representing-the-coordinate-reference-system-crs-that-the-projgeometry-and-projbbox-fields-represent-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-projjson-object-representing-the-coordinate-reference-system-crs-that-the-projgeometry-and-projbbox-fields-represent-anyof-1.md "check type definition")





  `proj__geometry`

  *   is optional

  *   Type: merged type ([Defines the footprint of this Item.](model-defs-asset-properties-defines-the-footprint-of-this-item.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-defines-the-footprint-of-this-item.md "airs_model#/$defs/Asset/properties/proj__geometry")



  merged type ([Defines the footprint of this Item.](model-defs-asset-properties-defines-the-footprint-of-this-item.md))

  any of

  *   [Untitled undefined type in Item](model-defs-asset-properties-defines-the-footprint-of-this-item-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-defines-the-footprint-of-this-item-anyof-1.md "check type definition")





  `proj__bbox`

  *   is optional

  *   Type: merged type ([Bounding box of the Item in the asset CRS in 2 or 3 dimensions.](model-defs-asset-properties-bounding-box-of-the-item-in-the-asset-crs-in-2-or-3-dimensions.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-bounding-box-of-the-item-in-the-asset-crs-in-2-or-3-dimensions.md "airs_model#/$defs/Asset/properties/proj__bbox")



  merged type ([Bounding box of the Item in the asset CRS in 2 or 3 dimensions.](model-defs-asset-properties-bounding-box-of-the-item-in-the-asset-crs-in-2-or-3-dimensions.md))

  any of

  *   [Untitled array in Item](model-defs-asset-properties-bounding-box-of-the-item-in-the-asset-crs-in-2-or-3-dimensions-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-bounding-box-of-the-item-in-the-asset-crs-in-2-or-3-dimensions-anyof-1.md "check type definition")





  `proj__centroid`

  *   is optional

  *   Type: merged type ([Coordinates representing the centroid of the Item (in lat/long).](model-defs-asset-properties-coordinates-representing-the-centroid-of-the-item-in-latlong.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-coordinates-representing-the-centroid-of-the-item-in-latlong.md "airs_model#/$defs/Asset/properties/proj__centroid")



  merged type ([Coordinates representing the centroid of the Item (in lat/long).](model-defs-asset-properties-coordinates-representing-the-centroid-of-the-item-in-latlong.md))

  any of

  *   [Untitled undefined type in Item](model-defs-asset-properties-coordinates-representing-the-centroid-of-the-item-in-latlong-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-coordinates-representing-the-centroid-of-the-item-in-latlong-anyof-1.md "check type definition")





  `proj__shape`

  *   is optional

  *   Type: merged type ([Number of pixels in Y and X directions for the default grid.](model-defs-asset-properties-number-of-pixels-in-y-and-x-directions-for-the-default-grid.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-number-of-pixels-in-y-and-x-directions-for-the-default-grid.md "airs_model#/$defs/Asset/properties/proj__shape")



  merged type ([Number of pixels in Y and X directions for the default grid.](model-defs-asset-properties-number-of-pixels-in-y-and-x-directions-for-the-default-grid.md))

  any of

  *   [Untitled array in Item](model-defs-asset-properties-number-of-pixels-in-y-and-x-directions-for-the-default-grid-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-number-of-pixels-in-y-and-x-directions-for-the-default-grid-anyof-1.md "check type definition")





  `proj__transform`

  *   is optional

  *   Type: merged type ([The affine transformation coefficients for the default grid.](model-defs-asset-properties-the-affine-transformation-coefficients-for-the-default-grid.md))

  *   cannot be null

  *   defined in: [Item](model-defs-asset-properties-the-affine-transformation-coefficients-for-the-default-grid.md "airs_model#/$defs/Asset/properties/proj__transform")



  merged type ([The affine transformation coefficients for the default grid.](model-defs-asset-properties-the-affine-transformation-coefficients-for-the-default-grid.md))

  any of

  *   [Untitled array in Item](model-defs-asset-properties-the-affine-transformation-coefficients-for-the-default-grid-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-asset-properties-the-affine-transformation-coefficients-for-the-default-grid-anyof-1.md "check type definition")



  Additional properties are allowed and do not have to follow a specific schema



  Reference this group by using

  ```json
  {"$ref":"airs_model#/$defs/Band"}
  ```

  | Property                                       | Type     | Required | Nullable       | Defined by                                                                                                                                                                                                                       |
  | :--------------------------------------------- | :------- | :------- | :------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | [name](#name-1)                                | `string` | Required | cannot be null | [Item](model-defs-band-properties-the-name-of-the-band-eg-b01-b8-band2-red.md "airs_model#/$defs/Band/properties/name")                                                                                                          |
  | [common\_name](#common_name)                   | Merged   | Optional | cannot be null | [Item](model-defs-band-properties-the-name-commonly-used-to-refer-to-the-band-to-make-it-easier-to-search-for-bands-across-instruments-see-the-list-of-accepted-common-names.md "airs_model#/$defs/Band/properties/common_name") |
  | [description](#description-1)                  | Merged   | Optional | cannot be null | [Item](model-defs-band-properties-description-to-fully-explain-the-band-commonmark-029-syntax-may-be-used-for-rich-text-representation.md "airs_model#/$defs/Band/properties/description")                                       |
  | [center\_wavelength](#center_wavelength)       | Merged   | Optional | cannot be null | [Item](model-defs-band-properties-the-center-wavelength-of-the-band-in-micrometers-μm.md "airs_model#/$defs/Band/properties/center_wavelength")                                                                                  |
  | [full\_width\_half\_max](#full_width_half_max) | Merged   | Optional | cannot be null | [Item](model-defs-band-properties-full-width-at-half-maximum-fwhm-the-width-of-the-band-as-measured-at-half-the-maximum-transmission-in-micrometers-μm.md "airs_model#/$defs/Band/properties/full_width_half_max")               |
  | [solar\_illumination](#solar_illumination)     | Merged   | Optional | cannot be null | [Item](model-defs-band-properties-the-solar-illumination-of-the-band-as-measured-at-half-the-maximum-transmission-in-wm2micrometers.md "airs_model#/$defs/Band/properties/solar_illumination")                                   |
  | [quality\_indicators](#quality_indicators)     | Merged   | Optional | cannot be null | [Item](model-defs-band-properties-set-of-indicators-for-estimating-the-quality-of-the-datacube-variable-band.md "airs_model#/$defs/Band/properties/quality_indicators")                                                          |
  | Additional Properties                          | Any      | Optional | can be null    |                                                                                                                                                                                                                                  |





  `name`

  *   is required

  *   Type: `string` ([The name of the band (e.g., B01, B8, band2, red).](model-defs-band-properties-the-name-of-the-band-eg-b01-b8-band2-red.md))

  *   cannot be null

  *   defined in: [Item](model-defs-band-properties-the-name-of-the-band-eg-b01-b8-band2-red.md "airs_model#/$defs/Band/properties/name")



  `string` ([The name of the band (e.g., B01, B8, band2, red).](model-defs-band-properties-the-name-of-the-band-eg-b01-b8-band2-red.md))



  **maximum length**: the maximum number of characters for this string is: `300`





  `common_name`

  *   is optional

  *   Type: merged type ([The name commonly used to refer to the band to make it easier to search for bands across instruments. See the list of accepted common names.](model-defs-band-properties-the-name-commonly-used-to-refer-to-the-band-to-make-it-easier-to-search-for-bands-across-instruments-see-the-list-of-accepted-common-names.md))

  *   cannot be null

  *   defined in: [Item](model-defs-band-properties-the-name-commonly-used-to-refer-to-the-band-to-make-it-easier-to-search-for-bands-across-instruments-see-the-list-of-accepted-common-names.md "airs_model#/$defs/Band/properties/common_name")



  merged type ([The name commonly used to refer to the band to make it easier to search for bands across instruments. See the list of accepted common names.](model-defs-band-properties-the-name-commonly-used-to-refer-to-the-band-to-make-it-easier-to-search-for-bands-across-instruments-see-the-list-of-accepted-common-names.md))

  any of

  *   [Untitled string in Item](model-defs-band-properties-the-name-commonly-used-to-refer-to-the-band-to-make-it-easier-to-search-for-bands-across-instruments-see-the-list-of-accepted-common-names-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-band-properties-the-name-commonly-used-to-refer-to-the-band-to-make-it-easier-to-search-for-bands-across-instruments-see-the-list-of-accepted-common-names-anyof-1.md "check type definition")





  `description`

  *   is optional

  *   Type: merged type ([Description to fully explain the band. CommonMark 0.29 syntax MAY be used for rich text representation.](model-defs-band-properties-description-to-fully-explain-the-band-commonmark-029-syntax-may-be-used-for-rich-text-representation.md))

  *   cannot be null

  *   defined in: [Item](model-defs-band-properties-description-to-fully-explain-the-band-commonmark-029-syntax-may-be-used-for-rich-text-representation.md "airs_model#/$defs/Band/properties/description")



  merged type ([Description to fully explain the band. CommonMark 0.29 syntax MAY be used for rich text representation.](model-defs-band-properties-description-to-fully-explain-the-band-commonmark-029-syntax-may-be-used-for-rich-text-representation.md))

  any of

  *   [Untitled string in Item](model-defs-band-properties-description-to-fully-explain-the-band-commonmark-029-syntax-may-be-used-for-rich-text-representation-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-band-properties-description-to-fully-explain-the-band-commonmark-029-syntax-may-be-used-for-rich-text-representation-anyof-1.md "check type definition")





  `center_wavelength`

  *   is optional

  *   Type: merged type ([The center wavelength of the band, in micrometers (μm).](model-defs-band-properties-the-center-wavelength-of-the-band-in-micrometers-μm.md))

  *   cannot be null

  *   defined in: [Item](model-defs-band-properties-the-center-wavelength-of-the-band-in-micrometers-μm.md "airs_model#/$defs/Band/properties/center_wavelength")



  merged type ([The center wavelength of the band, in micrometers (μm).](model-defs-band-properties-the-center-wavelength-of-the-band-in-micrometers-μm.md))

  any of

  *   [Untitled number in Item](model-defs-band-properties-the-center-wavelength-of-the-band-in-micrometers-μm-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-band-properties-the-center-wavelength-of-the-band-in-micrometers-μm-anyof-1.md "check type definition")





  `full_width_half_max`

  *   is optional

  *   Type: merged type ([Full width at half maximum (FWHM). The width of the band, as measured at half the maximum transmission, in micrometers (μm).](model-defs-band-properties-full-width-at-half-maximum-fwhm-the-width-of-the-band-as-measured-at-half-the-maximum-transmission-in-micrometers-μm.md))

  *   cannot be null

  *   defined in: [Item](model-defs-band-properties-full-width-at-half-maximum-fwhm-the-width-of-the-band-as-measured-at-half-the-maximum-transmission-in-micrometers-μm.md "airs_model#/$defs/Band/properties/full_width_half_max")



  merged type ([Full width at half maximum (FWHM). The width of the band, as measured at half the maximum transmission, in micrometers (μm).](model-defs-band-properties-full-width-at-half-maximum-fwhm-the-width-of-the-band-as-measured-at-half-the-maximum-transmission-in-micrometers-μm.md))

  any of

  *   [Untitled number in Item](model-defs-band-properties-full-width-at-half-maximum-fwhm-the-width-of-the-band-as-measured-at-half-the-maximum-transmission-in-micrometers-μm-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-band-properties-full-width-at-half-maximum-fwhm-the-width-of-the-band-as-measured-at-half-the-maximum-transmission-in-micrometers-μm-anyof-1.md "check type definition")





  `solar_illumination`

  *   is optional

  *   Type: merged type ([The solar illumination of the band, as measured at half the maximum transmission, in W/m2/micrometers.](model-defs-band-properties-the-solar-illumination-of-the-band-as-measured-at-half-the-maximum-transmission-in-wm2micrometers.md))

  *   cannot be null

  *   defined in: [Item](model-defs-band-properties-the-solar-illumination-of-the-band-as-measured-at-half-the-maximum-transmission-in-wm2micrometers.md "airs_model#/$defs/Band/properties/solar_illumination")



  merged type ([The solar illumination of the band, as measured at half the maximum transmission, in W/m2/micrometers.](model-defs-band-properties-the-solar-illumination-of-the-band-as-measured-at-half-the-maximum-transmission-in-wm2micrometers.md))

  any of

  *   [Untitled number in Item](model-defs-band-properties-the-solar-illumination-of-the-band-as-measured-at-half-the-maximum-transmission-in-wm2micrometers-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-band-properties-the-solar-illumination-of-the-band-as-measured-at-half-the-maximum-transmission-in-wm2micrometers-anyof-1.md "check type definition")





  `quality_indicators`

  *   is optional

  *   Type: merged type ([Set of indicators for estimating the quality of the datacube variable (band).](model-defs-band-properties-set-of-indicators-for-estimating-the-quality-of-the-datacube-variable-band.md))

  *   cannot be null

  *   defined in: [Item](model-defs-band-properties-set-of-indicators-for-estimating-the-quality-of-the-datacube-variable-band.md "airs_model#/$defs/Band/properties/quality_indicators")



  merged type ([Set of indicators for estimating the quality of the datacube variable (band).](model-defs-band-properties-set-of-indicators-for-estimating-the-quality-of-the-datacube-variable-band.md))

  any of

  *   [Indicators](model-defs-indicators.md "check type definition")

  *   [Untitled null in Item](model-defs-band-properties-set-of-indicators-for-estimating-the-quality-of-the-datacube-variable-band-anyof-1.md "check type definition")



  Additional properties are allowed and do not have to follow a specific schema



  Reference this group by using

  ```json
  {"$ref":"airs_model#/$defs/DimensionType"}
  ```

  | Property | Type | Required | Nullable | Defined by |
  | :------- | :--- | :------- | :------- | :--------- |



  Reference this group by using

  ```json
  {"$ref":"airs_model#/$defs/Group"}
  ```

  | Property                                     | Type   | Required | Nullable       | Defined by                                                                                                                                                                                       |
  | :------------------------------------------- | :----- | :------- | :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | [timestamp](#timestamp)                      | Merged | Optional | cannot be null | [Item](model-defs-group-properties-the-timestamp-of-this-temporal-group.md "airs_model#/$defs/Group/properties/timestamp")                                                                       |
  | [rasters](#rasters)                          | Merged | Optional | cannot be null | [Item](model-defs-group-properties-the-rasters-belonging-to-this-temporal-group.md "airs_model#/$defs/Group/properties/rasters")                                                                 |
  | [quality\_indicators](#quality_indicators-1) | Merged | Optional | cannot be null | [Item](model-defs-group-properties-set-of-indicators-for-estimating-the-quality-of-the-datacube-group-the-indicators-are-group-based.md "airs_model#/$defs/Group/properties/quality_indicators") |





  `timestamp`

  *   is optional

  *   Type: merged type ([The timestamp of this temporal group.](model-defs-group-properties-the-timestamp-of-this-temporal-group.md))

  *   cannot be null

  *   defined in: [Item](model-defs-group-properties-the-timestamp-of-this-temporal-group.md "airs_model#/$defs/Group/properties/timestamp")



  merged type ([The timestamp of this temporal group.](model-defs-group-properties-the-timestamp-of-this-temporal-group.md))

  any of

  *   [Untitled integer in Item](model-defs-group-properties-the-timestamp-of-this-temporal-group-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-group-properties-the-timestamp-of-this-temporal-group-anyof-1.md "check type definition")





  `rasters`

  *   is optional

  *   Type: merged type ([The rasters belonging to this temporal group.](model-defs-group-properties-the-rasters-belonging-to-this-temporal-group.md))

  *   cannot be null

  *   defined in: [Item](model-defs-group-properties-the-rasters-belonging-to-this-temporal-group.md "airs_model#/$defs/Group/properties/rasters")



  merged type ([The rasters belonging to this temporal group.](model-defs-group-properties-the-rasters-belonging-to-this-temporal-group.md))

  any of

  *   [Untitled array in Item](model-defs-group-properties-the-rasters-belonging-to-this-temporal-group-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-group-properties-the-rasters-belonging-to-this-temporal-group-anyof-1.md "check type definition")





  `quality_indicators`

  *   is optional

  *   Type: merged type ([Set of indicators for estimating the quality of the datacube group. The indicators are group based.](model-defs-group-properties-set-of-indicators-for-estimating-the-quality-of-the-datacube-group-the-indicators-are-group-based.md))

  *   cannot be null

  *   defined in: [Item](model-defs-group-properties-set-of-indicators-for-estimating-the-quality-of-the-datacube-group-the-indicators-are-group-based.md "airs_model#/$defs/Group/properties/quality_indicators")



  merged type ([Set of indicators for estimating the quality of the datacube group. The indicators are group based.](model-defs-group-properties-set-of-indicators-for-estimating-the-quality-of-the-datacube-group-the-indicators-are-group-based.md))

  any of

  *   [Indicators](model-defs-indicators.md "check type definition")

  *   [Untitled null in Item](model-defs-group-properties-set-of-indicators-for-estimating-the-quality-of-the-datacube-group-the-indicators-are-group-based-anyof-1.md "check type definition")



  Reference this group by using

  ```json
  {"$ref":"airs_model#/$defs/Indicators"}
  ```

  | Property                               | Type   | Required | Nullable       | Defined by                                                                                                                                                                                                                                                                                  |
  | :------------------------------------- | :----- | :------- | :------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
  | [time\_compacity](#time_compacity)     | Merged | Optional | cannot be null | [Item](model-defs-indicators-properties-indicates-whether-the-temporal-extend-of-the-temporal-slices-groups-are-compact-or-not-compared-to-the-cube-temporal-extend-computed-as-follow-1-rangegroup-rasters--rangecube-rasters.md "airs_model#/$defs/Indicators/properties/time_compacity") |
  | [spatial\_coverage](#spatial_coverage) | Merged | Optional | cannot be null | [Item](model-defs-indicators-properties-indicates-the-proportion-of-the-region-of-interest-that-is-covered-by-the-input-rasters-computed-as-follow-areaintersectionunionrastersroi--arearoi.md "airs_model#/$defs/Indicators/properties/spatial_coverage")                                  |
  | [group\_lightness](#group_lightness)   | Merged | Optional | cannot be null | [Item](model-defs-indicators-properties-indicates-the-proportion-of-non-overlapping-regions-between-the-different-input-rasters-computed-as-follow-areaintersectionunionrastersroi--sumareaintersectionraster-roi.md "airs_model#/$defs/Indicators/properties/group_lightness")             |
  | [time\_regularity](#time_regularity)   | Merged | Optional | cannot be null | [Item](model-defs-indicators-properties-indicates-the-regularity-of-the-extends-between-the-temporal-slices-groups-computed-as-follow-1-stdinter-group-temporal-gapsavginter-group-temporal-gaps.md "airs_model#/$defs/Indicators/properties/time_regularity")                              |





  `time_compacity`

  *   is optional

  *   Type: merged type ([Indicates whether the temporal extend of the temporal slices (groups) are compact or not compared to the cube temporal extend. Computed as follow: 1-range(group rasters) / range(cube rasters).](model-defs-indicators-properties-indicates-whether-the-temporal-extend-of-the-temporal-slices-groups-are-compact-or-not-compared-to-the-cube-temporal-extend-computed-as-follow-1-rangegroup-rasters--rangecube-rasters.md))

  *   cannot be null

  *   defined in: [Item](model-defs-indicators-properties-indicates-whether-the-temporal-extend-of-the-temporal-slices-groups-are-compact-or-not-compared-to-the-cube-temporal-extend-computed-as-follow-1-rangegroup-rasters--rangecube-rasters.md "airs_model#/$defs/Indicators/properties/time_compacity")



  merged type ([Indicates whether the temporal extend of the temporal slices (groups) are compact or not compared to the cube temporal extend. Computed as follow: 1-range(group rasters) / range(cube rasters).](model-defs-indicators-properties-indicates-whether-the-temporal-extend-of-the-temporal-slices-groups-are-compact-or-not-compared-to-the-cube-temporal-extend-computed-as-follow-1-rangegroup-rasters--rangecube-rasters.md))

  any of

  *   [Untitled number in Item](model-defs-indicators-properties-indicates-whether-the-temporal-extend-of-the-temporal-slices-groups-are-compact-or-not-compared-to-the-cube-temporal-extend-computed-as-follow-1-rangegroup-rasters--rangecube-rasters-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-indicators-properties-indicates-whether-the-temporal-extend-of-the-temporal-slices-groups-are-compact-or-not-compared-to-the-cube-temporal-extend-computed-as-follow-1-rangegroup-rasters--rangecube-rasters-anyof-1.md "check type definition")





  `spatial_coverage`

  *   is optional

  *   Type: merged type ([Indicates the proportion of the region of interest that is covered by the input rasters. Computed as follow: area(intersection(union(rasters),roi)) / area(roi))](model-defs-indicators-properties-indicates-the-proportion-of-the-region-of-interest-that-is-covered-by-the-input-rasters-computed-as-follow-areaintersectionunionrastersroi--arearoi.md))

  *   cannot be null

  *   defined in: [Item](model-defs-indicators-properties-indicates-the-proportion-of-the-region-of-interest-that-is-covered-by-the-input-rasters-computed-as-follow-areaintersectionunionrastersroi--arearoi.md "airs_model#/$defs/Indicators/properties/spatial_coverage")



  merged type ([Indicates the proportion of the region of interest that is covered by the input rasters. Computed as follow: area(intersection(union(rasters),roi)) / area(roi))](model-defs-indicators-properties-indicates-the-proportion-of-the-region-of-interest-that-is-covered-by-the-input-rasters-computed-as-follow-areaintersectionunionrastersroi--arearoi.md))

  any of

  *   [Untitled number in Item](model-defs-indicators-properties-indicates-the-proportion-of-the-region-of-interest-that-is-covered-by-the-input-rasters-computed-as-follow-areaintersectionunionrastersroi--arearoi-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-indicators-properties-indicates-the-proportion-of-the-region-of-interest-that-is-covered-by-the-input-rasters-computed-as-follow-areaintersectionunionrastersroi--arearoi-anyof-1.md "check type definition")





  `group_lightness`

  *   is optional

  *   Type: merged type ([Indicates the proportion of non overlapping regions between the different input rasters. Computed as follow: area(intersection(union(rasters),roi)) / sum(area(intersection(raster, roi)))](model-defs-indicators-properties-indicates-the-proportion-of-non-overlapping-regions-between-the-different-input-rasters-computed-as-follow-areaintersectionunionrastersroi--sumareaintersectionraster-roi.md))

  *   cannot be null

  *   defined in: [Item](model-defs-indicators-properties-indicates-the-proportion-of-non-overlapping-regions-between-the-different-input-rasters-computed-as-follow-areaintersectionunionrastersroi--sumareaintersectionraster-roi.md "airs_model#/$defs/Indicators/properties/group_lightness")



  merged type ([Indicates the proportion of non overlapping regions between the different input rasters. Computed as follow: area(intersection(union(rasters),roi)) / sum(area(intersection(raster, roi)))](model-defs-indicators-properties-indicates-the-proportion-of-non-overlapping-regions-between-the-different-input-rasters-computed-as-follow-areaintersectionunionrastersroi--sumareaintersectionraster-roi.md))

  any of

  *   [Untitled number in Item](model-defs-indicators-properties-indicates-the-proportion-of-non-overlapping-regions-between-the-different-input-rasters-computed-as-follow-areaintersectionunionrastersroi--sumareaintersectionraster-roi-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-indicators-properties-indicates-the-proportion-of-non-overlapping-regions-between-the-different-input-rasters-computed-as-follow-areaintersectionunionrastersroi--sumareaintersectionraster-roi-anyof-1.md "check type definition")





  `time_regularity`

  *   is optional

  *   Type: merged type ([Indicates the regularity of the extends between the temporal slices (groups). Computed as follow: 1-std(inter group temporal gaps)/avg(inter group temporal gaps)](model-defs-indicators-properties-indicates-the-regularity-of-the-extends-between-the-temporal-slices-groups-computed-as-follow-1-stdinter-group-temporal-gapsavginter-group-temporal-gaps.md))

  *   cannot be null

  *   defined in: [Item](model-defs-indicators-properties-indicates-the-regularity-of-the-extends-between-the-temporal-slices-groups-computed-as-follow-1-stdinter-group-temporal-gapsavginter-group-temporal-gaps.md "airs_model#/$defs/Indicators/properties/time_regularity")



  merged type ([Indicates the regularity of the extends between the temporal slices (groups). Computed as follow: 1-std(inter group temporal gaps)/avg(inter group temporal gaps)](model-defs-indicators-properties-indicates-the-regularity-of-the-extends-between-the-temporal-slices-groups-computed-as-follow-1-stdinter-group-temporal-gapsavginter-group-temporal-gaps.md))

  any of

  *   [Untitled number in Item](model-defs-indicators-properties-indicates-the-regularity-of-the-extends-between-the-temporal-slices-groups-computed-as-follow-1-stdinter-group-temporal-gapsavginter-group-temporal-gaps-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-indicators-properties-indicates-the-regularity-of-the-extends-between-the-temporal-slices-groups-computed-as-follow-1-stdinter-group-temporal-gapsavginter-group-temporal-gaps-anyof-1.md "check type definition")



  Reference this group by using

  ```json
  {"$ref":"airs_model#/$defs/Properties"}
  ```

  | Property                                                                  | Type   | Required | Nullable       | Defined by                                                                                                                                                                                                                                                                                                               |
  | :------------------------------------------------------------------------ | :----- | :------- | :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | [datetime](#datetime)                                                     | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-datetime-associated-with-this-item-if-none-a-start_datetime-and-end_datetime-must-be-supplied.md "airs_model#/$defs/Properties/properties/datetime")                                                                                                                             |
  | [start\_datetime](#start_datetime)                                        | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-optional-start-datetime-part-of-common-metadata-this-value-will-override-any-start_datetime-key-in-properties.md "airs_model#/$defs/Properties/properties/start_datetime")                                                                                                       |
  | [end\_datetime](#end_datetime)                                            | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-optional-end-datetime-part-of-common-metadata-this-value-will-override-any-end_datetime-key-in-properties.md "airs_model#/$defs/Properties/properties/end_datetime")                                                                                                             |
  | [programme](#programme)                                                   | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-name-of-the-programme.md "airs_model#/$defs/Properties/properties/programme")                                                                                                                                                                                                    |
  | [constellation](#constellation)                                           | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-name-of-the-constellation.md "airs_model#/$defs/Properties/properties/constellation")                                                                                                                                                                                            |
  | [satellite](#satellite)                                                   | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-name-of-the-satellite.md "airs_model#/$defs/Properties/properties/satellite")                                                                                                                                                                                                    |
  | [instrument](#instrument)                                                 | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-name-of-the-instrument.md "airs_model#/$defs/Properties/properties/instrument")                                                                                                                                                                                                  |
  | [sensor](#sensor)                                                         | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-name-of-the-sensor.md "airs_model#/$defs/Properties/properties/sensor")                                                                                                                                                                                                          |
  | [sensor\_type](#sensor_type)                                              | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-type-of-sensor.md "airs_model#/$defs/Properties/properties/sensor_type")                                                                                                                                                                                                         |
  | [annotations](#annotations)                                               | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-human-annotations-for-the-item.md "airs_model#/$defs/Properties/properties/annotations")                                                                                                                                                                                         |
  | [gsd](#gsd-1)                                                             | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-ground-sampling-distance-resolution.md "airs_model#/$defs/Properties/properties/gsd")                                                                                                                                                                                            |
  | [secondary\_id](#secondary_id)                                            | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-secondary-identifier.md "airs_model#/$defs/Properties/properties/secondary_id")                                                                                                                                                                                                  |
  | [data\_type](#data_type)                                                  | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-type-of-data.md "airs_model#/$defs/Properties/properties/data_type")                                                                                                                                                                                                             |
  | [item\_type](#item_type)                                                  | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-type-of-data-resourcetype.md "airs_model#/$defs/Properties/properties/item_type")                                                                                                                                                                                                |
  | [item\_format](#item_format)                                              | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-data-format-itemformat.md "airs_model#/$defs/Properties/properties/item_format")                                                                                                                                                                                                 |
  | [main\_asset\_format](#main_asset_format)                                 | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-data-format-of-the-main-asset-assetformat.md "airs_model#/$defs/Properties/properties/main_asset_format")                                                                                                                                                                        |
  | [main\_asset\_name](#main_asset_name)                                     | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-name-of-the-main-asset-assetformat.md "airs_model#/$defs/Properties/properties/main_asset_name")                                                                                                                                                                                 |
  | [observation\_type](#observation_type)                                    | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-type-of-observation-observationtype.md "airs_model#/$defs/Properties/properties/observation_type")                                                                                                                                                                               |
  | [data\_coverage](#data_coverage)                                          | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-estimate-of-data-cover.md "airs_model#/$defs/Properties/properties/data_coverage")                                                                                                                                                                                               |
  | [water\_coverage](#water_coverage)                                        | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-estimate-of-water-cover.md "airs_model#/$defs/Properties/properties/water_coverage")                                                                                                                                                                                             |
  | [locations](#locations)                                                   | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-list-of-locations-covered-by-the-item.md "airs_model#/$defs/Properties/properties/locations")                                                                                                                                                                                    |
  | [create\_datetime](#create_datetime)                                      | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-date-of-item-creation-in-the-catalog-managed-by-the-arlas-item-registration-service.md "airs_model#/$defs/Properties/properties/create_datetime")                                                                                                                                |
  | [update\_datetime](#update_datetime)                                      | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-update-date-of-the-item-in-the-catalog-managed-by-the-arlas-item-registration-service.md "airs_model#/$defs/Properties/properties/update_datetime")                                                                                                                              |
  | [view\_\_off\_nadir](#view__off_nadir)                                    | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-the-angle-from-the-sensor-between-nadir-straight-down-and-the-scene-center-measured-in-degrees-0-90.md "airs_model#/$defs/Properties/properties/view__off_nadir")                                                                                                                |
  | [view\_\_incidence\_angle](#view__incidence_angle)                        | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-the-incidence-angle-is-the-angle-between-the-vertical-normal-to-the-intercepting-surface-and-the-line-of-sight-back-to-the-satellite-at-the-scene-center-measured-in-degrees-0-90.md "airs_model#/$defs/Properties/properties/view__incidence_angle")                            |
  | [view\_\_azimuth](#view__azimuth)                                         | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-viewing-azimuth-angle-the-angle-measured-from-the-sub-satellite-point-point-on-the-ground-below-the-platform-between-the-scene-center-and-true-north-measured-clockwise-from-north-in-degrees-0-360.md "airs_model#/$defs/Properties/properties/view__azimuth")                  |
  | [view\_\_sun\_azimuth](#view__sun_azimuth)                                | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-sun-azimuth-angle-from-the-scene-center-point-on-the-ground-this-is-the-angle-between-truth-north-and-the-sun-measured-clockwise-in-degrees-0-360.md "airs_model#/$defs/Properties/properties/view__sun_azimuth")                                                                |
  | [view\_\_sun\_elevation](#view__sun_elevation)                            | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-sun-elevation-angle-the-angle-from-the-tangent-of-the-scene-center-point-to-the-sun-measured-from-the-horizon-in-degrees--90-90-negative-values-indicate-the-sun-is-below-the-horizon-eg-sun-elevation-of--10-.md "airs_model#/$defs/Properties/properties/view__sun_elevation") |
  | [storage\_\_requester\_pays](#storage__requester_pays-1)                  | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-is-the-data-requester-pays-or-is-it-data-managercloud-provider-pays-defaults-to-false-whether-the-requester-pays-for-accessing-assets.md "airs_model#/$defs/Properties/properties/storage__requester_pays")                                                                      |
  | [storage\_\_tier](#storage__tier-1)                                       | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-cloud-provider-storage-tiers-standard-glacier-etc.md "airs_model#/$defs/Properties/properties/storage__tier")                                                                                                                                                                    |
  | [storage\_\_platform](#storage__platform-1)                               | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-paas-solutions-alibaba-aws-azure-gcp-ibm-oracle-other.md "airs_model#/$defs/Properties/properties/storage__platform")                                                                                                                                                            |
  | [storage\_\_region](#storage__region-1)                                   | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-the-region-where-the-data-is-stored-relevant-to-speed-of-access-and-inter-region-egress-costs-as-defined-by-paas-provider.md "airs_model#/$defs/Properties/properties/storage__region")                                                                                          |
  | [eo\_\_cloud\_cover](#eo__cloud_cover)                                    | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-estimate-of-cloud-cover.md "airs_model#/$defs/Properties/properties/eo__cloud_cover")                                                                                                                                                                                            |
  | [eo\_\_snow\_cover](#eo__snow_cover)                                      | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-estimate-of-snow-and-ice-cover.md "airs_model#/$defs/Properties/properties/eo__snow_cover")                                                                                                                                                                                      |
  | [eo\_\_bands](#eo__bands-1)                                               | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-an-array-of-available-bands-where-each-object-is-a-band-object-if-given-requires-at-least-one-band.md "airs_model#/$defs/Properties/properties/eo__bands")                                                                                                                       |
  | [processing\_\_expression](#processing__expression)                       | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-an-expression-or-processing-chain-that-describes-how-the-data-has-been-processed-alternatively-you-can-also-link-to-a-processing-chain-with-the-relation-type-processing-expression-see-below.md "airs_model#/$defs/Properties/properties/processing__expression")               |
  | [processing\_\_lineage](#processing__lineage)                             | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-lineage-information-provided-as-free-text-information-about-the-how-observations-were-processed-or-models-that-were-used-to-create-the-resource-being-described-nasa-iso.md "airs_model#/$defs/Properties/properties/processing__lineage")                                       |
  | [processing\_\_level](#processing__level)                                 | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-the-name-commonly-used-to-refer-to-the-processing-level-to-make-it-easier-to-search-for-product-level-across-collections-or-items-the-short-name-must-be-used-only-l-not-level.md "airs_model#/$defs/Properties/properties/processing__level")                                   |
  | [processing\_\_facility](#processing__facility)                           | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-the-name-of-the-facility-that-produced-the-data-for-example-copernicus-s1-core-ground-segment---dpa-for-product-of-sentinel-1-satellites.md "airs_model#/$defs/Properties/properties/processing__facility")                                                                      |
  | [processing\_\_software](#processing__software)                           | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-a-dictionary-with-nameversion-for-keyvalue-describing-one-or-more-softwares-that-produced-the-data.md "airs_model#/$defs/Properties/properties/processing__software")                                                                                                            |
  | [dc3\_\_quality\_indicators](#dc3__quality_indicators)                    | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-set-of-indicators-for-estimating-the-quality-of-the-datacube-based-on-the-composition-the-indicators-are-group-based-a-cube-indicator-is-the-product-of-its-corresponding-group-indicator.md "airs_model#/$defs/Properties/properties/dc3__quality_indicators")                  |
  | [dc3\_\_composition](#dc3__composition)                                   | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-list-of-raster-groups-used-for-elaborating-the-cube-temporal-slices.md "airs_model#/$defs/Properties/properties/dc3__composition")                                                                                                                                               |
  | [dc3\_\_number\_of\_chunks](#dc3__number_of_chunks)                       | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-number-of-chunks-if-zarr-or-similar-partitioned-format-within-the-cube.md "airs_model#/$defs/Properties/properties/dc3__number_of_chunks")                                                                                                                                       |
  | [dc3\_\_chunk\_weight](#dc3__chunk_weight)                                | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-weight-of-a-chunk-number-of-bytes.md "airs_model#/$defs/Properties/properties/dc3__chunk_weight")                                                                                                                                                                                |
  | [dc3\_\_fill\_ratio](#dc3__fill_ratio)                                    | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-1-the-cube-is-full-0-the-cube-is-empty-in-between-the-cube-is-partially-filled.md "airs_model#/$defs/Properties/properties/dc3__fill_ratio")                                                                                                                                     |
  | [cube\_\_dimensions](#cube__dimensions)                                   | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-uniquely-named-dimensions-of-the-datacube.md "airs_model#/$defs/Properties/properties/cube__dimensions")                                                                                                                                                                         |
  | [cube\_\_variables](#cube__variables)                                     | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-uniquely-named-variables-of-the-datacube.md "airs_model#/$defs/Properties/properties/cube__variables")                                                                                                                                                                           |
  | [acq\_\_acquisition\_mode](#acq__acquisition_mode)                        | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-the-name-of-the-acquisition-mode.md "airs_model#/$defs/Properties/properties/acq__acquisition_mode")                                                                                                                                                                             |
  | [acq\_\_acquisition\_orbit\_direction](#acq__acquisition_orbit_direction) | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-acquisition-orbit-direction-ascending-or-descending.md "airs_model#/$defs/Properties/properties/acq__acquisition_orbit_direction")                                                                                                                                               |
  | [acq\_\_acquisition\_type](#acq__acquisition_type)                        | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-acquisition-type-strip.md "airs_model#/$defs/Properties/properties/acq__acquisition_type")                                                                                                                                                                                       |
  | [acq\_\_across\_track](#acq__across_track)                                | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-across-track-angle.md "airs_model#/$defs/Properties/properties/acq__across_track")                                                                                                                                                                                               |
  | [acq\_\_along\_track](#acq__along_track)                                  | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-along-track-angle.md "airs_model#/$defs/Properties/properties/acq__along_track")                                                                                                                                                                                                 |
  | [acq\_\_archiving\_date](#acq__archiving_date)                            | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-archiving-date.md "airs_model#/$defs/Properties/properties/acq__archiving_date")                                                                                                                                                                                                 |
  | [acq\_\_download\_orbit](#acq__download_orbit)                            | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-download-orbit.md "airs_model#/$defs/Properties/properties/acq__download_orbit")                                                                                                                                                                                                 |
  | [acq\_\_request\_id](#acq__request_id)                                    | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-original-request-identifier.md "airs_model#/$defs/Properties/properties/acq__request_id")                                                                                                                                                                                        |
  | [acq\_\_quality\_average](#acq__quality_average)                          | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-quality-average.md "airs_model#/$defs/Properties/properties/acq__quality_average")                                                                                                                                                                                               |
  | [acq\_\_quality\_computation](#acq__quality_computation)                  | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-quality-computation.md "airs_model#/$defs/Properties/properties/acq__quality_computation")                                                                                                                                                                                       |
  | [acq\_\_receiving\_station](#acq__receiving_station)                      | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-receiving-station.md "airs_model#/$defs/Properties/properties/acq__receiving_station")                                                                                                                                                                                           |
  | [acq\_\_reception\_date](#acq__reception_date)                            | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-reception-date.md "airs_model#/$defs/Properties/properties/acq__reception_date")                                                                                                                                                                                                 |
  | [acq\_\_spectral\_mode](#acq__spectral_mode)                              | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-spectral-mode.md "airs_model#/$defs/Properties/properties/acq__spectral_mode")                                                                                                                                                                                                   |
  | [sar\_\_instrument\_mode](#sar__instrument_mode-1)                        | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-the-name-of-the-sensor-acquisition-mode-that-is-commonly-used-this-should-be-the-short-name-if-available-for-example-wv-for-wave-mode-of-sentinel-1-and-envisat-asar-satellites.md "airs_model#/$defs/Properties/properties/sar__instrument_mode")                               |
  | [sar\_\_frequency\_band](#sar__frequency_band-1)                          | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-the-common-name-for-the-frequency-band-to-make-it-easier-to-search-for-bands-across-instruments-see-section-common-frequency-band-names-for-a-list-of-accepted-names.md "airs_model#/$defs/Properties/properties/sar__frequency_band")                                           |
  | [sar\_\_center\_frequency](#sar__center_frequency-1)                      | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-the-center-frequency-of-the-instrument-in-gigahertz-ghz.md "airs_model#/$defs/Properties/properties/sar__center_frequency")                                                                                                                                                      |
  | [sar\_\_polarizations](#sar__polarizations-1)                             | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-any-combination-of-polarizations.md "airs_model#/$defs/Properties/properties/sar__polarizations")                                                                                                                                                                                |
  | [sar\_\_product\_type](#sar__product_type-1)                              | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-the-product-type-for-example-ssc-mgd-or-sgc.md "airs_model#/$defs/Properties/properties/sar__product_type")                                                                                                                                                                      |
  | [sar\_\_resolution\_range](#sar__resolution_range-1)                      | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-the-range-resolution-which-is-the-maximum-ability-to-distinguish-two-adjacent-targets-perpendicular-to-the-flight-path-in-meters-m.md "airs_model#/$defs/Properties/properties/sar__resolution_range")                                                                           |
  | [sar\_\_resolution\_azimuth](#sar__resolution_azimuth-1)                  | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-the-azimuth-resolution-which-is-the-maximum-ability-to-distinguish-two-adjacent-targets-parallel-to-the-flight-path-in-meters-m.md "airs_model#/$defs/Properties/properties/sar__resolution_azimuth")                                                                            |
  | [sar\_\_pixel\_spacing\_range](#sar__pixel_spacing_range-1)               | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-the-range-pixel-spacing-which-is-the-distance-between-adjacent-pixels-perpendicular-to-the-flight-path-in-meters-m-strongly-recommended-to-be-specified-for-products-of-type-grd.md "airs_model#/$defs/Properties/properties/sar__pixel_spacing_range")                          |
  | [sar\_\_pixel\_spacing\_azimuth](#sar__pixel_spacing_azimuth-1)           | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-the-azimuth-pixel-spacing-which-is-the-distance-between-adjacent-pixels-parallel-to-the-flight-path-in-meters-m-strongly-recommended-to-be-specified-for-products-of-type-grd.md "airs_model#/$defs/Properties/properties/sar__pixel_spacing_azimuth")                           |
  | [sar\_\_looks\_range](#sar__looks_range-1)                                | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-number-of-range-looks-which-is-the-number-of-groups-of-signal-samples-looks-perpendicular-to-the-flight-path.md "airs_model#/$defs/Properties/properties/sar__looks_range")                                                                                                      |
  | [sar\_\_looks\_azimuth](#sar__looks_azimuth-1)                            | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-number-of-azimuth-looks-which-is-the-number-of-groups-of-signal-samples-looks-parallel-to-the-flight-path.md "airs_model#/$defs/Properties/properties/sar__looks_azimuth")                                                                                                       |
  | [sar\_\_looks\_equivalent\_number](#sar__looks_equivalent_number-1)       | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-the-equivalent-number-of-looks-enl.md "airs_model#/$defs/Properties/properties/sar__looks_equivalent_number")                                                                                                                                                                    |
  | [sar\_\_observation\_direction](#sar__observation_direction-1)            | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-antenna-pointing-direction-relative-to-the-flight-trajectory-of-the-satellite-either-left-or-right.md "airs_model#/$defs/Properties/properties/sar__observation_direction")                                                                                                      |
  | [proj\_\_epsg](#proj__epsg-1)                                             | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-epsg-code-of-the-datasource.md "airs_model#/$defs/Properties/properties/proj__epsg")                                                                                                                                                                                             |
  | [proj\_\_wkt2](#proj__wkt2-1)                                             | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-projjson-object-representing-the-coordinate-reference-system-crs-that-the-projgeometry-and-projbbox-fields-represent.md "airs_model#/$defs/Properties/properties/proj__wkt2")                                                                                                    |
  | [proj\_\_geometry](#proj__geometry-1)                                     | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-defines-the-footprint-of-this-item.md "airs_model#/$defs/Properties/properties/proj__geometry")                                                                                                                                                                                  |
  | [proj\_\_bbox](#proj__bbox-1)                                             | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-bounding-box-of-the-item-in-the-asset-crs-in-2-or-3-dimensions.md "airs_model#/$defs/Properties/properties/proj__bbox")                                                                                                                                                          |
  | [proj\_\_centroid](#proj__centroid-1)                                     | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-coordinates-representing-the-centroid-of-the-item-in-latlong.md "airs_model#/$defs/Properties/properties/proj__centroid")                                                                                                                                                        |
  | [proj\_\_shape](#proj__shape-1)                                           | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-number-of-pixels-in-y-and-x-directions-for-the-default-grid.md "airs_model#/$defs/Properties/properties/proj__shape")                                                                                                                                                            |
  | [proj\_\_transform](#proj__transform-1)                                   | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-the-affine-transformation-coefficients-for-the-default-grid.md "airs_model#/$defs/Properties/properties/proj__transform")                                                                                                                                                        |
  | [generated\_\_has\_overview](#generated__has_overview)                    | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-whether-the-item-has-an-overview-or-not.md "airs_model#/$defs/Properties/properties/generated__has_overview")                                                                                                                                                                    |
  | [generated\_\_has\_thumbnail](#generated__has_thumbnail)                  | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-whether-the-item-has-a-thumbnail-or-not.md "airs_model#/$defs/Properties/properties/generated__has_thumbnail")                                                                                                                                                                   |
  | [generated\_\_has\_metadata](#generated__has_metadata)                    | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-whether-the-item-has-a-metadata-file-or-not.md "airs_model#/$defs/Properties/properties/generated__has_metadata")                                                                                                                                                                |
  | [generated\_\_has\_data](#generated__has_data)                            | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-whether-the-item-has-a-data-file-or-not.md "airs_model#/$defs/Properties/properties/generated__has_data")                                                                                                                                                                        |
  | [generated\_\_has\_cog](#generated__has_cog)                              | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-whether-the-item-has-a-cog-or-not.md "airs_model#/$defs/Properties/properties/generated__has_cog")                                                                                                                                                                               |
  | [generated\_\_has\_zarr](#generated__has_zarr)                            | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-whether-the-item-has-a-zarr-or-not.md "airs_model#/$defs/Properties/properties/generated__has_zarr")                                                                                                                                                                             |
  | [generated\_\_date\_keywords](#generated__date_keywords)                  | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-a-list-of-keywords-indicating-clues-on-the-date.md "airs_model#/$defs/Properties/properties/generated__date_keywords")                                                                                                                                                           |
  | [generated\_\_day\_of\_week](#generated__day_of_week)                     | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-day-of-week.md "airs_model#/$defs/Properties/properties/generated__day_of_week")                                                                                                                                                                                                 |
  | [generated\_\_day\_of\_year](#generated__day_of_year)                     | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-day-of-year.md "airs_model#/$defs/Properties/properties/generated__day_of_year")                                                                                                                                                                                                 |
  | [generated\_\_hour\_of\_day](#generated__hour_of_day)                     | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-hour-of-day.md "airs_model#/$defs/Properties/properties/generated__hour_of_day")                                                                                                                                                                                                 |
  | [generated\_\_minute\_of\_day](#generated__minute_of_day)                 | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-minute-of-day.md "airs_model#/$defs/Properties/properties/generated__minute_of_day")                                                                                                                                                                                             |
  | [generated\_\_month](#generated__month)                                   | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-month.md "airs_model#/$defs/Properties/properties/generated__month")                                                                                                                                                                                                             |
  | [generated\_\_year](#generated__year)                                     | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-year.md "airs_model#/$defs/Properties/properties/generated__year")                                                                                                                                                                                                               |
  | [generated\_\_season](#generated__season)                                 | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-season.md "airs_model#/$defs/Properties/properties/generated__season")                                                                                                                                                                                                           |
  | [generated\_\_tltrbrbl](#generated__tltrbrbl)                             | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-the-coordinates-of-the-top-left-top-right-bottom-right-bottom-left-corners-of-the-item.md "airs_model#/$defs/Properties/properties/generated__tltrbrbl")                                                                                                                         |
  | [generated\_\_band\_common\_names](#generated__band_common_names)         | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-list-of-the-band-common-names.md "airs_model#/$defs/Properties/properties/generated__band_common_names")                                                                                                                                                                         |
  | [generated\_\_band\_names](#generated__band_names)                        | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-list-of-the-band-names.md "airs_model#/$defs/Properties/properties/generated__band_names")                                                                                                                                                                                       |
  | [generated\_\_geohash2](#generated__geohash2)                             | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-geohash-on-the-first-two-characters.md "airs_model#/$defs/Properties/properties/generated__geohash2")                                                                                                                                                                            |
  | [generated\_\_geohash3](#generated__geohash3)                             | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-geohash-on-the-first-three-characters.md "airs_model#/$defs/Properties/properties/generated__geohash3")                                                                                                                                                                          |
  | [generated\_\_geohash4](#generated__geohash4)                             | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-geohash-on-the-first-four-characters.md "airs_model#/$defs/Properties/properties/generated__geohash4")                                                                                                                                                                           |
  | [generated\_\_geohash5](#generated__geohash5)                             | Merged | Optional | cannot be null | [Item](model-defs-properties-properties-geohash-on-the-first-five-characters.md "airs_model#/$defs/Properties/properties/generated__geohash5")                                                                                                                                                                           |
  | Additional Properties                                                     | Any    | Optional | can be null    |                                                                                                                                                                                                                                                                                                                          |





  `datetime`

  *   is optional

  *   Type: merged type ([datetime associated with this item. If None, a start\_datetime and end\_datetime must be supplied.](model-defs-properties-properties-datetime-associated-with-this-item-if-none-a-start_datetime-and-end_datetime-must-be-supplied.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-datetime-associated-with-this-item-if-none-a-start_datetime-and-end_datetime-must-be-supplied.md "airs_model#/$defs/Properties/properties/datetime")



  merged type ([datetime associated with this item. If None, a start\_datetime and end\_datetime must be supplied.](model-defs-properties-properties-datetime-associated-with-this-item-if-none-a-start_datetime-and-end_datetime-must-be-supplied.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-datetime-associated-with-this-item-if-none-a-start_datetime-and-end_datetime-must-be-supplied-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-datetime-associated-with-this-item-if-none-a-start_datetime-and-end_datetime-must-be-supplied-anyof-1.md "check type definition")





  `start_datetime`

  *   is optional

  *   Type: merged type ([Optional start datetime, part of common metadata. This value will override any start\_datetime key in properties.](model-defs-properties-properties-optional-start-datetime-part-of-common-metadata-this-value-will-override-any-start_datetime-key-in-properties.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-optional-start-datetime-part-of-common-metadata-this-value-will-override-any-start_datetime-key-in-properties.md "airs_model#/$defs/Properties/properties/start_datetime")



  merged type ([Optional start datetime, part of common metadata. This value will override any start\_datetime key in properties.](model-defs-properties-properties-optional-start-datetime-part-of-common-metadata-this-value-will-override-any-start_datetime-key-in-properties.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-optional-start-datetime-part-of-common-metadata-this-value-will-override-any-start_datetime-key-in-properties-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-optional-start-datetime-part-of-common-metadata-this-value-will-override-any-start_datetime-key-in-properties-anyof-1.md "check type definition")





  `end_datetime`

  *   is optional

  *   Type: merged type ([Optional end datetime, part of common metadata. This value will override any end\_datetime key in properties.](model-defs-properties-properties-optional-end-datetime-part-of-common-metadata-this-value-will-override-any-end_datetime-key-in-properties.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-optional-end-datetime-part-of-common-metadata-this-value-will-override-any-end_datetime-key-in-properties.md "airs_model#/$defs/Properties/properties/end_datetime")



  merged type ([Optional end datetime, part of common metadata. This value will override any end\_datetime key in properties.](model-defs-properties-properties-optional-end-datetime-part-of-common-metadata-this-value-will-override-any-end_datetime-key-in-properties.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-optional-end-datetime-part-of-common-metadata-this-value-will-override-any-end_datetime-key-in-properties-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-optional-end-datetime-part-of-common-metadata-this-value-will-override-any-end_datetime-key-in-properties-anyof-1.md "check type definition")





  `programme`

  *   is optional

  *   Type: merged type ([Name of the programme](model-defs-properties-properties-name-of-the-programme.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-name-of-the-programme.md "airs_model#/$defs/Properties/properties/programme")



  merged type ([Name of the programme](model-defs-properties-properties-name-of-the-programme.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-name-of-the-programme-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-name-of-the-programme-anyof-1.md "check type definition")





  `constellation`

  *   is optional

  *   Type: merged type ([Name of the constellation](model-defs-properties-properties-name-of-the-constellation.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-name-of-the-constellation.md "airs_model#/$defs/Properties/properties/constellation")



  merged type ([Name of the constellation](model-defs-properties-properties-name-of-the-constellation.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-name-of-the-constellation-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-name-of-the-constellation-anyof-1.md "check type definition")





  `satellite`

  *   is optional

  *   Type: merged type ([Name of the satellite](model-defs-properties-properties-name-of-the-satellite.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-name-of-the-satellite.md "airs_model#/$defs/Properties/properties/satellite")



  merged type ([Name of the satellite](model-defs-properties-properties-name-of-the-satellite.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-name-of-the-satellite-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-name-of-the-satellite-anyof-1.md "check type definition")





  `instrument`

  *   is optional

  *   Type: merged type ([Name of the instrument](model-defs-properties-properties-name-of-the-instrument.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-name-of-the-instrument.md "airs_model#/$defs/Properties/properties/instrument")



  merged type ([Name of the instrument](model-defs-properties-properties-name-of-the-instrument.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-name-of-the-instrument-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-name-of-the-instrument-anyof-1.md "check type definition")





  `sensor`

  *   is optional

  *   Type: merged type ([Name of the sensor](model-defs-properties-properties-name-of-the-sensor.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-name-of-the-sensor.md "airs_model#/$defs/Properties/properties/sensor")



  merged type ([Name of the sensor](model-defs-properties-properties-name-of-the-sensor.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-name-of-the-sensor-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-name-of-the-sensor-anyof-1.md "check type definition")





  `sensor_type`

  *   is optional

  *   Type: merged type ([Type of sensor](model-defs-properties-properties-type-of-sensor.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-type-of-sensor.md "airs_model#/$defs/Properties/properties/sensor_type")



  merged type ([Type of sensor](model-defs-properties-properties-type-of-sensor.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-type-of-sensor-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-type-of-sensor-anyof-1.md "check type definition")





  `annotations`

  *   is optional

  *   Type: merged type ([Human annotations for the item](model-defs-properties-properties-human-annotations-for-the-item.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-human-annotations-for-the-item.md "airs_model#/$defs/Properties/properties/annotations")



  merged type ([Human annotations for the item](model-defs-properties-properties-human-annotations-for-the-item.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-human-annotations-for-the-item-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-human-annotations-for-the-item-anyof-1.md "check type definition")





  `gsd`

  *   is optional

  *   Type: merged type ([Ground Sampling Distance (resolution)](model-defs-properties-properties-ground-sampling-distance-resolution.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-ground-sampling-distance-resolution.md "airs_model#/$defs/Properties/properties/gsd")



  merged type ([Ground Sampling Distance (resolution)](model-defs-properties-properties-ground-sampling-distance-resolution.md))

  any of

  *   [Untitled number in Item](model-defs-properties-properties-ground-sampling-distance-resolution-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-ground-sampling-distance-resolution-anyof-1.md "check type definition")





  `secondary_id`

  *   is optional

  *   Type: merged type ([Secondary identifier](model-defs-properties-properties-secondary-identifier.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-secondary-identifier.md "airs_model#/$defs/Properties/properties/secondary_id")



  merged type ([Secondary identifier](model-defs-properties-properties-secondary-identifier.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-secondary-identifier-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-secondary-identifier-anyof-1.md "check type definition")





  `data_type`

  *   is optional

  *   Type: merged type ([Type of data](model-defs-properties-properties-type-of-data.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-type-of-data.md "airs_model#/$defs/Properties/properties/data_type")



  merged type ([Type of data](model-defs-properties-properties-type-of-data.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-type-of-data-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-type-of-data-anyof-1.md "check type definition")





  `item_type`

  *   is optional

  *   Type: merged type ([Type of data (ResourceType)](model-defs-properties-properties-type-of-data-resourcetype.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-type-of-data-resourcetype.md "airs_model#/$defs/Properties/properties/item_type")



  merged type ([Type of data (ResourceType)](model-defs-properties-properties-type-of-data-resourcetype.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-type-of-data-resourcetype-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-type-of-data-resourcetype-anyof-1.md "check type definition")





  `item_format`

  *   is optional

  *   Type: merged type ([Data format (ItemFormat)](model-defs-properties-properties-data-format-itemformat.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-data-format-itemformat.md "airs_model#/$defs/Properties/properties/item_format")



  merged type ([Data format (ItemFormat)](model-defs-properties-properties-data-format-itemformat.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-data-format-itemformat-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-data-format-itemformat-anyof-1.md "check type definition")





  `main_asset_format`

  *   is optional

  *   Type: merged type ([Data format of the main asset (AssetFormat)](model-defs-properties-properties-data-format-of-the-main-asset-assetformat.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-data-format-of-the-main-asset-assetformat.md "airs_model#/$defs/Properties/properties/main_asset_format")



  merged type ([Data format of the main asset (AssetFormat)](model-defs-properties-properties-data-format-of-the-main-asset-assetformat.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-data-format-of-the-main-asset-assetformat-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-data-format-of-the-main-asset-assetformat-anyof-1.md "check type definition")





  `main_asset_name`

  *   is optional

  *   Type: merged type ([Name of the main asset (AssetFormat)](model-defs-properties-properties-name-of-the-main-asset-assetformat.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-name-of-the-main-asset-assetformat.md "airs_model#/$defs/Properties/properties/main_asset_name")



  merged type ([Name of the main asset (AssetFormat)](model-defs-properties-properties-name-of-the-main-asset-assetformat.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-name-of-the-main-asset-assetformat-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-name-of-the-main-asset-assetformat-anyof-1.md "check type definition")





  `observation_type`

  *   is optional

  *   Type: merged type ([Type of observation (ObservationType)](model-defs-properties-properties-type-of-observation-observationtype.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-type-of-observation-observationtype.md "airs_model#/$defs/Properties/properties/observation_type")



  merged type ([Type of observation (ObservationType)](model-defs-properties-properties-type-of-observation-observationtype.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-type-of-observation-observationtype-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-type-of-observation-observationtype-anyof-1.md "check type definition")





  `data_coverage`

  *   is optional

  *   Type: merged type ([Estimate of data cover](model-defs-properties-properties-estimate-of-data-cover.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-estimate-of-data-cover.md "airs_model#/$defs/Properties/properties/data_coverage")



  merged type ([Estimate of data cover](model-defs-properties-properties-estimate-of-data-cover.md))

  any of

  *   [Untitled number in Item](model-defs-properties-properties-estimate-of-data-cover-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-estimate-of-data-cover-anyof-1.md "check type definition")





  `water_coverage`

  *   is optional

  *   Type: merged type ([Estimate of water cover](model-defs-properties-properties-estimate-of-water-cover.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-estimate-of-water-cover.md "airs_model#/$defs/Properties/properties/water_coverage")



  merged type ([Estimate of water cover](model-defs-properties-properties-estimate-of-water-cover.md))

  any of

  *   [Untitled number in Item](model-defs-properties-properties-estimate-of-water-cover-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-estimate-of-water-cover-anyof-1.md "check type definition")





  `locations`

  *   is optional

  *   Type: merged type ([List of locations covered by the item](model-defs-properties-properties-list-of-locations-covered-by-the-item.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-list-of-locations-covered-by-the-item.md "airs_model#/$defs/Properties/properties/locations")



  merged type ([List of locations covered by the item](model-defs-properties-properties-list-of-locations-covered-by-the-item.md))

  any of

  *   [Untitled array in Item](model-defs-properties-properties-list-of-locations-covered-by-the-item-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-list-of-locations-covered-by-the-item-anyof-1.md "check type definition")





  `create_datetime`

  *   is optional

  *   Type: merged type ([Date of item creation in the catalog, managed by the ARLAS Item Registration Service](model-defs-properties-properties-date-of-item-creation-in-the-catalog-managed-by-the-arlas-item-registration-service.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-date-of-item-creation-in-the-catalog-managed-by-the-arlas-item-registration-service.md "airs_model#/$defs/Properties/properties/create_datetime")



  merged type ([Date of item creation in the catalog, managed by the ARLAS Item Registration Service](model-defs-properties-properties-date-of-item-creation-in-the-catalog-managed-by-the-arlas-item-registration-service.md))

  any of

  *   [Untitled integer in Item](model-defs-properties-properties-date-of-item-creation-in-the-catalog-managed-by-the-arlas-item-registration-service-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-date-of-item-creation-in-the-catalog-managed-by-the-arlas-item-registration-service-anyof-1.md "check type definition")





  `update_datetime`

  *   is optional

  *   Type: merged type ([Update date of the item in the catalog, managed by the ARLAS Item Registration Service](model-defs-properties-properties-update-date-of-the-item-in-the-catalog-managed-by-the-arlas-item-registration-service.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-update-date-of-the-item-in-the-catalog-managed-by-the-arlas-item-registration-service.md "airs_model#/$defs/Properties/properties/update_datetime")



  merged type ([Update date of the item in the catalog, managed by the ARLAS Item Registration Service](model-defs-properties-properties-update-date-of-the-item-in-the-catalog-managed-by-the-arlas-item-registration-service.md))

  any of

  *   [Untitled integer in Item](model-defs-properties-properties-update-date-of-the-item-in-the-catalog-managed-by-the-arlas-item-registration-service-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-update-date-of-the-item-in-the-catalog-managed-by-the-arlas-item-registration-service-anyof-1.md "check type definition")





  `view__off_nadir`

  *   is optional

  *   Type: merged type ([The angle from the sensor between nadir (straight down) and the scene center. Measured in degrees (0-90).](model-defs-properties-properties-the-angle-from-the-sensor-between-nadir-straight-down-and-the-scene-center-measured-in-degrees-0-90.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-the-angle-from-the-sensor-between-nadir-straight-down-and-the-scene-center-measured-in-degrees-0-90.md "airs_model#/$defs/Properties/properties/view__off_nadir")



  merged type ([The angle from the sensor between nadir (straight down) and the scene center. Measured in degrees (0-90).](model-defs-properties-properties-the-angle-from-the-sensor-between-nadir-straight-down-and-the-scene-center-measured-in-degrees-0-90.md))

  any of

  *   [Untitled number in Item](model-defs-properties-properties-the-angle-from-the-sensor-between-nadir-straight-down-and-the-scene-center-measured-in-degrees-0-90-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-the-angle-from-the-sensor-between-nadir-straight-down-and-the-scene-center-measured-in-degrees-0-90-anyof-1.md "check type definition")





  `view__incidence_angle`

  *   is optional

  *   Type: merged type ([The incidence angle is the angle between the vertical (normal) to the intercepting surface and the line of sight back to the satellite at the scene center. Measured in degrees (0-90).](model-defs-properties-properties-the-incidence-angle-is-the-angle-between-the-vertical-normal-to-the-intercepting-surface-and-the-line-of-sight-back-to-the-satellite-at-the-scene-center-measured-in-degrees-0-90.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-the-incidence-angle-is-the-angle-between-the-vertical-normal-to-the-intercepting-surface-and-the-line-of-sight-back-to-the-satellite-at-the-scene-center-measured-in-degrees-0-90.md "airs_model#/$defs/Properties/properties/view__incidence_angle")



  merged type ([The incidence angle is the angle between the vertical (normal) to the intercepting surface and the line of sight back to the satellite at the scene center. Measured in degrees (0-90).](model-defs-properties-properties-the-incidence-angle-is-the-angle-between-the-vertical-normal-to-the-intercepting-surface-and-the-line-of-sight-back-to-the-satellite-at-the-scene-center-measured-in-degrees-0-90.md))

  any of

  *   [Untitled number in Item](model-defs-properties-properties-the-incidence-angle-is-the-angle-between-the-vertical-normal-to-the-intercepting-surface-and-the-line-of-sight-back-to-the-satellite-at-the-scene-center-measured-in-degrees-0-90-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-the-incidence-angle-is-the-angle-between-the-vertical-normal-to-the-intercepting-surface-and-the-line-of-sight-back-to-the-satellite-at-the-scene-center-measured-in-degrees-0-90-anyof-1.md "check type definition")





  `view__azimuth`

  *   is optional

  *   Type: merged type ([Viewing azimuth angle. The angle measured from the sub-satellite point (point on the ground below the platform) between the scene center and true north. Measured clockwise from north in degrees (0-360).](model-defs-properties-properties-viewing-azimuth-angle-the-angle-measured-from-the-sub-satellite-point-point-on-the-ground-below-the-platform-between-the-scene-center-and-true-north-measured-clockwise-from-north-in-degrees-0-360.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-viewing-azimuth-angle-the-angle-measured-from-the-sub-satellite-point-point-on-the-ground-below-the-platform-between-the-scene-center-and-true-north-measured-clockwise-from-north-in-degrees-0-360.md "airs_model#/$defs/Properties/properties/view__azimuth")



  merged type ([Viewing azimuth angle. The angle measured from the sub-satellite point (point on the ground below the platform) between the scene center and true north. Measured clockwise from north in degrees (0-360).](model-defs-properties-properties-viewing-azimuth-angle-the-angle-measured-from-the-sub-satellite-point-point-on-the-ground-below-the-platform-between-the-scene-center-and-true-north-measured-clockwise-from-north-in-degrees-0-360.md))

  any of

  *   [Untitled number in Item](model-defs-properties-properties-viewing-azimuth-angle-the-angle-measured-from-the-sub-satellite-point-point-on-the-ground-below-the-platform-between-the-scene-center-and-true-north-measured-clockwise-from-north-in-degrees-0-360-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-viewing-azimuth-angle-the-angle-measured-from-the-sub-satellite-point-point-on-the-ground-below-the-platform-between-the-scene-center-and-true-north-measured-clockwise-from-north-in-degrees-0-360-anyof-1.md "check type definition")





  `view__sun_azimuth`

  *   is optional

  *   Type: merged type ([Sun azimuth angle. From the scene center point on the ground, this is the angle between truth north and the sun. Measured clockwise in degrees (0-360).](model-defs-properties-properties-sun-azimuth-angle-from-the-scene-center-point-on-the-ground-this-is-the-angle-between-truth-north-and-the-sun-measured-clockwise-in-degrees-0-360.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-sun-azimuth-angle-from-the-scene-center-point-on-the-ground-this-is-the-angle-between-truth-north-and-the-sun-measured-clockwise-in-degrees-0-360.md "airs_model#/$defs/Properties/properties/view__sun_azimuth")



  merged type ([Sun azimuth angle. From the scene center point on the ground, this is the angle between truth north and the sun. Measured clockwise in degrees (0-360).](model-defs-properties-properties-sun-azimuth-angle-from-the-scene-center-point-on-the-ground-this-is-the-angle-between-truth-north-and-the-sun-measured-clockwise-in-degrees-0-360.md))

  any of

  *   [Untitled number in Item](model-defs-properties-properties-sun-azimuth-angle-from-the-scene-center-point-on-the-ground-this-is-the-angle-between-truth-north-and-the-sun-measured-clockwise-in-degrees-0-360-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-sun-azimuth-angle-from-the-scene-center-point-on-the-ground-this-is-the-angle-between-truth-north-and-the-sun-measured-clockwise-in-degrees-0-360-anyof-1.md "check type definition")





  `view__sun_elevation`

  *   is optional

  *   Type: merged type ([Sun elevation angle. The angle from the tangent of the scene center point to the sun. Measured from the horizon in degrees (-90-90). Negative values indicate the sun is below the horizon, e.g. sun elevation of -10° \[...\]](model-defs-properties-properties-sun-elevation-angle-the-angle-from-the-tangent-of-the-scene-center-point-to-the-sun-measured-from-the-horizon-in-degrees--90-90-negative-values-indicate-the-sun-is-below-the-horizon-eg-sun-elevation-of--10-.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-sun-elevation-angle-the-angle-from-the-tangent-of-the-scene-center-point-to-the-sun-measured-from-the-horizon-in-degrees--90-90-negative-values-indicate-the-sun-is-below-the-horizon-eg-sun-elevation-of--10-.md "airs_model#/$defs/Properties/properties/view__sun_elevation")



  merged type ([Sun elevation angle. The angle from the tangent of the scene center point to the sun. Measured from the horizon in degrees (-90-90). Negative values indicate the sun is below the horizon, e.g. sun elevation of -10° \[...\]](model-defs-properties-properties-sun-elevation-angle-the-angle-from-the-tangent-of-the-scene-center-point-to-the-sun-measured-from-the-horizon-in-degrees--90-90-negative-values-indicate-the-sun-is-below-the-horizon-eg-sun-elevation-of--10-.md))

  any of

  *   [Untitled number in Item](model-defs-properties-properties-sun-elevation-angle-the-angle-from-the-tangent-of-the-scene-center-point-to-the-sun-measured-from-the-horizon-in-degrees--90-90-negative-values-indicate-the-sun-is-below-the-horizon-eg-sun-elevation-of--10--anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-sun-elevation-angle-the-angle-from-the-tangent-of-the-scene-center-point-to-the-sun-measured-from-the-horizon-in-degrees--90-90-negative-values-indicate-the-sun-is-below-the-horizon-eg-sun-elevation-of--10--anyof-1.md "check type definition")





  `storage__requester_pays`

  *   is optional

  *   Type: merged type ([Is the data requester pays or is it data manager/cloud provider pays. Defaults to false. Whether the requester pays for accessing assets](model-defs-properties-properties-is-the-data-requester-pays-or-is-it-data-managercloud-provider-pays-defaults-to-false-whether-the-requester-pays-for-accessing-assets.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-is-the-data-requester-pays-or-is-it-data-managercloud-provider-pays-defaults-to-false-whether-the-requester-pays-for-accessing-assets.md "airs_model#/$defs/Properties/properties/storage__requester_pays")



  merged type ([Is the data requester pays or is it data manager/cloud provider pays. Defaults to false. Whether the requester pays for accessing assets](model-defs-properties-properties-is-the-data-requester-pays-or-is-it-data-managercloud-provider-pays-defaults-to-false-whether-the-requester-pays-for-accessing-assets.md))

  any of

  *   [Untitled boolean in Item](model-defs-properties-properties-is-the-data-requester-pays-or-is-it-data-managercloud-provider-pays-defaults-to-false-whether-the-requester-pays-for-accessing-assets-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-is-the-data-requester-pays-or-is-it-data-managercloud-provider-pays-defaults-to-false-whether-the-requester-pays-for-accessing-assets-anyof-1.md "check type definition")





  `storage__tier`

  *   is optional

  *   Type: merged type ([Cloud Provider Storage Tiers (Standard, Glacier, etc.)](model-defs-properties-properties-cloud-provider-storage-tiers-standard-glacier-etc.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-cloud-provider-storage-tiers-standard-glacier-etc.md "airs_model#/$defs/Properties/properties/storage__tier")



  merged type ([Cloud Provider Storage Tiers (Standard, Glacier, etc.)](model-defs-properties-properties-cloud-provider-storage-tiers-standard-glacier-etc.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-cloud-provider-storage-tiers-standard-glacier-etc-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-cloud-provider-storage-tiers-standard-glacier-etc-anyof-1.md "check type definition")





  `storage__platform`

  *   is optional

  *   Type: merged type ([PaaS solutions (ALIBABA, AWS, AZURE, GCP, IBM, ORACLE, OTHER)](model-defs-properties-properties-paas-solutions-alibaba-aws-azure-gcp-ibm-oracle-other.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-paas-solutions-alibaba-aws-azure-gcp-ibm-oracle-other.md "airs_model#/$defs/Properties/properties/storage__platform")



  merged type ([PaaS solutions (ALIBABA, AWS, AZURE, GCP, IBM, ORACLE, OTHER)](model-defs-properties-properties-paas-solutions-alibaba-aws-azure-gcp-ibm-oracle-other.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-paas-solutions-alibaba-aws-azure-gcp-ibm-oracle-other-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-paas-solutions-alibaba-aws-azure-gcp-ibm-oracle-other-anyof-1.md "check type definition")





  `storage__region`

  *   is optional

  *   Type: merged type ([The region where the data is stored. Relevant to speed of access and inter region egress costs (as defined by PaaS provider)](model-defs-properties-properties-the-region-where-the-data-is-stored-relevant-to-speed-of-access-and-inter-region-egress-costs-as-defined-by-paas-provider.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-the-region-where-the-data-is-stored-relevant-to-speed-of-access-and-inter-region-egress-costs-as-defined-by-paas-provider.md "airs_model#/$defs/Properties/properties/storage__region")



  merged type ([The region where the data is stored. Relevant to speed of access and inter region egress costs (as defined by PaaS provider)](model-defs-properties-properties-the-region-where-the-data-is-stored-relevant-to-speed-of-access-and-inter-region-egress-costs-as-defined-by-paas-provider.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-the-region-where-the-data-is-stored-relevant-to-speed-of-access-and-inter-region-egress-costs-as-defined-by-paas-provider-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-the-region-where-the-data-is-stored-relevant-to-speed-of-access-and-inter-region-egress-costs-as-defined-by-paas-provider-anyof-1.md "check type definition")





  `eo__cloud_cover`

  *   is optional

  *   Type: merged type ([Estimate of cloud cover.](model-defs-properties-properties-estimate-of-cloud-cover.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-estimate-of-cloud-cover.md "airs_model#/$defs/Properties/properties/eo__cloud_cover")



  merged type ([Estimate of cloud cover.](model-defs-properties-properties-estimate-of-cloud-cover.md))

  any of

  *   [Untitled number in Item](model-defs-properties-properties-estimate-of-cloud-cover-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-estimate-of-cloud-cover-anyof-1.md "check type definition")





  `eo__snow_cover`

  *   is optional

  *   Type: merged type ([Estimate of snow and ice cover.](model-defs-properties-properties-estimate-of-snow-and-ice-cover.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-estimate-of-snow-and-ice-cover.md "airs_model#/$defs/Properties/properties/eo__snow_cover")



  merged type ([Estimate of snow and ice cover.](model-defs-properties-properties-estimate-of-snow-and-ice-cover.md))

  any of

  *   [Untitled number in Item](model-defs-properties-properties-estimate-of-snow-and-ice-cover-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-estimate-of-snow-and-ice-cover-anyof-1.md "check type definition")





  `eo__bands`

  *   is optional

  *   Type: merged type ([An array of available bands where each object is a Band Object. If given, requires at least one band.](model-defs-properties-properties-an-array-of-available-bands-where-each-object-is-a-band-object-if-given-requires-at-least-one-band.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-an-array-of-available-bands-where-each-object-is-a-band-object-if-given-requires-at-least-one-band.md "airs_model#/$defs/Properties/properties/eo__bands")



  merged type ([An array of available bands where each object is a Band Object. If given, requires at least one band.](model-defs-properties-properties-an-array-of-available-bands-where-each-object-is-a-band-object-if-given-requires-at-least-one-band.md))

  any of

  *   [Untitled array in Item](model-defs-properties-properties-an-array-of-available-bands-where-each-object-is-a-band-object-if-given-requires-at-least-one-band-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-an-array-of-available-bands-where-each-object-is-a-band-object-if-given-requires-at-least-one-band-anyof-1.md "check type definition")





  `processing__expression`

  *   is optional

  *   Type: merged type ([An expression or processing chain that describes how the data has been processed. Alternatively, you can also link to a processing chain with the relation type processing-expression (see below).](model-defs-properties-properties-an-expression-or-processing-chain-that-describes-how-the-data-has-been-processed-alternatively-you-can-also-link-to-a-processing-chain-with-the-relation-type-processing-expression-see-below.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-an-expression-or-processing-chain-that-describes-how-the-data-has-been-processed-alternatively-you-can-also-link-to-a-processing-chain-with-the-relation-type-processing-expression-see-below.md "airs_model#/$defs/Properties/properties/processing__expression")



  merged type ([An expression or processing chain that describes how the data has been processed. Alternatively, you can also link to a processing chain with the relation type processing-expression (see below).](model-defs-properties-properties-an-expression-or-processing-chain-that-describes-how-the-data-has-been-processed-alternatively-you-can-also-link-to-a-processing-chain-with-the-relation-type-processing-expression-see-below.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-an-expression-or-processing-chain-that-describes-how-the-data-has-been-processed-alternatively-you-can-also-link-to-a-processing-chain-with-the-relation-type-processing-expression-see-below-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-an-expression-or-processing-chain-that-describes-how-the-data-has-been-processed-alternatively-you-can-also-link-to-a-processing-chain-with-the-relation-type-processing-expression-see-below-anyof-1.md "check type definition")





  `processing__lineage`

  *   is optional

  *   Type: merged type ([Lineage Information provided as free text information about the how observations were processed or models that were used to create the resource being described NASA ISO.](model-defs-properties-properties-lineage-information-provided-as-free-text-information-about-the-how-observations-were-processed-or-models-that-were-used-to-create-the-resource-being-described-nasa-iso.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-lineage-information-provided-as-free-text-information-about-the-how-observations-were-processed-or-models-that-were-used-to-create-the-resource-being-described-nasa-iso.md "airs_model#/$defs/Properties/properties/processing__lineage")



  merged type ([Lineage Information provided as free text information about the how observations were processed or models that were used to create the resource being described NASA ISO.](model-defs-properties-properties-lineage-information-provided-as-free-text-information-about-the-how-observations-were-processed-or-models-that-were-used-to-create-the-resource-being-described-nasa-iso.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-lineage-information-provided-as-free-text-information-about-the-how-observations-were-processed-or-models-that-were-used-to-create-the-resource-being-described-nasa-iso-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-lineage-information-provided-as-free-text-information-about-the-how-observations-were-processed-or-models-that-were-used-to-create-the-resource-being-described-nasa-iso-anyof-1.md "check type definition")





  `processing__level`

  *   is optional

  *   Type: merged type ([The name commonly used to refer to the processing level to make it easier to search for product level across collections or items. The short name must be used (only L, not Level).](model-defs-properties-properties-the-name-commonly-used-to-refer-to-the-processing-level-to-make-it-easier-to-search-for-product-level-across-collections-or-items-the-short-name-must-be-used-only-l-not-level.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-the-name-commonly-used-to-refer-to-the-processing-level-to-make-it-easier-to-search-for-product-level-across-collections-or-items-the-short-name-must-be-used-only-l-not-level.md "airs_model#/$defs/Properties/properties/processing__level")



  merged type ([The name commonly used to refer to the processing level to make it easier to search for product level across collections or items. The short name must be used (only L, not Level).](model-defs-properties-properties-the-name-commonly-used-to-refer-to-the-processing-level-to-make-it-easier-to-search-for-product-level-across-collections-or-items-the-short-name-must-be-used-only-l-not-level.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-the-name-commonly-used-to-refer-to-the-processing-level-to-make-it-easier-to-search-for-product-level-across-collections-or-items-the-short-name-must-be-used-only-l-not-level-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-the-name-commonly-used-to-refer-to-the-processing-level-to-make-it-easier-to-search-for-product-level-across-collections-or-items-the-short-name-must-be-used-only-l-not-level-anyof-1.md "check type definition")





  `processing__facility`

  *   is optional

  *   Type: merged type ([The name of the facility that produced the data. For example, Copernicus S1 Core Ground Segment - DPA for product of Sentinel-1 satellites.](model-defs-properties-properties-the-name-of-the-facility-that-produced-the-data-for-example-copernicus-s1-core-ground-segment---dpa-for-product-of-sentinel-1-satellites.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-the-name-of-the-facility-that-produced-the-data-for-example-copernicus-s1-core-ground-segment---dpa-for-product-of-sentinel-1-satellites.md "airs_model#/$defs/Properties/properties/processing__facility")



  merged type ([The name of the facility that produced the data. For example, Copernicus S1 Core Ground Segment - DPA for product of Sentinel-1 satellites.](model-defs-properties-properties-the-name-of-the-facility-that-produced-the-data-for-example-copernicus-s1-core-ground-segment---dpa-for-product-of-sentinel-1-satellites.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-the-name-of-the-facility-that-produced-the-data-for-example-copernicus-s1-core-ground-segment---dpa-for-product-of-sentinel-1-satellites-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-the-name-of-the-facility-that-produced-the-data-for-example-copernicus-s1-core-ground-segment---dpa-for-product-of-sentinel-1-satellites-anyof-1.md "check type definition")





  `processing__software`

  *   is optional

  *   Type: merged type ([A dictionary with name/version for key/value describing one or more softwares that produced the data.](model-defs-properties-properties-a-dictionary-with-nameversion-for-keyvalue-describing-one-or-more-softwares-that-produced-the-data.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-a-dictionary-with-nameversion-for-keyvalue-describing-one-or-more-softwares-that-produced-the-data.md "airs_model#/$defs/Properties/properties/processing__software")



  merged type ([A dictionary with name/version for key/value describing one or more softwares that produced the data.](model-defs-properties-properties-a-dictionary-with-nameversion-for-keyvalue-describing-one-or-more-softwares-that-produced-the-data.md))

  any of

  *   [Untitled object in Item](model-defs-properties-properties-a-dictionary-with-nameversion-for-keyvalue-describing-one-or-more-softwares-that-produced-the-data-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-a-dictionary-with-nameversion-for-keyvalue-describing-one-or-more-softwares-that-produced-the-data-anyof-1.md "check type definition")





  `dc3__quality_indicators`

  *   is optional

  *   Type: merged type ([Set of indicators for estimating the quality of the datacube based on the composition. The indicators are group based. A cube indicator is the product of its corresponding group indicator.](model-defs-properties-properties-set-of-indicators-for-estimating-the-quality-of-the-datacube-based-on-the-composition-the-indicators-are-group-based-a-cube-indicator-is-the-product-of-its-corresponding-group-indicator.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-set-of-indicators-for-estimating-the-quality-of-the-datacube-based-on-the-composition-the-indicators-are-group-based-a-cube-indicator-is-the-product-of-its-corresponding-group-indicator.md "airs_model#/$defs/Properties/properties/dc3__quality_indicators")



  merged type ([Set of indicators for estimating the quality of the datacube based on the composition. The indicators are group based. A cube indicator is the product of its corresponding group indicator.](model-defs-properties-properties-set-of-indicators-for-estimating-the-quality-of-the-datacube-based-on-the-composition-the-indicators-are-group-based-a-cube-indicator-is-the-product-of-its-corresponding-group-indicator.md))

  any of

  *   [Indicators](model-defs-indicators.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-set-of-indicators-for-estimating-the-quality-of-the-datacube-based-on-the-composition-the-indicators-are-group-based-a-cube-indicator-is-the-product-of-its-corresponding-group-indicator-anyof-1.md "check type definition")





  `dc3__composition`

  *   is optional

  *   Type: merged type ([List of raster groups used for elaborating the cube temporal slices.](model-defs-properties-properties-list-of-raster-groups-used-for-elaborating-the-cube-temporal-slices.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-list-of-raster-groups-used-for-elaborating-the-cube-temporal-slices.md "airs_model#/$defs/Properties/properties/dc3__composition")



  merged type ([List of raster groups used for elaborating the cube temporal slices.](model-defs-properties-properties-list-of-raster-groups-used-for-elaborating-the-cube-temporal-slices.md))

  any of

  *   [Untitled array in Item](model-defs-properties-properties-list-of-raster-groups-used-for-elaborating-the-cube-temporal-slices-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-list-of-raster-groups-used-for-elaborating-the-cube-temporal-slices-anyof-1.md "check type definition")





  `dc3__number_of_chunks`

  *   is optional

  *   Type: merged type ([Number of chunks (if zarr or similar partitioned format) within the cube.](model-defs-properties-properties-number-of-chunks-if-zarr-or-similar-partitioned-format-within-the-cube.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-number-of-chunks-if-zarr-or-similar-partitioned-format-within-the-cube.md "airs_model#/$defs/Properties/properties/dc3__number_of_chunks")



  merged type ([Number of chunks (if zarr or similar partitioned format) within the cube.](model-defs-properties-properties-number-of-chunks-if-zarr-or-similar-partitioned-format-within-the-cube.md))

  any of

  *   [Untitled integer in Item](model-defs-properties-properties-number-of-chunks-if-zarr-or-similar-partitioned-format-within-the-cube-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-number-of-chunks-if-zarr-or-similar-partitioned-format-within-the-cube-anyof-1.md "check type definition")





  `dc3__chunk_weight`

  *   is optional

  *   Type: merged type ([Weight of a chunk (number of bytes).](model-defs-properties-properties-weight-of-a-chunk-number-of-bytes.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-weight-of-a-chunk-number-of-bytes.md "airs_model#/$defs/Properties/properties/dc3__chunk_weight")



  merged type ([Weight of a chunk (number of bytes).](model-defs-properties-properties-weight-of-a-chunk-number-of-bytes.md))

  any of

  *   [Untitled integer in Item](model-defs-properties-properties-weight-of-a-chunk-number-of-bytes-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-weight-of-a-chunk-number-of-bytes-anyof-1.md "check type definition")





  `dc3__fill_ratio`

  *   is optional

  *   Type: merged type ([1: the cube is full, 0 the cube is empty, in between the cube is partially filled.](model-defs-properties-properties-1-the-cube-is-full-0-the-cube-is-empty-in-between-the-cube-is-partially-filled.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-1-the-cube-is-full-0-the-cube-is-empty-in-between-the-cube-is-partially-filled.md "airs_model#/$defs/Properties/properties/dc3__fill_ratio")



  merged type ([1: the cube is full, 0 the cube is empty, in between the cube is partially filled.](model-defs-properties-properties-1-the-cube-is-full-0-the-cube-is-empty-in-between-the-cube-is-partially-filled.md))

  any of

  *   [Untitled number in Item](model-defs-properties-properties-1-the-cube-is-full-0-the-cube-is-empty-in-between-the-cube-is-partially-filled-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-1-the-cube-is-full-0-the-cube-is-empty-in-between-the-cube-is-partially-filled-anyof-1.md "check type definition")





  `cube__dimensions`

  *   is optional

  *   Type: merged type ([Uniquely named dimensions of the datacube.](model-defs-properties-properties-uniquely-named-dimensions-of-the-datacube.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-uniquely-named-dimensions-of-the-datacube.md "airs_model#/$defs/Properties/properties/cube__dimensions")



  merged type ([Uniquely named dimensions of the datacube.](model-defs-properties-properties-uniquely-named-dimensions-of-the-datacube.md))

  any of

  *   [Untitled object in Item](model-defs-properties-properties-uniquely-named-dimensions-of-the-datacube-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-uniquely-named-dimensions-of-the-datacube-anyof-1.md "check type definition")





  `cube__variables`

  *   is optional

  *   Type: merged type ([Uniquely named variables of the datacube.](model-defs-properties-properties-uniquely-named-variables-of-the-datacube.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-uniquely-named-variables-of-the-datacube.md "airs_model#/$defs/Properties/properties/cube__variables")



  merged type ([Uniquely named variables of the datacube.](model-defs-properties-properties-uniquely-named-variables-of-the-datacube.md))

  any of

  *   [Untitled object in Item](model-defs-properties-properties-uniquely-named-variables-of-the-datacube-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-uniquely-named-variables-of-the-datacube-anyof-1.md "check type definition")





  `acq__acquisition_mode`

  *   is optional

  *   Type: merged type ([The name of the acquisition mode.](model-defs-properties-properties-the-name-of-the-acquisition-mode.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-the-name-of-the-acquisition-mode.md "airs_model#/$defs/Properties/properties/acq__acquisition_mode")



  merged type ([The name of the acquisition mode.](model-defs-properties-properties-the-name-of-the-acquisition-mode.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-the-name-of-the-acquisition-mode-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-the-name-of-the-acquisition-mode-anyof-1.md "check type definition")





  `acq__acquisition_orbit_direction`

  *   is optional

  *   Type: merged type ([Acquisition orbit direction (ASCENDING or DESCENDING).](model-defs-properties-properties-acquisition-orbit-direction-ascending-or-descending.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-acquisition-orbit-direction-ascending-or-descending.md "airs_model#/$defs/Properties/properties/acq__acquisition_orbit_direction")



  merged type ([Acquisition orbit direction (ASCENDING or DESCENDING).](model-defs-properties-properties-acquisition-orbit-direction-ascending-or-descending.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-acquisition-orbit-direction-ascending-or-descending-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-acquisition-orbit-direction-ascending-or-descending-anyof-1.md "check type definition")





  `acq__acquisition_type`

  *   is optional

  *   Type: merged type ([Acquisition type (STRIP)](model-defs-properties-properties-acquisition-type-strip.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-acquisition-type-strip.md "airs_model#/$defs/Properties/properties/acq__acquisition_type")



  merged type ([Acquisition type (STRIP)](model-defs-properties-properties-acquisition-type-strip.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-acquisition-type-strip-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-acquisition-type-strip-anyof-1.md "check type definition")





  `acq__across_track`

  *   is optional

  *   Type: merged type ([Across track angle](model-defs-properties-properties-across-track-angle.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-across-track-angle.md "airs_model#/$defs/Properties/properties/acq__across_track")



  merged type ([Across track angle](model-defs-properties-properties-across-track-angle.md))

  any of

  *   [Untitled number in Item](model-defs-properties-properties-across-track-angle-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-across-track-angle-anyof-1.md "check type definition")





  `acq__along_track`

  *   is optional

  *   Type: merged type ([Along track angle](model-defs-properties-properties-along-track-angle.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-along-track-angle.md "airs_model#/$defs/Properties/properties/acq__along_track")



  merged type ([Along track angle](model-defs-properties-properties-along-track-angle.md))

  any of

  *   [Untitled number in Item](model-defs-properties-properties-along-track-angle-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-along-track-angle-anyof-1.md "check type definition")





  `acq__archiving_date`

  *   is optional

  *   Type: merged type ([Archiving date](model-defs-properties-properties-archiving-date.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-archiving-date.md "airs_model#/$defs/Properties/properties/acq__archiving_date")



  merged type ([Archiving date](model-defs-properties-properties-archiving-date.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-archiving-date-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-archiving-date-anyof-1.md "check type definition")





  `acq__download_orbit`

  *   is optional

  *   Type: merged type ([Download orbit](model-defs-properties-properties-download-orbit.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-download-orbit.md "airs_model#/$defs/Properties/properties/acq__download_orbit")



  merged type ([Download orbit](model-defs-properties-properties-download-orbit.md))

  any of

  *   [Untitled number in Item](model-defs-properties-properties-download-orbit-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-download-orbit-anyof-1.md "check type definition")





  `acq__request_id`

  *   is optional

  *   Type: merged type ([Original request identifier](model-defs-properties-properties-original-request-identifier.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-original-request-identifier.md "airs_model#/$defs/Properties/properties/acq__request_id")



  merged type ([Original request identifier](model-defs-properties-properties-original-request-identifier.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-original-request-identifier-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-original-request-identifier-anyof-1.md "check type definition")





  `acq__quality_average`

  *   is optional

  *   Type: merged type ([Quality average](model-defs-properties-properties-quality-average.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-quality-average.md "airs_model#/$defs/Properties/properties/acq__quality_average")



  merged type ([Quality average](model-defs-properties-properties-quality-average.md))

  any of

  *   [Untitled number in Item](model-defs-properties-properties-quality-average-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-quality-average-anyof-1.md "check type definition")





  `acq__quality_computation`

  *   is optional

  *   Type: merged type ([Quality computation](model-defs-properties-properties-quality-computation.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-quality-computation.md "airs_model#/$defs/Properties/properties/acq__quality_computation")



  merged type ([Quality computation](model-defs-properties-properties-quality-computation.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-quality-computation-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-quality-computation-anyof-1.md "check type definition")





  `acq__receiving_station`

  *   is optional

  *   Type: merged type ([Receiving station](model-defs-properties-properties-receiving-station.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-receiving-station.md "airs_model#/$defs/Properties/properties/acq__receiving_station")



  merged type ([Receiving station](model-defs-properties-properties-receiving-station.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-receiving-station-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-receiving-station-anyof-1.md "check type definition")





  `acq__reception_date`

  *   is optional

  *   Type: merged type ([Reception date](model-defs-properties-properties-reception-date.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-reception-date.md "airs_model#/$defs/Properties/properties/acq__reception_date")



  merged type ([Reception date](model-defs-properties-properties-reception-date.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-reception-date-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-reception-date-anyof-1.md "check type definition")





  `acq__spectral_mode`

  *   is optional

  *   Type: merged type ([Spectral mode](model-defs-properties-properties-spectral-mode.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-spectral-mode.md "airs_model#/$defs/Properties/properties/acq__spectral_mode")



  merged type ([Spectral mode](model-defs-properties-properties-spectral-mode.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-spectral-mode-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-spectral-mode-anyof-1.md "check type definition")





  `sar__instrument_mode`

  *   is optional

  *   Type: merged type ([The name of the sensor acquisition mode that is commonly used. This should be the short name, if available. For example, WV for "Wave mode" of Sentinel-1 and Envisat ASAR satellites.](model-defs-properties-properties-the-name-of-the-sensor-acquisition-mode-that-is-commonly-used-this-should-be-the-short-name-if-available-for-example-wv-for-wave-mode-of-sentinel-1-and-envisat-asar-satellites.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-the-name-of-the-sensor-acquisition-mode-that-is-commonly-used-this-should-be-the-short-name-if-available-for-example-wv-for-wave-mode-of-sentinel-1-and-envisat-asar-satellites.md "airs_model#/$defs/Properties/properties/sar__instrument_mode")



  merged type ([The name of the sensor acquisition mode that is commonly used. This should be the short name, if available. For example, WV for "Wave mode" of Sentinel-1 and Envisat ASAR satellites.](model-defs-properties-properties-the-name-of-the-sensor-acquisition-mode-that-is-commonly-used-this-should-be-the-short-name-if-available-for-example-wv-for-wave-mode-of-sentinel-1-and-envisat-asar-satellites.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-the-name-of-the-sensor-acquisition-mode-that-is-commonly-used-this-should-be-the-short-name-if-available-for-example-wv-for-wave-mode-of-sentinel-1-and-envisat-asar-satellites-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-the-name-of-the-sensor-acquisition-mode-that-is-commonly-used-this-should-be-the-short-name-if-available-for-example-wv-for-wave-mode-of-sentinel-1-and-envisat-asar-satellites-anyof-1.md "check type definition")





  `sar__frequency_band`

  *   is optional

  *   Type: merged type ([The common name for the frequency band to make it easier to search for bands across instruments. See section "Common Frequency Band Names" for a list of accepted names.](model-defs-properties-properties-the-common-name-for-the-frequency-band-to-make-it-easier-to-search-for-bands-across-instruments-see-section-common-frequency-band-names-for-a-list-of-accepted-names.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-the-common-name-for-the-frequency-band-to-make-it-easier-to-search-for-bands-across-instruments-see-section-common-frequency-band-names-for-a-list-of-accepted-names.md "airs_model#/$defs/Properties/properties/sar__frequency_band")



  merged type ([The common name for the frequency band to make it easier to search for bands across instruments. See section "Common Frequency Band Names" for a list of accepted names.](model-defs-properties-properties-the-common-name-for-the-frequency-band-to-make-it-easier-to-search-for-bands-across-instruments-see-section-common-frequency-band-names-for-a-list-of-accepted-names.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-the-common-name-for-the-frequency-band-to-make-it-easier-to-search-for-bands-across-instruments-see-section-common-frequency-band-names-for-a-list-of-accepted-names-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-the-common-name-for-the-frequency-band-to-make-it-easier-to-search-for-bands-across-instruments-see-section-common-frequency-band-names-for-a-list-of-accepted-names-anyof-1.md "check type definition")





  `sar__center_frequency`

  *   is optional

  *   Type: merged type ([The center frequency of the instrument, in gigahertz (GHz).](model-defs-properties-properties-the-center-frequency-of-the-instrument-in-gigahertz-ghz.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-the-center-frequency-of-the-instrument-in-gigahertz-ghz.md "airs_model#/$defs/Properties/properties/sar__center_frequency")



  merged type ([The center frequency of the instrument, in gigahertz (GHz).](model-defs-properties-properties-the-center-frequency-of-the-instrument-in-gigahertz-ghz.md))

  any of

  *   [Untitled number in Item](model-defs-properties-properties-the-center-frequency-of-the-instrument-in-gigahertz-ghz-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-the-center-frequency-of-the-instrument-in-gigahertz-ghz-anyof-1.md "check type definition")





  `sar__polarizations`

  *   is optional

  *   Type: merged type ([Any combination of polarizations.](model-defs-properties-properties-any-combination-of-polarizations.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-any-combination-of-polarizations.md "airs_model#/$defs/Properties/properties/sar__polarizations")



  merged type ([Any combination of polarizations.](model-defs-properties-properties-any-combination-of-polarizations.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-any-combination-of-polarizations-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-any-combination-of-polarizations-anyof-1.md "check type definition")





  `sar__product_type`

  *   is optional

  *   Type: merged type ([The product type, for example SSC, MGD, or SGC](model-defs-properties-properties-the-product-type-for-example-ssc-mgd-or-sgc.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-the-product-type-for-example-ssc-mgd-or-sgc.md "airs_model#/$defs/Properties/properties/sar__product_type")



  merged type ([The product type, for example SSC, MGD, or SGC](model-defs-properties-properties-the-product-type-for-example-ssc-mgd-or-sgc.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-the-product-type-for-example-ssc-mgd-or-sgc-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-the-product-type-for-example-ssc-mgd-or-sgc-anyof-1.md "check type definition")





  `sar__resolution_range`

  *   is optional

  *   Type: merged type ([The range resolution, which is the maximum ability to distinguish two adjacent targets perpendicular to the flight path, in meters (m).](model-defs-properties-properties-the-range-resolution-which-is-the-maximum-ability-to-distinguish-two-adjacent-targets-perpendicular-to-the-flight-path-in-meters-m.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-the-range-resolution-which-is-the-maximum-ability-to-distinguish-two-adjacent-targets-perpendicular-to-the-flight-path-in-meters-m.md "airs_model#/$defs/Properties/properties/sar__resolution_range")



  merged type ([The range resolution, which is the maximum ability to distinguish two adjacent targets perpendicular to the flight path, in meters (m).](model-defs-properties-properties-the-range-resolution-which-is-the-maximum-ability-to-distinguish-two-adjacent-targets-perpendicular-to-the-flight-path-in-meters-m.md))

  any of

  *   [Untitled number in Item](model-defs-properties-properties-the-range-resolution-which-is-the-maximum-ability-to-distinguish-two-adjacent-targets-perpendicular-to-the-flight-path-in-meters-m-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-the-range-resolution-which-is-the-maximum-ability-to-distinguish-two-adjacent-targets-perpendicular-to-the-flight-path-in-meters-m-anyof-1.md "check type definition")





  `sar__resolution_azimuth`

  *   is optional

  *   Type: merged type ([The azimuth resolution, which is the maximum ability to distinguish two adjacent targets parallel to the flight path, in meters (m).](model-defs-properties-properties-the-azimuth-resolution-which-is-the-maximum-ability-to-distinguish-two-adjacent-targets-parallel-to-the-flight-path-in-meters-m.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-the-azimuth-resolution-which-is-the-maximum-ability-to-distinguish-two-adjacent-targets-parallel-to-the-flight-path-in-meters-m.md "airs_model#/$defs/Properties/properties/sar__resolution_azimuth")



  merged type ([The azimuth resolution, which is the maximum ability to distinguish two adjacent targets parallel to the flight path, in meters (m).](model-defs-properties-properties-the-azimuth-resolution-which-is-the-maximum-ability-to-distinguish-two-adjacent-targets-parallel-to-the-flight-path-in-meters-m.md))

  any of

  *   [Untitled number in Item](model-defs-properties-properties-the-azimuth-resolution-which-is-the-maximum-ability-to-distinguish-two-adjacent-targets-parallel-to-the-flight-path-in-meters-m-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-the-azimuth-resolution-which-is-the-maximum-ability-to-distinguish-two-adjacent-targets-parallel-to-the-flight-path-in-meters-m-anyof-1.md "check type definition")





  `sar__pixel_spacing_range`

  *   is optional

  *   Type: merged type ([The range pixel spacing, which is the distance between adjacent pixels perpendicular to the flight path, in meters (m). Strongly RECOMMENDED to be specified for products of type GRD.](model-defs-properties-properties-the-range-pixel-spacing-which-is-the-distance-between-adjacent-pixels-perpendicular-to-the-flight-path-in-meters-m-strongly-recommended-to-be-specified-for-products-of-type-grd.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-the-range-pixel-spacing-which-is-the-distance-between-adjacent-pixels-perpendicular-to-the-flight-path-in-meters-m-strongly-recommended-to-be-specified-for-products-of-type-grd.md "airs_model#/$defs/Properties/properties/sar__pixel_spacing_range")



  merged type ([The range pixel spacing, which is the distance between adjacent pixels perpendicular to the flight path, in meters (m). Strongly RECOMMENDED to be specified for products of type GRD.](model-defs-properties-properties-the-range-pixel-spacing-which-is-the-distance-between-adjacent-pixels-perpendicular-to-the-flight-path-in-meters-m-strongly-recommended-to-be-specified-for-products-of-type-grd.md))

  any of

  *   [Untitled number in Item](model-defs-properties-properties-the-range-pixel-spacing-which-is-the-distance-between-adjacent-pixels-perpendicular-to-the-flight-path-in-meters-m-strongly-recommended-to-be-specified-for-products-of-type-grd-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-the-range-pixel-spacing-which-is-the-distance-between-adjacent-pixels-perpendicular-to-the-flight-path-in-meters-m-strongly-recommended-to-be-specified-for-products-of-type-grd-anyof-1.md "check type definition")





  `sar__pixel_spacing_azimuth`

  *   is optional

  *   Type: merged type ([The azimuth pixel spacing, which is the distance between adjacent pixels parallel to the flight path, in meters (m). Strongly RECOMMENDED to be specified for products of type GRD.](model-defs-properties-properties-the-azimuth-pixel-spacing-which-is-the-distance-between-adjacent-pixels-parallel-to-the-flight-path-in-meters-m-strongly-recommended-to-be-specified-for-products-of-type-grd.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-the-azimuth-pixel-spacing-which-is-the-distance-between-adjacent-pixels-parallel-to-the-flight-path-in-meters-m-strongly-recommended-to-be-specified-for-products-of-type-grd.md "airs_model#/$defs/Properties/properties/sar__pixel_spacing_azimuth")



  merged type ([The azimuth pixel spacing, which is the distance between adjacent pixels parallel to the flight path, in meters (m). Strongly RECOMMENDED to be specified for products of type GRD.](model-defs-properties-properties-the-azimuth-pixel-spacing-which-is-the-distance-between-adjacent-pixels-parallel-to-the-flight-path-in-meters-m-strongly-recommended-to-be-specified-for-products-of-type-grd.md))

  any of

  *   [Untitled number in Item](model-defs-properties-properties-the-azimuth-pixel-spacing-which-is-the-distance-between-adjacent-pixels-parallel-to-the-flight-path-in-meters-m-strongly-recommended-to-be-specified-for-products-of-type-grd-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-the-azimuth-pixel-spacing-which-is-the-distance-between-adjacent-pixels-parallel-to-the-flight-path-in-meters-m-strongly-recommended-to-be-specified-for-products-of-type-grd-anyof-1.md "check type definition")





  `sar__looks_range`

  *   is optional

  *   Type: merged type ([Number of range looks, which is the number of groups of signal samples (looks) perpendicular to the flight path.](model-defs-properties-properties-number-of-range-looks-which-is-the-number-of-groups-of-signal-samples-looks-perpendicular-to-the-flight-path.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-number-of-range-looks-which-is-the-number-of-groups-of-signal-samples-looks-perpendicular-to-the-flight-path.md "airs_model#/$defs/Properties/properties/sar__looks_range")



  merged type ([Number of range looks, which is the number of groups of signal samples (looks) perpendicular to the flight path.](model-defs-properties-properties-number-of-range-looks-which-is-the-number-of-groups-of-signal-samples-looks-perpendicular-to-the-flight-path.md))

  any of

  *   [Untitled number in Item](model-defs-properties-properties-number-of-range-looks-which-is-the-number-of-groups-of-signal-samples-looks-perpendicular-to-the-flight-path-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-number-of-range-looks-which-is-the-number-of-groups-of-signal-samples-looks-perpendicular-to-the-flight-path-anyof-1.md "check type definition")





  `sar__looks_azimuth`

  *   is optional

  *   Type: merged type ([Number of azimuth looks, which is the number of groups of signal samples (looks) parallel to the flight path.](model-defs-properties-properties-number-of-azimuth-looks-which-is-the-number-of-groups-of-signal-samples-looks-parallel-to-the-flight-path.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-number-of-azimuth-looks-which-is-the-number-of-groups-of-signal-samples-looks-parallel-to-the-flight-path.md "airs_model#/$defs/Properties/properties/sar__looks_azimuth")



  merged type ([Number of azimuth looks, which is the number of groups of signal samples (looks) parallel to the flight path.](model-defs-properties-properties-number-of-azimuth-looks-which-is-the-number-of-groups-of-signal-samples-looks-parallel-to-the-flight-path.md))

  any of

  *   [Untitled number in Item](model-defs-properties-properties-number-of-azimuth-looks-which-is-the-number-of-groups-of-signal-samples-looks-parallel-to-the-flight-path-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-number-of-azimuth-looks-which-is-the-number-of-groups-of-signal-samples-looks-parallel-to-the-flight-path-anyof-1.md "check type definition")





  `sar__looks_equivalent_number`

  *   is optional

  *   Type: merged type ([The equivalent number of looks (ENL).](model-defs-properties-properties-the-equivalent-number-of-looks-enl.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-the-equivalent-number-of-looks-enl.md "airs_model#/$defs/Properties/properties/sar__looks_equivalent_number")



  merged type ([The equivalent number of looks (ENL).](model-defs-properties-properties-the-equivalent-number-of-looks-enl.md))

  any of

  *   [Untitled number in Item](model-defs-properties-properties-the-equivalent-number-of-looks-enl-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-the-equivalent-number-of-looks-enl-anyof-1.md "check type definition")





  `sar__observation_direction`

  *   is optional

  *   Type: merged type ([Antenna pointing direction relative to the flight trajectory of the satellite, either left or right.](model-defs-properties-properties-antenna-pointing-direction-relative-to-the-flight-trajectory-of-the-satellite-either-left-or-right.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-antenna-pointing-direction-relative-to-the-flight-trajectory-of-the-satellite-either-left-or-right.md "airs_model#/$defs/Properties/properties/sar__observation_direction")



  merged type ([Antenna pointing direction relative to the flight trajectory of the satellite, either left or right.](model-defs-properties-properties-antenna-pointing-direction-relative-to-the-flight-trajectory-of-the-satellite-either-left-or-right.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-antenna-pointing-direction-relative-to-the-flight-trajectory-of-the-satellite-either-left-or-right-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-antenna-pointing-direction-relative-to-the-flight-trajectory-of-the-satellite-either-left-or-right-anyof-1.md "check type definition")





  `proj__epsg`

  *   is optional

  *   Type: merged type ([EPSG code of the datasource.](model-defs-properties-properties-epsg-code-of-the-datasource.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-epsg-code-of-the-datasource.md "airs_model#/$defs/Properties/properties/proj__epsg")



  merged type ([EPSG code of the datasource.](model-defs-properties-properties-epsg-code-of-the-datasource.md))

  any of

  *   [Untitled integer in Item](model-defs-properties-properties-epsg-code-of-the-datasource-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-epsg-code-of-the-datasource-anyof-1.md "check type definition")





  `proj__wkt2`

  *   is optional

  *   Type: merged type ([PROJJSON object representing the Coordinate Reference System (CRS) that the proj:geometry and proj:bbox fields represent.](model-defs-properties-properties-projjson-object-representing-the-coordinate-reference-system-crs-that-the-projgeometry-and-projbbox-fields-represent.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-projjson-object-representing-the-coordinate-reference-system-crs-that-the-projgeometry-and-projbbox-fields-represent.md "airs_model#/$defs/Properties/properties/proj__wkt2")



  merged type ([PROJJSON object representing the Coordinate Reference System (CRS) that the proj:geometry and proj:bbox fields represent.](model-defs-properties-properties-projjson-object-representing-the-coordinate-reference-system-crs-that-the-projgeometry-and-projbbox-fields-represent.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-projjson-object-representing-the-coordinate-reference-system-crs-that-the-projgeometry-and-projbbox-fields-represent-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-projjson-object-representing-the-coordinate-reference-system-crs-that-the-projgeometry-and-projbbox-fields-represent-anyof-1.md "check type definition")





  `proj__geometry`

  *   is optional

  *   Type: merged type ([Defines the footprint of this Item.](model-defs-properties-properties-defines-the-footprint-of-this-item.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-defines-the-footprint-of-this-item.md "airs_model#/$defs/Properties/properties/proj__geometry")



  merged type ([Defines the footprint of this Item.](model-defs-properties-properties-defines-the-footprint-of-this-item.md))

  any of

  *   [Untitled undefined type in Item](model-defs-properties-properties-defines-the-footprint-of-this-item-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-defines-the-footprint-of-this-item-anyof-1.md "check type definition")





  `proj__bbox`

  *   is optional

  *   Type: merged type ([Bounding box of the Item in the asset CRS in 2 or 3 dimensions.](model-defs-properties-properties-bounding-box-of-the-item-in-the-asset-crs-in-2-or-3-dimensions.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-bounding-box-of-the-item-in-the-asset-crs-in-2-or-3-dimensions.md "airs_model#/$defs/Properties/properties/proj__bbox")



  merged type ([Bounding box of the Item in the asset CRS in 2 or 3 dimensions.](model-defs-properties-properties-bounding-box-of-the-item-in-the-asset-crs-in-2-or-3-dimensions.md))

  any of

  *   [Untitled array in Item](model-defs-properties-properties-bounding-box-of-the-item-in-the-asset-crs-in-2-or-3-dimensions-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-bounding-box-of-the-item-in-the-asset-crs-in-2-or-3-dimensions-anyof-1.md "check type definition")





  `proj__centroid`

  *   is optional

  *   Type: merged type ([Coordinates representing the centroid of the Item (in lat/long).](model-defs-properties-properties-coordinates-representing-the-centroid-of-the-item-in-latlong.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-coordinates-representing-the-centroid-of-the-item-in-latlong.md "airs_model#/$defs/Properties/properties/proj__centroid")



  merged type ([Coordinates representing the centroid of the Item (in lat/long).](model-defs-properties-properties-coordinates-representing-the-centroid-of-the-item-in-latlong.md))

  any of

  *   [Untitled undefined type in Item](model-defs-properties-properties-coordinates-representing-the-centroid-of-the-item-in-latlong-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-coordinates-representing-the-centroid-of-the-item-in-latlong-anyof-1.md "check type definition")





  `proj__shape`

  *   is optional

  *   Type: merged type ([Number of pixels in Y and X directions for the default grid.](model-defs-properties-properties-number-of-pixels-in-y-and-x-directions-for-the-default-grid.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-number-of-pixels-in-y-and-x-directions-for-the-default-grid.md "airs_model#/$defs/Properties/properties/proj__shape")



  merged type ([Number of pixels in Y and X directions for the default grid.](model-defs-properties-properties-number-of-pixels-in-y-and-x-directions-for-the-default-grid.md))

  any of

  *   [Untitled array in Item](model-defs-properties-properties-number-of-pixels-in-y-and-x-directions-for-the-default-grid-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-number-of-pixels-in-y-and-x-directions-for-the-default-grid-anyof-1.md "check type definition")





  `proj__transform`

  *   is optional

  *   Type: merged type ([The affine transformation coefficients for the default grid.](model-defs-properties-properties-the-affine-transformation-coefficients-for-the-default-grid.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-the-affine-transformation-coefficients-for-the-default-grid.md "airs_model#/$defs/Properties/properties/proj__transform")



  merged type ([The affine transformation coefficients for the default grid.](model-defs-properties-properties-the-affine-transformation-coefficients-for-the-default-grid.md))

  any of

  *   [Untitled array in Item](model-defs-properties-properties-the-affine-transformation-coefficients-for-the-default-grid-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-the-affine-transformation-coefficients-for-the-default-grid-anyof-1.md "check type definition")





  `generated__has_overview`

  *   is optional

  *   Type: merged type ([Whether the item has an overview or not.](model-defs-properties-properties-whether-the-item-has-an-overview-or-not.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-whether-the-item-has-an-overview-or-not.md "airs_model#/$defs/Properties/properties/generated__has_overview")



  merged type ([Whether the item has an overview or not.](model-defs-properties-properties-whether-the-item-has-an-overview-or-not.md))

  any of

  *   [Untitled boolean in Item](model-defs-properties-properties-whether-the-item-has-an-overview-or-not-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-whether-the-item-has-an-overview-or-not-anyof-1.md "check type definition")





  `generated__has_thumbnail`

  *   is optional

  *   Type: merged type ([Whether the item has a thumbnail or not.](model-defs-properties-properties-whether-the-item-has-a-thumbnail-or-not.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-whether-the-item-has-a-thumbnail-or-not.md "airs_model#/$defs/Properties/properties/generated__has_thumbnail")



  merged type ([Whether the item has a thumbnail or not.](model-defs-properties-properties-whether-the-item-has-a-thumbnail-or-not.md))

  any of

  *   [Untitled boolean in Item](model-defs-properties-properties-whether-the-item-has-a-thumbnail-or-not-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-whether-the-item-has-a-thumbnail-or-not-anyof-1.md "check type definition")





  `generated__has_metadata`

  *   is optional

  *   Type: merged type ([Whether the item has a metadata file or not.](model-defs-properties-properties-whether-the-item-has-a-metadata-file-or-not.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-whether-the-item-has-a-metadata-file-or-not.md "airs_model#/$defs/Properties/properties/generated__has_metadata")



  merged type ([Whether the item has a metadata file or not.](model-defs-properties-properties-whether-the-item-has-a-metadata-file-or-not.md))

  any of

  *   [Untitled boolean in Item](model-defs-properties-properties-whether-the-item-has-a-metadata-file-or-not-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-whether-the-item-has-a-metadata-file-or-not-anyof-1.md "check type definition")





  `generated__has_data`

  *   is optional

  *   Type: merged type ([Whether the item has a data file or not.](model-defs-properties-properties-whether-the-item-has-a-data-file-or-not.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-whether-the-item-has-a-data-file-or-not.md "airs_model#/$defs/Properties/properties/generated__has_data")



  merged type ([Whether the item has a data file or not.](model-defs-properties-properties-whether-the-item-has-a-data-file-or-not.md))

  any of

  *   [Untitled boolean in Item](model-defs-properties-properties-whether-the-item-has-a-data-file-or-not-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-whether-the-item-has-a-data-file-or-not-anyof-1.md "check type definition")





  `generated__has_cog`

  *   is optional

  *   Type: merged type ([Whether the item has a cog or not.](model-defs-properties-properties-whether-the-item-has-a-cog-or-not.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-whether-the-item-has-a-cog-or-not.md "airs_model#/$defs/Properties/properties/generated__has_cog")



  merged type ([Whether the item has a cog or not.](model-defs-properties-properties-whether-the-item-has-a-cog-or-not.md))

  any of

  *   [Untitled boolean in Item](model-defs-properties-properties-whether-the-item-has-a-cog-or-not-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-whether-the-item-has-a-cog-or-not-anyof-1.md "check type definition")





  `generated__has_zarr`

  *   is optional

  *   Type: merged type ([Whether the item has a zarr or not.](model-defs-properties-properties-whether-the-item-has-a-zarr-or-not.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-whether-the-item-has-a-zarr-or-not.md "airs_model#/$defs/Properties/properties/generated__has_zarr")



  merged type ([Whether the item has a zarr or not.](model-defs-properties-properties-whether-the-item-has-a-zarr-or-not.md))

  any of

  *   [Untitled boolean in Item](model-defs-properties-properties-whether-the-item-has-a-zarr-or-not-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-whether-the-item-has-a-zarr-or-not-anyof-1.md "check type definition")





  `generated__date_keywords`

  *   is optional

  *   Type: merged type ([A list of keywords indicating clues on the date](model-defs-properties-properties-a-list-of-keywords-indicating-clues-on-the-date.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-a-list-of-keywords-indicating-clues-on-the-date.md "airs_model#/$defs/Properties/properties/generated__date_keywords")



  merged type ([A list of keywords indicating clues on the date](model-defs-properties-properties-a-list-of-keywords-indicating-clues-on-the-date.md))

  any of

  *   [Untitled array in Item](model-defs-properties-properties-a-list-of-keywords-indicating-clues-on-the-date-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-a-list-of-keywords-indicating-clues-on-the-date-anyof-1.md "check type definition")





  `generated__day_of_week`

  *   is optional

  *   Type: merged type ([Day of week.](model-defs-properties-properties-day-of-week.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-day-of-week.md "airs_model#/$defs/Properties/properties/generated__day_of_week")



  merged type ([Day of week.](model-defs-properties-properties-day-of-week.md))

  any of

  *   [Untitled integer in Item](model-defs-properties-properties-day-of-week-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-day-of-week-anyof-1.md "check type definition")





  `generated__day_of_year`

  *   is optional

  *   Type: merged type ([Day of year.](model-defs-properties-properties-day-of-year.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-day-of-year.md "airs_model#/$defs/Properties/properties/generated__day_of_year")



  merged type ([Day of year.](model-defs-properties-properties-day-of-year.md))

  any of

  *   [Untitled integer in Item](model-defs-properties-properties-day-of-year-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-day-of-year-anyof-1.md "check type definition")





  `generated__hour_of_day`

  *   is optional

  *   Type: merged type ([Hour of day.](model-defs-properties-properties-hour-of-day.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-hour-of-day.md "airs_model#/$defs/Properties/properties/generated__hour_of_day")



  merged type ([Hour of day.](model-defs-properties-properties-hour-of-day.md))

  any of

  *   [Untitled integer in Item](model-defs-properties-properties-hour-of-day-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-hour-of-day-anyof-1.md "check type definition")





  `generated__minute_of_day`

  *   is optional

  *   Type: merged type ([Minute of day.](model-defs-properties-properties-minute-of-day.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-minute-of-day.md "airs_model#/$defs/Properties/properties/generated__minute_of_day")



  merged type ([Minute of day.](model-defs-properties-properties-minute-of-day.md))

  any of

  *   [Untitled integer in Item](model-defs-properties-properties-minute-of-day-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-minute-of-day-anyof-1.md "check type definition")





  `generated__month`

  *   is optional

  *   Type: merged type ([Month](model-defs-properties-properties-month.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-month.md "airs_model#/$defs/Properties/properties/generated__month")



  merged type ([Month](model-defs-properties-properties-month.md))

  any of

  *   [Untitled integer in Item](model-defs-properties-properties-month-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-month-anyof-1.md "check type definition")





  `generated__year`

  *   is optional

  *   Type: merged type ([Year](model-defs-properties-properties-year.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-year.md "airs_model#/$defs/Properties/properties/generated__year")



  merged type ([Year](model-defs-properties-properties-year.md))

  any of

  *   [Untitled integer in Item](model-defs-properties-properties-year-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-year-anyof-1.md "check type definition")





  `generated__season`

  *   is optional

  *   Type: merged type ([Season](model-defs-properties-properties-season.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-season.md "airs_model#/$defs/Properties/properties/generated__season")



  merged type ([Season](model-defs-properties-properties-season.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-season-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-season-anyof-1.md "check type definition")





  `generated__tltrbrbl`

  *   is optional

  *   Type: merged type ([The coordinates of the top left, top right, bottom right, bottom left corners of the item.](model-defs-properties-properties-the-coordinates-of-the-top-left-top-right-bottom-right-bottom-left-corners-of-the-item.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-the-coordinates-of-the-top-left-top-right-bottom-right-bottom-left-corners-of-the-item.md "airs_model#/$defs/Properties/properties/generated__tltrbrbl")



  merged type ([The coordinates of the top left, top right, bottom right, bottom left corners of the item.](model-defs-properties-properties-the-coordinates-of-the-top-left-top-right-bottom-right-bottom-left-corners-of-the-item.md))

  any of

  *   [Untitled array in Item](model-defs-properties-properties-the-coordinates-of-the-top-left-top-right-bottom-right-bottom-left-corners-of-the-item-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-the-coordinates-of-the-top-left-top-right-bottom-right-bottom-left-corners-of-the-item-anyof-1.md "check type definition")





  `generated__band_common_names`

  *   is optional

  *   Type: merged type ([List of the band common names.](model-defs-properties-properties-list-of-the-band-common-names.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-list-of-the-band-common-names.md "airs_model#/$defs/Properties/properties/generated__band_common_names")



  merged type ([List of the band common names.](model-defs-properties-properties-list-of-the-band-common-names.md))

  any of

  *   [Untitled array in Item](model-defs-properties-properties-list-of-the-band-common-names-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-list-of-the-band-common-names-anyof-1.md "check type definition")





  `generated__band_names`

  *   is optional

  *   Type: merged type ([List of the band names.](model-defs-properties-properties-list-of-the-band-names.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-list-of-the-band-names.md "airs_model#/$defs/Properties/properties/generated__band_names")



  merged type ([List of the band names.](model-defs-properties-properties-list-of-the-band-names.md))

  any of

  *   [Untitled array in Item](model-defs-properties-properties-list-of-the-band-names-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-list-of-the-band-names-anyof-1.md "check type definition")





  `generated__geohash2`

  *   is optional

  *   Type: merged type ([Geohash on the first two characters.](model-defs-properties-properties-geohash-on-the-first-two-characters.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-geohash-on-the-first-two-characters.md "airs_model#/$defs/Properties/properties/generated__geohash2")



  merged type ([Geohash on the first two characters.](model-defs-properties-properties-geohash-on-the-first-two-characters.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-geohash-on-the-first-two-characters-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-geohash-on-the-first-two-characters-anyof-1.md "check type definition")





  `generated__geohash3`

  *   is optional

  *   Type: merged type ([Geohash on the first three characters.](model-defs-properties-properties-geohash-on-the-first-three-characters.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-geohash-on-the-first-three-characters.md "airs_model#/$defs/Properties/properties/generated__geohash3")



  merged type ([Geohash on the first three characters.](model-defs-properties-properties-geohash-on-the-first-three-characters.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-geohash-on-the-first-three-characters-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-geohash-on-the-first-three-characters-anyof-1.md "check type definition")





  `generated__geohash4`

  *   is optional

  *   Type: merged type ([Geohash on the first four characters.](model-defs-properties-properties-geohash-on-the-first-four-characters.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-geohash-on-the-first-four-characters.md "airs_model#/$defs/Properties/properties/generated__geohash4")



  merged type ([Geohash on the first four characters.](model-defs-properties-properties-geohash-on-the-first-four-characters.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-geohash-on-the-first-four-characters-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-geohash-on-the-first-four-characters-anyof-1.md "check type definition")





  `generated__geohash5`

  *   is optional

  *   Type: merged type ([Geohash on the first five characters.](model-defs-properties-properties-geohash-on-the-first-five-characters.md))

  *   cannot be null

  *   defined in: [Item](model-defs-properties-properties-geohash-on-the-first-five-characters.md "airs_model#/$defs/Properties/properties/generated__geohash5")



  merged type ([Geohash on the first five characters.](model-defs-properties-properties-geohash-on-the-first-five-characters.md))

  any of

  *   [Untitled string in Item](model-defs-properties-properties-geohash-on-the-first-five-characters-anyof-0.md "check type definition")

  *   [Untitled null in Item](model-defs-properties-properties-geohash-on-the-first-five-characters-anyof-1.md "check type definition")



  Additional properties are allowed and do not have to follow a specific schema



  Reference this group by using

  ```json
  {"$ref":"airs_model#/$defs/Raster"}
  ```

  | Property        | Type     | Required | Nullable       | Defined by                                                                              |
  | :-------------- | :------- | :------- | :------------- | :-------------------------------------------------------------------------------------- |
  | [type](#type-1) | `object` | Required | cannot be null | [Item](model-defs-rastertype.md "airs_model#/$defs/Raster/properties/type")             |
  | [path](#path)   | `string` | Required | cannot be null | [Item](model-defs-raster-properties-path.md "airs_model#/$defs/Raster/properties/path") |
  | [id](#id-1)     | `string` | Required | cannot be null | [Item](model-defs-raster-properties-id.md "airs_model#/$defs/Raster/properties/id")     |





  `type`

  *   is required

  *   Type: `object` ([RasterType](model-defs-rastertype.md))

  *   cannot be null

  *   defined in: [Item](model-defs-rastertype.md "airs_model#/$defs/Raster/properties/type")



  `object` ([RasterType](model-defs-rastertype.md))





  `path`

  *   is required

  *   Type: `string` ([Path](model-defs-raster-properties-path.md))

  *   cannot be null

  *   defined in: [Item](model-defs-raster-properties-path.md "airs_model#/$defs/Raster/properties/path")



  `string` ([Path](model-defs-raster-properties-path.md))





  `id`

  *   is required

  *   Type: `string` ([Id](model-defs-raster-properties-id.md))

  *   cannot be null

  *   defined in: [Item](model-defs-raster-properties-id.md "airs_model#/$defs/Raster/properties/id")



  `string` ([Id](model-defs-raster-properties-id.md))



  Reference this group by using

  ```json
  {"$ref":"airs_model#/$defs/RasterType"}
  ```

  | Property          | Type     | Required | Nullable       | Defined by                                                                                          |
  | :---------------- | :------- | :------- | :------------- | :-------------------------------------------------------------------------------------------------- |
  | [source](#source) | `string` | Required | cannot be null | [Item](model-defs-rastertype-properties-source.md "airs_model#/$defs/RasterType/properties/source") |
  | [format](#format) | `string` | Required | cannot be null | [Item](model-defs-rastertype-properties-format.md "airs_model#/$defs/RasterType/properties/format") |





  `source`

  *   is required

  *   Type: `string` ([Source](model-defs-rastertype-properties-source.md))

  *   cannot be null

  *   defined in: [Item](model-defs-rastertype-properties-source.md "airs_model#/$defs/RasterType/properties/source")



  `string` ([Source](model-defs-rastertype-properties-source.md))





  `format`

  *   is required

  *   Type: `string` ([Format](model-defs-rastertype-properties-format.md))

  *   cannot be null

  *   defined in: [Item](model-defs-rastertype-properties-format.md "airs_model#/$defs/RasterType/properties/format")



  `string` ([Format](model-defs-rastertype-properties-format.md))



  Reference this group by using

  ```json
  {"$ref":"airs_model#/$defs/VariableType"}
  ```

  | Property | Type | Required | Nullable | Defined by |
  | :------- | :--- | :------- | :------- | :--------- |


