You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by ms...@apache.org on 2021/03/23 07:40:05 UTC

[airflow-client-python] branch master updated: Restructuring auto generated code into a submodule (#2)

This is an automated email from the ASF dual-hosted git repository.

msumit pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airflow-client-python.git


The following commit(s) were added to refs/heads/master by this push:
     new d1bcb21  Restructuring auto generated code into a submodule  (#2)
d1bcb21 is described below

commit d1bcb217e2c5d8b8a38f4157ba1e85dc8ecebd89
Author: Sumit Maheshwari <ms...@users.noreply.github.com>
AuthorDate: Tue Mar 23 13:09:58 2021 +0530

    Restructuring auto generated code into a submodule  (#2)
---
 .github/workflows/ci.yml                           |   5 +-
 .gitignore                                         |   2 +-
 README.md                                          | 441 ++-------------------
 .gitignore => airflow_client/.gitignore            |   1 -
 airflow_client/.openapi-generator-ignore           |   8 +
 airflow_client/.openapi-generator/FILES            | 320 +++++++++++++++
 airflow_client/.openapi-generator/VERSION          |   1 +
 README.md => airflow_client/README.md              |  46 ++-
 airflow_client/__init__.py                         |  28 --
 .../client/__init__.py                             |  36 +-
 airflow_client/{ => client}/api/__init__.py        |   2 +-
 airflow_client/{ => client}/api/config_api.py      |   8 +-
 airflow_client/{ => client}/api/connection_api.py  |  10 +-
 airflow_client/{ => client}/api/dag_api.py         |  24 +-
 airflow_client/{ => client}/api/dag_run_api.py     |  12 +-
 airflow_client/{ => client}/api/event_log_api.py   |  10 +-
 .../{ => client}/api/import_error_api.py           |  10 +-
 airflow_client/{ => client}/api/monitoring_api.py  |   8 +-
 airflow_client/{ => client}/api/permission_api.py  |   8 +-
 airflow_client/{ => client}/api/plugin_api.py      |   8 +-
 airflow_client/{ => client}/api/pool_api.py        |  10 +-
 airflow_client/{ => client}/api/role_api.py        |  10 +-
 .../{ => client}/api/task_instance_api.py          |  16 +-
 .../{api/role_api.py => client/api/user_api.py}    |  66 +--
 airflow_client/{ => client}/api/variable_api.py    |  10 +-
 airflow_client/{ => client}/api/x_com_api.py       |  10 +-
 airflow_client/{ => client}/api_client.py          |   8 +-
 airflow_client/{ => client}/apis/__init__.py       |  29 +-
 airflow_client/{ => client}/configuration.py       |   6 +-
 airflow_client/{ => client}/exceptions.py          |   0
 airflow_client/{ => client}/model/__init__.py      |   0
 airflow_client/{ => client}/model/action.py        |   2 +-
 .../{ => client}/model/action_collection.py        |   8 +-
 .../{ => client}/model/action_collection_all_of.py |   4 +-
 .../{ => client}/model/action_resource.py          |   6 +-
 .../{ => client}/model/class_reference.py          |   2 +-
 .../{ => client}/model/clear_task_instance.py      |   2 +-
 .../{ => client}/model/collection_info.py          |   2 +-
 airflow_client/{ => client}/model/color.py         |   5 +-
 airflow_client/{ => client}/model/config.py        |   4 +-
 airflow_client/{ => client}/model/config_option.py |   2 +-
 .../{ => client}/model/config_section.py           |   4 +-
 airflow_client/{ => client}/model/connection.py    |   6 +-
 .../{ => client}/model/connection_all_of.py        |   2 +-
 .../{ => client}/model/connection_collection.py    |   8 +-
 .../model/connection_collection_all_of.py          |   4 +-
 .../model/connection_collection_item.py            |   2 +-
 .../{ => client}/model/cron_expression.py          |   2 +-
 airflow_client/{ => client}/model/dag.py           |   8 +-
 .../{ => client}/model/dag_collection.py           |   8 +-
 .../{ => client}/model/dag_collection_all_of.py    |   4 +-
 airflow_client/{ => client}/model/dag_detail.py    |  14 +-
 .../{ => client}/model/dag_detail_all_of.py        |   4 +-
 airflow_client/{ => client}/model/dag_run.py       |   4 +-
 .../{ => client}/model/dag_run_collection.py       |   8 +-
 .../model/dag_run_collection_all_of.py             |   4 +-
 airflow_client/{ => client}/model/dag_state.py     |   5 +-
 airflow_client/{ => client}/model/error.py         |   2 +-
 airflow_client/{ => client}/model/event_log.py     |   2 +-
 .../{ => client}/model/event_log_collection.py     |   8 +-
 .../model/event_log_collection_all_of.py           |   4 +-
 airflow_client/{ => client}/model/extra_link.py    |   4 +-
 .../{ => client}/model/extra_link_collection.py    |   4 +-
 airflow_client/{ => client}/model/health_info.py   |   6 +-
 airflow_client/{ => client}/model/health_status.py |   5 +-
 airflow_client/{ => client}/model/import_error.py  |   2 +-
 .../{ => client}/model/import_error_collection.py  |   8 +-
 .../model/import_error_collection_all_of.py        |   4 +-
 .../{ => client}/model/inline_response200.py       |   2 +-
 .../{ => client}/model/inline_response2001.py      |   2 +-
 .../{ => client}/model/list_dag_runs_form.py       |   2 +-
 .../{ => client}/model/list_task_instance_form.py  |   2 +-
 .../{ => client}/model/metadatabase_status.py      |   4 +-
 .../{ => client}/model/plugin_collection.py        |   8 +-
 .../{ => client}/model/plugin_collection_all_of.py |   4 +-
 .../{ => client}/model/plugin_collection_item.py   |   2 +-
 airflow_client/{ => client}/model/pool.py          |   2 +-
 .../{ => client}/model/pool_collection.py          |   8 +-
 .../{ => client}/model/pool_collection_all_of.py   |   4 +-
 .../{ => client}/model/relative_delta.py           |   2 +-
 airflow_client/{ => client}/model/resource.py      |   2 +-
 airflow_client/{ => client}/model/role.py          |   4 +-
 .../{ => client}/model/role_collection.py          |   8 +-
 .../{ => client}/model/role_collection_all_of.py   |   4 +-
 .../{ => client}/model/schedule_interval.py        |   8 +-
 .../{ => client}/model/scheduler_status.py         |   4 +-
 airflow_client/{ => client}/model/sla_miss.py      |   2 +-
 airflow_client/{ => client}/model/tag.py           |   2 +-
 airflow_client/{ => client}/model/task.py          |  16 +-
 .../{ => client}/model/task_collection.py          |   4 +-
 .../{ => client}/model/task_extra_links.py         |   4 +-
 airflow_client/{ => client}/model/task_instance.py |   6 +-
 .../{ => client}/model/task_instance_collection.py |   8 +-
 .../model/task_instance_collection_all_of.py       |   4 +-
 .../{ => client}/model/task_instance_reference.py  |   2 +-
 .../model/task_instance_reference_collection.py    |   4 +-
 airflow_client/{ => client}/model/task_state.py    |   5 +-
 airflow_client/{ => client}/model/time_delta.py    |   2 +-
 airflow_client/{ => client}/model/trigger_rule.py  |   5 +-
 .../model/update_task_instances_state.py           |   2 +-
 .../{model/connection.py => client/model/user.py}  |  79 ++--
 .../model/user_all_of.py}                          |  12 +-
 .../model/user_collection.py}                      |  24 +-
 .../model/user_collection_all_of.py}               |  16 +-
 .../model/user_collection_item.py}                 |  78 ++--
 .../model/user_collection_item_roles.py}           |   8 +-
 airflow_client/{ => client}/model/variable.py      |   6 +-
 .../{ => client}/model/variable_all_of.py          |   2 +-
 .../{ => client}/model/variable_collection.py      |   8 +-
 .../model/variable_collection_all_of.py            |   4 +-
 .../{ => client}/model/variable_collection_item.py |   2 +-
 airflow_client/{ => client}/model/version_info.py  |   2 +-
 airflow_client/{ => client}/model/weight_rule.py   |   5 +-
 airflow_client/{ => client}/model/x_com.py         |   6 +-
 airflow_client/{ => client}/model/x_com_all_of.py  |   2 +-
 .../{ => client}/model/x_com_collection.py         |   8 +-
 .../{ => client}/model/x_com_collection_all_of.py  |   4 +-
 .../{ => client}/model/x_com_collection_item.py    |   2 +-
 airflow_client/{ => client}/model_utils.py         |   2 +-
 airflow_client/client/models/__init__.py           | 115 ++++++
 airflow_client/{ => client}/rest.py                |   2 +-
 {docs => airflow_client/docs}/Action.md            |   1 +
 {docs => airflow_client/docs}/ActionCollection.md  |   1 +
 .../docs}/ActionCollectionAllOf.md                 |   1 +
 {docs => airflow_client/docs}/ActionResource.md    |   1 +
 {docs => airflow_client/docs}/ClassReference.md    |   1 +
 {docs => airflow_client/docs}/ClearTaskInstance.md |   1 +
 {docs => airflow_client/docs}/CollectionInfo.md    |   1 +
 {docs => airflow_client/docs}/Color.md             |   1 +
 {docs => airflow_client/docs}/Config.md            |   1 +
 {docs => airflow_client/docs}/ConfigApi.md         |  20 +-
 {docs => airflow_client/docs}/ConfigOption.md      |   1 +
 {docs => airflow_client/docs}/ConfigSection.md     |   1 +
 {docs => airflow_client/docs}/Connection.md        |   1 +
 {docs => airflow_client/docs}/ConnectionAllOf.md   |   1 +
 {docs => airflow_client/docs}/ConnectionApi.md     |  92 +++--
 .../docs}/ConnectionCollection.md                  |   1 +
 .../docs}/ConnectionCollectionAllOf.md             |   1 +
 .../docs}/ConnectionCollectionItem.md              |   1 +
 {docs => airflow_client/docs}/CronExpression.md    |   1 +
 {docs => airflow_client/docs}/DAG.md               |   3 +-
 {docs => airflow_client/docs}/DAGApi.md            | 170 ++++----
 {docs => airflow_client/docs}/DAGCollection.md     |   1 +
 .../docs}/DAGCollectionAllOf.md                    |   1 +
 {docs => airflow_client/docs}/DAGDetail.md         |   3 +-
 {docs => airflow_client/docs}/DAGDetailAllOf.md    |   1 +
 {docs => airflow_client/docs}/DAGRun.md            |   1 +
 {docs => airflow_client/docs}/DAGRunApi.md         |  94 +++--
 {docs => airflow_client/docs}/DAGRunCollection.md  |   1 +
 .../docs}/DAGRunCollectionAllOf.md                 |   1 +
 {docs => airflow_client/docs}/DagState.md          |   1 +
 {docs => airflow_client/docs}/Error.md             |   1 +
 {docs => airflow_client/docs}/EventLog.md          |   1 +
 {docs => airflow_client/docs}/EventLogApi.md       |  38 +-
 .../docs}/EventLogCollection.md                    |   1 +
 .../docs}/EventLogCollectionAllOf.md               |   1 +
 {docs => airflow_client/docs}/ExtraLink.md         |   1 +
 .../docs}/ExtraLinkCollection.md                   |   1 +
 {docs => airflow_client/docs}/HealthInfo.md        |   1 +
 {docs => airflow_client/docs}/HealthStatus.md      |   1 +
 {docs => airflow_client/docs}/ImportError.md       |   1 +
 {docs => airflow_client/docs}/ImportErrorApi.md    |  38 +-
 .../docs}/ImportErrorCollection.md                 |   1 +
 .../docs}/ImportErrorCollectionAllOf.md            |   1 +
 {docs => airflow_client/docs}/InlineResponse200.md |   1 +
 .../docs}/InlineResponse2001.md                    |   1 +
 {docs => airflow_client/docs}/ListDagRunsForm.md   |   1 +
 .../docs}/ListTaskInstanceForm.md                  |   1 +
 .../docs}/MetadatabaseStatus.md                    |   1 +
 {docs => airflow_client/docs}/MonitoringApi.md     |  34 +-
 {docs => airflow_client/docs}/PermissionApi.md     |  20 +-
 {docs => airflow_client/docs}/PluginApi.md         |  20 +-
 {docs => airflow_client/docs}/PluginCollection.md  |   1 +
 .../docs}/PluginCollectionAllOf.md                 |   1 +
 .../docs}/PluginCollectionItem.md                  |   1 +
 {docs => airflow_client/docs}/Pool.md              |   1 +
 {docs => airflow_client/docs}/PoolApi.md           |  92 +++--
 {docs => airflow_client/docs}/PoolCollection.md    |   1 +
 .../docs}/PoolCollectionAllOf.md                   |   1 +
 {docs => airflow_client/docs}/RelativeDelta.md     |   1 +
 {docs => airflow_client/docs}/Resource.md          |   1 +
 {docs => airflow_client/docs}/Role.md              |   1 +
 {docs => airflow_client/docs}/RoleApi.md           |  38 +-
 {docs => airflow_client/docs}/RoleCollection.md    |   1 +
 .../docs}/RoleCollectionAllOf.md                   |   1 +
 {docs => airflow_client/docs}/SLAMiss.md           |   1 +
 {docs => airflow_client/docs}/ScheduleInterval.md  |   1 +
 {docs => airflow_client/docs}/SchedulerStatus.md   |   1 +
 {docs => airflow_client/docs}/Tag.md               |   1 +
 {docs => airflow_client/docs}/Task.md              |   1 +
 {docs => airflow_client/docs}/TaskCollection.md    |   1 +
 {docs => airflow_client/docs}/TaskExtraLinks.md    |   1 +
 {docs => airflow_client/docs}/TaskInstance.md      |   1 +
 {docs => airflow_client/docs}/TaskInstanceApi.md   |  98 +++--
 .../docs}/TaskInstanceCollection.md                |   1 +
 .../docs}/TaskInstanceCollectionAllOf.md           |   1 +
 .../docs}/TaskInstanceReference.md                 |   1 +
 .../docs}/TaskInstanceReferenceCollection.md       |   1 +
 {docs => airflow_client/docs}/TaskState.md         |   1 +
 {docs => airflow_client/docs}/TimeDelta.md         |   1 +
 {docs => airflow_client/docs}/TriggerRule.md       |   1 +
 .../docs}/UpdateTaskInstancesState.md              |   1 +
 docs/Connection.md => airflow_client/docs/User.md  |  26 +-
 docs/Tag.md => airflow_client/docs/UserAllOf.md    |   6 +-
 docs/RoleApi.md => airflow_client/docs/UserApi.md  |  78 ++--
 .../docs/UserCollection.md                         |   7 +-
 .../docs/UserCollectionAllOf.md                    |   5 +-
 .../docs/UserCollectionItem.md                     |  25 +-
 .../docs/UserCollectionItemRoles.md                |   4 +-
 {docs => airflow_client/docs}/Variable.md          |   1 +
 {docs => airflow_client/docs}/VariableAllOf.md     |   1 +
 {docs => airflow_client/docs}/VariableApi.md       |  92 +++--
 .../docs}/VariableCollection.md                    |   1 +
 .../docs}/VariableCollectionAllOf.md               |   1 +
 .../docs}/VariableCollectionItem.md                |   1 +
 {docs => airflow_client/docs}/VersionInfo.md       |   1 +
 {docs => airflow_client/docs}/WeightRule.md        |   1 +
 {docs => airflow_client/docs}/XCom.md              |   1 +
 {docs => airflow_client/docs}/XComAllOf.md         |   1 +
 {docs => airflow_client/docs}/XComApi.md           |  40 +-
 {docs => airflow_client/docs}/XComCollection.md    |   1 +
 .../docs}/XComCollectionAllOf.md                   |   1 +
 .../docs}/XComCollectionItem.md                    |   1 +
 airflow_client/models/__init__.py                  | 109 -----
 {test => airflow_client/test}/__init__.py          |   0
 {test => airflow_client/test}/test_action.py       |   6 +-
 .../test}/test_action_collection.py                |  12 +-
 .../test}/test_action_collection_all_of.py         |   8 +-
 .../test}/test_action_resource.py                  |  10 +-
 .../test}/test_class_reference.py                  |   6 +-
 .../test}/test_clear_task_instance.py              |   6 +-
 .../test}/test_collection_info.py                  |   6 +-
 {test => airflow_client/test}/test_color.py        |   6 +-
 {test => airflow_client/test}/test_config.py       |   8 +-
 {test => airflow_client/test}/test_config_api.py   |   6 +-
 .../test}/test_config_option.py                    |   6 +-
 .../test}/test_config_section.py                   |   8 +-
 {test => airflow_client/test}/test_connection.py   |  10 +-
 .../test}/test_connection_all_of.py                |   6 +-
 .../test}/test_connection_api.py                   |   6 +-
 .../test}/test_connection_collection.py            |  12 +-
 .../test}/test_connection_collection_all_of.py     |   8 +-
 .../test}/test_connection_collection_item.py       |   6 +-
 .../test}/test_cron_expression.py                  |   6 +-
 {test => airflow_client/test}/test_dag.py          |  10 +-
 {test => airflow_client/test}/test_dag_api.py      |   6 +-
 .../test}/test_dag_collection.py                   |  12 +-
 .../test}/test_dag_collection_all_of.py            |   8 +-
 {test => airflow_client/test}/test_dag_detail.py   |  16 +-
 .../test}/test_dag_detail_all_of.py                |   8 +-
 {test => airflow_client/test}/test_dag_run.py      |   8 +-
 {test => airflow_client/test}/test_dag_run_api.py  |   6 +-
 .../test}/test_dag_run_collection.py               |  12 +-
 .../test}/test_dag_run_collection_all_of.py        |   8 +-
 {test => airflow_client/test}/test_dag_state.py    |   6 +-
 {test => airflow_client/test}/test_error.py        |   6 +-
 {test => airflow_client/test}/test_event_log.py    |   6 +-
 .../test}/test_event_log_api.py                    |   6 +-
 .../test}/test_event_log_collection.py             |  12 +-
 .../test}/test_event_log_collection_all_of.py      |   8 +-
 {test => airflow_client/test}/test_extra_link.py   |   8 +-
 .../test}/test_extra_link_collection.py            |   8 +-
 {test => airflow_client/test}/test_health_info.py  |  10 +-
 .../test}/test_health_status.py                    |   6 +-
 {test => airflow_client/test}/test_import_error.py |   6 +-
 .../test}/test_import_error_api.py                 |   6 +-
 .../test}/test_import_error_collection.py          |  12 +-
 .../test}/test_import_error_collection_all_of.py   |   8 +-
 .../test}/test_inline_response200.py               |   6 +-
 .../test}/test_inline_response2001.py              |   6 +-
 .../test}/test_list_dag_runs_form.py               |   6 +-
 .../test}/test_list_task_instance_form.py          |   6 +-
 .../test}/test_metadatabase_status.py              |   8 +-
 .../test}/test_monitoring_api.py                   |   6 +-
 .../test}/test_permission_api.py                   |   6 +-
 {test => airflow_client/test}/test_plugin_api.py   |   6 +-
 .../test}/test_plugin_collection.py                |  12 +-
 .../test}/test_plugin_collection_all_of.py         |   8 +-
 .../test}/test_plugin_collection_item.py           |   6 +-
 {test => airflow_client/test}/test_pool.py         |   6 +-
 {test => airflow_client/test}/test_pool_api.py     |   6 +-
 .../test}/test_pool_collection.py                  |  12 +-
 .../test}/test_pool_collection_all_of.py           |   8 +-
 .../test}/test_relative_delta.py                   |   6 +-
 {test => airflow_client/test}/test_resource.py     |   6 +-
 {test => airflow_client/test}/test_role.py         |   8 +-
 {test => airflow_client/test}/test_role_api.py     |   6 +-
 .../test}/test_role_collection.py                  |  12 +-
 .../test}/test_role_collection_all_of.py           |   8 +-
 .../test}/test_schedule_interval.py                |  12 +-
 .../test}/test_scheduler_status.py                 |   8 +-
 {test => airflow_client/test}/test_sla_miss.py     |   6 +-
 {test => airflow_client/test}/test_tag.py          |   6 +-
 {test => airflow_client/test}/test_task.py         |  20 +-
 .../test}/test_task_collection.py                  |   8 +-
 .../test}/test_task_extra_links.py                 |   8 +-
 .../test}/test_task_instance.py                    |  10 +-
 .../test}/test_task_instance_api.py                |   6 +-
 .../test}/test_task_instance_collection.py         |  12 +-
 .../test}/test_task_instance_collection_all_of.py  |   8 +-
 .../test}/test_task_instance_reference.py          |   6 +-
 .../test_task_instance_reference_collection.py     |   8 +-
 {test => airflow_client/test}/test_task_state.py   |   6 +-
 {test => airflow_client/test}/test_time_delta.py   |   6 +-
 {test => airflow_client/test}/test_trigger_rule.py |   6 +-
 .../test}/test_update_task_instances_state.py      |   6 +-
 .../test/test_user.py                              |  24 +-
 .../test/test_user_all_of.py                       |  16 +-
 .../test/test_user_api.py                          |  24 +-
 .../test/test_user_collection.py                   |  26 +-
 .../test/test_user_collection_all_of.py            |  20 +-
 .../test/test_user_collection_item.py              |  20 +-
 .../test/test_user_collection_item_roles.py        |  18 +-
 {test => airflow_client/test}/test_variable.py     |  10 +-
 .../test}/test_variable_all_of.py                  |   6 +-
 {test => airflow_client/test}/test_variable_api.py |   6 +-
 .../test}/test_variable_collection.py              |  12 +-
 .../test}/test_variable_collection_all_of.py       |   8 +-
 .../test}/test_variable_collection_item.py         |   6 +-
 {test => airflow_client/test}/test_version_info.py |   6 +-
 {test => airflow_client/test}/test_weight_rule.py  |   6 +-
 {test => airflow_client/test}/test_x_com.py        |  10 +-
 {test => airflow_client/test}/test_x_com_all_of.py |   6 +-
 {test => airflow_client/test}/test_x_com_api.py    |   6 +-
 .../test}/test_x_com_collection.py                 |  12 +-
 .../test}/test_x_com_collection_all_of.py          |   8 +-
 .../test}/test_x_com_collection_item.py            |   6 +-
 test-requirements.txt                              |   2 +
 tox.ini                                            |  26 --
 329 files changed, 2064 insertions(+), 1942 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 7c83a2b..e67ec6e 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -36,6 +36,5 @@ jobs:
 
       - name: Run pytest
         run: |
-          pip install -r requirements.txt
-          pip install pytest
-          pytest test
\ No newline at end of file
+          pip install -r test-requirements.txt
+          pytest airflow_client/test
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index dc8372e..96e65cf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,7 +15,7 @@ dist/
 downloads/
 eggs/
 .eggs/
-.idea
+.idea/
 lib/
 lib64/
 parts/
diff --git a/README.md b/README.md
index 25810a4..7a4595a 100644
--- a/README.md
+++ b/README.md
@@ -17,230 +17,8 @@
  under the License.
  -->
 
-# airflow-client
-# Overview
+# Apache Airflow Python Client
 
-To facilitate management, Apache Airflow supports a range of REST API endpoints across its
-objects.
-This section provides an overview of the API design, methods, and supported use cases.
-
-Most of the endpoints accept `JSON` as input and return `JSON` responses.
-This means that you must usually add the following headers to your request:
-```
-Content-type: application/json
-Accept: application/json
-```
-
-## Resources
-
-The term `resource` refers to a single type of object in the Airflow metadata. An API is broken up by its
-endpoint's corresponding resource.
-The name of a resource is typically plural and expressed in camelCase. Example: `dagRuns`.
-
-Resource names are used as part of endpoint URLs, as well as in API parameters and responses.
-
-## CRUD Operations
-
-The platform supports **C**reate, **R**ead, **U**pdate, and **D**elete operations on most resources.
-You can review the standards for these operations and their standard parameters below.
-
-Some endpoints have special behavior as exceptions.
-
-### Create
-
-To create a resource, you typically submit an HTTP `POST` request with the resource's required metadata
-in the request body.
-The response returns a `201 Created` response code upon success with the resource's metadata, including
-its internal `id`, in the response body.
-
-### Read
-
-The HTTP `GET` request can be used to read a resource or to list a number of resources.
-
-A resource's `id` can be submitted in the request parameters to read a specific resource.
-The response usually returns a `200 OK` response code upon success, with the resource's metadata in
-the response body.
-
-If a `GET` request does not include a specific resource `id`, it is treated as a list request.
-The response usually returns a `200 OK` response code upon success, with an object containing a list
-of resources' metadata in the response body.
-
-When reading resources, some common query parameters are usually available. e.g.:
-```
-v1/connections?limit=25&offset=25
-```
-
-|Query Parameter|Type|Description|
-|---------------|----|-----------|
-|limit|integer|Maximum number of objects to fetch. Usually 25 by default|
-|offset|integer|Offset after which to start returning objects. For use with limit query parameter.|
-
-### Update
-
-Updating a resource requires the resource `id`, and is typically done using an HTTP `PATCH` request,
-with the fields to modify in the request body.
-The response usually returns a `200 OK` response code upon success, with information about the modified
-resource in the response body.
-
-### Delete
-
-Deleting a resource requires the resource `id` and is typically executing via an HTTP `DELETE` request.
-The response usually returns a `204 No Content` response code upon success.
-
-## Conventions
-
-- Resource names are plural and expressed in camelCase.
-- Names are consistent between URL parameter name and field name.
-
-- Field names are in snake_case.
-```json
-{
-    \"name\": \"string\",
-    \"slots\": 0,
-    \"occupied_slots\": 0,
-    \"used_slots\": 0,
-    \"queued_slots\": 0,
-    \"open_slots\": 0
-}
-```
-
-### Update Mask
-
-Update mask is available as a query parameter in patch endpoints. It is used to notify the
-API which fields you want to update. Using `update_mask` makes it easier to update objects
-by helping the server know which fields to update in an object instead of updating all fields.
-The update request ignores any fields that aren't specified in the field mask, leaving them with
-their current values.
-
-Example:
-```
-  resource = request.get('/resource/my-id').json()
-  resource['my_field'] = 'new-value'
-  request.patch('/resource/my-id?update_mask=my_field', data=json.dumps(resource))
-```
-
-## Versioning and Endpoint Lifecycle
-
-- API versioning is not synchronized to specific releases of the Apache Airflow.
-- APIs are designed to be backward compatible.
-- Any changes to the API will first go through a deprecation phase.
-
-# Summary of Changes
-
-| Airflow version | Description |
-|-|-|
-| v2.0 | Initial release |
-| v2.0.2    | Added /plugins endpoint |
-
-# Trying the API
-
-You can use a third party client, such as [curl](https://curl.haxx.se/), [HTTPie](https://httpie.org/),
-[Postman](https://www.postman.com/) or [the Insomnia rest client](https://insomnia.rest/) to test
-the Apache Airflow API.
-
-Note that you will need to pass credentials data.
-
-For e.g., here is how to pause a DAG with [curl](https://curl.haxx.se/), when basic authorization is used:
-```bash
-curl -X POST 'https://example.com/api/v1/dags/{dag_id}?update_mask=is_paused' \\
--H 'Content-Type: application/json' \\
---user \"username:password\" \\
--d '{
-    \"is_paused\": true
-}'
-```
-
-Using a graphical tool such as [Postman](https://www.postman.com/) or [Insomnia](https://insomnia.rest/),
-it is possible to import the API specifications directly:
-
-1. Download the API specification by clicking the **Download** button at top of this document
-2. Import the JSON specification in the graphical tool of your choice.
-  - In *Postman*, you can click the **import** button at the top
-  - With *Insomnia*, you can just drag-and-drop the file on the UI
-
-Note that with *Postman*, you can also generate code snippets by selecting a request and clicking on
-the **Code** button.
-
-## Enabling CORS
-
-[Cross-origin resource sharing (CORS)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
-is a browser security feature that restricts HTTP requests that are
-initiated from scripts running in the browser.
-
-For details on enabling/configuring CORS, see
-[Enabling CORS](https://airflow.apache.org/docs/apache-airflow/stable/security/api.html).
-
-# Authentication
-
-To be able to meet the requirements of many organizations, Airflow supports many authentication methods,
-and it is even possible to add your own method.
-
-If you want to check which auth backend is currently set, you can use
-`airflow config get-value api auth_backend` command as in the example below.
-```bash
-$ airflow config get-value api auth_backend
-airflow.api.auth.backend.basic_auth
-```
-The default is to deny all requests.
-
-For details on configuring the authentication, see
-[API Authorization](https://airflow.apache.org/docs/apache-airflow/stable/security/api.html).
-
-# Errors
-
-We follow the error response format proposed in [RFC 7807](https://tools.ietf.org/html/rfc7807)
-also known as Problem Details for HTTP APIs. As with our normal API responses,
-your client must be prepared to gracefully handle additional members of the response.
-
-## Unauthenticated
-
-This indicates that the request has not been applied because it lacks valid authentication
-credentials for the target resource. Please check that you have valid credentials.
-
-## PermissionDenied
-
-This response means that the server understood the request but refuses to authorize
-it because it lacks sufficient rights to the resource. It happens when you do not have the
-necessary permission to execute the action you performed. You need to get the appropriate
-permissions in other to resolve this error.
-
-## BadRequest
-
-This response means that the server cannot or will not process the request due to something
-that is perceived to be a client error (e.g., malformed request syntax, invalid request message
-framing, or deceptive request routing). To resolve this, please ensure that your syntax is correct.
-
-## NotFound
-
-This client error response indicates that the server cannot find the requested resource.
-
-## MethodNotAllowed
-
-Indicates that the request method is known by the server but is not supported by the target resource.
-
-## NotAcceptable
-
-The target resource does not have a current representation that would be acceptable to the user
-agent, according to the proactive negotiation header fields received in the request, and the
-server is unwilling to supply a default representation.
-
-## AlreadyExists
-
-The request could not be completed due to a conflict with the current state of the target
-resource, meaning that the resource already exists
-
-## Unknown
-
-This means that the server encountered an unexpected condition that prevented it from
-fulfilling the request.
-
-
-This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
-
-- API version: 1.0.0
-- Package version: 1.0.0
-- Build package: org.openapitools.codegen.languages.PythonClientCodegen
-For more information, please visit [https://airflow.apache.org](https://airflow.apache.org)
 
 ## Requirements.
 
@@ -249,30 +27,26 @@ Python >= 3.6
 ## Installation & Usage
 ### pip install
 
-If the python package is hosted on a repository, you can install directly using:
+You can install directly using pip:
 
 ```sh
-pip install git+https://github.com/apache/airflow-client-python/airflow.git
-```
-(you may need to run `pip` with root permission: `sudo pip install git+https://github.com/apache/airflow-client-python/airflow.git`)
-
-Then import the package:
-```python
-import airflow_client
-```
+pip install git+https://github.com/apache/airflow-client-python.git
+````
 
 ### Setuptools
 
-Install via [Setuptools](http://pypi.python.org/pypi/setuptools).
+Or install via [Setuptools](http://pypi.python.org/pypi/setuptools).
 
 ```sh
+git clone git@github.com:apache/airflow-client-python.git
+cd airflow-client-python
 python setup.py install --user
 ```
 (or `sudo python setup.py install` to install the package for all users)
 
 Then import the package:
 ```python
-import airflow_client
+import airflow_client.client
 ```
 
 ## Getting Started
@@ -282,14 +56,14 @@ Please follow the [installation procedure](#installation--usage) and then run th
 ```python
 
 import time
-import airflow_client
+import airflow_client.client
 from pprint import pprint
-from airflow_client.api import config_api
-from airflow_client.model.config import Config
-from airflow_client.model.error import Error
+from airflow_client.client.api import config_api
+from airflow_client.client.model.config import Config
+from airflow_client.client.model.error import Error
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = airflow_client.client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -299,14 +73,15 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = airflow_client.client.Configuration(
+    host = "http://localhost/api/v1",
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with airflow_client.client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = config_api.ConfigApi(api_client)
     
@@ -314,183 +89,27 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Get current configuration
         api_response = api_instance.get_config()
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except airflow_client.client.ApiException as e:
         print("Exception when calling ConfigApi->get_config: %s\n" % e)
 ```
 
-## Documentation for API Endpoints
-
-All URIs are relative to *http://localhost/api/v1*
-
-Class | Method | HTTP request | 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
-*PermissionApi* | [**get_permissions**](docs/PermissionApi.md#get_permissions) | **GET** /permissions | List permissions
-*PluginApi* | [**get_plugins**](docs/PluginApi.md#get_plugins) | **GET** /plugins | Get a list of loaded plugins
-*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
-*RoleApi* | [**get_role**](docs/RoleApi.md#get_role) | **GET** /roles/{role_name} | Get a role
-*RoleApi* | [**get_roles**](docs/RoleApi.md#get_roles) | **GET** /roles | List roles
-*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
-
-
-## Documentation For Models
-
- - [Action](docs/Action.md)
- - [ActionCollection](docs/ActionCollection.md)
- - [ActionCollectionAllOf](docs/ActionCollectionAllOf.md)
- - [ActionResource](docs/ActionResource.md)
- - [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)
- - [PluginCollection](docs/PluginCollection.md)
- - [PluginCollectionAllOf](docs/PluginCollectionAllOf.md)
- - [PluginCollectionItem](docs/PluginCollectionItem.md)
- - [Pool](docs/Pool.md)
- - [PoolCollection](docs/PoolCollection.md)
- - [PoolCollectionAllOf](docs/PoolCollectionAllOf.md)
- - [RelativeDelta](docs/RelativeDelta.md)
- - [Resource](docs/Resource.md)
- - [Role](docs/Role.md)
- - [RoleCollection](docs/RoleCollection.md)
- - [RoleCollectionAllOf](docs/RoleCollectionAllOf.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)
- - [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)
+See [README](./client/README.md#documentation-for-api-endpoints) for full client API documentation.
 
+## Release Process
 
-## Documentation For Authorization
-
-
-## Basic
-
-- **Type**: HTTP basic authentication
-
-
-## Kerberos
-
-
-
-## Author
-
-dev@airflow.apache.org
+The Python client is generated using Airflow's [openapi spec](https://github.com/apache/airflow/blob/master/clients/gen/python.sh). 
+To update the client for new APIs do the following steps:
 
+```bash
+# clone this repo
+git clone git@github.com:apache/airflow-client-python.git
 
-## Notes for Large OpenAPI documents
-If the OpenAPI document is large, imports in airflow_client.apis and airflow_client.models may fail with a
-RecursionError indicating the maximum recursion limit has been exceeded. In that case, there are a couple of solutions:
+# clone Airflow repo (if not already)
+git clone git@github.com:apache/airflow.git
+cd airflow
 
-Solution 1:
-Use specific imports for apis and models like:
-- `from airflow_client.api.default_api import DefaultApi`
-- `from airflow_client.model.pet import Pet`
+# bump up the version in python.sh & run the following command 
+./clients/gen/python.sh airflow/api_connexion/openapi/v1.yaml ../airflow-client-python/airflow_client
 
-Solution 2:
-Before importing the package, adjust the maximum recursion limit as shown below:
-```
-import sys
-sys.setrecursionlimit(1500)
-import airflow_client
-from airflow_client.apis import *
-from airflow_client.models import *
+# raise a PR in github for both the repos (airflow & airflow-client-python)
 ```
-
diff --git a/.gitignore b/airflow_client/.gitignore
similarity index 99%
copy from .gitignore
copy to airflow_client/.gitignore
index dc8372e..43995bd 100644
--- a/.gitignore
+++ b/airflow_client/.gitignore
@@ -15,7 +15,6 @@ dist/
 downloads/
 eggs/
 .eggs/
-.idea
 lib/
 lib64/
 parts/
diff --git a/airflow_client/.openapi-generator-ignore b/airflow_client/.openapi-generator-ignore
new file mode 100644
index 0000000..36151b8
--- /dev/null
+++ b/airflow_client/.openapi-generator-ignore
@@ -0,0 +1,8 @@
+.travis.yml
+git_push.sh
+.gitlab-ci.yml
+requirements.txt
+setup.cfg
+setup.py
+test-requirements.txt
+tox.ini
diff --git a/airflow_client/.openapi-generator/FILES b/airflow_client/.openapi-generator/FILES
new file mode 100644
index 0000000..7cb763d
--- /dev/null
+++ b/airflow_client/.openapi-generator/FILES
@@ -0,0 +1,320 @@
+.gitignore
+README.md
+client/__init__.py
+client/api/__init__.py
+client/api/config_api.py
+client/api/connection_api.py
+client/api/dag_api.py
+client/api/dag_run_api.py
+client/api/event_log_api.py
+client/api/import_error_api.py
+client/api/monitoring_api.py
+client/api/permission_api.py
+client/api/plugin_api.py
+client/api/pool_api.py
+client/api/role_api.py
+client/api/task_instance_api.py
+client/api/user_api.py
+client/api/variable_api.py
+client/api/x_com_api.py
+client/api_client.py
+client/apis/__init__.py
+client/configuration.py
+client/exceptions.py
+client/model/__init__.py
+client/model/action.py
+client/model/action_collection.py
+client/model/action_collection_all_of.py
+client/model/action_resource.py
+client/model/class_reference.py
+client/model/clear_task_instance.py
+client/model/collection_info.py
+client/model/color.py
+client/model/config.py
+client/model/config_option.py
+client/model/config_section.py
+client/model/connection.py
+client/model/connection_all_of.py
+client/model/connection_collection.py
+client/model/connection_collection_all_of.py
+client/model/connection_collection_item.py
+client/model/cron_expression.py
+client/model/dag.py
+client/model/dag_collection.py
+client/model/dag_collection_all_of.py
+client/model/dag_detail.py
+client/model/dag_detail_all_of.py
+client/model/dag_run.py
+client/model/dag_run_collection.py
+client/model/dag_run_collection_all_of.py
+client/model/dag_state.py
+client/model/error.py
+client/model/event_log.py
+client/model/event_log_collection.py
+client/model/event_log_collection_all_of.py
+client/model/extra_link.py
+client/model/extra_link_collection.py
+client/model/health_info.py
+client/model/health_status.py
+client/model/import_error.py
+client/model/import_error_collection.py
+client/model/import_error_collection_all_of.py
+client/model/inline_response200.py
+client/model/inline_response2001.py
+client/model/list_dag_runs_form.py
+client/model/list_task_instance_form.py
+client/model/metadatabase_status.py
+client/model/plugin_collection.py
+client/model/plugin_collection_all_of.py
+client/model/plugin_collection_item.py
+client/model/pool.py
+client/model/pool_collection.py
+client/model/pool_collection_all_of.py
+client/model/relative_delta.py
+client/model/resource.py
+client/model/role.py
+client/model/role_collection.py
+client/model/role_collection_all_of.py
+client/model/schedule_interval.py
+client/model/scheduler_status.py
+client/model/sla_miss.py
+client/model/tag.py
+client/model/task.py
+client/model/task_collection.py
+client/model/task_extra_links.py
+client/model/task_instance.py
+client/model/task_instance_collection.py
+client/model/task_instance_collection_all_of.py
+client/model/task_instance_reference.py
+client/model/task_instance_reference_collection.py
+client/model/task_state.py
+client/model/time_delta.py
+client/model/trigger_rule.py
+client/model/update_task_instances_state.py
+client/model/user.py
+client/model/user_all_of.py
+client/model/user_collection.py
+client/model/user_collection_all_of.py
+client/model/user_collection_item.py
+client/model/user_collection_item_roles.py
+client/model/variable.py
+client/model/variable_all_of.py
+client/model/variable_collection.py
+client/model/variable_collection_all_of.py
+client/model/variable_collection_item.py
+client/model/version_info.py
+client/model/weight_rule.py
+client/model/x_com.py
+client/model/x_com_all_of.py
+client/model/x_com_collection.py
+client/model/x_com_collection_all_of.py
+client/model/x_com_collection_item.py
+client/model_utils.py
+client/models/__init__.py
+client/models/__init__.py
+client/rest.py
+docs/Action.md
+docs/ActionCollection.md
+docs/ActionCollectionAllOf.md
+docs/ActionResource.md
+docs/ClassReference.md
+docs/ClearTaskInstance.md
+docs/CollectionInfo.md
+docs/Color.md
+docs/Config.md
+docs/ConfigApi.md
+docs/ConfigOption.md
+docs/ConfigSection.md
+docs/Connection.md
+docs/ConnectionAllOf.md
+docs/ConnectionApi.md
+docs/ConnectionCollection.md
+docs/ConnectionCollectionAllOf.md
+docs/ConnectionCollectionItem.md
+docs/CronExpression.md
+docs/DAG.md
+docs/DAGApi.md
+docs/DAGCollection.md
+docs/DAGCollectionAllOf.md
+docs/DAGDetail.md
+docs/DAGDetailAllOf.md
+docs/DAGRun.md
+docs/DAGRunApi.md
+docs/DAGRunCollection.md
+docs/DAGRunCollectionAllOf.md
+docs/DagState.md
+docs/Error.md
+docs/EventLog.md
+docs/EventLogApi.md
+docs/EventLogCollection.md
+docs/EventLogCollectionAllOf.md
+docs/ExtraLink.md
+docs/ExtraLinkCollection.md
+docs/HealthInfo.md
+docs/HealthStatus.md
+docs/ImportError.md
+docs/ImportErrorApi.md
+docs/ImportErrorCollection.md
+docs/ImportErrorCollectionAllOf.md
+docs/InlineResponse200.md
+docs/InlineResponse2001.md
+docs/ListDagRunsForm.md
+docs/ListTaskInstanceForm.md
+docs/MetadatabaseStatus.md
+docs/MonitoringApi.md
+docs/PermissionApi.md
+docs/PluginApi.md
+docs/PluginCollection.md
+docs/PluginCollectionAllOf.md
+docs/PluginCollectionItem.md
+docs/Pool.md
+docs/PoolApi.md
+docs/PoolCollection.md
+docs/PoolCollectionAllOf.md
+docs/RelativeDelta.md
+docs/Resource.md
+docs/Role.md
+docs/RoleApi.md
+docs/RoleCollection.md
+docs/RoleCollectionAllOf.md
+docs/SLAMiss.md
+docs/ScheduleInterval.md
+docs/SchedulerStatus.md
+docs/Tag.md
+docs/Task.md
+docs/TaskCollection.md
+docs/TaskExtraLinks.md
+docs/TaskInstance.md
+docs/TaskInstanceApi.md
+docs/TaskInstanceCollection.md
+docs/TaskInstanceCollectionAllOf.md
+docs/TaskInstanceReference.md
+docs/TaskInstanceReferenceCollection.md
+docs/TaskState.md
+docs/TimeDelta.md
+docs/TriggerRule.md
+docs/UpdateTaskInstancesState.md
+docs/User.md
+docs/UserAllOf.md
+docs/UserApi.md
+docs/UserCollection.md
+docs/UserCollectionAllOf.md
+docs/UserCollectionItem.md
+docs/UserCollectionItemRoles.md
+docs/Variable.md
+docs/VariableAllOf.md
+docs/VariableApi.md
+docs/VariableCollection.md
+docs/VariableCollectionAllOf.md
+docs/VariableCollectionItem.md
+docs/VersionInfo.md
+docs/WeightRule.md
+docs/XCom.md
+docs/XComAllOf.md
+docs/XComApi.md
+docs/XComCollection.md
+docs/XComCollectionAllOf.md
+docs/XComCollectionItem.md
+test/__init__.py
+test/test_action.py
+test/test_action_collection.py
+test/test_action_collection_all_of.py
+test/test_action_resource.py
+test/test_class_reference.py
+test/test_clear_task_instance.py
+test/test_collection_info.py
+test/test_color.py
+test/test_config.py
+test/test_config_api.py
+test/test_config_option.py
+test/test_config_section.py
+test/test_connection.py
+test/test_connection_all_of.py
+test/test_connection_api.py
+test/test_connection_collection.py
+test/test_connection_collection_all_of.py
+test/test_connection_collection_item.py
+test/test_cron_expression.py
+test/test_dag.py
+test/test_dag_api.py
+test/test_dag_collection.py
+test/test_dag_collection_all_of.py
+test/test_dag_detail.py
+test/test_dag_detail_all_of.py
+test/test_dag_run.py
+test/test_dag_run_api.py
+test/test_dag_run_collection.py
+test/test_dag_run_collection_all_of.py
+test/test_dag_state.py
+test/test_error.py
+test/test_event_log.py
+test/test_event_log_api.py
+test/test_event_log_collection.py
+test/test_event_log_collection_all_of.py
+test/test_extra_link.py
+test/test_extra_link_collection.py
+test/test_health_info.py
+test/test_health_status.py
+test/test_import_error.py
+test/test_import_error_api.py
+test/test_import_error_collection.py
+test/test_import_error_collection_all_of.py
+test/test_inline_response200.py
+test/test_inline_response2001.py
+test/test_list_dag_runs_form.py
+test/test_list_task_instance_form.py
+test/test_metadatabase_status.py
+test/test_monitoring_api.py
+test/test_permission_api.py
+test/test_plugin_api.py
+test/test_plugin_collection.py
+test/test_plugin_collection_all_of.py
+test/test_plugin_collection_item.py
+test/test_pool.py
+test/test_pool_api.py
+test/test_pool_collection.py
+test/test_pool_collection_all_of.py
+test/test_relative_delta.py
+test/test_resource.py
+test/test_role.py
+test/test_role_api.py
+test/test_role_collection.py
+test/test_role_collection_all_of.py
+test/test_schedule_interval.py
+test/test_scheduler_status.py
+test/test_sla_miss.py
+test/test_tag.py
+test/test_task.py
+test/test_task_collection.py
+test/test_task_extra_links.py
+test/test_task_instance.py
+test/test_task_instance_api.py
+test/test_task_instance_collection.py
+test/test_task_instance_collection_all_of.py
+test/test_task_instance_reference.py
+test/test_task_instance_reference_collection.py
+test/test_task_state.py
+test/test_time_delta.py
+test/test_trigger_rule.py
+test/test_update_task_instances_state.py
+test/test_user.py
+test/test_user_all_of.py
+test/test_user_api.py
+test/test_user_collection.py
+test/test_user_collection_all_of.py
+test/test_user_collection_item.py
+test/test_user_collection_item_roles.py
+test/test_variable.py
+test/test_variable_all_of.py
+test/test_variable_api.py
+test/test_variable_collection.py
+test/test_variable_collection_all_of.py
+test/test_variable_collection_item.py
+test/test_version_info.py
+test/test_weight_rule.py
+test/test_x_com.py
+test/test_x_com_all_of.py
+test/test_x_com_api.py
+test/test_x_com_collection.py
+test/test_x_com_collection_all_of.py
+test/test_x_com_collection_item.py
diff --git a/airflow_client/.openapi-generator/VERSION b/airflow_client/.openapi-generator/VERSION
new file mode 100644
index 0000000..acf69b4
--- /dev/null
+++ b/airflow_client/.openapi-generator/VERSION
@@ -0,0 +1 @@
+5.1.0
\ No newline at end of file
diff --git a/README.md b/airflow_client/README.md
similarity index 94%
copy from README.md
copy to airflow_client/README.md
index 25810a4..baa2c33 100644
--- a/README.md
+++ b/airflow_client/README.md
@@ -17,7 +17,7 @@
  under the License.
  -->
 
-# airflow-client
+# Apache Airflow Python Client
 # Overview
 
 To facilitate management, Apache Airflow supports a range of REST API endpoints across its
@@ -252,13 +252,13 @@ Python >= 3.6
 If the python package is hosted on a repository, you can install directly using:
 
 ```sh
-pip install git+https://github.com/apache/airflow-client-python/airflow.git
+pip install git+https://github.com/apache/airflow-client-python.git
 ```
-(you may need to run `pip` with root permission: `sudo pip install git+https://github.com/apache/airflow-client-python/airflow.git`)
+(you may need to run `pip` with root permission: `sudo pip install git+https://github.com/apache/airflow-client-python.git`)
 
 Then import the package:
 ```python
-import airflow_client
+import airflow_client.client
 ```
 
 ### Setuptools
@@ -272,7 +272,7 @@ python setup.py install --user
 
 Then import the package:
 ```python
-import airflow_client
+import airflow_client.client
 ```
 
 ## Getting Started
@@ -282,14 +282,14 @@ Please follow the [installation procedure](#installation--usage) and then run th
 ```python
 
 import time
-import airflow_client
+import airflow_client.client
 from pprint import pprint
-from airflow_client.api import config_api
-from airflow_client.model.config import Config
-from airflow_client.model.error import Error
+from airflow_client.client.api import config_api
+from airflow_client.client.model.config import Config
+from airflow_client.client.model.error import Error
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -299,14 +299,14 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = config_api.ConfigApi(api_client)
     
@@ -314,7 +314,7 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Get current configuration
         api_response = api_instance.get_config()
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling ConfigApi->get_config: %s\n" % e)
 ```
 
@@ -364,6 +364,8 @@ Class | Method | HTTP request | Description
 *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)
+*UserApi* | [**get_user**](docs/UserApi.md#get_user) | **GET** /users/{username} | Get a user
+*UserApi* | [**get_users**](docs/UserApi.md#get_users) | **GET** /users | List users
 *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
@@ -444,6 +446,12 @@ Class | Method | HTTP request | Description
  - [TimeDelta](docs/TimeDelta.md)
  - [TriggerRule](docs/TriggerRule.md)
  - [UpdateTaskInstancesState](docs/UpdateTaskInstancesState.md)
+ - [User](docs/User.md)
+ - [UserAllOf](docs/UserAllOf.md)
+ - [UserCollection](docs/UserCollection.md)
+ - [UserCollectionAllOf](docs/UserCollectionAllOf.md)
+ - [UserCollectionItem](docs/UserCollectionItem.md)
+ - [UserCollectionItemRoles](docs/UserCollectionItemRoles.md)
  - [Variable](docs/Variable.md)
  - [VariableAllOf](docs/VariableAllOf.md)
  - [VariableCollection](docs/VariableCollection.md)
@@ -476,21 +484,21 @@ dev@airflow.apache.org
 
 
 ## Notes for Large OpenAPI documents
-If the OpenAPI document is large, imports in airflow_client.apis and airflow_client.models may fail with a
+If the OpenAPI document is large, imports in client.apis and client.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_client.api.default_api import DefaultApi`
-- `from airflow_client.model.pet import Pet`
+- `from airflow_client.client.api.default_api import DefaultApi`
+- `from airflow_client.client.model.pet import Pet`
 
 Solution 2:
 Before importing the package, adjust the maximum recursion limit as shown below:
 ```
 import sys
 sys.setrecursionlimit(1500)
-import airflow_client
-from airflow_client.apis import *
-from airflow_client.models import *
+import airflow_client.client
+from airflow_client.client.apis import *
+from airflow_client.client.models import *
 ```
 
diff --git a/airflow_client/__init__.py b/airflow_client/__init__.py
index fde09ef..2456923 100644
--- a/airflow_client/__init__.py
+++ b/airflow_client/__init__.py
@@ -15,31 +15,3 @@
 # specific language governing permissions and limitations
 # under the License.
 
-# flake8: noqa
-
-"""
-    Airflow API (Stable)
-
-    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
-
-    The version of the OpenAPI document: 1.0.0
-    Contact: dev@airflow.apache.org
-    Generated by: https://openapi-generator.tech
-"""
-
-
-__version__ = "1.0.0"
-
-# import ApiClient
-from airflow_client.api_client import ApiClient
-
-# import Configuration
-from airflow_client.configuration import Configuration
-
-# import exceptions
-from airflow_client.exceptions import OpenApiException
-from airflow_client.exceptions import ApiAttributeError
-from airflow_client.exceptions import ApiTypeError
-from airflow_client.exceptions import ApiValueError
-from airflow_client.exceptions import ApiKeyError
-from airflow_client.exceptions import ApiException
diff --git a/test/test_action.py b/airflow_client/client/__init__.py
similarity index 94%
copy from test/test_action.py
copy to airflow_client/client/__init__.py
index dda5501..bbedafa 100644
--- a/test/test_action.py
+++ b/airflow_client/client/__init__.py
@@ -15,6 +15,8 @@
 # specific language governing permissions and limitations
 # under the License.
 
+# flake8: noqa
+
 """
     Airflow API (Stable)
 
@@ -26,28 +28,18 @@
 """
 
 
-import sys
-import unittest
-
-import airflow_client
-from airflow_client.model.action import Action
-
-
-class TestAction(unittest.TestCase):
-    """Action unit test stubs"""
-
-    def setUp(self):
-        pass
-
-    def tearDown(self):
-        pass
+__version__ = "1.0.0"
 
-    def testAction(self):
-        """Test Action"""
-        # FIXME: construct object with mandatory attributes with example values
-        # model = Action()  # noqa: E501
-        pass
+# import ApiClient
+from airflow_client.client.api_client import ApiClient
 
+# import Configuration
+from airflow_client.client.configuration import Configuration
 
-if __name__ == '__main__':
-    unittest.main()
+# import exceptions
+from airflow_client.client.exceptions import OpenApiException
+from airflow_client.client.exceptions import ApiAttributeError
+from airflow_client.client.exceptions import ApiTypeError
+from airflow_client.client.exceptions import ApiValueError
+from airflow_client.client.exceptions import ApiKeyError
+from airflow_client.client.exceptions import ApiException
diff --git a/airflow_client/api/__init__.py b/airflow_client/client/api/__init__.py
similarity index 94%
rename from airflow_client/api/__init__.py
rename to airflow_client/client/api/__init__.py
index 372cdb2..0f3ba40 100644
--- a/airflow_client/api/__init__.py
+++ b/airflow_client/client/api/__init__.py
@@ -17,4 +17,4 @@
 
 # do not import all apis into this module because that uses a lot of memory and stack frames
 # if you need the ability to import all apis from one package, import them with
-# from airflow_client.apis import ConfigApi
+# from airflow_client.client.apis import ConfigApi
diff --git a/airflow_client/api/config_api.py b/airflow_client/client/api/config_api.py
similarity index 98%
rename from airflow_client/api/config_api.py
rename to airflow_client/client/api/config_api.py
index d614850..ce699aa 100644
--- a/airflow_client/api/config_api.py
+++ b/airflow_client/client/api/config_api.py
@@ -29,8 +29,8 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.api_client import ApiClient, Endpoint as _Endpoint
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.api_client import ApiClient, Endpoint as _Endpoint
+from airflow_client.client.model_utils import (  # noqa: F401
     check_allowed_values,
     check_validations,
     date,
@@ -39,8 +39,8 @@ from airflow_client.model_utils import (  # noqa: F401
     none_type,
     validate_and_convert_types
 )
-from airflow_client.model.config import Config
-from airflow_client.model.error import Error
+from airflow_client.client.model.config import Config
+from airflow_client.client.model.error import Error
 
 
 class ConfigApi(object):
diff --git a/airflow_client/api/connection_api.py b/airflow_client/client/api/connection_api.py
similarity index 98%
rename from airflow_client/api/connection_api.py
rename to airflow_client/client/api/connection_api.py
index 518c4e1..f2d3234 100644
--- a/airflow_client/api/connection_api.py
+++ b/airflow_client/client/api/connection_api.py
@@ -29,8 +29,8 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.api_client import ApiClient, Endpoint as _Endpoint
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.api_client import ApiClient, Endpoint as _Endpoint
+from airflow_client.client.model_utils import (  # noqa: F401
     check_allowed_values,
     check_validations,
     date,
@@ -39,9 +39,9 @@ from airflow_client.model_utils import (  # noqa: F401
     none_type,
     validate_and_convert_types
 )
-from airflow_client.model.connection import Connection
-from airflow_client.model.connection_collection import ConnectionCollection
-from airflow_client.model.error import Error
+from airflow_client.client.model.connection import Connection
+from airflow_client.client.model.connection_collection import ConnectionCollection
+from airflow_client.client.model.error import Error
 
 
 class ConnectionApi(object):
diff --git a/airflow_client/api/dag_api.py b/airflow_client/client/api/dag_api.py
similarity index 98%
rename from airflow_client/api/dag_api.py
rename to airflow_client/client/api/dag_api.py
index b99339e..08be221 100644
--- a/airflow_client/api/dag_api.py
+++ b/airflow_client/client/api/dag_api.py
@@ -29,8 +29,8 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.api_client import ApiClient, Endpoint as _Endpoint
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.api_client import ApiClient, Endpoint as _Endpoint
+from airflow_client.client.model_utils import (  # noqa: F401
     check_allowed_values,
     check_validations,
     date,
@@ -39,16 +39,16 @@ from airflow_client.model_utils import (  # noqa: F401
     none_type,
     validate_and_convert_types
 )
-from airflow_client.model.clear_task_instance import ClearTaskInstance
-from airflow_client.model.dag import DAG
-from airflow_client.model.dag_collection import DAGCollection
-from airflow_client.model.dag_detail import DAGDetail
-from airflow_client.model.error import Error
-from airflow_client.model.inline_response2001 import InlineResponse2001
-from airflow_client.model.task import Task
-from airflow_client.model.task_collection import TaskCollection
-from airflow_client.model.task_instance_reference_collection import TaskInstanceReferenceCollection
-from airflow_client.model.update_task_instances_state import UpdateTaskInstancesState
+from airflow_client.client.model.clear_task_instance import ClearTaskInstance
+from airflow_client.client.model.dag import DAG
+from airflow_client.client.model.dag_collection import DAGCollection
+from airflow_client.client.model.dag_detail import DAGDetail
+from airflow_client.client.model.error import Error
+from airflow_client.client.model.inline_response2001 import InlineResponse2001
+from airflow_client.client.model.task import Task
+from airflow_client.client.model.task_collection import TaskCollection
+from airflow_client.client.model.task_instance_reference_collection import TaskInstanceReferenceCollection
+from airflow_client.client.model.update_task_instances_state import UpdateTaskInstancesState
 
 
 class DAGApi(object):
diff --git a/airflow_client/api/dag_run_api.py b/airflow_client/client/api/dag_run_api.py
similarity index 98%
rename from airflow_client/api/dag_run_api.py
rename to airflow_client/client/api/dag_run_api.py
index fb5f47f..c93a8f7 100644
--- a/airflow_client/api/dag_run_api.py
+++ b/airflow_client/client/api/dag_run_api.py
@@ -29,8 +29,8 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.api_client import ApiClient, Endpoint as _Endpoint
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.api_client import ApiClient, Endpoint as _Endpoint
+from airflow_client.client.model_utils import (  # noqa: F401
     check_allowed_values,
     check_validations,
     date,
@@ -39,10 +39,10 @@ from airflow_client.model_utils import (  # noqa: F401
     none_type,
     validate_and_convert_types
 )
-from airflow_client.model.dag_run import DAGRun
-from airflow_client.model.dag_run_collection import DAGRunCollection
-from airflow_client.model.error import Error
-from airflow_client.model.list_dag_runs_form import ListDagRunsForm
+from airflow_client.client.model.dag_run import DAGRun
+from airflow_client.client.model.dag_run_collection import DAGRunCollection
+from airflow_client.client.model.error import Error
+from airflow_client.client.model.list_dag_runs_form import ListDagRunsForm
 
 
 class DAGRunApi(object):
diff --git a/airflow_client/api/event_log_api.py b/airflow_client/client/api/event_log_api.py
similarity index 98%
rename from airflow_client/api/event_log_api.py
rename to airflow_client/client/api/event_log_api.py
index a81661e..7d35e14 100644
--- a/airflow_client/api/event_log_api.py
+++ b/airflow_client/client/api/event_log_api.py
@@ -29,8 +29,8 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.api_client import ApiClient, Endpoint as _Endpoint
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.api_client import ApiClient, Endpoint as _Endpoint
+from airflow_client.client.model_utils import (  # noqa: F401
     check_allowed_values,
     check_validations,
     date,
@@ -39,9 +39,9 @@ from airflow_client.model_utils import (  # noqa: F401
     none_type,
     validate_and_convert_types
 )
-from airflow_client.model.error import Error
-from airflow_client.model.event_log import EventLog
-from airflow_client.model.event_log_collection import EventLogCollection
+from airflow_client.client.model.error import Error
+from airflow_client.client.model.event_log import EventLog
+from airflow_client.client.model.event_log_collection import EventLogCollection
 
 
 class EventLogApi(object):
diff --git a/airflow_client/api/import_error_api.py b/airflow_client/client/api/import_error_api.py
similarity index 98%
rename from airflow_client/api/import_error_api.py
rename to airflow_client/client/api/import_error_api.py
index 5f849d6..19a6b34 100644
--- a/airflow_client/api/import_error_api.py
+++ b/airflow_client/client/api/import_error_api.py
@@ -29,8 +29,8 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.api_client import ApiClient, Endpoint as _Endpoint
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.api_client import ApiClient, Endpoint as _Endpoint
+from airflow_client.client.model_utils import (  # noqa: F401
     check_allowed_values,
     check_validations,
     date,
@@ -39,9 +39,9 @@ from airflow_client.model_utils import (  # noqa: F401
     none_type,
     validate_and_convert_types
 )
-from airflow_client.model.error import Error
-from airflow_client.model.import_error import ImportError
-from airflow_client.model.import_error_collection import ImportErrorCollection
+from airflow_client.client.model.error import Error
+from airflow_client.client.model.import_error import ImportError
+from airflow_client.client.model.import_error_collection import ImportErrorCollection
 
 
 class ImportErrorApi(object):
diff --git a/airflow_client/api/monitoring_api.py b/airflow_client/client/api/monitoring_api.py
similarity index 98%
rename from airflow_client/api/monitoring_api.py
rename to airflow_client/client/api/monitoring_api.py
index 9bb3b5e..42605b9 100644
--- a/airflow_client/api/monitoring_api.py
+++ b/airflow_client/client/api/monitoring_api.py
@@ -29,8 +29,8 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.api_client import ApiClient, Endpoint as _Endpoint
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.api_client import ApiClient, Endpoint as _Endpoint
+from airflow_client.client.model_utils import (  # noqa: F401
     check_allowed_values,
     check_validations,
     date,
@@ -39,8 +39,8 @@ from airflow_client.model_utils import (  # noqa: F401
     none_type,
     validate_and_convert_types
 )
-from airflow_client.model.health_info import HealthInfo
-from airflow_client.model.version_info import VersionInfo
+from airflow_client.client.model.health_info import HealthInfo
+from airflow_client.client.model.version_info import VersionInfo
 
 
 class MonitoringApi(object):
diff --git a/airflow_client/api/permission_api.py b/airflow_client/client/api/permission_api.py
similarity index 98%
rename from airflow_client/api/permission_api.py
rename to airflow_client/client/api/permission_api.py
index f00b8f3..1430eda 100644
--- a/airflow_client/api/permission_api.py
+++ b/airflow_client/client/api/permission_api.py
@@ -29,8 +29,8 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.api_client import ApiClient, Endpoint as _Endpoint
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.api_client import ApiClient, Endpoint as _Endpoint
+from airflow_client.client.model_utils import (  # noqa: F401
     check_allowed_values,
     check_validations,
     date,
@@ -39,8 +39,8 @@ from airflow_client.model_utils import (  # noqa: F401
     none_type,
     validate_and_convert_types
 )
-from airflow_client.model.action_collection import ActionCollection
-from airflow_client.model.error import Error
+from airflow_client.client.model.action_collection import ActionCollection
+from airflow_client.client.model.error import Error
 
 
 class PermissionApi(object):
diff --git a/airflow_client/api/plugin_api.py b/airflow_client/client/api/plugin_api.py
similarity index 98%
rename from airflow_client/api/plugin_api.py
rename to airflow_client/client/api/plugin_api.py
index 477a000..9dbc6af 100644
--- a/airflow_client/api/plugin_api.py
+++ b/airflow_client/client/api/plugin_api.py
@@ -29,8 +29,8 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.api_client import ApiClient, Endpoint as _Endpoint
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.api_client import ApiClient, Endpoint as _Endpoint
+from airflow_client.client.model_utils import (  # noqa: F401
     check_allowed_values,
     check_validations,
     date,
@@ -39,8 +39,8 @@ from airflow_client.model_utils import (  # noqa: F401
     none_type,
     validate_and_convert_types
 )
-from airflow_client.model.error import Error
-from airflow_client.model.plugin_collection import PluginCollection
+from airflow_client.client.model.error import Error
+from airflow_client.client.model.plugin_collection import PluginCollection
 
 
 class PluginApi(object):
diff --git a/airflow_client/api/pool_api.py b/airflow_client/client/api/pool_api.py
similarity index 99%
rename from airflow_client/api/pool_api.py
rename to airflow_client/client/api/pool_api.py
index 6056d2f..dec0db8 100644
--- a/airflow_client/api/pool_api.py
+++ b/airflow_client/client/api/pool_api.py
@@ -29,8 +29,8 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.api_client import ApiClient, Endpoint as _Endpoint
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.api_client import ApiClient, Endpoint as _Endpoint
+from airflow_client.client.model_utils import (  # noqa: F401
     check_allowed_values,
     check_validations,
     date,
@@ -39,9 +39,9 @@ from airflow_client.model_utils import (  # noqa: F401
     none_type,
     validate_and_convert_types
 )
-from airflow_client.model.error import Error
-from airflow_client.model.pool import Pool
-from airflow_client.model.pool_collection import PoolCollection
+from airflow_client.client.model.error import Error
+from airflow_client.client.model.pool import Pool
+from airflow_client.client.model.pool_collection import PoolCollection
 
 
 class PoolApi(object):
diff --git a/airflow_client/api/role_api.py b/airflow_client/client/api/role_api.py
similarity index 98%
copy from airflow_client/api/role_api.py
copy to airflow_client/client/api/role_api.py
index 249ddb5..4057ab6 100644
--- a/airflow_client/api/role_api.py
+++ b/airflow_client/client/api/role_api.py
@@ -29,8 +29,8 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.api_client import ApiClient, Endpoint as _Endpoint
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.api_client import ApiClient, Endpoint as _Endpoint
+from airflow_client.client.model_utils import (  # noqa: F401
     check_allowed_values,
     check_validations,
     date,
@@ -39,9 +39,9 @@ from airflow_client.model_utils import (  # noqa: F401
     none_type,
     validate_and_convert_types
 )
-from airflow_client.model.error import Error
-from airflow_client.model.role import Role
-from airflow_client.model.role_collection import RoleCollection
+from airflow_client.client.model.error import Error
+from airflow_client.client.model.role import Role
+from airflow_client.client.model.role_collection import RoleCollection
 
 
 class RoleApi(object):
diff --git a/airflow_client/api/task_instance_api.py b/airflow_client/client/api/task_instance_api.py
similarity index 98%
rename from airflow_client/api/task_instance_api.py
rename to airflow_client/client/api/task_instance_api.py
index 3ee4c66..93bac9c 100644
--- a/airflow_client/api/task_instance_api.py
+++ b/airflow_client/client/api/task_instance_api.py
@@ -29,8 +29,8 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.api_client import ApiClient, Endpoint as _Endpoint
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.api_client import ApiClient, Endpoint as _Endpoint
+from airflow_client.client.model_utils import (  # noqa: F401
     check_allowed_values,
     check_validations,
     date,
@@ -39,12 +39,12 @@ from airflow_client.model_utils import (  # noqa: F401
     none_type,
     validate_and_convert_types
 )
-from airflow_client.model.error import Error
-from airflow_client.model.extra_link_collection import ExtraLinkCollection
-from airflow_client.model.inline_response200 import InlineResponse200
-from airflow_client.model.list_task_instance_form import ListTaskInstanceForm
-from airflow_client.model.task_instance import TaskInstance
-from airflow_client.model.task_instance_collection import TaskInstanceCollection
+from airflow_client.client.model.error import Error
+from airflow_client.client.model.extra_link_collection import ExtraLinkCollection
+from airflow_client.client.model.inline_response200 import InlineResponse200
+from airflow_client.client.model.list_task_instance_form import ListTaskInstanceForm
+from airflow_client.client.model.task_instance import TaskInstance
+from airflow_client.client.model.task_instance_collection import TaskInstanceCollection
 
 
 class TaskInstanceApi(object):
diff --git a/airflow_client/api/role_api.py b/airflow_client/client/api/user_api.py
similarity index 92%
rename from airflow_client/api/role_api.py
rename to airflow_client/client/api/user_api.py
index 249ddb5..ab75276 100644
--- a/airflow_client/api/role_api.py
+++ b/airflow_client/client/api/user_api.py
@@ -29,8 +29,8 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.api_client import ApiClient, Endpoint as _Endpoint
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.api_client import ApiClient, Endpoint as _Endpoint
+from airflow_client.client.model_utils import (  # noqa: F401
     check_allowed_values,
     check_validations,
     date,
@@ -39,12 +39,12 @@ from airflow_client.model_utils import (  # noqa: F401
     none_type,
     validate_and_convert_types
 )
-from airflow_client.model.error import Error
-from airflow_client.model.role import Role
-from airflow_client.model.role_collection import RoleCollection
+from airflow_client.client.model.error import Error
+from airflow_client.client.model.user_collection import UserCollection
+from airflow_client.client.model.user_collection_item import UserCollectionItem
 
 
-class RoleApi(object):
+class UserApi(object):
     """NOTE: This class is auto generated by OpenAPI Generator
     Ref: https://openapi-generator.tech
 
@@ -56,21 +56,21 @@ class RoleApi(object):
             api_client = ApiClient()
         self.api_client = api_client
 
-        def __get_role(
+        def __get_user(
             self,
-            role_name,
+            username,
             **kwargs
         ):
-            """Get a role  # noqa: E501
+            """Get a user  # noqa: E501
 
             This method makes a synchronous HTTP request by default. To make an
             asynchronous HTTP request, please pass async_req=True
 
-            >>> thread = api.get_role(role_name, async_req=True)
+            >>> thread = api.get_user(username, async_req=True)
             >>> result = thread.get()
 
             Args:
-                role_name (str): The role name
+                username (str): The username of the user
 
             Keyword Args:
                 _return_http_data_only (bool): response data without head status
@@ -94,7 +94,7 @@ class RoleApi(object):
                 async_req (bool): execute request asynchronously
 
             Returns:
-                Role
+                UserCollectionItem
                     If the method is called asynchronously, returns the request
                     thread.
             """
@@ -117,28 +117,28 @@ class RoleApi(object):
                 '_check_return_type', True
             )
             kwargs['_host_index'] = kwargs.get('_host_index')
-            kwargs['role_name'] = \
-                role_name
+            kwargs['username'] = \
+                username
             return self.call_with_http_info(**kwargs)
 
-        self.get_role = _Endpoint(
+        self.get_user = _Endpoint(
             settings={
-                'response_type': (Role,),
+                'response_type': (UserCollectionItem,),
                 'auth': [
                     'Basic',
                     'Kerberos'
                 ],
-                'endpoint_path': '/roles/{role_name}',
-                'operation_id': 'get_role',
+                'endpoint_path': '/users/{username}',
+                'operation_id': 'get_user',
                 'http_method': 'GET',
                 'servers': None,
             },
             params_map={
                 'all': [
-                    'role_name',
+                    'username',
                 ],
                 'required': [
-                    'role_name',
+                    'username',
                 ],
                 'nullable': [
                 ],
@@ -153,14 +153,14 @@ class RoleApi(object):
                 'allowed_values': {
                 },
                 'openapi_types': {
-                    'role_name':
+                    'username':
                         (str,),
                 },
                 'attribute_map': {
-                    'role_name': 'role_name',
+                    'username': 'username',
                 },
                 'location_map': {
-                    'role_name': 'path',
+                    'username': 'path',
                 },
                 'collection_format_map': {
                 }
@@ -172,19 +172,19 @@ class RoleApi(object):
                 'content_type': [],
             },
             api_client=api_client,
-            callable=__get_role
+            callable=__get_user
         )
 
-        def __get_roles(
+        def __get_users(
             self,
             **kwargs
         ):
-            """List roles  # noqa: E501
+            """List users  # noqa: E501
 
             This method makes a synchronous HTTP request by default. To make an
             asynchronous HTTP request, please pass async_req=True
 
-            >>> thread = api.get_roles(async_req=True)
+            >>> thread = api.get_users(async_req=True)
             >>> result = thread.get()
 
 
@@ -212,7 +212,7 @@ class RoleApi(object):
                 async_req (bool): execute request asynchronously
 
             Returns:
-                RoleCollection
+                UserCollection
                     If the method is called asynchronously, returns the request
                     thread.
             """
@@ -237,15 +237,15 @@ class RoleApi(object):
             kwargs['_host_index'] = kwargs.get('_host_index')
             return self.call_with_http_info(**kwargs)
 
-        self.get_roles = _Endpoint(
+        self.get_users = _Endpoint(
             settings={
-                'response_type': (RoleCollection,),
+                'response_type': (UserCollection,),
                 'auth': [
                     'Basic',
                     'Kerberos'
                 ],
-                'endpoint_path': '/roles',
-                'operation_id': 'get_roles',
+                'endpoint_path': '/users',
+                'operation_id': 'get_users',
                 'http_method': 'GET',
                 'servers': None,
             },
@@ -296,5 +296,5 @@ class RoleApi(object):
                 'content_type': [],
             },
             api_client=api_client,
-            callable=__get_roles
+            callable=__get_users
         )
diff --git a/airflow_client/api/variable_api.py b/airflow_client/client/api/variable_api.py
similarity index 98%
rename from airflow_client/api/variable_api.py
rename to airflow_client/client/api/variable_api.py
index f4925aa..7adc7a3 100644
--- a/airflow_client/api/variable_api.py
+++ b/airflow_client/client/api/variable_api.py
@@ -29,8 +29,8 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.api_client import ApiClient, Endpoint as _Endpoint
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.api_client import ApiClient, Endpoint as _Endpoint
+from airflow_client.client.model_utils import (  # noqa: F401
     check_allowed_values,
     check_validations,
     date,
@@ -39,9 +39,9 @@ from airflow_client.model_utils import (  # noqa: F401
     none_type,
     validate_and_convert_types
 )
-from airflow_client.model.error import Error
-from airflow_client.model.variable import Variable
-from airflow_client.model.variable_collection import VariableCollection
+from airflow_client.client.model.error import Error
+from airflow_client.client.model.variable import Variable
+from airflow_client.client.model.variable_collection import VariableCollection
 
 
 class VariableApi(object):
diff --git a/airflow_client/api/x_com_api.py b/airflow_client/client/api/x_com_api.py
similarity index 98%
rename from airflow_client/api/x_com_api.py
rename to airflow_client/client/api/x_com_api.py
index a446164..df849db 100644
--- a/airflow_client/api/x_com_api.py
+++ b/airflow_client/client/api/x_com_api.py
@@ -29,8 +29,8 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.api_client import ApiClient, Endpoint as _Endpoint
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.api_client import ApiClient, Endpoint as _Endpoint
+from airflow_client.client.model_utils import (  # noqa: F401
     check_allowed_values,
     check_validations,
     date,
@@ -39,9 +39,9 @@ from airflow_client.model_utils import (  # noqa: F401
     none_type,
     validate_and_convert_types
 )
-from airflow_client.model.error import Error
-from airflow_client.model.x_com import XCom
-from airflow_client.model.x_com_collection import XComCollection
+from airflow_client.client.model.error import Error
+from airflow_client.client.model.x_com import XCom
+from airflow_client.client.model.x_com_collection import XComCollection
 
 
 class XComApi(object):
diff --git a/airflow_client/api_client.py b/airflow_client/client/api_client.py
similarity index 99%
rename from airflow_client/api_client.py
rename to airflow_client/client/api_client.py
index 480be67..3b92f07 100644
--- a/airflow_client/api_client.py
+++ b/airflow_client/client/api_client.py
@@ -38,10 +38,10 @@ from urllib.parse import quote
 from urllib3.fields import RequestField
 
 
-from airflow_client import rest
-from airflow_client.configuration import Configuration
-from airflow_client.exceptions import ApiTypeError, ApiValueError, ApiException
-from airflow_client.model_utils import (
+from airflow_client.client import rest
+from airflow_client.client.configuration import Configuration
+from airflow_client.client.exceptions import ApiTypeError, ApiValueError, ApiException
+from airflow_client.client.model_utils import (
     ModelNormal,
     ModelSimple,
     ModelComposed,
diff --git a/airflow_client/apis/__init__.py b/airflow_client/client/apis/__init__.py
similarity index 56%
rename from airflow_client/apis/__init__.py
rename to airflow_client/client/apis/__init__.py
index 3a33e02..69d1b9b 100644
--- a/airflow_client/apis/__init__.py
+++ b/airflow_client/client/apis/__init__.py
@@ -31,17 +31,18 @@
 #   sys.setrecursionlimit(n)
 
 # Import APIs into API package:
-from airflow_client.api.config_api import ConfigApi
-from airflow_client.api.connection_api import ConnectionApi
-from airflow_client.api.dag_api import DAGApi
-from airflow_client.api.dag_run_api import DAGRunApi
-from airflow_client.api.event_log_api import EventLogApi
-from airflow_client.api.import_error_api import ImportErrorApi
-from airflow_client.api.monitoring_api import MonitoringApi
-from airflow_client.api.permission_api import PermissionApi
-from airflow_client.api.plugin_api import PluginApi
-from airflow_client.api.pool_api import PoolApi
-from airflow_client.api.role_api import RoleApi
-from airflow_client.api.task_instance_api import TaskInstanceApi
-from airflow_client.api.variable_api import VariableApi
-from airflow_client.api.x_com_api import XComApi
+from airflow_client.client.api.config_api import ConfigApi
+from airflow_client.client.api.connection_api import ConnectionApi
+from airflow_client.client.api.dag_api import DAGApi
+from airflow_client.client.api.dag_run_api import DAGRunApi
+from airflow_client.client.api.event_log_api import EventLogApi
+from airflow_client.client.api.import_error_api import ImportErrorApi
+from airflow_client.client.api.monitoring_api import MonitoringApi
+from airflow_client.client.api.permission_api import PermissionApi
+from airflow_client.client.api.plugin_api import PluginApi
+from airflow_client.client.api.pool_api import PoolApi
+from airflow_client.client.api.role_api import RoleApi
+from airflow_client.client.api.task_instance_api import TaskInstanceApi
+from airflow_client.client.api.user_api import UserApi
+from airflow_client.client.api.variable_api import VariableApi
+from airflow_client.client.api.x_com_api import XComApi
diff --git a/airflow_client/configuration.py b/airflow_client/client/configuration.py
similarity index 99%
rename from airflow_client/configuration.py
rename to airflow_client/client/configuration.py
index 96a6225..ae881cf 100644
--- a/airflow_client/configuration.py
+++ b/airflow_client/client/configuration.py
@@ -33,7 +33,7 @@ import sys
 import urllib3
 
 from http import client as http_client
-from airflow_client.exceptions import ApiValueError
+from airflow_client.client.exceptions import ApiValueError
 
 
 JSON_SCHEMA_VALIDATION_KEYWORDS = {
@@ -106,7 +106,7 @@ class Configuration(object):
 
     Configure API client with HTTP basic authentication:
 
-conf = airflow_client.Configuration(
+conf = client.Configuration(
     username='the-user',
     password='the-password',
 )
@@ -167,7 +167,7 @@ conf = airflow_client.Configuration(
         self.logger = {}
         """Logging Settings
         """
-        self.logger["package_logger"] = logging.getLogger("airflow_client")
+        self.logger["package_logger"] = logging.getLogger("client")
         self.logger["urllib3_logger"] = logging.getLogger("urllib3")
         self.logger_format = '%(asctime)s %(levelname)s %(message)s'
         """Log format
diff --git a/airflow_client/exceptions.py b/airflow_client/client/exceptions.py
similarity index 100%
rename from airflow_client/exceptions.py
rename to airflow_client/client/exceptions.py
diff --git a/airflow_client/model/__init__.py b/airflow_client/client/model/__init__.py
similarity index 100%
rename from airflow_client/model/__init__.py
rename to airflow_client/client/model/__init__.py
diff --git a/airflow_client/model/action.py b/airflow_client/client/model/action.py
similarity index 99%
rename from airflow_client/model/action.py
rename to airflow_client/client/model/action.py
index d4db690..8862c29 100644
--- a/airflow_client/model/action.py
+++ b/airflow_client/client/model/action.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/action_collection.py b/airflow_client/client/model/action_collection.py
similarity index 98%
rename from airflow_client/model/action_collection.py
rename to airflow_client/client/model/action_collection.py
index d74a411..c3fe36d 100644
--- a/airflow_client/model/action_collection.py
+++ b/airflow_client/client/model/action_collection.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,9 +45,9 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.action import Action
-    from airflow_client.model.action_collection_all_of import ActionCollectionAllOf
-    from airflow_client.model.collection_info import CollectionInfo
+    from airflow_client.client.model.action import Action
+    from airflow_client.client.model.action_collection_all_of import ActionCollectionAllOf
+    from airflow_client.client.model.collection_info import CollectionInfo
     globals()['Action'] = Action
     globals()['ActionCollectionAllOf'] = ActionCollectionAllOf
     globals()['CollectionInfo'] = CollectionInfo
diff --git a/airflow_client/model/action_collection_all_of.py b/airflow_client/client/model/action_collection_all_of.py
similarity index 99%
rename from airflow_client/model/action_collection_all_of.py
rename to airflow_client/client/model/action_collection_all_of.py
index 8876703..35aa88e 100644
--- a/airflow_client/model/action_collection_all_of.py
+++ b/airflow_client/client/model/action_collection_all_of.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.action import Action
+    from airflow_client.client.model.action import Action
     globals()['Action'] = Action
 
 
diff --git a/airflow_client/model/action_resource.py b/airflow_client/client/model/action_resource.py
similarity index 98%
rename from airflow_client/model/action_resource.py
rename to airflow_client/client/model/action_resource.py
index 12edb58..773cd23 100644
--- a/airflow_client/model/action_resource.py
+++ b/airflow_client/client/model/action_resource.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,8 +45,8 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.action import Action
-    from airflow_client.model.resource import Resource
+    from airflow_client.client.model.action import Action
+    from airflow_client.client.model.resource import Resource
     globals()['Action'] = Action
     globals()['Resource'] = Resource
 
diff --git a/airflow_client/model/class_reference.py b/airflow_client/client/model/class_reference.py
similarity index 99%
rename from airflow_client/model/class_reference.py
rename to airflow_client/client/model/class_reference.py
index ec5114c..70ea998 100644
--- a/airflow_client/model/class_reference.py
+++ b/airflow_client/client/model/class_reference.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/clear_task_instance.py b/airflow_client/client/model/clear_task_instance.py
similarity index 99%
rename from airflow_client/model/clear_task_instance.py
rename to airflow_client/client/model/clear_task_instance.py
index 3b33e82..4290fce 100644
--- a/airflow_client/model/clear_task_instance.py
+++ b/airflow_client/client/model/clear_task_instance.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/collection_info.py b/airflow_client/client/model/collection_info.py
similarity index 99%
rename from airflow_client/model/collection_info.py
rename to airflow_client/client/model/collection_info.py
index af67ae9..402bbc2 100644
--- a/airflow_client/model/collection_info.py
+++ b/airflow_client/client/model/collection_info.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/color.py b/airflow_client/client/model/color.py
similarity index 99%
rename from airflow_client/model/color.py
rename to airflow_client/client/model/color.py
index fa692b7..0852157 100644
--- a/airflow_client/model/color.py
+++ b/airflow_client/client/model/color.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -154,6 +154,8 @@ class Color(ModelSimple):
                                 through its discriminator because we passed in
                                 _visited_composed_classes = (Animal,)
         """
+        # required up here when default value is not given
+        _path_to_item = kwargs.pop('_path_to_item', ())
 
         if 'value' in kwargs:
             value = kwargs.pop('value')
@@ -169,7 +171,6 @@ class Color(ModelSimple):
 
         _check_type = kwargs.pop('_check_type', True)
         _spec_property_naming = kwargs.pop('_spec_property_naming', False)
-        _path_to_item = kwargs.pop('_path_to_item', ())
         _configuration = kwargs.pop('_configuration', None)
         _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
 
diff --git a/airflow_client/model/config.py b/airflow_client/client/model/config.py
similarity index 99%
copy from airflow_client/model/config.py
copy to airflow_client/client/model/config.py
index ca99f6c..d71ce05 100644
--- a/airflow_client/model/config.py
+++ b/airflow_client/client/model/config.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.config_section import ConfigSection
+    from airflow_client.client.model.config_section import ConfigSection
     globals()['ConfigSection'] = ConfigSection
 
 
diff --git a/airflow_client/model/config_option.py b/airflow_client/client/model/config_option.py
similarity index 99%
rename from airflow_client/model/config_option.py
rename to airflow_client/client/model/config_option.py
index 36775d0..a10dba3 100644
--- a/airflow_client/model/config_option.py
+++ b/airflow_client/client/model/config_option.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/config_section.py b/airflow_client/client/model/config_section.py
similarity index 99%
rename from airflow_client/model/config_section.py
rename to airflow_client/client/model/config_section.py
index 167d8d2..6e2d631 100644
--- a/airflow_client/model/config_section.py
+++ b/airflow_client/client/model/config_section.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.config_option import ConfigOption
+    from airflow_client.client.model.config_option import ConfigOption
     globals()['ConfigOption'] = ConfigOption
 
 
diff --git a/airflow_client/model/connection.py b/airflow_client/client/model/connection.py
similarity index 98%
copy from airflow_client/model/connection.py
copy to airflow_client/client/model/connection.py
index 0aab921..659be50 100644
--- a/airflow_client/model/connection.py
+++ b/airflow_client/client/model/connection.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,8 +45,8 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.connection_all_of import ConnectionAllOf
-    from airflow_client.model.connection_collection_item import ConnectionCollectionItem
+    from airflow_client.client.model.connection_all_of import ConnectionAllOf
+    from airflow_client.client.model.connection_collection_item import ConnectionCollectionItem
     globals()['ConnectionAllOf'] = ConnectionAllOf
     globals()['ConnectionCollectionItem'] = ConnectionCollectionItem
 
diff --git a/airflow_client/model/connection_all_of.py b/airflow_client/client/model/connection_all_of.py
similarity index 99%
rename from airflow_client/model/connection_all_of.py
rename to airflow_client/client/model/connection_all_of.py
index 7cdd0ab..b89a69e 100644
--- a/airflow_client/model/connection_all_of.py
+++ b/airflow_client/client/model/connection_all_of.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/connection_collection.py b/airflow_client/client/model/connection_collection.py
similarity index 98%
rename from airflow_client/model/connection_collection.py
rename to airflow_client/client/model/connection_collection.py
index 4d1e146..d3a5aa5 100644
--- a/airflow_client/model/connection_collection.py
+++ b/airflow_client/client/model/connection_collection.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,9 +45,9 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.collection_info import CollectionInfo
-    from airflow_client.model.connection_collection_all_of import ConnectionCollectionAllOf
-    from airflow_client.model.connection_collection_item import ConnectionCollectionItem
+    from airflow_client.client.model.collection_info import CollectionInfo
+    from airflow_client.client.model.connection_collection_all_of import ConnectionCollectionAllOf
+    from airflow_client.client.model.connection_collection_item import ConnectionCollectionItem
     globals()['CollectionInfo'] = CollectionInfo
     globals()['ConnectionCollectionAllOf'] = ConnectionCollectionAllOf
     globals()['ConnectionCollectionItem'] = ConnectionCollectionItem
diff --git a/airflow_client/model/connection_collection_all_of.py b/airflow_client/client/model/connection_collection_all_of.py
similarity index 98%
rename from airflow_client/model/connection_collection_all_of.py
rename to airflow_client/client/model/connection_collection_all_of.py
index aaae36c..5302144 100644
--- a/airflow_client/model/connection_collection_all_of.py
+++ b/airflow_client/client/model/connection_collection_all_of.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.connection_collection_item import ConnectionCollectionItem
+    from airflow_client.client.model.connection_collection_item import ConnectionCollectionItem
     globals()['ConnectionCollectionItem'] = ConnectionCollectionItem
 
 
diff --git a/airflow_client/model/connection_collection_item.py b/airflow_client/client/model/connection_collection_item.py
similarity index 99%
rename from airflow_client/model/connection_collection_item.py
rename to airflow_client/client/model/connection_collection_item.py
index ca6ec77..090ae2a 100644
--- a/airflow_client/model/connection_collection_item.py
+++ b/airflow_client/client/model/connection_collection_item.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/cron_expression.py b/airflow_client/client/model/cron_expression.py
similarity index 99%
rename from airflow_client/model/cron_expression.py
rename to airflow_client/client/model/cron_expression.py
index 0a2de8d..dc162a6 100644
--- a/airflow_client/model/cron_expression.py
+++ b/airflow_client/client/model/cron_expression.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/dag.py b/airflow_client/client/model/dag.py
similarity index 98%
copy from airflow_client/model/dag.py
copy to airflow_client/client/model/dag.py
index df4e7e2..da8cd39 100644
--- a/airflow_client/model/dag.py
+++ b/airflow_client/client/model/dag.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,8 +45,8 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.schedule_interval import ScheduleInterval
-    from airflow_client.model.tag import Tag
+    from airflow_client.client.model.schedule_interval import ScheduleInterval
+    from airflow_client.client.model.tag import Tag
     globals()['ScheduleInterval'] = ScheduleInterval
     globals()['Tag'] = Tag
 
@@ -174,7 +174,7 @@ class DAG(ModelNormal):
                                 through its discriminator because we passed in
                                 _visited_composed_classes = (Animal,)
             dag_id (str): The ID of the DAG.. [optional]  # noqa: E501
-            root_dag_id (str, none_type): If the DAG is SubDAG then it is the top level DAG identifier. Otherwise, nulll.. [optional]  # noqa: E501
+            root_dag_id (str, none_type): If the DAG is SubDAG then it is the top level DAG identifier. Otherwise, null.. [optional]  # noqa: E501
             is_paused (bool, none_type): Whether the DAG is paused.. [optional]  # noqa: E501
             is_subdag (bool): Whether the DAG is SubDAG.. [optional]  # noqa: E501
             fileloc (str): The absolute path to the file.. [optional]  # noqa: E501
diff --git a/airflow_client/model/dag_collection.py b/airflow_client/client/model/dag_collection.py
similarity index 98%
rename from airflow_client/model/dag_collection.py
rename to airflow_client/client/model/dag_collection.py
index df4a652..63f457f 100644
--- a/airflow_client/model/dag_collection.py
+++ b/airflow_client/client/model/dag_collection.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,9 +45,9 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.collection_info import CollectionInfo
-    from airflow_client.model.dag import DAG
-    from airflow_client.model.dag_collection_all_of import DAGCollectionAllOf
+    from airflow_client.client.model.collection_info import CollectionInfo
+    from airflow_client.client.model.dag import DAG
+    from airflow_client.client.model.dag_collection_all_of import DAGCollectionAllOf
     globals()['CollectionInfo'] = CollectionInfo
     globals()['DAG'] = DAG
     globals()['DAGCollectionAllOf'] = DAGCollectionAllOf
diff --git a/airflow_client/model/dag_collection_all_of.py b/airflow_client/client/model/dag_collection_all_of.py
similarity index 99%
rename from airflow_client/model/dag_collection_all_of.py
rename to airflow_client/client/model/dag_collection_all_of.py
index 2672425..389eed1 100644
--- a/airflow_client/model/dag_collection_all_of.py
+++ b/airflow_client/client/model/dag_collection_all_of.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.dag import DAG
+    from airflow_client.client.model.dag import DAG
     globals()['DAG'] = DAG
 
 
diff --git a/airflow_client/model/dag_detail.py b/airflow_client/client/model/dag_detail.py
similarity index 97%
rename from airflow_client/model/dag_detail.py
rename to airflow_client/client/model/dag_detail.py
index 06e591e..9d1dd25 100644
--- a/airflow_client/model/dag_detail.py
+++ b/airflow_client/client/model/dag_detail.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,11 +45,11 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.dag import DAG
-    from airflow_client.model.dag_detail_all_of import DAGDetailAllOf
-    from airflow_client.model.schedule_interval import ScheduleInterval
-    from airflow_client.model.tag import Tag
-    from airflow_client.model.time_delta import TimeDelta
+    from airflow_client.client.model.dag import DAG
+    from airflow_client.client.model.dag_detail_all_of import DAGDetailAllOf
+    from airflow_client.client.model.schedule_interval import ScheduleInterval
+    from airflow_client.client.model.tag import Tag
+    from airflow_client.client.model.time_delta import TimeDelta
     globals()['DAG'] = DAG
     globals()['DAGDetailAllOf'] = DAGDetailAllOf
     globals()['ScheduleInterval'] = ScheduleInterval
@@ -206,7 +206,7 @@ class DAGDetail(ModelComposed):
                                 through its discriminator because we passed in
                                 _visited_composed_classes = (Animal,)
             dag_id (str): The ID of the DAG.. [optional]  # noqa: E501
-            root_dag_id (str, none_type): If the DAG is SubDAG then it is the top level DAG identifier. Otherwise, nulll.. [optional]  # noqa: E501
+            root_dag_id (str, none_type): If the DAG is SubDAG then it is the top level DAG identifier. Otherwise, null.. [optional]  # noqa: E501
             is_paused (bool, none_type): Whether the DAG is paused.. [optional]  # noqa: E501
             is_subdag (bool): Whether the DAG is SubDAG.. [optional]  # noqa: E501
             fileloc (str): The absolute path to the file.. [optional]  # noqa: E501
diff --git a/airflow_client/model/dag_detail_all_of.py b/airflow_client/client/model/dag_detail_all_of.py
similarity index 99%
rename from airflow_client/model/dag_detail_all_of.py
rename to airflow_client/client/model/dag_detail_all_of.py
index 80ff926..7a54bd7 100644
--- a/airflow_client/model/dag_detail_all_of.py
+++ b/airflow_client/client/model/dag_detail_all_of.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.time_delta import TimeDelta
+    from airflow_client.client.model.time_delta import TimeDelta
     globals()['TimeDelta'] = TimeDelta
 
 
diff --git a/airflow_client/model/dag_run.py b/airflow_client/client/model/dag_run.py
similarity index 99%
rename from airflow_client/model/dag_run.py
rename to airflow_client/client/model/dag_run.py
index 1c4f885..6c4c57a 100644
--- a/airflow_client/model/dag_run.py
+++ b/airflow_client/client/model/dag_run.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.dag_state import DagState
+    from airflow_client.client.model.dag_state import DagState
     globals()['DagState'] = DagState
 
 
diff --git a/airflow_client/model/dag_run_collection.py b/airflow_client/client/model/dag_run_collection.py
similarity index 98%
rename from airflow_client/model/dag_run_collection.py
rename to airflow_client/client/model/dag_run_collection.py
index a55dbf9..6424bb8 100644
--- a/airflow_client/model/dag_run_collection.py
+++ b/airflow_client/client/model/dag_run_collection.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,9 +45,9 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.collection_info import CollectionInfo
-    from airflow_client.model.dag_run import DAGRun
-    from airflow_client.model.dag_run_collection_all_of import DAGRunCollectionAllOf
+    from airflow_client.client.model.collection_info import CollectionInfo
+    from airflow_client.client.model.dag_run import DAGRun
+    from airflow_client.client.model.dag_run_collection_all_of import DAGRunCollectionAllOf
     globals()['CollectionInfo'] = CollectionInfo
     globals()['DAGRun'] = DAGRun
     globals()['DAGRunCollectionAllOf'] = DAGRunCollectionAllOf
diff --git a/airflow_client/model/dag_run_collection_all_of.py b/airflow_client/client/model/dag_run_collection_all_of.py
similarity index 99%
rename from airflow_client/model/dag_run_collection_all_of.py
rename to airflow_client/client/model/dag_run_collection_all_of.py
index af2129d..13a285c 100644
--- a/airflow_client/model/dag_run_collection_all_of.py
+++ b/airflow_client/client/model/dag_run_collection_all_of.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.dag_run import DAGRun
+    from airflow_client.client.model.dag_run import DAGRun
     globals()['DAGRun'] = DAGRun
 
 
diff --git a/airflow_client/model/dag_state.py b/airflow_client/client/model/dag_state.py
similarity index 99%
rename from airflow_client/model/dag_state.py
rename to airflow_client/client/model/dag_state.py
index 598383a..8254c03 100644
--- a/airflow_client/model/dag_state.py
+++ b/airflow_client/client/model/dag_state.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -154,6 +154,8 @@ class DagState(ModelSimple):
                                 through its discriminator because we passed in
                                 _visited_composed_classes = (Animal,)
         """
+        # required up here when default value is not given
+        _path_to_item = kwargs.pop('_path_to_item', ())
 
         if 'value' in kwargs:
             value = kwargs.pop('value')
@@ -169,7 +171,6 @@ class DagState(ModelSimple):
 
         _check_type = kwargs.pop('_check_type', True)
         _spec_property_naming = kwargs.pop('_spec_property_naming', False)
-        _path_to_item = kwargs.pop('_path_to_item', ())
         _configuration = kwargs.pop('_configuration', None)
         _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
 
diff --git a/airflow_client/model/error.py b/airflow_client/client/model/error.py
similarity index 99%
rename from airflow_client/model/error.py
rename to airflow_client/client/model/error.py
index a3fdcfe..9abdfce 100644
--- a/airflow_client/model/error.py
+++ b/airflow_client/client/model/error.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/event_log.py b/airflow_client/client/model/event_log.py
similarity index 99%
rename from airflow_client/model/event_log.py
rename to airflow_client/client/model/event_log.py
index 5105f3e..55cd0a8 100644
--- a/airflow_client/model/event_log.py
+++ b/airflow_client/client/model/event_log.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/event_log_collection.py b/airflow_client/client/model/event_log_collection.py
similarity index 98%
rename from airflow_client/model/event_log_collection.py
rename to airflow_client/client/model/event_log_collection.py
index 2df10d7..578a0d0 100644
--- a/airflow_client/model/event_log_collection.py
+++ b/airflow_client/client/model/event_log_collection.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,9 +45,9 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.collection_info import CollectionInfo
-    from airflow_client.model.event_log import EventLog
-    from airflow_client.model.event_log_collection_all_of import EventLogCollectionAllOf
+    from airflow_client.client.model.collection_info import CollectionInfo
+    from airflow_client.client.model.event_log import EventLog
+    from airflow_client.client.model.event_log_collection_all_of import EventLogCollectionAllOf
     globals()['CollectionInfo'] = CollectionInfo
     globals()['EventLog'] = EventLog
     globals()['EventLogCollectionAllOf'] = EventLogCollectionAllOf
diff --git a/airflow_client/model/event_log_collection_all_of.py b/airflow_client/client/model/event_log_collection_all_of.py
similarity index 99%
rename from airflow_client/model/event_log_collection_all_of.py
rename to airflow_client/client/model/event_log_collection_all_of.py
index 84c4250..3f26d73 100644
--- a/airflow_client/model/event_log_collection_all_of.py
+++ b/airflow_client/client/model/event_log_collection_all_of.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.event_log import EventLog
+    from airflow_client.client.model.event_log import EventLog
     globals()['EventLog'] = EventLog
 
 
diff --git a/airflow_client/model/extra_link.py b/airflow_client/client/model/extra_link.py
similarity index 99%
rename from airflow_client/model/extra_link.py
rename to airflow_client/client/model/extra_link.py
index 65dd696..9f873fc 100644
--- a/airflow_client/model/extra_link.py
+++ b/airflow_client/client/model/extra_link.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.class_reference import ClassReference
+    from airflow_client.client.model.class_reference import ClassReference
     globals()['ClassReference'] = ClassReference
 
 
diff --git a/airflow_client/model/extra_link_collection.py b/airflow_client/client/model/extra_link_collection.py
similarity index 99%
rename from airflow_client/model/extra_link_collection.py
rename to airflow_client/client/model/extra_link_collection.py
index bdaec02..fefec74 100644
--- a/airflow_client/model/extra_link_collection.py
+++ b/airflow_client/client/model/extra_link_collection.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.extra_link import ExtraLink
+    from airflow_client.client.model.extra_link import ExtraLink
     globals()['ExtraLink'] = ExtraLink
 
 
diff --git a/airflow_client/model/health_info.py b/airflow_client/client/model/health_info.py
similarity index 98%
rename from airflow_client/model/health_info.py
rename to airflow_client/client/model/health_info.py
index fbb18ab..092c602 100644
--- a/airflow_client/model/health_info.py
+++ b/airflow_client/client/model/health_info.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,8 +45,8 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.metadatabase_status import MetadatabaseStatus
-    from airflow_client.model.scheduler_status import SchedulerStatus
+    from airflow_client.client.model.metadatabase_status import MetadatabaseStatus
+    from airflow_client.client.model.scheduler_status import SchedulerStatus
     globals()['MetadatabaseStatus'] = MetadatabaseStatus
     globals()['SchedulerStatus'] = SchedulerStatus
 
diff --git a/airflow_client/model/health_status.py b/airflow_client/client/model/health_status.py
similarity index 99%
rename from airflow_client/model/health_status.py
rename to airflow_client/client/model/health_status.py
index 67e38ef..88e6461 100644
--- a/airflow_client/model/health_status.py
+++ b/airflow_client/client/model/health_status.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -153,6 +153,8 @@ class HealthStatus(ModelSimple):
                                 through its discriminator because we passed in
                                 _visited_composed_classes = (Animal,)
         """
+        # required up here when default value is not given
+        _path_to_item = kwargs.pop('_path_to_item', ())
 
         if 'value' in kwargs:
             value = kwargs.pop('value')
@@ -168,7 +170,6 @@ class HealthStatus(ModelSimple):
 
         _check_type = kwargs.pop('_check_type', True)
         _spec_property_naming = kwargs.pop('_spec_property_naming', False)
-        _path_to_item = kwargs.pop('_path_to_item', ())
         _configuration = kwargs.pop('_configuration', None)
         _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
 
diff --git a/airflow_client/model/import_error.py b/airflow_client/client/model/import_error.py
similarity index 99%
rename from airflow_client/model/import_error.py
rename to airflow_client/client/model/import_error.py
index 417fc44..afa1207 100644
--- a/airflow_client/model/import_error.py
+++ b/airflow_client/client/model/import_error.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/import_error_collection.py b/airflow_client/client/model/import_error_collection.py
similarity index 98%
rename from airflow_client/model/import_error_collection.py
rename to airflow_client/client/model/import_error_collection.py
index c577eac..ccf5904 100644
--- a/airflow_client/model/import_error_collection.py
+++ b/airflow_client/client/model/import_error_collection.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,9 +45,9 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.collection_info import CollectionInfo
-    from airflow_client.model.import_error import ImportError
-    from airflow_client.model.import_error_collection_all_of import ImportErrorCollectionAllOf
+    from airflow_client.client.model.collection_info import CollectionInfo
+    from airflow_client.client.model.import_error import ImportError
+    from airflow_client.client.model.import_error_collection_all_of import ImportErrorCollectionAllOf
     globals()['CollectionInfo'] = CollectionInfo
     globals()['ImportError'] = ImportError
     globals()['ImportErrorCollectionAllOf'] = ImportErrorCollectionAllOf
diff --git a/airflow_client/model/import_error_collection_all_of.py b/airflow_client/client/model/import_error_collection_all_of.py
similarity index 99%
rename from airflow_client/model/import_error_collection_all_of.py
rename to airflow_client/client/model/import_error_collection_all_of.py
index 40708cb..2575bb2 100644
--- a/airflow_client/model/import_error_collection_all_of.py
+++ b/airflow_client/client/model/import_error_collection_all_of.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.import_error import ImportError
+    from airflow_client.client.model.import_error import ImportError
     globals()['ImportError'] = ImportError
 
 
diff --git a/airflow_client/model/inline_response200.py b/airflow_client/client/model/inline_response200.py
similarity index 99%
rename from airflow_client/model/inline_response200.py
rename to airflow_client/client/model/inline_response200.py
index a578b4c..e7f2fcb 100644
--- a/airflow_client/model/inline_response200.py
+++ b/airflow_client/client/model/inline_response200.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/inline_response2001.py b/airflow_client/client/model/inline_response2001.py
similarity index 99%
rename from airflow_client/model/inline_response2001.py
rename to airflow_client/client/model/inline_response2001.py
index 86770f7..91bc286 100644
--- a/airflow_client/model/inline_response2001.py
+++ b/airflow_client/client/model/inline_response2001.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/list_dag_runs_form.py b/airflow_client/client/model/list_dag_runs_form.py
similarity index 99%
rename from airflow_client/model/list_dag_runs_form.py
rename to airflow_client/client/model/list_dag_runs_form.py
index 9865abd..732a9df 100644
--- a/airflow_client/model/list_dag_runs_form.py
+++ b/airflow_client/client/model/list_dag_runs_form.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/list_task_instance_form.py b/airflow_client/client/model/list_task_instance_form.py
similarity index 99%
rename from airflow_client/model/list_task_instance_form.py
rename to airflow_client/client/model/list_task_instance_form.py
index ac7f89f..06ec5da 100644
--- a/airflow_client/model/list_task_instance_form.py
+++ b/airflow_client/client/model/list_task_instance_form.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/metadatabase_status.py b/airflow_client/client/model/metadatabase_status.py
similarity index 99%
rename from airflow_client/model/metadatabase_status.py
rename to airflow_client/client/model/metadatabase_status.py
index f353978..f81f200 100644
--- a/airflow_client/model/metadatabase_status.py
+++ b/airflow_client/client/model/metadatabase_status.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.health_status import HealthStatus
+    from airflow_client.client.model.health_status import HealthStatus
     globals()['HealthStatus'] = HealthStatus
 
 
diff --git a/airflow_client/model/plugin_collection.py b/airflow_client/client/model/plugin_collection.py
similarity index 98%
rename from airflow_client/model/plugin_collection.py
rename to airflow_client/client/model/plugin_collection.py
index c17e4e2..b0084af 100644
--- a/airflow_client/model/plugin_collection.py
+++ b/airflow_client/client/model/plugin_collection.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,9 +45,9 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.collection_info import CollectionInfo
-    from airflow_client.model.plugin_collection_all_of import PluginCollectionAllOf
-    from airflow_client.model.plugin_collection_item import PluginCollectionItem
+    from airflow_client.client.model.collection_info import CollectionInfo
+    from airflow_client.client.model.plugin_collection_all_of import PluginCollectionAllOf
+    from airflow_client.client.model.plugin_collection_item import PluginCollectionItem
     globals()['CollectionInfo'] = CollectionInfo
     globals()['PluginCollectionAllOf'] = PluginCollectionAllOf
     globals()['PluginCollectionItem'] = PluginCollectionItem
diff --git a/airflow_client/model/plugin_collection_all_of.py b/airflow_client/client/model/plugin_collection_all_of.py
similarity index 99%
rename from airflow_client/model/plugin_collection_all_of.py
rename to airflow_client/client/model/plugin_collection_all_of.py
index faecc3c..4d87b63 100644
--- a/airflow_client/model/plugin_collection_all_of.py
+++ b/airflow_client/client/model/plugin_collection_all_of.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.plugin_collection_item import PluginCollectionItem
+    from airflow_client.client.model.plugin_collection_item import PluginCollectionItem
     globals()['PluginCollectionItem'] = PluginCollectionItem
 
 
diff --git a/airflow_client/model/plugin_collection_item.py b/airflow_client/client/model/plugin_collection_item.py
similarity index 99%
rename from airflow_client/model/plugin_collection_item.py
rename to airflow_client/client/model/plugin_collection_item.py
index d59da98..7b058fc 100644
--- a/airflow_client/model/plugin_collection_item.py
+++ b/airflow_client/client/model/plugin_collection_item.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/pool.py b/airflow_client/client/model/pool.py
similarity index 99%
rename from airflow_client/model/pool.py
rename to airflow_client/client/model/pool.py
index e9cf7dc..56d85da 100644
--- a/airflow_client/model/pool.py
+++ b/airflow_client/client/model/pool.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/pool_collection.py b/airflow_client/client/model/pool_collection.py
similarity index 98%
rename from airflow_client/model/pool_collection.py
rename to airflow_client/client/model/pool_collection.py
index b7f3ceb..2120150 100644
--- a/airflow_client/model/pool_collection.py
+++ b/airflow_client/client/model/pool_collection.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,9 +45,9 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.collection_info import CollectionInfo
-    from airflow_client.model.pool import Pool
-    from airflow_client.model.pool_collection_all_of import PoolCollectionAllOf
+    from airflow_client.client.model.collection_info import CollectionInfo
+    from airflow_client.client.model.pool import Pool
+    from airflow_client.client.model.pool_collection_all_of import PoolCollectionAllOf
     globals()['CollectionInfo'] = CollectionInfo
     globals()['Pool'] = Pool
     globals()['PoolCollectionAllOf'] = PoolCollectionAllOf
diff --git a/airflow_client/model/pool_collection_all_of.py b/airflow_client/client/model/pool_collection_all_of.py
similarity index 99%
rename from airflow_client/model/pool_collection_all_of.py
rename to airflow_client/client/model/pool_collection_all_of.py
index 18ab335..e85aa71 100644
--- a/airflow_client/model/pool_collection_all_of.py
+++ b/airflow_client/client/model/pool_collection_all_of.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.pool import Pool
+    from airflow_client.client.model.pool import Pool
     globals()['Pool'] = Pool
 
 
diff --git a/airflow_client/model/relative_delta.py b/airflow_client/client/model/relative_delta.py
similarity index 99%
rename from airflow_client/model/relative_delta.py
rename to airflow_client/client/model/relative_delta.py
index bdbc16f..76d3432 100644
--- a/airflow_client/model/relative_delta.py
+++ b/airflow_client/client/model/relative_delta.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/resource.py b/airflow_client/client/model/resource.py
similarity index 99%
rename from airflow_client/model/resource.py
rename to airflow_client/client/model/resource.py
index 7038500..b1cf1ba 100644
--- a/airflow_client/model/resource.py
+++ b/airflow_client/client/model/resource.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/role.py b/airflow_client/client/model/role.py
similarity index 99%
rename from airflow_client/model/role.py
rename to airflow_client/client/model/role.py
index 5ef527b..ab06663 100644
--- a/airflow_client/model/role.py
+++ b/airflow_client/client/model/role.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.action_resource import ActionResource
+    from airflow_client.client.model.action_resource import ActionResource
     globals()['ActionResource'] = ActionResource
 
 
diff --git a/airflow_client/model/role_collection.py b/airflow_client/client/model/role_collection.py
similarity index 98%
rename from airflow_client/model/role_collection.py
rename to airflow_client/client/model/role_collection.py
index 8d7ef5f..b6a2816 100644
--- a/airflow_client/model/role_collection.py
+++ b/airflow_client/client/model/role_collection.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,9 +45,9 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.collection_info import CollectionInfo
-    from airflow_client.model.role import Role
-    from airflow_client.model.role_collection_all_of import RoleCollectionAllOf
+    from airflow_client.client.model.collection_info import CollectionInfo
+    from airflow_client.client.model.role import Role
+    from airflow_client.client.model.role_collection_all_of import RoleCollectionAllOf
     globals()['CollectionInfo'] = CollectionInfo
     globals()['Role'] = Role
     globals()['RoleCollectionAllOf'] = RoleCollectionAllOf
diff --git a/airflow_client/model/role_collection_all_of.py b/airflow_client/client/model/role_collection_all_of.py
similarity index 99%
rename from airflow_client/model/role_collection_all_of.py
rename to airflow_client/client/model/role_collection_all_of.py
index e2fcf11..e27976f 100644
--- a/airflow_client/model/role_collection_all_of.py
+++ b/airflow_client/client/model/role_collection_all_of.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.role import Role
+    from airflow_client.client.model.role import Role
     globals()['Role'] = Role
 
 
diff --git a/airflow_client/model/schedule_interval.py b/airflow_client/client/model/schedule_interval.py
similarity index 98%
rename from airflow_client/model/schedule_interval.py
rename to airflow_client/client/model/schedule_interval.py
index 7693f40..63282a9 100644
--- a/airflow_client/model/schedule_interval.py
+++ b/airflow_client/client/model/schedule_interval.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,9 +45,9 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.cron_expression import CronExpression
-    from airflow_client.model.relative_delta import RelativeDelta
-    from airflow_client.model.time_delta import TimeDelta
+    from airflow_client.client.model.cron_expression import CronExpression
+    from airflow_client.client.model.relative_delta import RelativeDelta
+    from airflow_client.client.model.time_delta import TimeDelta
     globals()['CronExpression'] = CronExpression
     globals()['RelativeDelta'] = RelativeDelta
     globals()['TimeDelta'] = TimeDelta
diff --git a/airflow_client/model/scheduler_status.py b/airflow_client/client/model/scheduler_status.py
similarity index 99%
rename from airflow_client/model/scheduler_status.py
rename to airflow_client/client/model/scheduler_status.py
index 8cf5db3..42513d7 100644
--- a/airflow_client/model/scheduler_status.py
+++ b/airflow_client/client/model/scheduler_status.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.health_status import HealthStatus
+    from airflow_client.client.model.health_status import HealthStatus
     globals()['HealthStatus'] = HealthStatus
 
 
diff --git a/airflow_client/model/sla_miss.py b/airflow_client/client/model/sla_miss.py
similarity index 99%
rename from airflow_client/model/sla_miss.py
rename to airflow_client/client/model/sla_miss.py
index 6b6d36c..f3cfa9f 100644
--- a/airflow_client/model/sla_miss.py
+++ b/airflow_client/client/model/sla_miss.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/tag.py b/airflow_client/client/model/tag.py
similarity index 99%
copy from airflow_client/model/tag.py
copy to airflow_client/client/model/tag.py
index d2ae0a6..2ab8b76 100644
--- a/airflow_client/model/tag.py
+++ b/airflow_client/client/model/tag.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/task.py b/airflow_client/client/model/task.py
similarity index 97%
rename from airflow_client/model/task.py
rename to airflow_client/client/model/task.py
index a540125..918934a 100644
--- a/airflow_client/model/task.py
+++ b/airflow_client/client/model/task.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,13 +45,13 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.class_reference import ClassReference
-    from airflow_client.model.color import Color
-    from airflow_client.model.dag import DAG
-    from airflow_client.model.task_extra_links import TaskExtraLinks
-    from airflow_client.model.time_delta import TimeDelta
-    from airflow_client.model.trigger_rule import TriggerRule
-    from airflow_client.model.weight_rule import WeightRule
+    from airflow_client.client.model.class_reference import ClassReference
+    from airflow_client.client.model.color import Color
+    from airflow_client.client.model.dag import DAG
+    from airflow_client.client.model.task_extra_links import TaskExtraLinks
+    from airflow_client.client.model.time_delta import TimeDelta
+    from airflow_client.client.model.trigger_rule import TriggerRule
+    from airflow_client.client.model.weight_rule import WeightRule
     globals()['ClassReference'] = ClassReference
     globals()['Color'] = Color
     globals()['DAG'] = DAG
diff --git a/airflow_client/model/task_collection.py b/airflow_client/client/model/task_collection.py
similarity index 99%
rename from airflow_client/model/task_collection.py
rename to airflow_client/client/model/task_collection.py
index 65e871d..c38de76 100644
--- a/airflow_client/model/task_collection.py
+++ b/airflow_client/client/model/task_collection.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.task import Task
+    from airflow_client.client.model.task import Task
     globals()['Task'] = Task
 
 
diff --git a/airflow_client/model/task_extra_links.py b/airflow_client/client/model/task_extra_links.py
similarity index 99%
rename from airflow_client/model/task_extra_links.py
rename to airflow_client/client/model/task_extra_links.py
index 2b2dbe6..85fe792 100644
--- a/airflow_client/model/task_extra_links.py
+++ b/airflow_client/client/model/task_extra_links.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.class_reference import ClassReference
+    from airflow_client.client.model.class_reference import ClassReference
     globals()['ClassReference'] = ClassReference
 
 
diff --git a/airflow_client/model/task_instance.py b/airflow_client/client/model/task_instance.py
similarity index 98%
rename from airflow_client/model/task_instance.py
rename to airflow_client/client/model/task_instance.py
index a6e158c..b28a5a4 100644
--- a/airflow_client/model/task_instance.py
+++ b/airflow_client/client/model/task_instance.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,8 +45,8 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.sla_miss import SLAMiss
-    from airflow_client.model.task_state import TaskState
+    from airflow_client.client.model.sla_miss import SLAMiss
+    from airflow_client.client.model.task_state import TaskState
     globals()['SLAMiss'] = SLAMiss
     globals()['TaskState'] = TaskState
 
diff --git a/airflow_client/model/task_instance_collection.py b/airflow_client/client/model/task_instance_collection.py
similarity index 98%
rename from airflow_client/model/task_instance_collection.py
rename to airflow_client/client/model/task_instance_collection.py
index adcd5b7..92df4a2 100644
--- a/airflow_client/model/task_instance_collection.py
+++ b/airflow_client/client/model/task_instance_collection.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,9 +45,9 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.collection_info import CollectionInfo
-    from airflow_client.model.task_instance import TaskInstance
-    from airflow_client.model.task_instance_collection_all_of import TaskInstanceCollectionAllOf
+    from airflow_client.client.model.collection_info import CollectionInfo
+    from airflow_client.client.model.task_instance import TaskInstance
+    from airflow_client.client.model.task_instance_collection_all_of import TaskInstanceCollectionAllOf
     globals()['CollectionInfo'] = CollectionInfo
     globals()['TaskInstance'] = TaskInstance
     globals()['TaskInstanceCollectionAllOf'] = TaskInstanceCollectionAllOf
diff --git a/airflow_client/model/task_instance_collection_all_of.py b/airflow_client/client/model/task_instance_collection_all_of.py
similarity index 99%
rename from airflow_client/model/task_instance_collection_all_of.py
rename to airflow_client/client/model/task_instance_collection_all_of.py
index 632e693..b523642 100644
--- a/airflow_client/model/task_instance_collection_all_of.py
+++ b/airflow_client/client/model/task_instance_collection_all_of.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.task_instance import TaskInstance
+    from airflow_client.client.model.task_instance import TaskInstance
     globals()['TaskInstance'] = TaskInstance
 
 
diff --git a/airflow_client/model/task_instance_reference.py b/airflow_client/client/model/task_instance_reference.py
similarity index 99%
rename from airflow_client/model/task_instance_reference.py
rename to airflow_client/client/model/task_instance_reference.py
index 7602d47..67c9407 100644
--- a/airflow_client/model/task_instance_reference.py
+++ b/airflow_client/client/model/task_instance_reference.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/task_instance_reference_collection.py b/airflow_client/client/model/task_instance_reference_collection.py
similarity index 99%
rename from airflow_client/model/task_instance_reference_collection.py
rename to airflow_client/client/model/task_instance_reference_collection.py
index 8b24d74..ad41fe2 100644
--- a/airflow_client/model/task_instance_reference_collection.py
+++ b/airflow_client/client/model/task_instance_reference_collection.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.task_instance_reference import TaskInstanceReference
+    from airflow_client.client.model.task_instance_reference import TaskInstanceReference
     globals()['TaskInstanceReference'] = TaskInstanceReference
 
 
diff --git a/airflow_client/model/task_state.py b/airflow_client/client/model/task_state.py
similarity index 99%
rename from airflow_client/model/task_state.py
rename to airflow_client/client/model/task_state.py
index 3f133a8..03683c6 100644
--- a/airflow_client/model/task_state.py
+++ b/airflow_client/client/model/task_state.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -162,6 +162,8 @@ class TaskState(ModelSimple):
                                 through its discriminator because we passed in
                                 _visited_composed_classes = (Animal,)
         """
+        # required up here when default value is not given
+        _path_to_item = kwargs.pop('_path_to_item', ())
 
         if 'value' in kwargs:
             value = kwargs.pop('value')
@@ -177,7 +179,6 @@ class TaskState(ModelSimple):
 
         _check_type = kwargs.pop('_check_type', True)
         _spec_property_naming = kwargs.pop('_spec_property_naming', False)
-        _path_to_item = kwargs.pop('_path_to_item', ())
         _configuration = kwargs.pop('_configuration', None)
         _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
 
diff --git a/airflow_client/model/time_delta.py b/airflow_client/client/model/time_delta.py
similarity index 99%
rename from airflow_client/model/time_delta.py
rename to airflow_client/client/model/time_delta.py
index c8e7c12..17072f1 100644
--- a/airflow_client/model/time_delta.py
+++ b/airflow_client/client/model/time_delta.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/trigger_rule.py b/airflow_client/client/model/trigger_rule.py
similarity index 99%
rename from airflow_client/model/trigger_rule.py
rename to airflow_client/client/model/trigger_rule.py
index f1c165f..a2c569b 100644
--- a/airflow_client/model/trigger_rule.py
+++ b/airflow_client/client/model/trigger_rule.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -160,6 +160,8 @@ class TriggerRule(ModelSimple):
                                 through its discriminator because we passed in
                                 _visited_composed_classes = (Animal,)
         """
+        # required up here when default value is not given
+        _path_to_item = kwargs.pop('_path_to_item', ())
 
         if 'value' in kwargs:
             value = kwargs.pop('value')
@@ -175,7 +177,6 @@ class TriggerRule(ModelSimple):
 
         _check_type = kwargs.pop('_check_type', True)
         _spec_property_naming = kwargs.pop('_spec_property_naming', False)
-        _path_to_item = kwargs.pop('_path_to_item', ())
         _configuration = kwargs.pop('_configuration', None)
         _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
 
diff --git a/airflow_client/model/update_task_instances_state.py b/airflow_client/client/model/update_task_instances_state.py
similarity index 99%
rename from airflow_client/model/update_task_instances_state.py
rename to airflow_client/client/model/update_task_instances_state.py
index 97cd862..a8c5847 100644
--- a/airflow_client/model/update_task_instances_state.py
+++ b/airflow_client/client/model/update_task_instances_state.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/connection.py b/airflow_client/client/model/user.py
similarity index 85%
rename from airflow_client/model/connection.py
rename to airflow_client/client/model/user.py
index 0aab921..23f6711 100644
--- a/airflow_client/model/connection.py
+++ b/airflow_client/client/model/user.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,13 +45,15 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.connection_all_of import ConnectionAllOf
-    from airflow_client.model.connection_collection_item import ConnectionCollectionItem
-    globals()['ConnectionAllOf'] = ConnectionAllOf
-    globals()['ConnectionCollectionItem'] = ConnectionCollectionItem
+    from airflow_client.client.model.user_all_of import UserAllOf
+    from airflow_client.client.model.user_collection_item import UserCollectionItem
+    from airflow_client.client.model.user_collection_item_roles import UserCollectionItemRoles
+    globals()['UserAllOf'] = UserAllOf
+    globals()['UserCollectionItem'] = UserCollectionItem
+    globals()['UserCollectionItemRoles'] = UserCollectionItemRoles
 
 
-class Connection(ModelComposed):
+class User(ModelComposed):
     """NOTE: This class is auto generated by OpenAPI Generator.
     Ref: https://openapi-generator.tech
 
@@ -104,14 +106,19 @@ class Connection(ModelComposed):
         """
         lazy_import()
         return {
-            'connection_id': (str,),  # noqa: E501
-            'conn_type': (str,),  # noqa: E501
-            'host': (str, none_type,),  # noqa: E501
-            'login': (str, none_type,),  # noqa: E501
-            'schema': (str, none_type,),  # noqa: E501
-            'port': (int, none_type,),  # noqa: E501
+            'user_id': (int,),  # noqa: E501
+            'first_name': (str,),  # noqa: E501
+            'last_name': (str,),  # noqa: E501
+            'username': (str,),  # noqa: E501
+            'email': (str,),  # noqa: E501
+            'active': (bool, none_type,),  # noqa: E501
+            'last_login': (str, none_type,),  # noqa: E501
+            'login_count': (int, none_type,),  # noqa: E501
+            'failed_login_count': (int, none_type,),  # noqa: E501
+            'roles': ([UserCollectionItemRoles],),  # noqa: E501
+            'created_on': (str, none_type,),  # noqa: E501
+            'changed_on': (str, none_type,),  # noqa: E501
             'password': (str,),  # noqa: E501
-            'extra': (str, none_type,),  # noqa: E501
         }
 
     @cached_property
@@ -120,14 +127,19 @@ class Connection(ModelComposed):
 
 
     attribute_map = {
-        'connection_id': 'connection_id',  # noqa: E501
-        'conn_type': 'conn_type',  # noqa: E501
-        'host': 'host',  # noqa: E501
-        'login': 'login',  # noqa: E501
-        'schema': 'schema',  # noqa: E501
-        'port': 'port',  # noqa: E501
+        'user_id': 'user_id',  # noqa: E501
+        'first_name': 'first_name',  # noqa: E501
+        'last_name': 'last_name',  # noqa: E501
+        'username': 'username',  # noqa: E501
+        'email': 'email',  # noqa: E501
+        'active': 'active',  # noqa: E501
+        'last_login': 'last_login',  # noqa: E501
+        'login_count': 'login_count',  # noqa: E501
+        'failed_login_count': 'failed_login_count',  # noqa: E501
+        'roles': 'roles',  # noqa: E501
+        'created_on': 'created_on',  # noqa: E501
+        'changed_on': 'changed_on',  # noqa: E501
         'password': 'password',  # noqa: E501
-        'extra': 'extra',  # noqa: E501
     }
 
     required_properties = set([
@@ -144,7 +156,7 @@ class Connection(ModelComposed):
 
     @convert_js_args_to_python_args
     def __init__(self, *args, **kwargs):  # noqa: E501
-        """Connection - a model defined in OpenAPI
+        """User - a model defined in OpenAPI
 
         Keyword Args:
             _check_type (bool): if True, values for parameters in openapi_types
@@ -177,14 +189,19 @@ class Connection(ModelComposed):
                                 Animal class but this time we won't travel
                                 through its discriminator because we passed in
                                 _visited_composed_classes = (Animal,)
-            connection_id (str): The connection ID.. [optional]  # noqa: E501
-            conn_type (str): The connection type.. [optional]  # noqa: E501
-            host (str, none_type): Host of the connection.. [optional]  # noqa: E501
-            login (str, none_type): Login of the connection.. [optional]  # noqa: E501
-            schema (str, none_type): Schema of the connection.. [optional]  # noqa: E501
-            port (int, none_type): Port of the connection.. [optional]  # noqa: E501
-            password (str): Paasword of the connection.. [optional]  # noqa: E501
-            extra (str, none_type): Other values that cannot be put into another field, e.g. RSA keys.. [optional]  # noqa: E501
+            user_id (int): The user id. [optional]  # noqa: E501
+            first_name (str): The user firstname. [optional]  # noqa: E501
+            last_name (str): The user lastname. [optional]  # noqa: E501
+            username (str): The username. [optional]  # noqa: E501
+            email (str): The user's email. [optional]  # noqa: E501
+            active (bool, none_type): Whether the user is active. [optional]  # noqa: E501
+            last_login (str, none_type): The last user login. [optional]  # noqa: E501
+            login_count (int, none_type): The login count. [optional]  # noqa: E501
+            failed_login_count (int, none_type): The number of times the login failed. [optional]  # noqa: E501
+            roles ([UserCollectionItemRoles]): User roles. [optional]  # noqa: E501
+            created_on (str, none_type): The date user was created. [optional]  # noqa: E501
+            changed_on (str, none_type): The date user was changed. [optional]  # noqa: E501
+            password (str): [optional]  # noqa: E501
         """
 
         _check_type = kwargs.pop('_check_type', True)
@@ -254,8 +271,8 @@ class Connection(ModelComposed):
           'anyOf': [
           ],
           'allOf': [
-              ConnectionAllOf,
-              ConnectionCollectionItem,
+              UserAllOf,
+              UserCollectionItem,
           ],
           'oneOf': [
           ],
diff --git a/airflow_client/model/x_com_all_of.py b/airflow_client/client/model/user_all_of.py
similarity index 98%
copy from airflow_client/model/x_com_all_of.py
copy to airflow_client/client/model/user_all_of.py
index ae0c4f9..a970da9 100644
--- a/airflow_client/model/x_com_all_of.py
+++ b/airflow_client/client/model/user_all_of.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 
-class XComAllOf(ModelNormal):
+class UserAllOf(ModelNormal):
     """NOTE: This class is auto generated by OpenAPI Generator.
     Ref: https://openapi-generator.tech
 
@@ -90,7 +90,7 @@ class XComAllOf(ModelNormal):
                 and the value is attribute type.
         """
         return {
-            'value': (str,),  # noqa: E501
+            'password': (str,),  # noqa: E501
         }
 
     @cached_property
@@ -99,7 +99,7 @@ class XComAllOf(ModelNormal):
 
 
     attribute_map = {
-        'value': 'value',  # noqa: E501
+        'password': 'password',  # noqa: E501
     }
 
     _composed_schemas = {}
@@ -115,7 +115,7 @@ class XComAllOf(ModelNormal):
 
     @convert_js_args_to_python_args
     def __init__(self, *args, **kwargs):  # noqa: E501
-        """XComAllOf - a model defined in OpenAPI
+        """UserAllOf - a model defined in OpenAPI
 
         Keyword Args:
             _check_type (bool): if True, values for parameters in openapi_types
@@ -148,7 +148,7 @@ class XComAllOf(ModelNormal):
                                 Animal class but this time we won't travel
                                 through its discriminator because we passed in
                                 _visited_composed_classes = (Animal,)
-            value (str): The value. [optional]  # noqa: E501
+            password (str): [optional]  # noqa: E501
         """
 
         _check_type = kwargs.pop('_check_type', True)
diff --git a/airflow_client/model/x_com_collection.py b/airflow_client/client/model/user_collection.py
similarity index 95%
copy from airflow_client/model/x_com_collection.py
copy to airflow_client/client/model/user_collection.py
index 756710a..8b845cd 100644
--- a/airflow_client/model/x_com_collection.py
+++ b/airflow_client/client/model/user_collection.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,15 +45,15 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.collection_info import CollectionInfo
-    from airflow_client.model.x_com_collection_all_of import XComCollectionAllOf
-    from airflow_client.model.x_com_collection_item import XComCollectionItem
+    from airflow_client.client.model.collection_info import CollectionInfo
+    from airflow_client.client.model.user_collection_all_of import UserCollectionAllOf
+    from airflow_client.client.model.user_collection_item import UserCollectionItem
     globals()['CollectionInfo'] = CollectionInfo
-    globals()['XComCollectionAllOf'] = XComCollectionAllOf
-    globals()['XComCollectionItem'] = XComCollectionItem
+    globals()['UserCollectionAllOf'] = UserCollectionAllOf
+    globals()['UserCollectionItem'] = UserCollectionItem
 
 
-class XComCollection(ModelComposed):
+class UserCollection(ModelComposed):
     """NOTE: This class is auto generated by OpenAPI Generator.
     Ref: https://openapi-generator.tech
 
@@ -106,7 +106,7 @@ class XComCollection(ModelComposed):
         """
         lazy_import()
         return {
-            'xcom_entries': ([XComCollectionItem],),  # noqa: E501
+            'users': ([UserCollectionItem],),  # noqa: E501
             'total_entries': (int,),  # noqa: E501
         }
 
@@ -116,7 +116,7 @@ class XComCollection(ModelComposed):
 
 
     attribute_map = {
-        'xcom_entries': 'xcom_entries',  # noqa: E501
+        'users': 'users',  # noqa: E501
         'total_entries': 'total_entries',  # noqa: E501
     }
 
@@ -134,7 +134,7 @@ class XComCollection(ModelComposed):
 
     @convert_js_args_to_python_args
     def __init__(self, *args, **kwargs):  # noqa: E501
-        """XComCollection - a model defined in OpenAPI
+        """UserCollection - a model defined in OpenAPI
 
         Keyword Args:
             _check_type (bool): if True, values for parameters in openapi_types
@@ -167,7 +167,7 @@ class XComCollection(ModelComposed):
                                 Animal class but this time we won't travel
                                 through its discriminator because we passed in
                                 _visited_composed_classes = (Animal,)
-            xcom_entries ([XComCollectionItem]): [optional]  # noqa: E501
+            users ([UserCollectionItem]): [optional]  # noqa: E501
             total_entries (int): Count of objects in the current result set.. [optional]  # noqa: E501
         """
 
@@ -239,7 +239,7 @@ class XComCollection(ModelComposed):
           ],
           'allOf': [
               CollectionInfo,
-              XComCollectionAllOf,
+              UserCollectionAllOf,
           ],
           'oneOf': [
           ],
diff --git a/airflow_client/model/config.py b/airflow_client/client/model/user_collection_all_of.py
similarity index 96%
rename from airflow_client/model/config.py
rename to airflow_client/client/model/user_collection_all_of.py
index ca99f6c..9b1079a 100644
--- a/airflow_client/model/config.py
+++ b/airflow_client/client/model/user_collection_all_of.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,11 +45,11 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.config_section import ConfigSection
-    globals()['ConfigSection'] = ConfigSection
+    from airflow_client.client.model.user_collection_item import UserCollectionItem
+    globals()['UserCollectionItem'] = UserCollectionItem
 
 
-class Config(ModelNormal):
+class UserCollectionAllOf(ModelNormal):
     """NOTE: This class is auto generated by OpenAPI Generator.
     Ref: https://openapi-generator.tech
 
@@ -95,7 +95,7 @@ class Config(ModelNormal):
         """
         lazy_import()
         return {
-            'sections': ([ConfigSection],),  # noqa: E501
+            'users': ([UserCollectionItem],),  # noqa: E501
         }
 
     @cached_property
@@ -104,7 +104,7 @@ class Config(ModelNormal):
 
 
     attribute_map = {
-        'sections': 'sections',  # noqa: E501
+        'users': 'users',  # noqa: E501
     }
 
     _composed_schemas = {}
@@ -120,7 +120,7 @@ class Config(ModelNormal):
 
     @convert_js_args_to_python_args
     def __init__(self, *args, **kwargs):  # noqa: E501
-        """Config - a model defined in OpenAPI
+        """UserCollectionAllOf - a model defined in OpenAPI
 
         Keyword Args:
             _check_type (bool): if True, values for parameters in openapi_types
@@ -153,7 +153,7 @@ class Config(ModelNormal):
                                 Animal class but this time we won't travel
                                 through its discriminator because we passed in
                                 _visited_composed_classes = (Animal,)
-            sections ([ConfigSection]): [optional]  # noqa: E501
+            users ([UserCollectionItem]): [optional]  # noqa: E501
         """
 
         _check_type = kwargs.pop('_check_type', True)
diff --git a/airflow_client/model/dag.py b/airflow_client/client/model/user_collection_item.py
similarity index 85%
rename from airflow_client/model/dag.py
rename to airflow_client/client/model/user_collection_item.py
index df4e7e2..0d33017 100644
--- a/airflow_client/model/dag.py
+++ b/airflow_client/client/model/user_collection_item.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,13 +45,11 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.schedule_interval import ScheduleInterval
-    from airflow_client.model.tag import Tag
-    globals()['ScheduleInterval'] = ScheduleInterval
-    globals()['Tag'] = Tag
+    from airflow_client.client.model.user_collection_item_roles import UserCollectionItemRoles
+    globals()['UserCollectionItemRoles'] = UserCollectionItemRoles
 
 
-class DAG(ModelNormal):
+class UserCollectionItem(ModelNormal):
     """NOTE: This class is auto generated by OpenAPI Generator.
     Ref: https://openapi-generator.tech
 
@@ -97,16 +95,18 @@ class DAG(ModelNormal):
         """
         lazy_import()
         return {
-            'dag_id': (str,),  # noqa: E501
-            'root_dag_id': (str, none_type,),  # noqa: E501
-            'is_paused': (bool, none_type,),  # noqa: E501
-            'is_subdag': (bool,),  # noqa: E501
-            'fileloc': (str,),  # noqa: E501
-            'file_token': (str,),  # noqa: E501
-            'owners': ([str],),  # noqa: E501
-            'description': (str, none_type,),  # noqa: E501
-            'schedule_interval': (ScheduleInterval,),  # noqa: E501
-            'tags': ([Tag], none_type,),  # noqa: E501
+            'user_id': (int,),  # noqa: E501
+            'first_name': (str,),  # noqa: E501
+            'last_name': (str,),  # noqa: E501
+            'username': (str,),  # noqa: E501
+            'email': (str,),  # noqa: E501
+            'active': (bool, none_type,),  # noqa: E501
+            'last_login': (str, none_type,),  # noqa: E501
+            'login_count': (int, none_type,),  # noqa: E501
+            'failed_login_count': (int, none_type,),  # noqa: E501
+            'roles': ([UserCollectionItemRoles],),  # noqa: E501
+            'created_on': (str, none_type,),  # noqa: E501
+            'changed_on': (str, none_type,),  # noqa: E501
         }
 
     @cached_property
@@ -115,16 +115,18 @@ class DAG(ModelNormal):
 
 
     attribute_map = {
-        'dag_id': 'dag_id',  # noqa: E501
-        'root_dag_id': 'root_dag_id',  # noqa: E501
-        'is_paused': 'is_paused',  # noqa: E501
-        'is_subdag': 'is_subdag',  # noqa: E501
-        'fileloc': 'fileloc',  # noqa: E501
-        'file_token': 'file_token',  # noqa: E501
-        'owners': 'owners',  # noqa: E501
-        'description': 'description',  # noqa: E501
-        'schedule_interval': 'schedule_interval',  # noqa: E501
-        'tags': 'tags',  # noqa: E501
+        'user_id': 'user_id',  # noqa: E501
+        'first_name': 'first_name',  # noqa: E501
+        'last_name': 'last_name',  # noqa: E501
+        'username': 'username',  # noqa: E501
+        'email': 'email',  # noqa: E501
+        'active': 'active',  # noqa: E501
+        'last_login': 'last_login',  # noqa: E501
+        'login_count': 'login_count',  # noqa: E501
+        'failed_login_count': 'failed_login_count',  # noqa: E501
+        'roles': 'roles',  # noqa: E501
+        'created_on': 'created_on',  # noqa: E501
+        'changed_on': 'changed_on',  # noqa: E501
     }
 
     _composed_schemas = {}
@@ -140,7 +142,7 @@ class DAG(ModelNormal):
 
     @convert_js_args_to_python_args
     def __init__(self, *args, **kwargs):  # noqa: E501
-        """DAG - a model defined in OpenAPI
+        """UserCollectionItem - a model defined in OpenAPI
 
         Keyword Args:
             _check_type (bool): if True, values for parameters in openapi_types
@@ -173,16 +175,18 @@ class DAG(ModelNormal):
                                 Animal class but this time we won't travel
                                 through its discriminator because we passed in
                                 _visited_composed_classes = (Animal,)
-            dag_id (str): The ID of the DAG.. [optional]  # noqa: E501
-            root_dag_id (str, none_type): If the DAG is SubDAG then it is the top level DAG identifier. Otherwise, nulll.. [optional]  # noqa: E501
-            is_paused (bool, none_type): Whether the DAG is paused.. [optional]  # noqa: E501
-            is_subdag (bool): Whether the DAG is SubDAG.. [optional]  # noqa: E501
-            fileloc (str): The absolute path to the file.. [optional]  # noqa: E501
-            file_token (str): The key containing the encrypted path to the file. Encryption and decryption take place only on the server. This prevents the client from reading an non-DAG file. This also ensures API extensibility, because the format of encrypted data may change. . [optional]  # noqa: E501
-            owners ([str]): [optional]  # noqa: E501
-            description (str, none_type): User-provided DAG description, which can consist of several sentences or paragraphs that describe DAG contents. . [optional]  # noqa: E501
-            schedule_interval (ScheduleInterval): [optional]  # noqa: E501
-            tags ([Tag], none_type): List of tags.. [optional]  # noqa: E501
+            user_id (int): The user id. [optional]  # noqa: E501
+            first_name (str): The user firstname. [optional]  # noqa: E501
+            last_name (str): The user lastname. [optional]  # noqa: E501
+            username (str): The username. [optional]  # noqa: E501
+            email (str): The user's email. [optional]  # noqa: E501
+            active (bool, none_type): Whether the user is active. [optional]  # noqa: E501
+            last_login (str, none_type): The last user login. [optional]  # noqa: E501
+            login_count (int, none_type): The login count. [optional]  # noqa: E501
+            failed_login_count (int, none_type): The number of times the login failed. [optional]  # noqa: E501
+            roles ([UserCollectionItemRoles]): User roles. [optional]  # noqa: E501
+            created_on (str, none_type): The date user was created. [optional]  # noqa: E501
+            changed_on (str, none_type): The date user was changed. [optional]  # noqa: E501
         """
 
         _check_type = kwargs.pop('_check_type', True)
diff --git a/airflow_client/model/tag.py b/airflow_client/client/model/user_collection_item_roles.py
similarity index 98%
rename from airflow_client/model/tag.py
rename to airflow_client/client/model/user_collection_item_roles.py
index d2ae0a6..af677ec 100644
--- a/airflow_client/model/tag.py
+++ b/airflow_client/client/model/user_collection_item_roles.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 
-class Tag(ModelNormal):
+class UserCollectionItemRoles(ModelNormal):
     """NOTE: This class is auto generated by OpenAPI Generator.
     Ref: https://openapi-generator.tech
 
@@ -77,7 +77,7 @@ class Tag(ModelNormal):
 
     additional_properties_type = None
 
-    _nullable = False
+    _nullable = True
 
     @cached_property
     def openapi_types():
@@ -115,7 +115,7 @@ class Tag(ModelNormal):
 
     @convert_js_args_to_python_args
     def __init__(self, *args, **kwargs):  # noqa: E501
-        """Tag - a model defined in OpenAPI
+        """UserCollectionItemRoles - a model defined in OpenAPI
 
         Keyword Args:
             _check_type (bool): if True, values for parameters in openapi_types
diff --git a/airflow_client/model/variable.py b/airflow_client/client/model/variable.py
similarity index 98%
rename from airflow_client/model/variable.py
rename to airflow_client/client/model/variable.py
index 337bce5..4ce8c22 100644
--- a/airflow_client/model/variable.py
+++ b/airflow_client/client/model/variable.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,8 +45,8 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.variable_all_of import VariableAllOf
-    from airflow_client.model.variable_collection_item import VariableCollectionItem
+    from airflow_client.client.model.variable_all_of import VariableAllOf
+    from airflow_client.client.model.variable_collection_item import VariableCollectionItem
     globals()['VariableAllOf'] = VariableAllOf
     globals()['VariableCollectionItem'] = VariableCollectionItem
 
diff --git a/airflow_client/model/variable_all_of.py b/airflow_client/client/model/variable_all_of.py
similarity index 99%
rename from airflow_client/model/variable_all_of.py
rename to airflow_client/client/model/variable_all_of.py
index e3ad97e..9f8547d 100644
--- a/airflow_client/model/variable_all_of.py
+++ b/airflow_client/client/model/variable_all_of.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/variable_collection.py b/airflow_client/client/model/variable_collection.py
similarity index 98%
rename from airflow_client/model/variable_collection.py
rename to airflow_client/client/model/variable_collection.py
index 13982bc..2fb6543 100644
--- a/airflow_client/model/variable_collection.py
+++ b/airflow_client/client/model/variable_collection.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,9 +45,9 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.collection_info import CollectionInfo
-    from airflow_client.model.variable_collection_all_of import VariableCollectionAllOf
-    from airflow_client.model.variable_collection_item import VariableCollectionItem
+    from airflow_client.client.model.collection_info import CollectionInfo
+    from airflow_client.client.model.variable_collection_all_of import VariableCollectionAllOf
+    from airflow_client.client.model.variable_collection_item import VariableCollectionItem
     globals()['CollectionInfo'] = CollectionInfo
     globals()['VariableCollectionAllOf'] = VariableCollectionAllOf
     globals()['VariableCollectionItem'] = VariableCollectionItem
diff --git a/airflow_client/model/variable_collection_all_of.py b/airflow_client/client/model/variable_collection_all_of.py
similarity index 99%
rename from airflow_client/model/variable_collection_all_of.py
rename to airflow_client/client/model/variable_collection_all_of.py
index 615b378..8b1199d 100644
--- a/airflow_client/model/variable_collection_all_of.py
+++ b/airflow_client/client/model/variable_collection_all_of.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.variable_collection_item import VariableCollectionItem
+    from airflow_client.client.model.variable_collection_item import VariableCollectionItem
     globals()['VariableCollectionItem'] = VariableCollectionItem
 
 
diff --git a/airflow_client/model/variable_collection_item.py b/airflow_client/client/model/variable_collection_item.py
similarity index 99%
rename from airflow_client/model/variable_collection_item.py
rename to airflow_client/client/model/variable_collection_item.py
index 4d5da55..3a62a8f 100644
--- a/airflow_client/model/variable_collection_item.py
+++ b/airflow_client/client/model/variable_collection_item.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/version_info.py b/airflow_client/client/model/version_info.py
similarity index 99%
rename from airflow_client/model/version_info.py
rename to airflow_client/client/model/version_info.py
index 324cc5f..1dcc18d 100644
--- a/airflow_client/model/version_info.py
+++ b/airflow_client/client/model/version_info.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/weight_rule.py b/airflow_client/client/model/weight_rule.py
similarity index 99%
rename from airflow_client/model/weight_rule.py
rename to airflow_client/client/model/weight_rule.py
index c13b3c2..30a6e63 100644
--- a/airflow_client/model/weight_rule.py
+++ b/airflow_client/client/model/weight_rule.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -154,6 +154,8 @@ class WeightRule(ModelSimple):
                                 through its discriminator because we passed in
                                 _visited_composed_classes = (Animal,)
         """
+        # required up here when default value is not given
+        _path_to_item = kwargs.pop('_path_to_item', ())
 
         if 'value' in kwargs:
             value = kwargs.pop('value')
@@ -169,7 +171,6 @@ class WeightRule(ModelSimple):
 
         _check_type = kwargs.pop('_check_type', True)
         _spec_property_naming = kwargs.pop('_spec_property_naming', False)
-        _path_to_item = kwargs.pop('_path_to_item', ())
         _configuration = kwargs.pop('_configuration', None)
         _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
 
diff --git a/airflow_client/model/x_com.py b/airflow_client/client/model/x_com.py
similarity index 98%
rename from airflow_client/model/x_com.py
rename to airflow_client/client/model/x_com.py
index 3a575f5..4615e2a 100644
--- a/airflow_client/model/x_com.py
+++ b/airflow_client/client/model/x_com.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,8 +45,8 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.x_com_all_of import XComAllOf
-    from airflow_client.model.x_com_collection_item import XComCollectionItem
+    from airflow_client.client.model.x_com_all_of import XComAllOf
+    from airflow_client.client.model.x_com_collection_item import XComCollectionItem
     globals()['XComAllOf'] = XComAllOf
     globals()['XComCollectionItem'] = XComCollectionItem
 
diff --git a/airflow_client/model/x_com_all_of.py b/airflow_client/client/model/x_com_all_of.py
similarity index 99%
rename from airflow_client/model/x_com_all_of.py
rename to airflow_client/client/model/x_com_all_of.py
index ae0c4f9..37c3018 100644
--- a/airflow_client/model/x_com_all_of.py
+++ b/airflow_client/client/model/x_com_all_of.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model/x_com_collection.py b/airflow_client/client/model/x_com_collection.py
similarity index 98%
rename from airflow_client/model/x_com_collection.py
rename to airflow_client/client/model/x_com_collection.py
index 756710a..a1afd19 100644
--- a/airflow_client/model/x_com_collection.py
+++ b/airflow_client/client/model/x_com_collection.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,9 +45,9 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.collection_info import CollectionInfo
-    from airflow_client.model.x_com_collection_all_of import XComCollectionAllOf
-    from airflow_client.model.x_com_collection_item import XComCollectionItem
+    from airflow_client.client.model.collection_info import CollectionInfo
+    from airflow_client.client.model.x_com_collection_all_of import XComCollectionAllOf
+    from airflow_client.client.model.x_com_collection_item import XComCollectionItem
     globals()['CollectionInfo'] = CollectionInfo
     globals()['XComCollectionAllOf'] = XComCollectionAllOf
     globals()['XComCollectionItem'] = XComCollectionItem
diff --git a/airflow_client/model/x_com_collection_all_of.py b/airflow_client/client/model/x_com_collection_all_of.py
similarity index 99%
rename from airflow_client/model/x_com_collection_all_of.py
rename to airflow_client/client/model/x_com_collection_all_of.py
index c038da4..4a37d67 100644
--- a/airflow_client/model/x_com_collection_all_of.py
+++ b/airflow_client/client/model/x_com_collection_all_of.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
@@ -45,7 +45,7 @@ from airflow_client.model_utils import (  # noqa: F401
 )
 
 def lazy_import():
-    from airflow_client.model.x_com_collection_item import XComCollectionItem
+    from airflow_client.client.model.x_com_collection_item import XComCollectionItem
     globals()['XComCollectionItem'] = XComCollectionItem
 
 
diff --git a/airflow_client/model/x_com_collection_item.py b/airflow_client/client/model/x_com_collection_item.py
similarity index 99%
rename from airflow_client/model/x_com_collection_item.py
rename to airflow_client/client/model/x_com_collection_item.py
index dc2efed..340fc06 100644
--- a/airflow_client/model/x_com_collection_item.py
+++ b/airflow_client/client/model/x_com_collection_item.py
@@ -29,7 +29,7 @@
 import re  # noqa: F401
 import sys  # noqa: F401
 
-from airflow_client.model_utils import (  # noqa: F401
+from airflow_client.client.model_utils import (  # noqa: F401
     ApiTypeError,
     ModelComposed,
     ModelNormal,
diff --git a/airflow_client/model_utils.py b/airflow_client/client/model_utils.py
similarity index 99%
rename from airflow_client/model_utils.py
rename to airflow_client/client/model_utils.py
index 5cace86..b20f6b8 100644
--- a/airflow_client/model_utils.py
+++ b/airflow_client/client/model_utils.py
@@ -36,7 +36,7 @@ import tempfile
 
 from dateutil.parser import parse
 
-from airflow_client.exceptions import (
+from airflow_client.client.exceptions import (
     ApiKeyError,
     ApiAttributeError,
     ApiTypeError,
diff --git a/airflow_client/client/models/__init__.py b/airflow_client/client/models/__init__.py
new file mode 100644
index 0000000..a623a25
--- /dev/null
+++ b/airflow_client/client/models/__init__.py
@@ -0,0 +1,115 @@
+# 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.
+
+# flake8: noqa
+
+# import all models into this package
+# if you have many models here with many references from one model to another this may
+# raise a RecursionError
+# to avoid this, import only the models that you directly need like:
+# from from airflow_client.client.model.pet import Pet
+# or import this package, but before doing it, use:
+# import sys
+# sys.setrecursionlimit(n)
+
+from airflow_client.client.model.action import Action
+from airflow_client.client.model.action_collection import ActionCollection
+from airflow_client.client.model.action_collection_all_of import ActionCollectionAllOf
+from airflow_client.client.model.action_resource import ActionResource
+from airflow_client.client.model.class_reference import ClassReference
+from airflow_client.client.model.clear_task_instance import ClearTaskInstance
+from airflow_client.client.model.collection_info import CollectionInfo
+from airflow_client.client.model.color import Color
+from airflow_client.client.model.config import Config
+from airflow_client.client.model.config_option import ConfigOption
+from airflow_client.client.model.config_section import ConfigSection
+from airflow_client.client.model.connection import Connection
+from airflow_client.client.model.connection_all_of import ConnectionAllOf
+from airflow_client.client.model.connection_collection import ConnectionCollection
+from airflow_client.client.model.connection_collection_all_of import ConnectionCollectionAllOf
+from airflow_client.client.model.connection_collection_item import ConnectionCollectionItem
+from airflow_client.client.model.cron_expression import CronExpression
+from airflow_client.client.model.dag import DAG
+from airflow_client.client.model.dag_collection import DAGCollection
+from airflow_client.client.model.dag_collection_all_of import DAGCollectionAllOf
+from airflow_client.client.model.dag_detail import DAGDetail
+from airflow_client.client.model.dag_detail_all_of import DAGDetailAllOf
+from airflow_client.client.model.dag_run import DAGRun
+from airflow_client.client.model.dag_run_collection import DAGRunCollection
+from airflow_client.client.model.dag_run_collection_all_of import DAGRunCollectionAllOf
+from airflow_client.client.model.dag_state import DagState
+from airflow_client.client.model.error import Error
+from airflow_client.client.model.event_log import EventLog
+from airflow_client.client.model.event_log_collection import EventLogCollection
+from airflow_client.client.model.event_log_collection_all_of import EventLogCollectionAllOf
+from airflow_client.client.model.extra_link import ExtraLink
+from airflow_client.client.model.extra_link_collection import ExtraLinkCollection
+from airflow_client.client.model.health_info import HealthInfo
+from airflow_client.client.model.health_status import HealthStatus
+from airflow_client.client.model.import_error import ImportError
+from airflow_client.client.model.import_error_collection import ImportErrorCollection
+from airflow_client.client.model.import_error_collection_all_of import ImportErrorCollectionAllOf
+from airflow_client.client.model.inline_response200 import InlineResponse200
+from airflow_client.client.model.inline_response2001 import InlineResponse2001
+from airflow_client.client.model.list_dag_runs_form import ListDagRunsForm
+from airflow_client.client.model.list_task_instance_form import ListTaskInstanceForm
+from airflow_client.client.model.metadatabase_status import MetadatabaseStatus
+from airflow_client.client.model.plugin_collection import PluginCollection
+from airflow_client.client.model.plugin_collection_all_of import PluginCollectionAllOf
+from airflow_client.client.model.plugin_collection_item import PluginCollectionItem
+from airflow_client.client.model.pool import Pool
+from airflow_client.client.model.pool_collection import PoolCollection
+from airflow_client.client.model.pool_collection_all_of import PoolCollectionAllOf
+from airflow_client.client.model.relative_delta import RelativeDelta
+from airflow_client.client.model.resource import Resource
+from airflow_client.client.model.role import Role
+from airflow_client.client.model.role_collection import RoleCollection
+from airflow_client.client.model.role_collection_all_of import RoleCollectionAllOf
+from airflow_client.client.model.sla_miss import SLAMiss
+from airflow_client.client.model.schedule_interval import ScheduleInterval
+from airflow_client.client.model.scheduler_status import SchedulerStatus
+from airflow_client.client.model.tag import Tag
+from airflow_client.client.model.task import Task
+from airflow_client.client.model.task_collection import TaskCollection
+from airflow_client.client.model.task_extra_links import TaskExtraLinks
+from airflow_client.client.model.task_instance import TaskInstance
+from airflow_client.client.model.task_instance_collection import TaskInstanceCollection
+from airflow_client.client.model.task_instance_collection_all_of import TaskInstanceCollectionAllOf
+from airflow_client.client.model.task_instance_reference import TaskInstanceReference
+from airflow_client.client.model.task_instance_reference_collection import TaskInstanceReferenceCollection
+from airflow_client.client.model.task_state import TaskState
+from airflow_client.client.model.time_delta import TimeDelta
+from airflow_client.client.model.trigger_rule import TriggerRule
+from airflow_client.client.model.update_task_instances_state import UpdateTaskInstancesState
+from airflow_client.client.model.user import User
+from airflow_client.client.model.user_all_of import UserAllOf
+from airflow_client.client.model.user_collection import UserCollection
+from airflow_client.client.model.user_collection_all_of import UserCollectionAllOf
+from airflow_client.client.model.user_collection_item import UserCollectionItem
+from airflow_client.client.model.user_collection_item_roles import UserCollectionItemRoles
+from airflow_client.client.model.variable import Variable
+from airflow_client.client.model.variable_all_of import VariableAllOf
+from airflow_client.client.model.variable_collection import VariableCollection
+from airflow_client.client.model.variable_collection_all_of import VariableCollectionAllOf
+from airflow_client.client.model.variable_collection_item import VariableCollectionItem
+from airflow_client.client.model.version_info import VersionInfo
+from airflow_client.client.model.weight_rule import WeightRule
+from airflow_client.client.model.x_com import XCom
+from airflow_client.client.model.x_com_all_of import XComAllOf
+from airflow_client.client.model.x_com_collection import XComCollection
+from airflow_client.client.model.x_com_collection_all_of import XComCollectionAllOf
+from airflow_client.client.model.x_com_collection_item import XComCollectionItem
diff --git a/airflow_client/rest.py b/airflow_client/client/rest.py
similarity index 99%
rename from airflow_client/rest.py
rename to airflow_client/client/rest.py
index 7094cec..768d9dc 100644
--- a/airflow_client/rest.py
+++ b/airflow_client/client/rest.py
@@ -35,7 +35,7 @@ from urllib.parse import urlencode
 
 import urllib3
 
-from airflow_client.exceptions import ApiException, UnauthorizedException, ForbiddenException, NotFoundException, ServiceException, ApiValueError
+from airflow_client.client.exceptions import ApiException, UnauthorizedException, ForbiddenException, NotFoundException, ServiceException, ApiValueError
 
 
 logger = logging.getLogger(__name__)
diff --git a/docs/Action.md b/airflow_client/docs/Action.md
similarity index 99%
rename from docs/Action.md
rename to airflow_client/docs/Action.md
index 350d468..b4a03c9 100644
--- a/docs/Action.md
+++ b/airflow_client/docs/Action.md
@@ -20,6 +20,7 @@
 # Action
 
 Action Item
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/ActionCollection.md b/airflow_client/docs/ActionCollection.md
similarity index 99%
rename from docs/ActionCollection.md
rename to airflow_client/docs/ActionCollection.md
index 8a000de..4a24bf1 100644
--- a/docs/ActionCollection.md
+++ b/airflow_client/docs/ActionCollection.md
@@ -20,6 +20,7 @@
 # ActionCollection
 
 Action Collection
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/ActionCollectionAllOf.md b/airflow_client/docs/ActionCollectionAllOf.md
similarity index 99%
copy from docs/ActionCollectionAllOf.md
copy to airflow_client/docs/ActionCollectionAllOf.md
index 8ba6acd..43dac94 100644
--- a/docs/ActionCollectionAllOf.md
+++ b/airflow_client/docs/ActionCollectionAllOf.md
@@ -19,6 +19,7 @@
 
 # ActionCollectionAllOf
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/ActionResource.md b/airflow_client/docs/ActionResource.md
similarity index 99%
rename from docs/ActionResource.md
rename to airflow_client/docs/ActionResource.md
index 5505672..32d6503 100644
--- a/docs/ActionResource.md
+++ b/airflow_client/docs/ActionResource.md
@@ -20,6 +20,7 @@
 # ActionResource
 
 The Action-Resource item
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/ClassReference.md b/airflow_client/docs/ClassReference.md
similarity index 99%
rename from docs/ClassReference.md
rename to airflow_client/docs/ClassReference.md
index 70db45b..d993b38 100644
--- a/docs/ClassReference.md
+++ b/airflow_client/docs/ClassReference.md
@@ -20,6 +20,7 @@
 # ClassReference
 
 Class reference
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/ClearTaskInstance.md b/airflow_client/docs/ClearTaskInstance.md
similarity index 99%
rename from docs/ClearTaskInstance.md
rename to airflow_client/docs/ClearTaskInstance.md
index f648017..10859af 100644
--- a/docs/ClearTaskInstance.md
+++ b/airflow_client/docs/ClearTaskInstance.md
@@ -19,6 +19,7 @@
 
 # ClearTaskInstance
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/CollectionInfo.md b/airflow_client/docs/CollectionInfo.md
similarity index 99%
rename from docs/CollectionInfo.md
rename to airflow_client/docs/CollectionInfo.md
index 599ba6f..9db4184 100644
--- a/docs/CollectionInfo.md
+++ b/airflow_client/docs/CollectionInfo.md
@@ -20,6 +20,7 @@
 # CollectionInfo
 
 Metadata about collection.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/Color.md b/airflow_client/docs/Color.md
similarity index 99%
rename from docs/Color.md
rename to airflow_client/docs/Color.md
index f9eeb70..69dddc5 100644
--- a/docs/Color.md
+++ b/airflow_client/docs/Color.md
@@ -20,6 +20,7 @@
 # Color
 
 Color in hexadecimal notation.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/Config.md b/airflow_client/docs/Config.md
similarity index 99%
rename from docs/Config.md
rename to airflow_client/docs/Config.md
index e398079..848fbcc 100644
--- a/docs/Config.md
+++ b/airflow_client/docs/Config.md
@@ -20,6 +20,7 @@
 # Config
 
 The configuration.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/ConfigApi.md b/airflow_client/docs/ConfigApi.md
similarity index 88%
rename from docs/ConfigApi.md
rename to airflow_client/docs/ConfigApi.md
index 1a14f01..1b5bbb2 100644
--- a/docs/ConfigApi.md
+++ b/airflow_client/docs/ConfigApi.md
@@ -17,7 +17,7 @@
  under the License.
  -->
 
-# airflow_client.ConfigApi
+# Apache Airflow Python Client.ConfigApi
 
 All URIs are relative to *http://localhost/api/v1*
 
@@ -36,14 +36,14 @@ Get current configuration
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import config_api
-from airflow_client.model.config import Config
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import config_api
+from airflow_client.client.model.error import Error
+from airflow_client.client.model.config import Config
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -53,13 +53,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = config_api.ConfigApi(api_client)
 
@@ -68,10 +68,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Get current configuration
         api_response = api_instance.get_config()
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling ConfigApi->get_config: %s\n" % e)
 ```
 
+
 ### Parameters
 This endpoint does not need any parameter.
 
@@ -88,6 +89,7 @@ This endpoint does not need any parameter.
  - **Content-Type**: Not defined
  - **Accept**: application/json, text/plain
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
diff --git a/docs/ConfigOption.md b/airflow_client/docs/ConfigOption.md
similarity index 99%
rename from docs/ConfigOption.md
rename to airflow_client/docs/ConfigOption.md
index 855de55..935b73b 100644
--- a/docs/ConfigOption.md
+++ b/airflow_client/docs/ConfigOption.md
@@ -20,6 +20,7 @@
 # ConfigOption
 
 The option of configuration.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/ConfigSection.md b/airflow_client/docs/ConfigSection.md
similarity index 99%
rename from docs/ConfigSection.md
rename to airflow_client/docs/ConfigSection.md
index fa2b800..f64e9a8 100644
--- a/docs/ConfigSection.md
+++ b/airflow_client/docs/ConfigSection.md
@@ -20,6 +20,7 @@
 # ConfigSection
 
 The section of configuration.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/Connection.md b/airflow_client/docs/Connection.md
similarity index 99%
copy from docs/Connection.md
copy to airflow_client/docs/Connection.md
index dbd65c0..474af0a 100644
--- a/docs/Connection.md
+++ b/airflow_client/docs/Connection.md
@@ -20,6 +20,7 @@
 # Connection
 
 Full representation of the connection.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/ConnectionAllOf.md b/airflow_client/docs/ConnectionAllOf.md
similarity index 99%
rename from docs/ConnectionAllOf.md
rename to airflow_client/docs/ConnectionAllOf.md
index e4b9429..a559de1 100644
--- a/docs/ConnectionAllOf.md
+++ b/airflow_client/docs/ConnectionAllOf.md
@@ -19,6 +19,7 @@
 
 # ConnectionAllOf
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/ConnectionApi.md b/airflow_client/docs/ConnectionApi.md
similarity index 87%
rename from docs/ConnectionApi.md
rename to airflow_client/docs/ConnectionApi.md
index 6367ef1..5a205a7 100644
--- a/docs/ConnectionApi.md
+++ b/airflow_client/docs/ConnectionApi.md
@@ -17,7 +17,7 @@
  under the License.
  -->
 
-# airflow_client.ConnectionApi
+# Apache Airflow Python Client.ConnectionApi
 
 All URIs are relative to *http://localhost/api/v1*
 
@@ -40,13 +40,13 @@ Delete a connection
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import connection_api
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import connection_api
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -56,13 +56,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = connection_api.ConnectionApi(api_client)
     connection_id = "connection_id_example" # str | The connection ID.
@@ -71,10 +71,11 @@ with airflow_client.ApiClient(configuration) as api_client:
     try:
         # Delete a connection
         api_instance.delete_connection(connection_id)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling ConnectionApi->delete_connection: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -94,6 +95,7 @@ void (empty response body)
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -115,14 +117,14 @@ Get a connection
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import connection_api
-from airflow_client.model.connection import Connection
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import connection_api
+from airflow_client.client.model.connection import Connection
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -132,13 +134,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = connection_api.ConnectionApi(api_client)
     connection_id = "connection_id_example" # str | The connection ID.
@@ -148,10 +150,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Get a connection
         api_response = api_instance.get_connection(connection_id)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling ConnectionApi->get_connection: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -171,6 +174,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -191,14 +195,14 @@ List connections
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import connection_api
-from airflow_client.model.error import Error
-from airflow_client.model.connection_collection import ConnectionCollection
+import airflow_client.client
+from airflow_client.client.api import connection_api
+from airflow_client.client.model.connection_collection import ConnectionCollection
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -208,13 +212,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = connection_api.ConnectionApi(api_client)
     limit = 100 # int | The numbers of items to return. (optional) if omitted the server will use the default value of 100
@@ -226,10 +230,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # List connections
         api_response = api_instance.get_connections(limit=limit, offset=offset)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling ConnectionApi->get_connections: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -250,6 +255,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -269,14 +275,14 @@ Update a connection
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import connection_api
-from airflow_client.model.connection import Connection
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import connection_api
+from airflow_client.client.model.connection import Connection
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -286,13 +292,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = connection_api.ConnectionApi(api_client)
     connection_id = "connection_id_example" # str | The connection ID.
@@ -306,7 +312,7 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Update a connection
         api_response = api_instance.patch_connection(connection_id, connection)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling ConnectionApi->patch_connection: %s\n" % e)
 
     # example passing only required values which don't have defaults set
@@ -315,10 +321,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Update a connection
         api_response = api_instance.patch_connection(connection_id, connection, update_mask=update_mask)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling ConnectionApi->patch_connection: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -340,6 +347,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: application/json
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -361,14 +369,14 @@ Create a connection
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import connection_api
-from airflow_client.model.connection import Connection
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import connection_api
+from airflow_client.client.model.connection import Connection
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -378,13 +386,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = connection_api.ConnectionApi(api_client)
     connection = Connection() # Connection | 
@@ -394,10 +402,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Create a connection
         api_response = api_instance.post_connection(connection)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling ConnectionApi->post_connection: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -417,6 +426,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: application/json
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
diff --git a/docs/ConnectionCollection.md b/airflow_client/docs/ConnectionCollection.md
similarity index 99%
rename from docs/ConnectionCollection.md
rename to airflow_client/docs/ConnectionCollection.md
index 645ba6f..6353210 100644
--- a/docs/ConnectionCollection.md
+++ b/airflow_client/docs/ConnectionCollection.md
@@ -20,6 +20,7 @@
 # ConnectionCollection
 
 Collection of connections.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/ConnectionCollectionAllOf.md b/airflow_client/docs/ConnectionCollectionAllOf.md
similarity index 99%
rename from docs/ConnectionCollectionAllOf.md
rename to airflow_client/docs/ConnectionCollectionAllOf.md
index d96888a..135b9f3 100644
--- a/docs/ConnectionCollectionAllOf.md
+++ b/airflow_client/docs/ConnectionCollectionAllOf.md
@@ -19,6 +19,7 @@
 
 # ConnectionCollectionAllOf
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/ConnectionCollectionItem.md b/airflow_client/docs/ConnectionCollectionItem.md
similarity index 99%
rename from docs/ConnectionCollectionItem.md
rename to airflow_client/docs/ConnectionCollectionItem.md
index dfff36a..b30eb77 100644
--- a/docs/ConnectionCollectionItem.md
+++ b/airflow_client/docs/ConnectionCollectionItem.md
@@ -20,6 +20,7 @@
 # ConnectionCollectionItem
 
 Connection collection item. The password and extra fields are only available when retrieving a single object due to the sensitivity of this data. 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/CronExpression.md b/airflow_client/docs/CronExpression.md
similarity index 99%
rename from docs/CronExpression.md
rename to airflow_client/docs/CronExpression.md
index 2031ced..8bc0d65 100644
--- a/docs/CronExpression.md
+++ b/airflow_client/docs/CronExpression.md
@@ -20,6 +20,7 @@
 # CronExpression
 
 Cron expression
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/DAG.md b/airflow_client/docs/DAG.md
similarity index 96%
rename from docs/DAG.md
rename to airflow_client/docs/DAG.md
index 563ce4f..72d0300 100644
--- a/docs/DAG.md
+++ b/airflow_client/docs/DAG.md
@@ -20,11 +20,12 @@
 # DAG
 
 DAG
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **dag_id** | **str** | The ID of the DAG. | [optional] [readonly] 
-**root_dag_id** | **str, none_type** | If the DAG is SubDAG then it is the top level DAG identifier. Otherwise, nulll. | [optional] [readonly] 
+**root_dag_id** | **str, none_type** | If the DAG is SubDAG then it is the top level DAG identifier. Otherwise, null. | [optional] [readonly] 
 **is_paused** | **bool, none_type** | Whether the DAG is paused. | [optional] 
 **is_subdag** | **bool** | Whether the DAG is SubDAG. | [optional] [readonly] 
 **fileloc** | **str** | The absolute path to the file. | [optional] [readonly] 
diff --git a/docs/DAGApi.md b/airflow_client/docs/DAGApi.md
similarity index 87%
rename from docs/DAGApi.md
rename to airflow_client/docs/DAGApi.md
index 3343e30..1692f29 100644
--- a/docs/DAGApi.md
+++ b/airflow_client/docs/DAGApi.md
@@ -17,7 +17,7 @@
  under the License.
  -->
 
-# airflow_client.DAGApi
+# Apache Airflow Python Client.DAGApi
 
 All URIs are relative to *http://localhost/api/v1*
 
@@ -46,14 +46,14 @@ Presents only information available in database (DAGModel). If you need detailed
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import dag_api
-from airflow_client.model.error import Error
-from airflow_client.model.dag import DAG
+import airflow_client.client
+from airflow_client.client.api import dag_api
+from airflow_client.client.model.dag import DAG
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -63,13 +63,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = dag_api.DAGApi(api_client)
     dag_id = "dag_id_example" # str | The DAG ID.
@@ -79,10 +79,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Get basic information about a DAG
         api_response = api_instance.get_dag(dag_id)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling DAGApi->get_dag: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -102,6 +103,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -124,14 +126,14 @@ The response contains many DAG attributes, so the response can be large. If poss
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import dag_api
-from airflow_client.model.dag_detail import DAGDetail
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import dag_api
+from airflow_client.client.model.dag_detail import DAGDetail
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -141,13 +143,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = dag_api.DAGApi(api_client)
     dag_id = "dag_id_example" # str | The DAG ID.
@@ -157,10 +159,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Get a simplified representation of DAG
         api_response = api_instance.get_dag_details(dag_id)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling DAGApi->get_dag_details: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -180,6 +183,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -202,14 +206,14 @@ Get a source code using file token.
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import dag_api
-from airflow_client.model.inline_response2001 import InlineResponse2001
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import dag_api
+from airflow_client.client.model.inline_response2001 import InlineResponse2001
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -219,13 +223,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = dag_api.DAGApi(api_client)
     file_token = "file_token_example" # str | The key containing the encrypted path to the file. Encryption and decryption take place only on the server. This prevents the client from reading an non-DAG file. This also ensures API extensibility, because the format of encrypted data may change. 
@@ -235,10 +239,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Get a source code
         api_response = api_instance.get_dag_source(file_token)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling DAGApi->get_dag_source: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -258,6 +263,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json, plain/text
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -279,14 +285,14 @@ List DAGs
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import dag_api
-from airflow_client.model.dag_collection import DAGCollection
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import dag_api
+from airflow_client.client.model.dag_collection import DAGCollection
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -296,13 +302,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = dag_api.DAGApi(api_client)
     limit = 100 # int | The numbers of items to return. (optional) if omitted the server will use the default value of 100
@@ -314,10 +320,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # List DAGs
         api_response = api_instance.get_dags(limit=limit, offset=offset)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling DAGApi->get_dags: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -338,6 +345,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -356,14 +364,14 @@ Get simplified representation of a task
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import dag_api
-from airflow_client.model.error import Error
-from airflow_client.model.task import Task
+import airflow_client.client
+from airflow_client.client.api import dag_api
+from airflow_client.client.model.task import Task
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -373,13 +381,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = dag_api.DAGApi(api_client)
     dag_id = "dag_id_example" # str | The DAG ID.
@@ -390,10 +398,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Get simplified representation of a task
         api_response = api_instance.get_task(dag_id, task_id)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling DAGApi->get_task: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -414,6 +423,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -434,14 +444,14 @@ Get tasks for DAG
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import dag_api
-from airflow_client.model.task_collection import TaskCollection
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import dag_api
+from airflow_client.client.model.error import Error
+from airflow_client.client.model.task_collection import TaskCollection
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -451,13 +461,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = dag_api.DAGApi(api_client)
     dag_id = "dag_id_example" # str | The DAG ID.
@@ -467,10 +477,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Get tasks for DAG
         api_response = api_instance.get_tasks(dag_id)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling DAGApi->get_tasks: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -490,6 +501,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -510,14 +522,14 @@ Update a DAG
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import dag_api
-from airflow_client.model.error import Error
-from airflow_client.model.dag import DAG
+import airflow_client.client
+from airflow_client.client.api import dag_api
+from airflow_client.client.model.dag import DAG
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -527,13 +539,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = dag_api.DAGApi(api_client)
     dag_id = "dag_id_example" # str | The DAG ID.
@@ -567,7 +579,7 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Update a DAG
         api_response = api_instance.patch_dag(dag_id, dag)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling DAGApi->patch_dag: %s\n" % e)
 
     # example passing only required values which don't have defaults set
@@ -576,10 +588,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Update a DAG
         api_response = api_instance.patch_dag(dag_id, dag, update_mask=update_mask)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling DAGApi->patch_dag: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -601,6 +614,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: application/json
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -623,15 +637,15 @@ Clears a set of task instances associated with the DAG for a specified date rang
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import dag_api
-from airflow_client.model.error import Error
-from airflow_client.model.clear_task_instance import ClearTaskInstance
-from airflow_client.model.task_instance_reference_collection import TaskInstanceReferenceCollection
+import airflow_client.client
+from airflow_client.client.api import dag_api
+from airflow_client.client.model.clear_task_instance import ClearTaskInstance
+from airflow_client.client.model.error import Error
+from airflow_client.client.model.task_instance_reference_collection import TaskInstanceReferenceCollection
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -641,13 +655,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = dag_api.DAGApi(api_client)
     dag_id = "dag_id_example" # str | The DAG ID.
@@ -667,10 +681,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Clear a set of task instances
         api_response = api_instance.post_clear_task_instances(dag_id, clear_task_instance)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling DAGApi->post_clear_task_instances: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -691,6 +706,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: application/json
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -713,15 +729,15 @@ Updates the state for multiple task instances simultaneously.
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import dag_api
-from airflow_client.model.error import Error
-from airflow_client.model.task_instance_reference_collection import TaskInstanceReferenceCollection
-from airflow_client.model.update_task_instances_state import UpdateTaskInstancesState
+import airflow_client.client
+from airflow_client.client.api import dag_api
+from airflow_client.client.model.update_task_instances_state import UpdateTaskInstancesState
+from airflow_client.client.model.error import Error
+from airflow_client.client.model.task_instance_reference_collection import TaskInstanceReferenceCollection
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -731,13 +747,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = dag_api.DAGApi(api_client)
     dag_id = "dag_id_example" # str | The DAG ID.
@@ -757,10 +773,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Set a state of task instances
         api_response = api_instance.post_set_task_instances_state(dag_id, update_task_instances_state)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling DAGApi->post_set_task_instances_state: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -781,6 +798,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: application/json
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
diff --git a/docs/DAGCollection.md b/airflow_client/docs/DAGCollection.md
similarity index 99%
rename from docs/DAGCollection.md
rename to airflow_client/docs/DAGCollection.md
index 5a96509..c5bea1e 100644
--- a/docs/DAGCollection.md
+++ b/airflow_client/docs/DAGCollection.md
@@ -20,6 +20,7 @@
 # DAGCollection
 
 Collection of DAGs.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/DAGCollectionAllOf.md b/airflow_client/docs/DAGCollectionAllOf.md
similarity index 99%
rename from docs/DAGCollectionAllOf.md
rename to airflow_client/docs/DAGCollectionAllOf.md
index 2ef5ad7..b9913cd 100644
--- a/docs/DAGCollectionAllOf.md
+++ b/airflow_client/docs/DAGCollectionAllOf.md
@@ -19,6 +19,7 @@
 
 # DAGCollectionAllOf
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/DAGDetail.md b/airflow_client/docs/DAGDetail.md
similarity index 97%
rename from docs/DAGDetail.md
rename to airflow_client/docs/DAGDetail.md
index b576cd7..46ae2ec 100644
--- a/docs/DAGDetail.md
+++ b/airflow_client/docs/DAGDetail.md
@@ -20,11 +20,12 @@
 # DAGDetail
 
 DAG details.  For details see: (airflow.models.DAG)[https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/models/index.html#airflow.models.DAG] 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **dag_id** | **str** | The ID of the DAG. | [optional] [readonly] 
-**root_dag_id** | **str, none_type** | If the DAG is SubDAG then it is the top level DAG identifier. Otherwise, nulll. | [optional] [readonly] 
+**root_dag_id** | **str, none_type** | If the DAG is SubDAG then it is the top level DAG identifier. Otherwise, null. | [optional] [readonly] 
 **is_paused** | **bool, none_type** | Whether the DAG is paused. | [optional] 
 **is_subdag** | **bool** | Whether the DAG is SubDAG. | [optional] [readonly] 
 **fileloc** | **str** | The absolute path to the file. | [optional] [readonly] 
diff --git a/docs/DAGDetailAllOf.md b/airflow_client/docs/DAGDetailAllOf.md
similarity index 99%
rename from docs/DAGDetailAllOf.md
rename to airflow_client/docs/DAGDetailAllOf.md
index d28f75e..d387dec 100644
--- a/docs/DAGDetailAllOf.md
+++ b/airflow_client/docs/DAGDetailAllOf.md
@@ -19,6 +19,7 @@
 
 # DAGDetailAllOf
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/DAGRun.md b/airflow_client/docs/DAGRun.md
similarity index 99%
rename from docs/DAGRun.md
rename to airflow_client/docs/DAGRun.md
index 3096ae1..c14aaba 100644
--- a/docs/DAGRun.md
+++ b/airflow_client/docs/DAGRun.md
@@ -19,6 +19,7 @@
 
 # DAGRun
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/DAGRunApi.md b/airflow_client/docs/DAGRunApi.md
similarity index 89%
rename from docs/DAGRunApi.md
rename to airflow_client/docs/DAGRunApi.md
index 22918c7..e026cdf 100644
--- a/docs/DAGRunApi.md
+++ b/airflow_client/docs/DAGRunApi.md
@@ -17,7 +17,7 @@
  under the License.
  -->
 
-# airflow_client.DAGRunApi
+# Apache Airflow Python Client.DAGRunApi
 
 All URIs are relative to *http://localhost/api/v1*
 
@@ -40,13 +40,13 @@ Delete a DAG run
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import dag_run_api
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import dag_run_api
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -56,13 +56,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = dag_run_api.DAGRunApi(api_client)
     dag_id = "dag_id_example" # str | The DAG ID.
@@ -72,10 +72,11 @@ with airflow_client.ApiClient(configuration) as api_client:
     try:
         # Delete a DAG run
         api_instance.delete_dag_run(dag_id, dag_run_id)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling DAGRunApi->delete_dag_run: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -96,6 +97,7 @@ void (empty response body)
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -117,14 +119,14 @@ Get a DAG run
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import dag_run_api
-from airflow_client.model.error import Error
-from airflow_client.model.dag_run import DAGRun
+import airflow_client.client
+from airflow_client.client.api import dag_run_api
+from airflow_client.client.model.dag_run import DAGRun
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -134,13 +136,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = dag_run_api.DAGRunApi(api_client)
     dag_id = "dag_id_example" # str | The DAG ID.
@@ -151,10 +153,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Get a DAG run
         api_response = api_instance.get_dag_run(dag_id, dag_run_id)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling DAGRunApi->get_dag_run: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -175,6 +178,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -197,14 +201,14 @@ This endpoint allows specifying `~` as the dag_id to retrieve DAG runs for all D
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import dag_run_api
-from airflow_client.model.dag_run_collection import DAGRunCollection
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import dag_run_api
+from airflow_client.client.model.dag_run_collection import DAGRunCollection
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -214,13 +218,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = dag_run_api.DAGRunApi(api_client)
     dag_id = "dag_id_example" # str | The DAG ID.
@@ -238,7 +242,7 @@ with airflow_client.ApiClient(configuration) as api_client:
         # List DAG runs
         api_response = api_instance.get_dag_runs(dag_id)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling DAGRunApi->get_dag_runs: %s\n" % e)
 
     # example passing only required values which don't have defaults set
@@ -247,10 +251,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # List DAG runs
         api_response = api_instance.get_dag_runs(dag_id, limit=limit, offset=offset, execution_date_gte=execution_date_gte, execution_date_lte=execution_date_lte, start_date_gte=start_date_gte, start_date_lte=start_date_lte, end_date_gte=end_date_gte, end_date_lte=end_date_lte)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling DAGRunApi->get_dag_runs: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -278,6 +283,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -298,15 +304,15 @@ This endpoint is a POST to allow filtering across a large number of DAG IDs, whe
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import dag_run_api
-from airflow_client.model.dag_run_collection import DAGRunCollection
-from airflow_client.model.list_dag_runs_form import ListDagRunsForm
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import dag_run_api
+from airflow_client.client.model.list_dag_runs_form import ListDagRunsForm
+from airflow_client.client.model.dag_run_collection import DAGRunCollection
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -316,13 +322,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = dag_run_api.DAGRunApi(api_client)
     list_dag_runs_form = ListDagRunsForm(
@@ -344,10 +350,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # List DAG runs (batch)
         api_response = api_instance.get_dag_runs_batch(list_dag_runs_form)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling DAGRunApi->get_dag_runs_batch: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -367,6 +374,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: application/json
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -387,14 +395,14 @@ Trigger a new DAG run
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import dag_run_api
-from airflow_client.model.error import Error
-from airflow_client.model.dag_run import DAGRun
+import airflow_client.client
+from airflow_client.client.api import dag_run_api
+from airflow_client.client.model.dag_run import DAGRun
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -404,13 +412,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = dag_run_api.DAGRunApi(api_client)
     dag_id = "dag_id_example" # str | The DAG ID.
@@ -430,10 +438,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Trigger a new DAG run
         api_response = api_instance.post_dag_run(dag_id, dag_run)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling DAGRunApi->post_dag_run: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -454,6 +463,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: application/json
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
diff --git a/docs/DAGRunCollection.md b/airflow_client/docs/DAGRunCollection.md
similarity index 99%
copy from docs/DAGRunCollection.md
copy to airflow_client/docs/DAGRunCollection.md
index 1ad48f6..7a787ca 100644
--- a/docs/DAGRunCollection.md
+++ b/airflow_client/docs/DAGRunCollection.md
@@ -20,6 +20,7 @@
 # DAGRunCollection
 
 Collection of DAG runs.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/DAGRunCollectionAllOf.md b/airflow_client/docs/DAGRunCollectionAllOf.md
similarity index 99%
rename from docs/DAGRunCollectionAllOf.md
rename to airflow_client/docs/DAGRunCollectionAllOf.md
index 8bb5bcd..74e43e2 100644
--- a/docs/DAGRunCollectionAllOf.md
+++ b/airflow_client/docs/DAGRunCollectionAllOf.md
@@ -19,6 +19,7 @@
 
 # DAGRunCollectionAllOf
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/DagState.md b/airflow_client/docs/DagState.md
similarity index 99%
rename from docs/DagState.md
rename to airflow_client/docs/DagState.md
index 82cd3f5..7c500b1 100644
--- a/docs/DagState.md
+++ b/airflow_client/docs/DagState.md
@@ -20,6 +20,7 @@
 # DagState
 
 DAG State.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/Error.md b/airflow_client/docs/Error.md
similarity index 99%
rename from docs/Error.md
rename to airflow_client/docs/Error.md
index 1017f13..ca96c17 100644
--- a/docs/Error.md
+++ b/airflow_client/docs/Error.md
@@ -20,6 +20,7 @@
 # Error
 
 [RFC7807](https://tools.ietf.org/html/rfc7807) compliant response. 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/EventLog.md b/airflow_client/docs/EventLog.md
similarity index 99%
copy from docs/EventLog.md
copy to airflow_client/docs/EventLog.md
index 5be5948..3b79338 100644
--- a/docs/EventLog.md
+++ b/airflow_client/docs/EventLog.md
@@ -20,6 +20,7 @@
 # EventLog
 
 Log of user operations via CLI or Web UI.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/EventLogApi.md b/airflow_client/docs/EventLogApi.md
similarity index 88%
rename from docs/EventLogApi.md
rename to airflow_client/docs/EventLogApi.md
index 07feba0..eff55bd 100644
--- a/docs/EventLogApi.md
+++ b/airflow_client/docs/EventLogApi.md
@@ -17,7 +17,7 @@
  under the License.
  -->
 
-# airflow_client.EventLogApi
+# Apache Airflow Python Client.EventLogApi
 
 All URIs are relative to *http://localhost/api/v1*
 
@@ -37,14 +37,14 @@ Get a log entry
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import event_log_api
-from airflow_client.model.error import Error
-from airflow_client.model.event_log import EventLog
+import airflow_client.client
+from airflow_client.client.api import event_log_api
+from airflow_client.client.model.event_log import EventLog
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -54,13 +54,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = event_log_api.EventLogApi(api_client)
     event_log_id = 1 # int | The event log ID.
@@ -70,10 +70,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Get a log entry
         api_response = api_instance.get_event_log(event_log_id)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling EventLogApi->get_event_log: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -93,6 +94,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -115,14 +117,14 @@ List log entries from event log.
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import event_log_api
-from airflow_client.model.event_log_collection import EventLogCollection
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import event_log_api
+from airflow_client.client.model.event_log_collection import EventLogCollection
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -132,13 +134,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = event_log_api.EventLogApi(api_client)
     limit = 100 # int | The numbers of items to return. (optional) if omitted the server will use the default value of 100
@@ -150,10 +152,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # List log entries
         api_response = api_instance.get_event_logs(limit=limit, offset=offset)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling EventLogApi->get_event_logs: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -174,6 +177,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
diff --git a/docs/EventLogCollection.md b/airflow_client/docs/EventLogCollection.md
similarity index 99%
rename from docs/EventLogCollection.md
rename to airflow_client/docs/EventLogCollection.md
index a390557..5720bee 100644
--- a/docs/EventLogCollection.md
+++ b/airflow_client/docs/EventLogCollection.md
@@ -20,6 +20,7 @@
 # EventLogCollection
 
 Collection of event logs.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/EventLogCollectionAllOf.md b/airflow_client/docs/EventLogCollectionAllOf.md
similarity index 99%
rename from docs/EventLogCollectionAllOf.md
rename to airflow_client/docs/EventLogCollectionAllOf.md
index 438667e..d8a04f2 100644
--- a/docs/EventLogCollectionAllOf.md
+++ b/airflow_client/docs/EventLogCollectionAllOf.md
@@ -19,6 +19,7 @@
 
 # EventLogCollectionAllOf
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/ExtraLink.md b/airflow_client/docs/ExtraLink.md
similarity index 99%
rename from docs/ExtraLink.md
rename to airflow_client/docs/ExtraLink.md
index 5cac9d5..2ed266c 100644
--- a/docs/ExtraLink.md
+++ b/airflow_client/docs/ExtraLink.md
@@ -20,6 +20,7 @@
 # ExtraLink
 
 Additional links containing additional information about the task.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/ExtraLinkCollection.md b/airflow_client/docs/ExtraLinkCollection.md
similarity index 99%
rename from docs/ExtraLinkCollection.md
rename to airflow_client/docs/ExtraLinkCollection.md
index e6ebae4..4f9bd46 100644
--- a/docs/ExtraLinkCollection.md
+++ b/airflow_client/docs/ExtraLinkCollection.md
@@ -20,6 +20,7 @@
 # ExtraLinkCollection
 
 The collection of extra links.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/HealthInfo.md b/airflow_client/docs/HealthInfo.md
similarity index 99%
rename from docs/HealthInfo.md
rename to airflow_client/docs/HealthInfo.md
index d4b88d7..87ed6a6 100644
--- a/docs/HealthInfo.md
+++ b/airflow_client/docs/HealthInfo.md
@@ -20,6 +20,7 @@
 # HealthInfo
 
 Instance status information.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/HealthStatus.md b/airflow_client/docs/HealthStatus.md
similarity index 99%
rename from docs/HealthStatus.md
rename to airflow_client/docs/HealthStatus.md
index a0b8c6e..c535b81 100644
--- a/docs/HealthStatus.md
+++ b/airflow_client/docs/HealthStatus.md
@@ -20,6 +20,7 @@
 # HealthStatus
 
 Health status
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/ImportError.md b/airflow_client/docs/ImportError.md
similarity index 99%
rename from docs/ImportError.md
rename to airflow_client/docs/ImportError.md
index 2708bee..365845d 100644
--- a/docs/ImportError.md
+++ b/airflow_client/docs/ImportError.md
@@ -19,6 +19,7 @@
 
 # ImportError
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/ImportErrorApi.md b/airflow_client/docs/ImportErrorApi.md
similarity index 87%
rename from docs/ImportErrorApi.md
rename to airflow_client/docs/ImportErrorApi.md
index e6c1fdc..a3a9ef3 100644
--- a/docs/ImportErrorApi.md
+++ b/airflow_client/docs/ImportErrorApi.md
@@ -17,7 +17,7 @@
  under the License.
  -->
 
-# airflow_client.ImportErrorApi
+# Apache Airflow Python Client.ImportErrorApi
 
 All URIs are relative to *http://localhost/api/v1*
 
@@ -37,14 +37,14 @@ Get an import error
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import import_error_api
-from airflow_client.model.import_error import ImportError
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import import_error_api
+from airflow_client.client.model.import_error import ImportError
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -54,13 +54,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = import_error_api.ImportErrorApi(api_client)
     import_error_id = 1 # int | The import error ID.
@@ -70,10 +70,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Get an import error
         api_response = api_instance.get_import_error(import_error_id)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling ImportErrorApi->get_import_error: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -93,6 +94,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -113,14 +115,14 @@ List import errors
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import import_error_api
-from airflow_client.model.error import Error
-from airflow_client.model.import_error_collection import ImportErrorCollection
+import airflow_client.client
+from airflow_client.client.api import import_error_api
+from airflow_client.client.model.error import Error
+from airflow_client.client.model.import_error_collection import ImportErrorCollection
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -130,13 +132,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = import_error_api.ImportErrorApi(api_client)
     limit = 100 # int | The numbers of items to return. (optional) if omitted the server will use the default value of 100
@@ -148,10 +150,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # List import errors
         api_response = api_instance.get_import_errors(limit=limit, offset=offset)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling ImportErrorApi->get_import_errors: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -172,6 +175,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
diff --git a/docs/ImportErrorCollection.md b/airflow_client/docs/ImportErrorCollection.md
similarity index 99%
rename from docs/ImportErrorCollection.md
rename to airflow_client/docs/ImportErrorCollection.md
index 98fca05..6d79ea2 100644
--- a/docs/ImportErrorCollection.md
+++ b/airflow_client/docs/ImportErrorCollection.md
@@ -20,6 +20,7 @@
 # ImportErrorCollection
 
 Collection of import errors.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/ImportErrorCollectionAllOf.md b/airflow_client/docs/ImportErrorCollectionAllOf.md
similarity index 99%
rename from docs/ImportErrorCollectionAllOf.md
rename to airflow_client/docs/ImportErrorCollectionAllOf.md
index 6d1d70e..7033047 100644
--- a/docs/ImportErrorCollectionAllOf.md
+++ b/airflow_client/docs/ImportErrorCollectionAllOf.md
@@ -19,6 +19,7 @@
 
 # ImportErrorCollectionAllOf
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/InlineResponse200.md b/airflow_client/docs/InlineResponse200.md
similarity index 99%
rename from docs/InlineResponse200.md
rename to airflow_client/docs/InlineResponse200.md
index 7716aba..b4612fd 100644
--- a/docs/InlineResponse200.md
+++ b/airflow_client/docs/InlineResponse200.md
@@ -19,6 +19,7 @@
 
 # InlineResponse200
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/InlineResponse2001.md b/airflow_client/docs/InlineResponse2001.md
similarity index 99%
rename from docs/InlineResponse2001.md
rename to airflow_client/docs/InlineResponse2001.md
index f028489..f1cf7fb 100644
--- a/docs/InlineResponse2001.md
+++ b/airflow_client/docs/InlineResponse2001.md
@@ -19,6 +19,7 @@
 
 # InlineResponse2001
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/ListDagRunsForm.md b/airflow_client/docs/ListDagRunsForm.md
similarity index 99%
rename from docs/ListDagRunsForm.md
rename to airflow_client/docs/ListDagRunsForm.md
index 9f7a43c..d813ac8 100644
--- a/docs/ListDagRunsForm.md
+++ b/airflow_client/docs/ListDagRunsForm.md
@@ -19,6 +19,7 @@
 
 # ListDagRunsForm
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/ListTaskInstanceForm.md b/airflow_client/docs/ListTaskInstanceForm.md
similarity index 99%
rename from docs/ListTaskInstanceForm.md
rename to airflow_client/docs/ListTaskInstanceForm.md
index bbfb7be..4a3abfb 100644
--- a/docs/ListTaskInstanceForm.md
+++ b/airflow_client/docs/ListTaskInstanceForm.md
@@ -19,6 +19,7 @@
 
 # ListTaskInstanceForm
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/MetadatabaseStatus.md b/airflow_client/docs/MetadatabaseStatus.md
similarity index 99%
rename from docs/MetadatabaseStatus.md
rename to airflow_client/docs/MetadatabaseStatus.md
index 6412708..2ac56cd 100644
--- a/docs/MetadatabaseStatus.md
+++ b/airflow_client/docs/MetadatabaseStatus.md
@@ -20,6 +20,7 @@
 # MetadatabaseStatus
 
 The status of the metadatabase.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/MonitoringApi.md b/airflow_client/docs/MonitoringApi.md
similarity index 87%
rename from docs/MonitoringApi.md
rename to airflow_client/docs/MonitoringApi.md
index 61ca52d..4c5c3b2 100644
--- a/docs/MonitoringApi.md
+++ b/airflow_client/docs/MonitoringApi.md
@@ -17,7 +17,7 @@
  under the License.
  -->
 
-# airflow_client.MonitoringApi
+# Apache Airflow Python Client.MonitoringApi
 
 All URIs are relative to *http://localhost/api/v1*
 
@@ -39,13 +39,13 @@ Get the status of Airflow's metadatabase and scheduler. It includes info about m
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import monitoring_api
-from airflow_client.model.health_info import HealthInfo
+import airflow_client.client
+from airflow_client.client.api import monitoring_api
+from airflow_client.client.model.health_info import HealthInfo
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -55,13 +55,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = monitoring_api.MonitoringApi(api_client)
 
@@ -70,10 +70,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Get instance status
         api_response = api_instance.get_health()
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling MonitoringApi->get_health: %s\n" % e)
 ```
 
+
 ### Parameters
 This endpoint does not need any parameter.
 
@@ -90,6 +91,7 @@ This endpoint does not need any parameter.
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -107,13 +109,13 @@ Get version information
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import monitoring_api
-from airflow_client.model.version_info import VersionInfo
+import airflow_client.client
+from airflow_client.client.api import monitoring_api
+from airflow_client.client.model.version_info import VersionInfo
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -123,13 +125,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = monitoring_api.MonitoringApi(api_client)
 
@@ -138,10 +140,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Get version information
         api_response = api_instance.get_version()
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling MonitoringApi->get_version: %s\n" % e)
 ```
 
+
 ### Parameters
 This endpoint does not need any parameter.
 
@@ -158,6 +161,7 @@ This endpoint does not need any parameter.
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
diff --git a/docs/PermissionApi.md b/airflow_client/docs/PermissionApi.md
similarity index 89%
rename from docs/PermissionApi.md
rename to airflow_client/docs/PermissionApi.md
index dde171a..a528a40 100644
--- a/docs/PermissionApi.md
+++ b/airflow_client/docs/PermissionApi.md
@@ -17,7 +17,7 @@
  under the License.
  -->
 
-# airflow_client.PermissionApi
+# Apache Airflow Python Client.PermissionApi
 
 All URIs are relative to *http://localhost/api/v1*
 
@@ -36,14 +36,14 @@ List permissions
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import permission_api
-from airflow_client.model.error import Error
-from airflow_client.model.action_collection import ActionCollection
+import airflow_client.client
+from airflow_client.client.api import permission_api
+from airflow_client.client.model.action_collection import ActionCollection
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -53,13 +53,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = permission_api.PermissionApi(api_client)
     limit = 100 # int | The numbers of items to return. (optional) if omitted the server will use the default value of 100
@@ -71,10 +71,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # List permissions
         api_response = api_instance.get_permissions(limit=limit, offset=offset)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling PermissionApi->get_permissions: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -95,6 +96,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
diff --git a/docs/PluginApi.md b/airflow_client/docs/PluginApi.md
similarity index 89%
rename from docs/PluginApi.md
rename to airflow_client/docs/PluginApi.md
index e0bc740..dd0b4ef 100644
--- a/docs/PluginApi.md
+++ b/airflow_client/docs/PluginApi.md
@@ -17,7 +17,7 @@
  under the License.
  -->
 
-# airflow_client.PluginApi
+# Apache Airflow Python Client.PluginApi
 
 All URIs are relative to *http://localhost/api/v1*
 
@@ -36,14 +36,14 @@ Get a list of loaded plugins
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import plugin_api
-from airflow_client.model.error import Error
-from airflow_client.model.plugin_collection import PluginCollection
+import airflow_client.client
+from airflow_client.client.api import plugin_api
+from airflow_client.client.model.plugin_collection import PluginCollection
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -53,13 +53,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = plugin_api.PluginApi(api_client)
     limit = 100 # int | The numbers of items to return. (optional) if omitted the server will use the default value of 100
@@ -71,10 +71,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Get a list of loaded plugins
         api_response = api_instance.get_plugins(limit=limit, offset=offset)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling PluginApi->get_plugins: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -95,6 +96,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
diff --git a/docs/PluginCollection.md b/airflow_client/docs/PluginCollection.md
similarity index 99%
rename from docs/PluginCollection.md
rename to airflow_client/docs/PluginCollection.md
index 2b14aef..962cff9 100644
--- a/docs/PluginCollection.md
+++ b/airflow_client/docs/PluginCollection.md
@@ -20,6 +20,7 @@
 # PluginCollection
 
 Plugin Collection
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/PluginCollectionAllOf.md b/airflow_client/docs/PluginCollectionAllOf.md
similarity index 99%
rename from docs/PluginCollectionAllOf.md
rename to airflow_client/docs/PluginCollectionAllOf.md
index 6c1f0db..7f3f1f7 100644
--- a/docs/PluginCollectionAllOf.md
+++ b/airflow_client/docs/PluginCollectionAllOf.md
@@ -19,6 +19,7 @@
 
 # PluginCollectionAllOf
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/PluginCollectionItem.md b/airflow_client/docs/PluginCollectionItem.md
similarity index 99%
rename from docs/PluginCollectionItem.md
rename to airflow_client/docs/PluginCollectionItem.md
index a2a2671..70cac01 100644
--- a/docs/PluginCollectionItem.md
+++ b/airflow_client/docs/PluginCollectionItem.md
@@ -20,6 +20,7 @@
 # PluginCollectionItem
 
 Plugin Item
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/Pool.md b/airflow_client/docs/Pool.md
similarity index 99%
rename from docs/Pool.md
rename to airflow_client/docs/Pool.md
index a7513dd..2c051e5 100644
--- a/docs/Pool.md
+++ b/airflow_client/docs/Pool.md
@@ -20,6 +20,7 @@
 # Pool
 
 The pool
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/PoolApi.md b/airflow_client/docs/PoolApi.md
similarity index 88%
rename from docs/PoolApi.md
rename to airflow_client/docs/PoolApi.md
index 0aef1c5..22133b1 100644
--- a/docs/PoolApi.md
+++ b/airflow_client/docs/PoolApi.md
@@ -17,7 +17,7 @@
  under the License.
  -->
 
-# airflow_client.PoolApi
+# Apache Airflow Python Client.PoolApi
 
 All URIs are relative to *http://localhost/api/v1*
 
@@ -40,13 +40,13 @@ Delete a pool
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import pool_api
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import pool_api
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -56,13 +56,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = pool_api.PoolApi(api_client)
     pool_name = "pool_name_example" # str | The pool name.
@@ -71,10 +71,11 @@ with airflow_client.ApiClient(configuration) as api_client:
     try:
         # Delete a pool
         api_instance.delete_pool(pool_name)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling PoolApi->delete_pool: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -94,6 +95,7 @@ void (empty response body)
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -115,14 +117,14 @@ Get a pool
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import pool_api
-from airflow_client.model.error import Error
-from airflow_client.model.pool import Pool
+import airflow_client.client
+from airflow_client.client.api import pool_api
+from airflow_client.client.model.pool import Pool
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -132,13 +134,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = pool_api.PoolApi(api_client)
     pool_name = "pool_name_example" # str | The pool name.
@@ -148,10 +150,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Get a pool
         api_response = api_instance.get_pool(pool_name)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling PoolApi->get_pool: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -171,6 +174,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -191,14 +195,14 @@ List pools
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import pool_api
-from airflow_client.model.pool_collection import PoolCollection
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import pool_api
+from airflow_client.client.model.pool_collection import PoolCollection
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -208,13 +212,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = pool_api.PoolApi(api_client)
     limit = 100 # int | The numbers of items to return. (optional) if omitted the server will use the default value of 100
@@ -226,10 +230,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # List pools
         api_response = api_instance.get_pools(limit=limit, offset=offset)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling PoolApi->get_pools: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -250,6 +255,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -269,14 +275,14 @@ Update a pool
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import pool_api
-from airflow_client.model.error import Error
-from airflow_client.model.pool import Pool
+import airflow_client.client
+from airflow_client.client.api import pool_api
+from airflow_client.client.model.pool import Pool
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -286,13 +292,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = pool_api.PoolApi(api_client)
     pool_name = "pool_name_example" # str | The pool name.
@@ -313,7 +319,7 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Update a pool
         api_response = api_instance.patch_pool(pool_name, pool)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling PoolApi->patch_pool: %s\n" % e)
 
     # example passing only required values which don't have defaults set
@@ -322,10 +328,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Update a pool
         api_response = api_instance.patch_pool(pool_name, pool, update_mask=update_mask)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling PoolApi->patch_pool: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -347,6 +354,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: application/json
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -369,14 +377,14 @@ Create a pool
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import pool_api
-from airflow_client.model.error import Error
-from airflow_client.model.pool import Pool
+import airflow_client.client
+from airflow_client.client.api import pool_api
+from airflow_client.client.model.pool import Pool
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -386,13 +394,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = pool_api.PoolApi(api_client)
     pool = Pool(
@@ -409,10 +417,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Create a pool
         api_response = api_instance.post_pool(pool)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling PoolApi->post_pool: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -432,6 +441,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: application/json
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
diff --git a/docs/PoolCollection.md b/airflow_client/docs/PoolCollection.md
similarity index 99%
rename from docs/PoolCollection.md
rename to airflow_client/docs/PoolCollection.md
index 54ef602..c10d25f 100644
--- a/docs/PoolCollection.md
+++ b/airflow_client/docs/PoolCollection.md
@@ -20,6 +20,7 @@
 # PoolCollection
 
 Collection of pools.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/PoolCollectionAllOf.md b/airflow_client/docs/PoolCollectionAllOf.md
similarity index 99%
rename from docs/PoolCollectionAllOf.md
rename to airflow_client/docs/PoolCollectionAllOf.md
index df933b8..ae8d2db 100644
--- a/docs/PoolCollectionAllOf.md
+++ b/airflow_client/docs/PoolCollectionAllOf.md
@@ -19,6 +19,7 @@
 
 # PoolCollectionAllOf
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/RelativeDelta.md b/airflow_client/docs/RelativeDelta.md
similarity index 99%
rename from docs/RelativeDelta.md
rename to airflow_client/docs/RelativeDelta.md
index d36e993..7e0739e 100644
--- a/docs/RelativeDelta.md
+++ b/airflow_client/docs/RelativeDelta.md
@@ -20,6 +20,7 @@
 # RelativeDelta
 
 Relative delta
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/Resource.md b/airflow_client/docs/Resource.md
similarity index 99%
rename from docs/Resource.md
rename to airflow_client/docs/Resource.md
index 96de8ae..69a3867 100644
--- a/docs/Resource.md
+++ b/airflow_client/docs/Resource.md
@@ -20,6 +20,7 @@
 # Resource
 
 A \"resource\" on which permissions are granted.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/Role.md b/airflow_client/docs/Role.md
similarity index 99%
rename from docs/Role.md
rename to airflow_client/docs/Role.md
index 0e692bd..74667c2 100644
--- a/docs/Role.md
+++ b/airflow_client/docs/Role.md
@@ -20,6 +20,7 @@
 # Role
 
 Role item
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/RoleApi.md b/airflow_client/docs/RoleApi.md
similarity index 88%
copy from docs/RoleApi.md
copy to airflow_client/docs/RoleApi.md
index dff1886..578b07f 100644
--- a/docs/RoleApi.md
+++ b/airflow_client/docs/RoleApi.md
@@ -17,7 +17,7 @@
  under the License.
  -->
 
-# airflow_client.RoleApi
+# Apache Airflow Python Client.RoleApi
 
 All URIs are relative to *http://localhost/api/v1*
 
@@ -37,14 +37,14 @@ Get a role
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import role_api
-from airflow_client.model.role import Role
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import role_api
+from airflow_client.client.model.role import Role
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -54,13 +54,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = role_api.RoleApi(api_client)
     role_name = "role_name_example" # str | The role name
@@ -70,10 +70,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Get a role
         api_response = api_instance.get_role(role_name)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling RoleApi->get_role: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -93,6 +94,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -113,14 +115,14 @@ List roles
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import role_api
-from airflow_client.model.role_collection import RoleCollection
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import role_api
+from airflow_client.client.model.error import Error
+from airflow_client.client.model.role_collection import RoleCollection
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -130,13 +132,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = role_api.RoleApi(api_client)
     limit = 100 # int | The numbers of items to return. (optional) if omitted the server will use the default value of 100
@@ -148,10 +150,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # List roles
         api_response = api_instance.get_roles(limit=limit, offset=offset)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling RoleApi->get_roles: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -172,6 +175,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
diff --git a/docs/RoleCollection.md b/airflow_client/docs/RoleCollection.md
similarity index 99%
rename from docs/RoleCollection.md
rename to airflow_client/docs/RoleCollection.md
index 9a8e44a..7f7b8ad 100644
--- a/docs/RoleCollection.md
+++ b/airflow_client/docs/RoleCollection.md
@@ -20,6 +20,7 @@
 # RoleCollection
 
 Role Collections
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/RoleCollectionAllOf.md b/airflow_client/docs/RoleCollectionAllOf.md
similarity index 99%
rename from docs/RoleCollectionAllOf.md
rename to airflow_client/docs/RoleCollectionAllOf.md
index ec76d69..42bb362 100644
--- a/docs/RoleCollectionAllOf.md
+++ b/airflow_client/docs/RoleCollectionAllOf.md
@@ -19,6 +19,7 @@
 
 # RoleCollectionAllOf
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/SLAMiss.md b/airflow_client/docs/SLAMiss.md
similarity index 99%
rename from docs/SLAMiss.md
rename to airflow_client/docs/SLAMiss.md
index 733f9dd..6ab2636 100644
--- a/docs/SLAMiss.md
+++ b/airflow_client/docs/SLAMiss.md
@@ -19,6 +19,7 @@
 
 # SLAMiss
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/ScheduleInterval.md b/airflow_client/docs/ScheduleInterval.md
similarity index 99%
rename from docs/ScheduleInterval.md
rename to airflow_client/docs/ScheduleInterval.md
index ce41ec6..807fa4a 100644
--- a/docs/ScheduleInterval.md
+++ b/airflow_client/docs/ScheduleInterval.md
@@ -20,6 +20,7 @@
 # ScheduleInterval
 
 Schedule interval. Defines how often DAG runs, this object gets added to your latest task instance's execution_date to figure out the next schedule. 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/SchedulerStatus.md b/airflow_client/docs/SchedulerStatus.md
similarity index 99%
rename from docs/SchedulerStatus.md
rename to airflow_client/docs/SchedulerStatus.md
index f7fe1ce..de119a4 100644
--- a/docs/SchedulerStatus.md
+++ b/airflow_client/docs/SchedulerStatus.md
@@ -20,6 +20,7 @@
 # SchedulerStatus
 
 The status and the latest scheduler heartbeat.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/Tag.md b/airflow_client/docs/Tag.md
similarity index 99%
copy from docs/Tag.md
copy to airflow_client/docs/Tag.md
index 4581952..a80e46a 100644
--- a/docs/Tag.md
+++ b/airflow_client/docs/Tag.md
@@ -20,6 +20,7 @@
 # Tag
 
 Tag
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/Task.md b/airflow_client/docs/Task.md
similarity index 99%
rename from docs/Task.md
rename to airflow_client/docs/Task.md
index c5afdc8..3f1332e 100644
--- a/docs/Task.md
+++ b/airflow_client/docs/Task.md
@@ -20,6 +20,7 @@
 # Task
 
 For details see: (airflow.models.BaseOperator)[https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/models/index.html#airflow.models.BaseOperator] 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/TaskCollection.md b/airflow_client/docs/TaskCollection.md
similarity index 99%
rename from docs/TaskCollection.md
rename to airflow_client/docs/TaskCollection.md
index ed46d86..4ce8af5 100644
--- a/docs/TaskCollection.md
+++ b/airflow_client/docs/TaskCollection.md
@@ -20,6 +20,7 @@
 # TaskCollection
 
 Collection of tasks.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/TaskExtraLinks.md b/airflow_client/docs/TaskExtraLinks.md
similarity index 99%
rename from docs/TaskExtraLinks.md
rename to airflow_client/docs/TaskExtraLinks.md
index 091e16b..8f86fde 100644
--- a/docs/TaskExtraLinks.md
+++ b/airflow_client/docs/TaskExtraLinks.md
@@ -19,6 +19,7 @@
 
 # TaskExtraLinks
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/TaskInstance.md b/airflow_client/docs/TaskInstance.md
similarity index 99%
rename from docs/TaskInstance.md
rename to airflow_client/docs/TaskInstance.md
index 6be478b..941db35 100644
--- a/docs/TaskInstance.md
+++ b/airflow_client/docs/TaskInstance.md
@@ -19,6 +19,7 @@
 
 # TaskInstance
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/TaskInstanceApi.md b/airflow_client/docs/TaskInstanceApi.md
similarity index 90%
rename from docs/TaskInstanceApi.md
rename to airflow_client/docs/TaskInstanceApi.md
index 6a9d2f4..fe2482a 100644
--- a/docs/TaskInstanceApi.md
+++ b/airflow_client/docs/TaskInstanceApi.md
@@ -17,7 +17,7 @@
  under the License.
  -->
 
-# airflow_client.TaskInstanceApi
+# Apache Airflow Python Client.TaskInstanceApi
 
 All URIs are relative to *http://localhost/api/v1*
 
@@ -42,14 +42,14 @@ List extra links for task instance.
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import task_instance_api
-from airflow_client.model.extra_link_collection import ExtraLinkCollection
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import task_instance_api
+from airflow_client.client.model.extra_link_collection import ExtraLinkCollection
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -59,13 +59,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = task_instance_api.TaskInstanceApi(api_client)
     dag_id = "dag_id_example" # str | The DAG ID.
@@ -77,10 +77,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # List extra links
         api_response = api_instance.get_extra_links(dag_id, dag_run_id, task_id)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling TaskInstanceApi->get_extra_links: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -102,6 +103,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -124,14 +126,14 @@ Get logs for a specific task instance and its try number.
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import task_instance_api
-from airflow_client.model.inline_response200 import InlineResponse200
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import task_instance_api
+from airflow_client.client.model.error import Error
+from airflow_client.client.model.inline_response200 import InlineResponse200
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -141,13 +143,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = task_instance_api.TaskInstanceApi(api_client)
     dag_id = "dag_id_example" # str | The DAG ID.
@@ -162,7 +164,7 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Get logs
         api_response = api_instance.get_log(dag_id, dag_run_id, task_id, task_try_number)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling TaskInstanceApi->get_log: %s\n" % e)
 
     # example passing only required values which don't have defaults set
@@ -171,10 +173,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Get logs
         api_response = api_instance.get_log(dag_id, dag_run_id, task_id, task_try_number, full_content=full_content, token=token)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling TaskInstanceApi->get_log: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -199,6 +202,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json, text/plain
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -220,14 +224,14 @@ Get a task instance
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import task_instance_api
-from airflow_client.model.task_instance import TaskInstance
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import task_instance_api
+from airflow_client.client.model.task_instance import TaskInstance
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -237,13 +241,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = task_instance_api.TaskInstanceApi(api_client)
     dag_id = "dag_id_example" # str | The DAG ID.
@@ -255,10 +259,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Get a task instance
         api_response = api_instance.get_task_instance(dag_id, dag_run_id, task_id)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling TaskInstanceApi->get_task_instance: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -280,6 +285,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -302,14 +308,14 @@ This endpoint allows specifying `~` as the dag_id, dag_run_id to retrieve DAG ru
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import task_instance_api
-from airflow_client.model.error import Error
-from airflow_client.model.task_instance_collection import TaskInstanceCollection
+import airflow_client.client
+from airflow_client.client.api import task_instance_api
+from airflow_client.client.model.task_instance_collection import TaskInstanceCollection
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -319,13 +325,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = task_instance_api.TaskInstanceApi(api_client)
     dag_id = "dag_id_example" # str | The DAG ID.
@@ -355,7 +361,7 @@ with airflow_client.ApiClient(configuration) as api_client:
         # List task instances
         api_response = api_instance.get_task_instances(dag_id, dag_run_id)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling TaskInstanceApi->get_task_instances: %s\n" % e)
 
     # example passing only required values which don't have defaults set
@@ -364,10 +370,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # List task instances
         api_response = api_instance.get_task_instances(dag_id, dag_run_id, execution_date_gte=execution_date_gte, execution_date_lte=execution_date_lte, start_date_gte=start_date_gte, start_date_lte=start_date_lte, end_date_gte=end_date_gte, end_date_lte=end_date_lte, duration_gte=duration_gte, duration_lte=duration_lte, state=state, pool=pool, queue=queue, limit=limit, offset=offset)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling TaskInstanceApi->get_task_instances: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -401,6 +408,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -422,15 +430,15 @@ List task instances from all DAGs and DAG runs. This endpoint is a POST to allow
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import task_instance_api
-from airflow_client.model.list_task_instance_form import ListTaskInstanceForm
-from airflow_client.model.error import Error
-from airflow_client.model.task_instance_collection import TaskInstanceCollection
+import airflow_client.client
+from airflow_client.client.api import task_instance_api
+from airflow_client.client.model.task_instance_collection import TaskInstanceCollection
+from airflow_client.client.model.error import Error
+from airflow_client.client.model.list_task_instance_form import ListTaskInstanceForm
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -440,13 +448,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = task_instance_api.TaskInstanceApi(api_client)
     list_task_instance_form = ListTaskInstanceForm(
@@ -473,10 +481,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # List task instances (batch)
         api_response = api_instance.get_task_instances_batch(list_task_instance_form)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling TaskInstanceApi->get_task_instances_batch: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -496,6 +505,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: application/json
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
diff --git a/docs/TaskInstanceCollection.md b/airflow_client/docs/TaskInstanceCollection.md
similarity index 99%
rename from docs/TaskInstanceCollection.md
rename to airflow_client/docs/TaskInstanceCollection.md
index 183395f..2478b7b 100644
--- a/docs/TaskInstanceCollection.md
+++ b/airflow_client/docs/TaskInstanceCollection.md
@@ -20,6 +20,7 @@
 # TaskInstanceCollection
 
 Collection of task instances.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/TaskInstanceCollectionAllOf.md b/airflow_client/docs/TaskInstanceCollectionAllOf.md
similarity index 99%
rename from docs/TaskInstanceCollectionAllOf.md
rename to airflow_client/docs/TaskInstanceCollectionAllOf.md
index 2dffeda..eaa02dd 100644
--- a/docs/TaskInstanceCollectionAllOf.md
+++ b/airflow_client/docs/TaskInstanceCollectionAllOf.md
@@ -19,6 +19,7 @@
 
 # TaskInstanceCollectionAllOf
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/TaskInstanceReference.md b/airflow_client/docs/TaskInstanceReference.md
similarity index 99%
rename from docs/TaskInstanceReference.md
rename to airflow_client/docs/TaskInstanceReference.md
index 938b957..17495da 100644
--- a/docs/TaskInstanceReference.md
+++ b/airflow_client/docs/TaskInstanceReference.md
@@ -19,6 +19,7 @@
 
 # TaskInstanceReference
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/TaskInstanceReferenceCollection.md b/airflow_client/docs/TaskInstanceReferenceCollection.md
similarity index 99%
rename from docs/TaskInstanceReferenceCollection.md
rename to airflow_client/docs/TaskInstanceReferenceCollection.md
index 0c5f235..bcaf678 100644
--- a/docs/TaskInstanceReferenceCollection.md
+++ b/airflow_client/docs/TaskInstanceReferenceCollection.md
@@ -19,6 +19,7 @@
 
 # TaskInstanceReferenceCollection
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/TaskState.md b/airflow_client/docs/TaskState.md
similarity index 99%
rename from docs/TaskState.md
rename to airflow_client/docs/TaskState.md
index ecf31f1..a443bc1 100644
--- a/docs/TaskState.md
+++ b/airflow_client/docs/TaskState.md
@@ -20,6 +20,7 @@
 # TaskState
 
 Task state.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/TimeDelta.md b/airflow_client/docs/TimeDelta.md
similarity index 99%
rename from docs/TimeDelta.md
rename to airflow_client/docs/TimeDelta.md
index b71503d..42ac2ec 100644
--- a/docs/TimeDelta.md
+++ b/airflow_client/docs/TimeDelta.md
@@ -20,6 +20,7 @@
 # TimeDelta
 
 Time delta
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/TriggerRule.md b/airflow_client/docs/TriggerRule.md
similarity index 99%
rename from docs/TriggerRule.md
rename to airflow_client/docs/TriggerRule.md
index 8dee405..5d9e45a 100644
--- a/docs/TriggerRule.md
+++ b/airflow_client/docs/TriggerRule.md
@@ -20,6 +20,7 @@
 # TriggerRule
 
 Trigger rule.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/UpdateTaskInstancesState.md b/airflow_client/docs/UpdateTaskInstancesState.md
similarity index 99%
rename from docs/UpdateTaskInstancesState.md
rename to airflow_client/docs/UpdateTaskInstancesState.md
index d2962cf..9971ac7 100644
--- a/docs/UpdateTaskInstancesState.md
+++ b/airflow_client/docs/UpdateTaskInstancesState.md
@@ -19,6 +19,7 @@
 
 # UpdateTaskInstancesState
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/Connection.md b/airflow_client/docs/User.md
similarity index 54%
rename from docs/Connection.md
rename to airflow_client/docs/User.md
index dbd65c0..b7d3884 100644
--- a/docs/Connection.md
+++ b/airflow_client/docs/User.md
@@ -17,20 +17,26 @@
  under the License.
  -->
 
-# Connection
+# User
+
+A user object with sensitive data
 
-Full representation of the connection.
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**connection_id** | **str** | The connection ID. | [optional] 
-**conn_type** | **str** | The connection type. | [optional] 
-**host** | **str, none_type** | Host of the connection. | [optional] 
-**login** | **str, none_type** | Login of the connection. | [optional] 
-**schema** | **str, none_type** | Schema of the connection. | [optional] 
-**port** | **int, none_type** | Port of the connection. | [optional] 
-**password** | **str** | Paasword of the connection. | [optional] 
-**extra** | **str, none_type** | Other values that cannot be put into another field, e.g. RSA keys. | [optional] 
+**user_id** | **int** | The user id | [optional] [readonly] 
+**first_name** | **str** | The user firstname | [optional] 
+**last_name** | **str** | The user lastname | [optional] 
+**username** | **str** | The username | [optional] 
+**email** | **str** | The user&#39;s email | [optional] 
+**active** | **bool, none_type** | Whether the user is active | [optional] [readonly] 
+**last_login** | **str, none_type** | The last user login | [optional] [readonly] 
+**login_count** | **int, none_type** | The login count | [optional] [readonly] 
+**failed_login_count** | **int, none_type** | The number of times the login failed | [optional] [readonly] 
+**roles** | [**[UserCollectionItemRoles]**](UserCollectionItemRoles.md) | User roles | [optional] [readonly] 
+**created_on** | **str, none_type** | The date user was created | [optional] [readonly] 
+**changed_on** | **str, none_type** | The date user was changed | [optional] [readonly] 
+**password** | **str** |  | [optional] 
 **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
 
 [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/docs/Tag.md b/airflow_client/docs/UserAllOf.md
similarity index 95%
copy from docs/Tag.md
copy to airflow_client/docs/UserAllOf.md
index 4581952..34a4ba8 100644
--- a/docs/Tag.md
+++ b/airflow_client/docs/UserAllOf.md
@@ -17,13 +17,13 @@
  under the License.
  -->
 
-# Tag
+# UserAllOf
+
 
-Tag
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**name** | **str** |  | [optional] 
+**password** | **str** |  | [optional] 
 
 [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
 
diff --git a/docs/RoleApi.md b/airflow_client/docs/UserApi.md
similarity index 74%
rename from docs/RoleApi.md
rename to airflow_client/docs/UserApi.md
index dff1886..5ec7a43 100644
--- a/docs/RoleApi.md
+++ b/airflow_client/docs/UserApi.md
@@ -17,34 +17,34 @@
  under the License.
  -->
 
-# airflow_client.RoleApi
+# Apache Airflow Python Client.UserApi
 
 All URIs are relative to *http://localhost/api/v1*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
-[**get_role**](RoleApi.md#get_role) | **GET** /roles/{role_name} | Get a role
-[**get_roles**](RoleApi.md#get_roles) | **GET** /roles | List roles
+[**get_user**](UserApi.md#get_user) | **GET** /users/{username} | Get a user
+[**get_users**](UserApi.md#get_users) | **GET** /users | List users
 
 
-# **get_role**
-> Role get_role(role_name)
+# **get_user**
+> UserCollectionItem get_user(username)
 
-Get a role
+Get a user
 
 ### Example
 
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import role_api
-from airflow_client.model.role import Role
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import user_api
+from airflow_client.client.model.user_collection_item import UserCollectionItem
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -54,35 +54,36 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = role_api.RoleApi(api_client)
-    role_name = "role_name_example" # str | The role name
+    api_instance = user_api.UserApi(api_client)
+    username = "username_example" # str | The username of the user
 
     # example passing only required values which don't have defaults set
     try:
-        # Get a role
-        api_response = api_instance.get_role(role_name)
+        # Get a user
+        api_response = api_instance.get_user(username)
         pprint(api_response)
-    except airflow_client.ApiException as e:
-        print("Exception when calling RoleApi->get_role: %s\n" % e)
+    except client.ApiException as e:
+        print("Exception when calling UserApi->get_user: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **role_name** | **str**| The role name |
+ **username** | **str**| The username of the user |
 
 ### Return type
 
-[**Role**](Role.md)
+[**UserCollectionItem**](UserCollectionItem.md)
 
 ### Authorization
 
@@ -93,6 +94,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -103,24 +105,24 @@ Name | Type | Description  | Notes
 
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
 
-# **get_roles**
-> RoleCollection get_roles()
+# **get_users**
+> UserCollection get_users()
 
-List roles
+List users
 
 ### Example
 
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import role_api
-from airflow_client.model.role_collection import RoleCollection
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import user_api
+from airflow_client.client.model.user_collection import UserCollection
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -130,28 +132,29 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = role_api.RoleApi(api_client)
+    api_instance = user_api.UserApi(api_client)
     limit = 100 # int | The numbers of items to return. (optional) if omitted the server will use the default value of 100
     offset = 0 # int | The number of items to skip before starting to collect the result set. (optional)
 
     # example passing only required values which don't have defaults set
     # and optional values
     try:
-        # List roles
-        api_response = api_instance.get_roles(limit=limit, offset=offset)
+        # List users
+        api_response = api_instance.get_users(limit=limit, offset=offset)
         pprint(api_response)
-    except airflow_client.ApiException as e:
-        print("Exception when calling RoleApi->get_roles: %s\n" % e)
+    except client.ApiException as e:
+        print("Exception when calling UserApi->get_users: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -161,7 +164,7 @@ Name | Type | Description  | Notes
 
 ### Return type
 
-[**RoleCollection**](RoleCollection.md)
+[**UserCollection**](UserCollection.md)
 
 ### Authorization
 
@@ -172,6 +175,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
diff --git a/docs/DAGRunCollection.md b/airflow_client/docs/UserCollection.md
similarity index 91%
rename from docs/DAGRunCollection.md
rename to airflow_client/docs/UserCollection.md
index 1ad48f6..d4c5d86 100644
--- a/docs/DAGRunCollection.md
+++ b/airflow_client/docs/UserCollection.md
@@ -17,13 +17,14 @@
  under the License.
  -->
 
-# DAGRunCollection
+# UserCollection
+
+Collection of users.
 
-Collection of DAG runs.
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**dag_runs** | [**[DAGRun]**](DAGRun.md) |  | [optional] 
+**users** | [**[UserCollectionItem]**](UserCollectionItem.md) |  | [optional] 
 **total_entries** | **int** | Count of objects in the current result set. | [optional] 
 **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
 
diff --git a/docs/ActionCollectionAllOf.md b/airflow_client/docs/UserCollectionAllOf.md
similarity index 91%
rename from docs/ActionCollectionAllOf.md
rename to airflow_client/docs/UserCollectionAllOf.md
index 8ba6acd..b8b7117 100644
--- a/docs/ActionCollectionAllOf.md
+++ b/airflow_client/docs/UserCollectionAllOf.md
@@ -17,12 +17,13 @@
  under the License.
  -->
 
-# ActionCollectionAllOf
+# UserCollectionAllOf
+
 
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**actions** | [**[Action]**](Action.md) |  | [optional] 
+**users** | [**[UserCollectionItem]**](UserCollectionItem.md) |  | [optional] 
 
 [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
 
diff --git a/docs/EventLog.md b/airflow_client/docs/UserCollectionItem.md
similarity index 54%
rename from docs/EventLog.md
rename to airflow_client/docs/UserCollectionItem.md
index 5be5948..fa7ae34 100644
--- a/docs/EventLog.md
+++ b/airflow_client/docs/UserCollectionItem.md
@@ -17,20 +17,25 @@
  under the License.
  -->
 
-# EventLog
+# UserCollectionItem
+
+A user object 
 
-Log of user operations via CLI or Web UI.
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**event_log_id** | **int** | The evnet log ID | [optional] [readonly] 
-**when** | **datetime** | The time when these events happened. | [optional] [readonly] 
-**dag_id** | **str, none_type** | The DAG ID | [optional] [readonly] 
-**task_id** | **str, none_type** | The DAG ID | [optional] [readonly] 
-**event** | **str** | A key describing the type of event. | [optional] [readonly] 
-**execution_date** | **datetime, none_type** | When the event was dispatched for an object having execution_date, the value of this field.  | [optional] [readonly] 
-**owner** | **str** | Name of the user who triggered these events a. | [optional] [readonly] 
-**extra** | **str, none_type** | Other information that was not included in the other fields, e.g. the complete CLI command.  | [optional] [readonly] 
+**user_id** | **int** | The user id | [optional] [readonly] 
+**first_name** | **str** | The user firstname | [optional] 
+**last_name** | **str** | The user lastname | [optional] 
+**username** | **str** | The username | [optional] 
+**email** | **str** | The user&#39;s email | [optional] 
+**active** | **bool, none_type** | Whether the user is active | [optional] [readonly] 
+**last_login** | **str, none_type** | The last user login | [optional] [readonly] 
+**login_count** | **int, none_type** | The login count | [optional] [readonly] 
+**failed_login_count** | **int, none_type** | The number of times the login failed | [optional] [readonly] 
+**roles** | [**[UserCollectionItemRoles]**](UserCollectionItemRoles.md) | User roles | [optional] [readonly] 
+**created_on** | **str, none_type** | The date user was created | [optional] [readonly] 
+**changed_on** | **str, none_type** | The date user was changed | [optional] [readonly] 
 
 [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
 
diff --git a/docs/Tag.md b/airflow_client/docs/UserCollectionItemRoles.md
similarity index 97%
rename from docs/Tag.md
rename to airflow_client/docs/UserCollectionItemRoles.md
index 4581952..5d655f8 100644
--- a/docs/Tag.md
+++ b/airflow_client/docs/UserCollectionItemRoles.md
@@ -17,9 +17,9 @@
  under the License.
  -->
 
-# Tag
+# UserCollectionItemRoles
+
 
-Tag
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/Variable.md b/airflow_client/docs/Variable.md
similarity index 99%
rename from docs/Variable.md
rename to airflow_client/docs/Variable.md
index 85c5f80..6a2dbde 100644
--- a/docs/Variable.md
+++ b/airflow_client/docs/Variable.md
@@ -20,6 +20,7 @@
 # Variable
 
 Full representation of Variable
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/VariableAllOf.md b/airflow_client/docs/VariableAllOf.md
similarity index 99%
rename from docs/VariableAllOf.md
rename to airflow_client/docs/VariableAllOf.md
index 57089b4..bf68cf4 100644
--- a/docs/VariableAllOf.md
+++ b/airflow_client/docs/VariableAllOf.md
@@ -19,6 +19,7 @@
 
 # VariableAllOf
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/VariableApi.md b/airflow_client/docs/VariableApi.md
similarity index 87%
rename from docs/VariableApi.md
rename to airflow_client/docs/VariableApi.md
index 2ec4485..856c986 100644
--- a/docs/VariableApi.md
+++ b/airflow_client/docs/VariableApi.md
@@ -17,7 +17,7 @@
  under the License.
  -->
 
-# airflow_client.VariableApi
+# Apache Airflow Python Client.VariableApi
 
 All URIs are relative to *http://localhost/api/v1*
 
@@ -40,13 +40,13 @@ Delete a variable
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import variable_api
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import variable_api
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -56,13 +56,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = variable_api.VariableApi(api_client)
     variable_key = "variable_key_example" # str | The variable Key.
@@ -71,10 +71,11 @@ with airflow_client.ApiClient(configuration) as api_client:
     try:
         # Delete a variable
         api_instance.delete_variable(variable_key)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling VariableApi->delete_variable: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -94,6 +95,7 @@ void (empty response body)
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -117,14 +119,14 @@ Get a variable by key.
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import variable_api
-from airflow_client.model.error import Error
-from airflow_client.model.variable import Variable
+import airflow_client.client
+from airflow_client.client.api import variable_api
+from airflow_client.client.model.variable import Variable
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -134,13 +136,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = variable_api.VariableApi(api_client)
     variable_key = "variable_key_example" # str | The variable Key.
@@ -150,10 +152,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Get a variable
         api_response = api_instance.get_variable(variable_key)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling VariableApi->get_variable: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -173,6 +176,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -195,14 +199,14 @@ The collection does not contain data. To get data, you must get a single entity.
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import variable_api
-from airflow_client.model.error import Error
-from airflow_client.model.variable_collection import VariableCollection
+import airflow_client.client
+from airflow_client.client.api import variable_api
+from airflow_client.client.model.variable_collection import VariableCollection
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -212,13 +216,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = variable_api.VariableApi(api_client)
     limit = 100 # int | The numbers of items to return. (optional) if omitted the server will use the default value of 100
@@ -230,10 +234,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # List variables
         api_response = api_instance.get_variables(limit=limit, offset=offset)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling VariableApi->get_variables: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -254,6 +259,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -275,14 +281,14 @@ Update a variable by key.
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import variable_api
-from airflow_client.model.error import Error
-from airflow_client.model.variable import Variable
+import airflow_client.client
+from airflow_client.client.api import variable_api
+from airflow_client.client.model.variable import Variable
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -292,13 +298,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = variable_api.VariableApi(api_client)
     variable_key = "variable_key_example" # str | The variable Key.
@@ -312,7 +318,7 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Update a variable
         api_response = api_instance.patch_variable(variable_key, variable)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling VariableApi->patch_variable: %s\n" % e)
 
     # example passing only required values which don't have defaults set
@@ -321,10 +327,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Update a variable
         api_response = api_instance.patch_variable(variable_key, variable, update_mask=update_mask)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling VariableApi->patch_variable: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -346,6 +353,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: application/json
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -367,14 +375,14 @@ Create a variable
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import variable_api
-from airflow_client.model.error import Error
-from airflow_client.model.variable import Variable
+import airflow_client.client
+from airflow_client.client.api import variable_api
+from airflow_client.client.model.variable import Variable
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -384,13 +392,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = variable_api.VariableApi(api_client)
     variable = Variable() # Variable | 
@@ -400,10 +408,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Create a variable
         api_response = api_instance.post_variables(variable)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling VariableApi->post_variables: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -423,6 +432,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: application/json
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
diff --git a/docs/VariableCollection.md b/airflow_client/docs/VariableCollection.md
similarity index 99%
rename from docs/VariableCollection.md
rename to airflow_client/docs/VariableCollection.md
index e569f58..bbbc654 100644
--- a/docs/VariableCollection.md
+++ b/airflow_client/docs/VariableCollection.md
@@ -20,6 +20,7 @@
 # VariableCollection
 
 Collection of variables.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/VariableCollectionAllOf.md b/airflow_client/docs/VariableCollectionAllOf.md
similarity index 99%
rename from docs/VariableCollectionAllOf.md
rename to airflow_client/docs/VariableCollectionAllOf.md
index 5e6ba4b..f482c83 100644
--- a/docs/VariableCollectionAllOf.md
+++ b/airflow_client/docs/VariableCollectionAllOf.md
@@ -19,6 +19,7 @@
 
 # VariableCollectionAllOf
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/VariableCollectionItem.md b/airflow_client/docs/VariableCollectionItem.md
similarity index 99%
rename from docs/VariableCollectionItem.md
rename to airflow_client/docs/VariableCollectionItem.md
index 080cba5..eeed71c 100644
--- a/docs/VariableCollectionItem.md
+++ b/airflow_client/docs/VariableCollectionItem.md
@@ -20,6 +20,7 @@
 # VariableCollectionItem
 
 XCom entry collection item. The value field are only available when retrieving a single object due to the sensitivity of this data.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/VersionInfo.md b/airflow_client/docs/VersionInfo.md
similarity index 99%
rename from docs/VersionInfo.md
rename to airflow_client/docs/VersionInfo.md
index 2271586..7183177 100644
--- a/docs/VersionInfo.md
+++ b/airflow_client/docs/VersionInfo.md
@@ -20,6 +20,7 @@
 # VersionInfo
 
 Version information.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/WeightRule.md b/airflow_client/docs/WeightRule.md
similarity index 99%
rename from docs/WeightRule.md
rename to airflow_client/docs/WeightRule.md
index 69d6c03..d7a590f 100644
--- a/docs/WeightRule.md
+++ b/airflow_client/docs/WeightRule.md
@@ -20,6 +20,7 @@
 # WeightRule
 
 Weight rule.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/XCom.md b/airflow_client/docs/XCom.md
similarity index 99%
rename from docs/XCom.md
rename to airflow_client/docs/XCom.md
index eb36a81..c75be44 100644
--- a/docs/XCom.md
+++ b/airflow_client/docs/XCom.md
@@ -20,6 +20,7 @@
 # XCom
 
 Full representations of XCom entry.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/XComAllOf.md b/airflow_client/docs/XComAllOf.md
similarity index 99%
rename from docs/XComAllOf.md
rename to airflow_client/docs/XComAllOf.md
index 082c962..74a6278 100644
--- a/docs/XComAllOf.md
+++ b/airflow_client/docs/XComAllOf.md
@@ -19,6 +19,7 @@
 
 # XComAllOf
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/XComApi.md b/airflow_client/docs/XComApi.md
similarity index 89%
rename from docs/XComApi.md
rename to airflow_client/docs/XComApi.md
index 7d0bf3d..c1a1dc1 100644
--- a/docs/XComApi.md
+++ b/airflow_client/docs/XComApi.md
@@ -17,7 +17,7 @@
  under the License.
  -->
 
-# airflow_client.XComApi
+# Apache Airflow Python Client.XComApi
 
 All URIs are relative to *http://localhost/api/v1*
 
@@ -39,14 +39,14 @@ This endpoint allows specifying `~` as the dag_id, dag_run_id, task_id to retrie
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import x_com_api
-from airflow_client.model.x_com_collection import XComCollection
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import x_com_api
+from airflow_client.client.model.x_com_collection import XComCollection
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -56,13 +56,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = x_com_api.XComApi(api_client)
     dag_id = "dag_id_example" # str | The DAG ID.
@@ -76,7 +76,7 @@ with airflow_client.ApiClient(configuration) as api_client:
         # List XCom entries
         api_response = api_instance.get_xcom_entries(dag_id, dag_run_id, task_id)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling XComApi->get_xcom_entries: %s\n" % e)
 
     # example passing only required values which don't have defaults set
@@ -85,10 +85,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # List XCom entries
         api_response = api_instance.get_xcom_entries(dag_id, dag_run_id, task_id, limit=limit, offset=offset)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling XComApi->get_xcom_entries: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -112,6 +113,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
@@ -131,14 +133,14 @@ Get an XCom entry
 * Basic Authentication (Basic):
 ```python
 import time
-import airflow_client
-from airflow_client.api import x_com_api
-from airflow_client.model.x_com import XCom
-from airflow_client.model.error import Error
+import airflow_client.client
+from airflow_client.client.api import x_com_api
+from airflow_client.client.model.x_com import XCom
+from airflow_client.client.model.error import Error
 from pprint import pprint
 # Defining the host is optional and defaults to http://localhost/api/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     host = "http://localhost/api/v1"
 )
 
@@ -148,13 +150,13 @@ configuration = airflow_client.Configuration(
 # satisfies your auth use case.
 
 # Configure HTTP basic authorization: Basic
-configuration = airflow_client.Configuration(
+configuration = client.Configuration(
     username = 'YOUR_USERNAME',
     password = 'YOUR_PASSWORD'
 )
 
 # Enter a context with an instance of the API client
-with airflow_client.ApiClient(configuration) as api_client:
+with client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = x_com_api.XComApi(api_client)
     dag_id = "dag_id_example" # str | The DAG ID.
@@ -167,10 +169,11 @@ with airflow_client.ApiClient(configuration) as api_client:
         # Get an XCom entry
         api_response = api_instance.get_xcom_entry(dag_id, dag_run_id, task_id, xcom_key)
         pprint(api_response)
-    except airflow_client.ApiException as e:
+    except client.ApiException as e:
         print("Exception when calling XComApi->get_xcom_entry: %s\n" % e)
 ```
 
+
 ### Parameters
 
 Name | Type | Description  | Notes
@@ -193,6 +196,7 @@ Name | Type | Description  | Notes
  - **Content-Type**: Not defined
  - **Accept**: application/json
 
+
 ### HTTP response details
 | Status code | Description | Response headers |
 |-------------|-------------|------------------|
diff --git a/docs/XComCollection.md b/airflow_client/docs/XComCollection.md
similarity index 99%
rename from docs/XComCollection.md
rename to airflow_client/docs/XComCollection.md
index ee7e1f9..4527a8f 100644
--- a/docs/XComCollection.md
+++ b/airflow_client/docs/XComCollection.md
@@ -20,6 +20,7 @@
 # XComCollection
 
 Collection of XCom entries.
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/XComCollectionAllOf.md b/airflow_client/docs/XComCollectionAllOf.md
similarity index 99%
rename from docs/XComCollectionAllOf.md
rename to airflow_client/docs/XComCollectionAllOf.md
index de92b8a..c4adfbb 100644
--- a/docs/XComCollectionAllOf.md
+++ b/airflow_client/docs/XComCollectionAllOf.md
@@ -19,6 +19,7 @@
 
 # XComCollectionAllOf
 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/docs/XComCollectionItem.md b/airflow_client/docs/XComCollectionItem.md
similarity index 99%
rename from docs/XComCollectionItem.md
rename to airflow_client/docs/XComCollectionItem.md
index 17fe7c0..2e889c2 100644
--- a/docs/XComCollectionItem.md
+++ b/airflow_client/docs/XComCollectionItem.md
@@ -20,6 +20,7 @@
 # XComCollectionItem
 
 XCom entry collection item.  The value field is only available when reading a single object due to the size of the value. 
+
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
diff --git a/airflow_client/models/__init__.py b/airflow_client/models/__init__.py
deleted file mode 100644
index 0060c68..0000000
--- a/airflow_client/models/__init__.py
+++ /dev/null
@@ -1,109 +0,0 @@
-# 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.
-
-# flake8: noqa
-
-# import all models into this package
-# if you have many models here with many references from one model to another this may
-# raise a RecursionError
-# to avoid this, import only the models that you directly need like:
-# from from airflow_client.model.pet import Pet
-# or import this package, but before doing it, use:
-# import sys
-# sys.setrecursionlimit(n)
-
-from airflow_client.model.action import Action
-from airflow_client.model.action_collection import ActionCollection
-from airflow_client.model.action_collection_all_of import ActionCollectionAllOf
-from airflow_client.model.action_resource import ActionResource
-from airflow_client.model.class_reference import ClassReference
-from airflow_client.model.clear_task_instance import ClearTaskInstance
-from airflow_client.model.collection_info import CollectionInfo
-from airflow_client.model.color import Color
-from airflow_client.model.config import Config
-from airflow_client.model.config_option import ConfigOption
-from airflow_client.model.config_section import ConfigSection
-from airflow_client.model.connection import Connection
-from airflow_client.model.connection_all_of import ConnectionAllOf
-from airflow_client.model.connection_collection import ConnectionCollection
-from airflow_client.model.connection_collection_all_of import ConnectionCollectionAllOf
-from airflow_client.model.connection_collection_item import ConnectionCollectionItem
-from airflow_client.model.cron_expression import CronExpression
-from airflow_client.model.dag import DAG
-from airflow_client.model.dag_collection import DAGCollection
-from airflow_client.model.dag_collection_all_of import DAGCollectionAllOf
-from airflow_client.model.dag_detail import DAGDetail
-from airflow_client.model.dag_detail_all_of import DAGDetailAllOf
-from airflow_client.model.dag_run import DAGRun
-from airflow_client.model.dag_run_collection import DAGRunCollection
-from airflow_client.model.dag_run_collection_all_of import DAGRunCollectionAllOf
-from airflow_client.model.dag_state import DagState
-from airflow_client.model.error import Error
-from airflow_client.model.event_log import EventLog
-from airflow_client.model.event_log_collection import EventLogCollection
-from airflow_client.model.event_log_collection_all_of import EventLogCollectionAllOf
-from airflow_client.model.extra_link import ExtraLink
-from airflow_client.model.extra_link_collection import ExtraLinkCollection
-from airflow_client.model.health_info import HealthInfo
-from airflow_client.model.health_status import HealthStatus
-from airflow_client.model.import_error import ImportError
-from airflow_client.model.import_error_collection import ImportErrorCollection
-from airflow_client.model.import_error_collection_all_of import ImportErrorCollectionAllOf
-from airflow_client.model.inline_response200 import InlineResponse200
-from airflow_client.model.inline_response2001 import InlineResponse2001
-from airflow_client.model.list_dag_runs_form import ListDagRunsForm
-from airflow_client.model.list_task_instance_form import ListTaskInstanceForm
-from airflow_client.model.metadatabase_status import MetadatabaseStatus
-from airflow_client.model.plugin_collection import PluginCollection
-from airflow_client.model.plugin_collection_all_of import PluginCollectionAllOf
-from airflow_client.model.plugin_collection_item import PluginCollectionItem
-from airflow_client.model.pool import Pool
-from airflow_client.model.pool_collection import PoolCollection
-from airflow_client.model.pool_collection_all_of import PoolCollectionAllOf
-from airflow_client.model.relative_delta import RelativeDelta
-from airflow_client.model.resource import Resource
-from airflow_client.model.role import Role
-from airflow_client.model.role_collection import RoleCollection
-from airflow_client.model.role_collection_all_of import RoleCollectionAllOf
-from airflow_client.model.sla_miss import SLAMiss
-from airflow_client.model.schedule_interval import ScheduleInterval
-from airflow_client.model.scheduler_status import SchedulerStatus
-from airflow_client.model.tag import Tag
-from airflow_client.model.task import Task
-from airflow_client.model.task_collection import TaskCollection
-from airflow_client.model.task_extra_links import TaskExtraLinks
-from airflow_client.model.task_instance import TaskInstance
-from airflow_client.model.task_instance_collection import TaskInstanceCollection
-from airflow_client.model.task_instance_collection_all_of import TaskInstanceCollectionAllOf
-from airflow_client.model.task_instance_reference import TaskInstanceReference
-from airflow_client.model.task_instance_reference_collection import TaskInstanceReferenceCollection
-from airflow_client.model.task_state import TaskState
-from airflow_client.model.time_delta import TimeDelta
-from airflow_client.model.trigger_rule import TriggerRule
-from airflow_client.model.update_task_instances_state import UpdateTaskInstancesState
-from airflow_client.model.variable import Variable
-from airflow_client.model.variable_all_of import VariableAllOf
-from airflow_client.model.variable_collection import VariableCollection
-from airflow_client.model.variable_collection_all_of import VariableCollectionAllOf
-from airflow_client.model.variable_collection_item import VariableCollectionItem
-from airflow_client.model.version_info import VersionInfo
-from airflow_client.model.weight_rule import WeightRule
-from airflow_client.model.x_com import XCom
-from airflow_client.model.x_com_all_of import XComAllOf
-from airflow_client.model.x_com_collection import XComCollection
-from airflow_client.model.x_com_collection_all_of import XComCollectionAllOf
-from airflow_client.model.x_com_collection_item import XComCollectionItem
diff --git a/test/__init__.py b/airflow_client/test/__init__.py
similarity index 100%
rename from test/__init__.py
rename to airflow_client/test/__init__.py
diff --git a/test/test_action.py b/airflow_client/test/test_action.py
similarity index 56%
rename from test/test_action.py
rename to airflow_client/test/test_action.py
index dda5501..e26e8b8 100644
--- a/test/test_action.py
+++ b/airflow_client/test/test_action.py
@@ -18,7 +18,7 @@
 """
     Airflow API (Stable)
 
-    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
+    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
 
     The version of the OpenAPI document: 1.0.0
     Contact: dev@airflow.apache.org
@@ -29,8 +29,8 @@
 import sys
 import unittest
 
-import airflow_client
-from airflow_client.model.action import Action
+import airflow_client.client
+from airflow_client.client.model.action import Action
 
 
 class TestAction(unittest.TestCase):
diff --git a/test/test_action_collection.py b/airflow_client/test/test_action_collection.py
similarity index 55%
rename from test/test_action_collection.py
rename to airflow_client/test/test_action_collection.py
index cccd9a8..15a9f99 100644
--- a/test/test_action_collection.py
+++ b/airflow_client/test/test_action_collection.py
@@ -18,7 +18,7 @@
 """
     Airflow API (Stable)
 
-    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
+    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
 
     The version of the OpenAPI document: 1.0.0
     Contact: dev@airflow.apache.org
@@ -29,14 +29,14 @@
 import sys
 import unittest
 
-import airflow_client
-from airflow_client.model.action import Action
-from airflow_client.model.action_collection_all_of import ActionCollectionAllOf
-from airflow_client.model.collection_info import CollectionInfo
+import airflow_client.client
+from airflow_client.client.model.action import Action
+from airflow_client.client.model.action_collection_all_of import ActionCollectionAllOf
+from airflow_client.client.model.collection_info import CollectionInfo
 globals()['Action'] = Action
 globals()['ActionCollectionAllOf'] = ActionCollectionAllOf
 globals()['CollectionInfo'] = CollectionInfo
-from airflow_client.model.action_collection import ActionCollection
+from airflow_client.client.model.action_collection import ActionCollection
 
 
 class TestActionCollection(unittest.TestCase):
diff --git a/test/test_action_collection_all_of.py b/airflow_client/test/test_action_collection_all_of.py
similarity index 56%
copy from test/test_action_collection_all_of.py
copy to airflow_client/test/test_action_collection_all_of.py
index 28bd756..4c81438 100644
--- a/test/test_action_collection_all_of.py
+++ b/airflow_client/test/test_action_collection_all_of.py
@@ -18,7 +18,7 @@
 """
     Airflow API (Stable)
 
-    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
+    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
 
     The version of the OpenAPI document: 1.0.0
     Contact: dev@airflow.apache.org
@@ -29,10 +29,10 @@
 import sys
 import unittest
 
-import airflow_client
-from airflow_client.model.action import Action
+import airflow_client.client
+from airflow_client.client.model.action import Action
 globals()['Action'] = Action
-from airflow_client.model.action_collection_all_of import ActionCollectionAllOf
+from airflow_client.client.model.action_collection_all_of import ActionCollectionAllOf
 
 
 class TestActionCollectionAllOf(unittest.TestCase):
diff --git a/test/test_action_resource.py b/airflow_client/test/test_action_resource.py
similarity index 56%
rename from test/test_action_resource.py
rename to airflow_client/test/test_action_resource.py
index a529afe..932c272 100644
--- a/test/test_action_resource.py
+++ b/airflow_client/test/test_action_resource.py
@@ -18,7 +18,7 @@
 """
     Airflow API (Stable)
 
-    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
+    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
 
     The version of the OpenAPI document: 1.0.0
     Contact: dev@airflow.apache.org
@@ -29,12 +29,12 @@
 import sys
 import unittest
 
-import airflow_client
-from airflow_client.model.action import Action
-from airflow_client.model.resource import Resource
+import airflow_client.client
+from airflow_client.client.model.action import Action
+from airflow_client.client.model.resource import Resource
 globals()['Action'] = Action
 globals()['Resource'] = Resource
-from airflow_client.model.action_resource import ActionResource
+from airflow_client.client.model.action_resource import ActionResource
 
 
 class TestActionResource(unittest.TestCase):
diff --git a/test/test_class_reference.py b/airflow_client/test/test_class_reference.py
similarity index 56%
rename from test/test_class_reference.py
rename to airflow_client/test/test_class_reference.py
index b2ff157..748a504 100644
--- a/test/test_class_reference.py
+++ b/airflow_client/test/test_class_reference.py
@@ -18,7 +18,7 @@
 """
     Airflow API (Stable)
 
-    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
+    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
 
     The version of the OpenAPI document: 1.0.0
     Contact: dev@airflow.apache.org
@@ -29,8 +29,8 @@
 import sys
 import unittest
 
-import airflow_client
-from airflow_client.model.class_reference import ClassReference
+import airflow_client.client
+from airflow_client.client.model.class_reference import ClassReference
 
 
 class TestClassReference(unittest.TestCase):
diff --git a/test/test_clear_task_instance.py b/airflow_client/test/test_clear_task_instance.py
similarity index 56%
rename from test/test_clear_task_instance.py
rename to airflow_client/test/test_clear_task_instance.py
index 51db959..978b98a 100644
--- a/test/test_clear_task_instance.py
+++ b/airflow_client/test/test_clear_task_instance.py
@@ -18,7 +18,7 @@
 """
     Airflow API (Stable)
 
-    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
+    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
 
     The version of the OpenAPI document: 1.0.0
     Contact: dev@airflow.apache.org
@@ -29,8 +29,8 @@
 import sys
 import unittest
 
-import airflow_client
-from airflow_client.model.clear_task_instance import ClearTaskInstance
+import airflow_client.client
+from airflow_client.client.model.clear_task_instance import ClearTaskInstance
 
 
 class TestClearTaskInstance(unittest.TestCase):
diff --git a/test/test_collection_info.py b/airflow_client/test/test_collection_info.py
similarity index 56%
copy from test/test_collection_info.py
copy to airflow_client/test/test_collection_info.py
index 468b101..4c86b54 100644
--- a/test/test_collection_info.py
+++ b/airflow_client/test/test_collection_info.py
@@ -18,7 +18,7 @@
 """
     Airflow API (Stable)
 
-    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
+    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
 
     The version of the OpenAPI document: 1.0.0
     Contact: dev@airflow.apache.org
@@ -29,8 +29,8 @@
 import sys
 import unittest
 
-import airflow_client
-from airflow_client.model.collection_info import CollectionInfo
+import airflow_client.client
+from airflow_client.client.model.collection_info import CollectionInfo
 
 
 class TestCollectionInfo(unittest.TestCase):
diff --git a/test/test_color.py b/airflow_client/test/test_color.py
similarity index 56%
rename from test/test_color.py
rename to airflow_client/test/test_color.py
index abae7fe..fdedffd 100644
--- a/test/test_color.py
+++ b/airflow_client/test/test_color.py
@@ -18,7 +18,7 @@
 """
     Airflow API (Stable)
 
-    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
+    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
 
     The version of the OpenAPI document: 1.0.0
     Contact: dev@airflow.apache.org
@@ -29,8 +29,8 @@
 import sys
 import unittest
 
-import airflow_client
-from airflow_client.model.color import Color
+import airflow_client.client
+from airflow_client.client.model.color import Color
 
 
 class TestColor(unittest.TestCase):
diff --git a/test/test_config.py b/airflow_client/test/test_config.py
similarity index 56%
rename from test/test_config.py
rename to airflow_client/test/test_config.py
index d2cb2ea..26d86d5 100644
--- a/test/test_config.py
+++ b/airflow_client/test/test_config.py
@@ -18,7 +18,7 @@
 """
     Airflow API (Stable)
 
-    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
+    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
 
     The version of the OpenAPI document: 1.0.0
     Contact: dev@airflow.apache.org
@@ -29,10 +29,10 @@
 import sys
 import unittest
 
-import airflow_client
-from airflow_client.model.config_section import ConfigSection
+import airflow_client.client
+from airflow_client.client.model.config_section import ConfigSection
 globals()['ConfigSection'] = ConfigSection
-from airflow_client.model.config import Config
+from airflow_client.client.model.config import Config
 
 
 class TestConfig(unittest.TestCase):
diff --git a/test/test_config_api.py b/airflow_client/test/test_config_api.py
similarity index 56%
rename from test/test_config_api.py
rename to airflow_client/test/test_config_api.py
index f1647a9..452c6d2 100644
--- a/test/test_config_api.py
+++ b/airflow_client/test/test_config_api.py
@@ -18,7 +18,7 @@
 """
     Airflow API (Stable)
 
-    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
+    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
 
     The version of the OpenAPI document: 1.0.0
     Contact: dev@airflow.apache.org
@@ -28,8 +28,8 @@
 
 import unittest
 
-import airflow_client
-from airflow_client.api.config_api import ConfigApi  # noqa: E501
+import airflow_client.client
+from airflow_client.client.api.config_api import ConfigApi  # noqa: E501
 
 
 class TestConfigApi(unittest.TestCase):
diff --git a/test/test_config_option.py b/airflow_client/test/test_config_option.py
similarity index 56%
rename from test/test_config_option.py
rename to airflow_client/test/test_config_option.py
index 1aed379..82942bc 100644
--- a/test/test_config_option.py
+++ b/airflow_client/test/test_config_option.py
@@ -18,7 +18,7 @@
 """
     Airflow API (Stable)
 
-    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
+    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
 
     The version of the OpenAPI document: 1.0.0
     Contact: dev@airflow.apache.org
@@ -29,8 +29,8 @@
 import sys
 import unittest
 
-import airflow_client
-from airflow_client.model.config_option import ConfigOption
+import airflow_client.client
+from airflow_client.client.model.config_option import ConfigOption
 
 
 class TestConfigOption(unittest.TestCase):
diff --git a/test/test_config_section.py b/airflow_client/test/test_config_section.py
similarity index 56%
rename from test/test_config_section.py
rename to airflow_client/test/test_config_section.py
index 5157c3f..d940812 100644
--- a/test/test_config_section.py
+++ b/airflow_client/test/test_config_section.py
@@ -18,7 +18,7 @@
 """
     Airflow API (Stable)
 
-    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
+    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
 
     The version of the OpenAPI document: 1.0.0
     Contact: dev@airflow.apache.org
@@ -29,10 +29,10 @@
 import sys
 import unittest
 
-import airflow_client
-from airflow_client.model.config_option import ConfigOption
+import airflow_client.client
+from airflow_client.client.model.config_option import ConfigOption
 globals()['ConfigOption'] = ConfigOption
-from airflow_client.model.config_section import ConfigSection
+from airflow_client.client.model.config_section import ConfigSection
 
 
 class TestConfigSection(unittest.TestCase):
diff --git a/test/test_connection.py b/airflow_client/test/test_connection.py
similarity index 55%
rename from test/test_connection.py
rename to airflow_client/test/test_connection.py
index 5899982..d098cf9 100644
--- a/test/test_connection.py
+++ b/airflow_client/test/test_connection.py
@@ -18,7 +18,7 @@
 """
     Airflow API (Stable)
 
-    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
+    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
 
     The version of the OpenAPI document: 1.0.0
     Contact: dev@airflow.apache.org
@@ -29,12 +29,12 @@
 import sys
 import unittest
 
-import airflow_client
-from airflow_client.model.connection_all_of import ConnectionAllOf
-from airflow_client.model.connection_collection_item import ConnectionCollectionItem
+import airflow_client.client
+from airflow_client.client.model.connection_all_of import ConnectionAllOf
+from airflow_client.client.model.connection_collection_item import ConnectionCollectionItem
 globals()['ConnectionAllOf'] = ConnectionAllOf
 globals()['ConnectionCollectionItem'] = ConnectionCollectionItem
-from airflow_client.model.connection import Connection
+from airflow_client.client.model.connection import Connection
 
 
 class TestConnection(unittest.TestCase):
diff --git a/test/test_connection_all_of.py b/airflow_client/test/test_connection_all_of.py
similarity index 56%
rename from test/test_connection_all_of.py
rename to airflow_client/test/test_connection_all_of.py
index 53ff440..b6c021e 100644
--- a/test/test_connection_all_of.py
+++ b/airflow_client/test/test_connection_all_of.py
@@ -18,7 +18,7 @@
 """
     Airflow API (Stable)
 
-    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
+    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
 
     The version of the OpenAPI document: 1.0.0
     Contact: dev@airflow.apache.org
@@ -29,8 +29,8 @@
 import sys
 import unittest
 
-import airflow_client
-from airflow_client.model.connection_all_of import ConnectionAllOf
+import airflow_client.client
+from airflow_client.client.model.connection_all_of import ConnectionAllOf
 
 
 class TestConnectionAllOf(unittest.TestCase):
diff --git a/test/test_connection_api.py b/airflow_client/test/test_connection_api.py
similarity index 58%
rename from test/test_connection_api.py
rename to airflow_client/test/test_connection_api.py
index e98612b..7f341ac 100644
--- a/test/test_connection_api.py
+++ b/airflow_client/test/test_connection_api.py
@@ -18,7 +18,7 @@
 """
     Airflow API (Stable)
 
-    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
+    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
 
     The version of the OpenAPI document: 1.0.0
     Contact: dev@airflow.apache.org
@@ -28,8 +28,8 @@
 
 import unittest
 
-import airflow_client
-from airflow_client.api.connection_api import ConnectionApi  # noqa: E501
+import airflow_client.client
+from airflow_client.client.api.connection_api import ConnectionApi  # noqa: E501
 
 
 class TestConnectionApi(unittest.TestCase):
diff --git a/test/test_connection_collection.py b/airflow_client/test/test_connection_collection.py
similarity index 55%
copy from test/test_connection_collection.py
copy to airflow_client/test/test_connection_collection.py
index 9474618..44fc69f 100644
--- a/test/test_connection_collection.py
+++ b/airflow_client/test/test_connection_collection.py
@@ -18,7 +18,7 @@
 """
     Airflow API (Stable)
 
-    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
+    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
 
     The version of the OpenAPI document: 1.0.0
     Contact: dev@airflow.apache.org
@@ -29,14 +29,14 @@
 import sys
 import unittest
 
-import airflow_client
-from airflow_client.model.collection_info import CollectionInfo
-from airflow_client.model.connection_collection_all_of import ConnectionCollectionAllOf
-from airflow_client.model.connection_collection_item import ConnectionCollectionItem
+import airflow_client.client
+from airflow_client.client.model.collection_info import CollectionInfo
+from airflow_client.client.model.connection_collection_all_of import ConnectionCollectionAllOf
+from airflow_client.client.model.connection_collection_item import ConnectionCollectionItem
 globals()['CollectionInfo'] = CollectionInfo
 globals()['ConnectionCollectionAllOf'] = ConnectionCollectionAllOf
 globals()['ConnectionCollectionItem'] = ConnectionCollectionItem
-from airflow_client.model.connection_collection import ConnectionCollection
+from airflow_client.client.model.connection_collection import ConnectionCollection
 
 
 class TestConnectionCollection(unittest.TestCase):
diff --git a/test/test_connection_collection_all_of.py b/airflow_client/test/test_connection_collection_all_of.py
similarity index 56%
rename from test/test_connection_collection_all_of.py
rename to airflow_client/test/test_connection_collection_all_of.py
index a9f38c0..0d00c65 100644
--- a/test/test_connection_collection_all_of.py
+++ b/airflow_client/test/test_connection_collection_all_of.py
@@ -18,7 +18,7 @@
 """
     Airflow API (Stable)
 
-    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
+    # Overview  To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases.  Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ```  ## Resources  The term `resource` refers to a single type of object in th [...]
 
     The version of the OpenAPI document: 1.0.0
     Contact: dev@airflow.apache.org
@@ -29,10 +29,10 @@
 import sys
 import unittest
 
-import airflow_client
-from airflow_client.model.connection_collection_item import ConnectionCollectionItem
+import airflow_client.client
+from airflow_client.client.model.connection_collection_item import ConnectionCollectionItem
... 2746 lines suppressed ...