You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by ho...@apache.org on 2021/06/18 06:37:07 UTC

[airflow-client-go] branch master updated: upgrade go client to latest api spec using openapi-generator 5.x (#10)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new c4bfdb8  upgrade go client to latest api spec using openapi-generator 5.x (#10)
c4bfdb8 is described below

commit c4bfdb8caedb290bf002cf40aa4ec1414dcc2554
Author: QP Hou <qp...@scribd.com>
AuthorDate: Thu Jun 17 23:37:01 2021 -0700

    upgrade go client to latest api spec using openapi-generator 5.x (#10)
    
    * update go client with latest openapi spec and openapi generator 5.x
    
    * update example and test to use new API
    
    * add golang 1.16 to test matrix
---
 .github/workflows/ci.yml                           |    4 +-
 README.md                                          |   11 +-
 airflow/.openapi-generator-ignore                  |    6 +
 airflow/.openapi-generator/FILES                   |  217 +++
 airflow/.openapi-generator/VERSION                 |    2 +-
 airflow/README.md                                  |  413 +++-
 airflow/api/openapi.yaml                           | 2020 +++++++++++++++++---
 airflow/api_config.go                              |   49 +-
 airflow/api_connection.go                          |  310 ++-
 airflow/api_dag.go                                 |  611 +++++-
 airflow/api_dag_run.go                             |  386 +++-
 airflow/api_event_log.go                           |  130 +-
 airflow/api_import_error.go                        |  129 +-
 airflow/api_monitoring.go                          |   95 +-
 airflow/api_permission.go                          |  181 ++
 airflow/api_plugin.go                              |  191 ++
 airflow/api_pool.go                                |  300 ++-
 airflow/api_provider.go                            |  165 ++
 airflow/api_role.go                                |  759 ++++++++
 airflow/api_task_instance.go                       |  472 +++--
 airflow/api_user.go                                |  324 ++++
 airflow/api_variable.go                            |  314 ++-
 airflow/api_x_com.go                               |  155 +-
 airflow/client.go                                  |   58 +-
 airflow/configuration.go                           |  152 +-
 airflow/docs/Action.md                             |   75 +
 airflow/docs/ActionCollection.md                   |  101 +
 airflow/docs/ActionCollectionAllOf.md              |   75 +
 airflow/docs/ActionResource.md                     |  101 +
 airflow/docs/ClassReference.md                     |   74 +-
 airflow/docs/ClearTaskInstance.md                  |  262 ++-
 airflow/docs/CollectionInfo.md                     |   47 +-
 airflow/docs/Config.md                             |   47 +-
 airflow/docs/ConfigApi.md                          |   35 +-
 airflow/docs/ConfigOption.md                       |   74 +-
 airflow/docs/ConfigSection.md                      |   74 +-
 airflow/docs/Connection.md                         |  286 ++-
 airflow/docs/ConnectionAllOf.md                    |   84 +-
 airflow/docs/ConnectionApi.md                      |  233 ++-
 airflow/docs/ConnectionCollection.md               |   73 +-
 airflow/docs/ConnectionCollectionAllOf.md          |   75 +
 airflow/docs/ConnectionCollectionItem.md           |  222 ++-
 airflow/docs/CronExpression.md                     |   60 +
 airflow/docs/DAGApi.md                             |  457 ++++-
 airflow/docs/DAGCollectionAllOf.md                 |   75 +
 airflow/docs/DAGRunApi.md                          |  272 ++-
 airflow/docs/DAGRunCollectionAllOf.md              |   75 +
 airflow/docs/Dag.md                                |  332 +++-
 airflow/docs/DagCollection.md                      |   75 +-
 airflow/docs/DagDetail.md                          |  594 +++++-
 airflow/docs/DagDetailAllOf.md                     |  284 ++-
 airflow/docs/DagRun.md                             |  251 ++-
 airflow/docs/DagRunCollection.md                   |   75 +-
 airflow/docs/DagState.md                           |   11 +-
 airflow/docs/Error.md                              |  134 +-
 airflow/docs/EventLog.md                           |  276 ++-
 airflow/docs/EventLogApi.md                        |   94 +-
 airflow/docs/EventLogCollection.md                 |   73 +-
 airflow/docs/EventLogCollectionAllOf.md            |   75 +
 airflow/docs/ExtraLink.md                          |  101 +-
 airflow/docs/ExtraLinkCollection.md                |   47 +-
 airflow/docs/HealthInfo.md                         |   74 +-
 airflow/docs/HealthStatus.md                       |    9 +-
 airflow/docs/ImportError.md                        |  128 +-
 airflow/docs/ImportErrorApi.md                     |   92 +-
 airflow/docs/ImportErrorCollection.md              |   73 +-
 airflow/docs/ImportErrorCollectionAllOf.md         |   75 +
 airflow/docs/InlineResponse200.md                  |   74 +-
 airflow/docs/InlineResponse2001.md                 |   47 +-
 airflow/docs/ListDagRunsForm.md                    |  289 ++-
 airflow/docs/ListTaskInstanceForm.md               |  344 +++-
 airflow/docs/MetadatabaseStatus.md                 |   47 +-
 airflow/docs/MonitoringApi.md                      |   76 +-
 airflow/docs/PermissionApi.md                      |   94 +
 airflow/docs/PluginApi.md                          |   94 +
 airflow/docs/PluginCollection.md                   |  101 +
 airflow/docs/PluginCollectionAllOf.md              |   75 +
 airflow/docs/PluginCollectionItem.md               |  345 ++++
 airflow/docs/Pool.md                               |  182 +-
 airflow/docs/PoolApi.md                            |  217 ++-
 airflow/docs/PoolCollection.md                     |   73 +-
 airflow/docs/PoolCollectionAllOf.md                |   75 +
 airflow/docs/Provider.md                           |  127 ++
 airflow/docs/{MonitoringApi.md => ProviderApi.md}  |   60 +-
 airflow/docs/ProviderCollection.md                 |   75 +
 airflow/docs/RelativeDelta.md                      |  340 ++++
 airflow/docs/Resource.md                           |   75 +
 airflow/docs/Role.md                               |  101 +
 airflow/docs/RoleApi.md                            |  370 ++++
 airflow/docs/RoleCollection.md                     |  101 +
 airflow/docs/RoleCollectionAllOf.md                |   75 +
 airflow/docs/ScheduleInterval.md                   |  360 ++++
 airflow/docs/SchedulerStatus.md                    |   84 +-
 airflow/docs/SlaMiss.md                            |  221 ++-
 airflow/docs/SlaMissCollection.md                  |   30 -
 airflow/docs/Tag.md                                |   47 +-
 airflow/docs/Task.md                               |  651 ++++++-
 airflow/docs/TaskCollection.md                     |   47 +-
 airflow/docs/TaskExtraLinks.md                     |   47 +-
 airflow/docs/TaskFail.md                           |   35 -
 airflow/docs/TaskInstance.md                       |  610 +++++-
 airflow/docs/TaskInstanceApi.md                    |  306 ++-
 airflow/docs/TaskInstanceCollection.md             |   73 +-
 airflow/docs/TaskInstanceCollectionAllOf.md        |   75 +
 airflow/docs/TaskInstanceReference.md              |  128 +-
 airflow/docs/TaskInstanceReferenceCollection.md    |   47 +-
 airflow/docs/TaskState.md                          |   27 +-
 airflow/docs/TimeDelta.md                          |  100 +
 airflow/docs/TriggerRule.md                        |   23 +-
 airflow/docs/UpdateTaskInstancesState.md           |  257 +++
 airflow/docs/User.md                               |  421 ++++
 airflow/docs/UserAllOf.md                          |   75 +
 airflow/docs/UserApi.md                            |  165 ++
 airflow/docs/UserCollection.md                     |  101 +
 airflow/docs/UserCollectionAllOf.md                |   75 +
 airflow/docs/UserCollectionItem.md                 |  395 ++++
 airflow/docs/UserCollectionItemRoles.md            |   75 +
 airflow/docs/Variable.md                           |   74 +-
 airflow/docs/VariableAllOf.md                      |   47 +-
 airflow/docs/VariableApi.md                        |  235 ++-
 airflow/docs/VariableCollection.md                 |   73 +-
 airflow/docs/VariableCollectionAllOf.md            |   75 +
 airflow/docs/VariableCollectionItem.md             |   47 +-
 airflow/docs/VersionInfo.md                        |   84 +-
 airflow/docs/WeightRule.md                         |   11 +-
 airflow/docs/XCom.md                               |  182 +-
 airflow/docs/XComAllOf.md                          |   75 +
 airflow/docs/XComApi.md                            |  110 +-
 airflow/docs/XComCollection.md                     |   73 +-
 airflow/docs/XComCollectionAllOf.md                |   75 +
 airflow/docs/XComCollectionItem.md                 |  155 +-
 airflow/go.mod                                     |    6 +-
 airflow/go.sum                                     |    4 -
 airflow/model_action.go                            |  134 ++
 airflow/model_action_collection.go                 |  170 ++
 airflow/model_action_collection_all_of.go          |  133 ++
 airflow/model_action_resource.go                   |  169 ++
 airflow/model_class_reference.go                   |  146 +-
 airflow/model_clear_task_instance.go               |  417 +++-
 airflow/model_collection_info.go                   |  111 +-
 airflow/model_config.go                            |  109 +-
 airflow/model_config_option.go                     |  146 +-
 airflow/model_config_section.go                    |  146 +-
 airflow/model_connection.go                        |  426 ++++-
 airflow/model_connection_all_of.go                 |  156 +-
 airflow/model_connection_collection.go             |  146 +-
 airflow/model_connection_collection_all_of.go      |  133 ++
 airflow/model_connection_collection_item.go        |  340 +++-
 airflow/model_cron_expression.go                   |  128 +-
 airflow/model_dag.go                               |  482 ++++-
 airflow/model_dag_collection.go                    |  148 +-
 airflow/model_dag_collection_all_of.go             |  133 ++
 airflow/model_dag_detail.go                        |  832 +++++++-
 airflow/model_dag_detail_all_of.go                 |  424 +++-
 airflow/model_dag_run.go                           |  389 +++-
 airflow/model_dag_run_collection.go                |  148 +-
 airflow/model_dag_run_collection_all_of.go         |  133 ++
 airflow/model_dag_state.go                         |   99 +-
 airflow/model_error.go                             |  230 ++-
 airflow/model_event_log.go                         |  417 +++-
 airflow/model_event_log_collection.go              |  146 +-
 airflow/model_event_log_collection_all_of.go       |  133 ++
 airflow/model_extra_link.go                        |  183 +-
 airflow/model_extra_link_collection.go             |  109 +-
 airflow/model_health_info.go                       |  146 +-
 airflow/model_health_status.go                     |   98 +-
 airflow/model_import_error.go                      |  222 ++-
 airflow/model_import_error_collection.go           |  146 +-
 airflow/model_import_error_collection_all_of.go    |  133 ++
 airflow/model_inline_response_200.go               |  144 +-
 airflow/model_inline_response_200_1.go             |  107 +-
 airflow/model_list_dag_runs_form.go                |  454 ++++-
 airflow/model_list_task_instance_form.go           |  528 ++++-
 airflow/model_metadatabase_status.go               |  109 +-
 airflow/model_plugin_collection.go                 |  170 ++
 airflow/model_plugin_collection_all_of.go          |  133 ++
 airflow/model_plugin_collection_item.go            |  514 +++++
 airflow/model_pool.go                              |  300 ++-
 airflow/model_pool_collection.go                   |  146 +-
 airflow/model_pool_collection_all_of.go            |  133 ++
 airflow/model_provider.go                          |  208 ++
 airflow/model_provider_collection.go               |  133 ++
 airflow/model_relative_delta.go                    |  520 ++++-
 airflow/model_resource.go                          |  134 ++
 airflow/model_role.go                              |  170 ++
 airflow/model_role_collection.go                   |  170 ++
 airflow/model_role_collection_all_of.go            |  133 ++
 airflow/model_schedule_interval.go                 |  179 +-
 airflow/model_scheduler_status.go                  |  157 +-
 airflow/model_sla_miss.go                          |  345 +++-
 airflow/model_sla_miss_collection.go               |   32 -
 airflow/model_tag.go                               |  109 +-
 airflow/model_task.go                              |  933 ++++++++-
 airflow/model_task_collection.go                   |  109 +-
 airflow/model_task_extra_links.go                  |  107 +-
 airflow/model_task_fail.go                         |   37 -
 airflow/model_task_instance.go                     |  860 ++++++++-
 airflow/model_task_instance_collection.go          |  146 +-
 airflow/model_task_instance_collection_all_of.go   |  133 ++
 airflow/model_task_instance_reference.go           |  221 ++-
 .../model_task_instance_reference_collection.go    |  107 +-
 airflow/model_task_state.go                        |  108 +-
 airflow/model_time_delta.go                        |  184 +-
 airflow/model_trigger_rule.go                      |  105 +-
 airflow/model_update_task_instances_state.go       |  397 ++++
 airflow/model_user.go                              |  600 ++++++
 airflow/model_user_all_of.go                       |  133 ++
 airflow/model_user_collection.go                   |  170 ++
 airflow/model_user_collection_all_of.go            |  133 ++
 airflow/model_user_collection_item.go              |  564 ++++++
 airflow/model_user_collection_item_roles.go        |  133 ++
 airflow/model_variable.go                          |  146 +-
 airflow/model_variable_all_of.go                   |  107 +-
 airflow/model_variable_collection.go               |  146 +-
 airflow/model_variable_collection_all_of.go        |  133 ++
 airflow/model_variable_collection_item.go          |  109 +-
 airflow/model_version_info.go                      |  154 +-
 airflow/model_weight_rule.go                       |   99 +-
 airflow/model_x_com.go                             |  295 ++-
 airflow/model_x_com_all_of.go                      |  134 ++
 airflow/model_x_com_collection.go                  |  146 +-
 airflow/model_x_com_collection_all_of.go           |  133 ++
 airflow/model_x_com_collection_item.go             |  257 ++-
 airflow/response.go                                |    7 +-
 airflow/utils.go                                   |  346 ++++
 client_test.go                                     |   17 +-
 go.mod                                             |    2 +
 go.sum                                             |  371 ++++
 228 files changed, 40824 insertions(+), 2209 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 4fb4ccc..40ddc38 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -41,7 +41,7 @@ jobs:
     runs-on: ubuntu-latest
     strategy:
       matrix:
-        go_version: [1.13, 1.14, 1.15]
+        go_version: [1.13, 1.14, 1.15, 1.16]
     steps:
       - name: Checkout
         uses: actions/checkout@master
@@ -54,6 +54,8 @@ jobs:
 
       - name: Run tests
         run: |
+            go version | grep 1.16 && go env -w GOFLAGS=-mod=mod
+            go mod tidy
             go test
 
       - name: Run auto generated tests
diff --git a/README.md b/README.md
index 4f61c2b..f7ae556 100644
--- a/README.md
+++ b/README.md
@@ -36,11 +36,10 @@ import (
 )
 
 func main() {
-	cli := airflow.NewAPIClient(&airflow.Configuration{
-		Scheme:   "http",
-		Host:     "localhost:8080",
-		BasePath: "/api/v1",
-	})
+	conf := airflow.NewConfiguration()
+	conf.Host = "localhost:8080"
+	conf.Scheme = "http"
+	cli := airflow.NewAPIClient(conf)
 
 	cred := airflow.BasicAuth{
 		UserName: "username",
@@ -48,7 +47,7 @@ func main() {
 	}
 	ctx := context.WithValue(context.Background(), airflow.ContextBasicAuth, cred)
 
-	variable, _, err := cli.VariableApi.GetVariable(ctx, "foo")
+	variable, _, err := cli.VariableApi.GetVariable(ctx, "foo").Execute()
 	if err != nil {
 		fmt.Println(err)
 	} else {
diff --git a/airflow/.openapi-generator-ignore b/airflow/.openapi-generator-ignore
index 3df273c..36151b8 100644
--- a/airflow/.openapi-generator-ignore
+++ b/airflow/.openapi-generator-ignore
@@ -1,2 +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/.openapi-generator/FILES b/airflow/.openapi-generator/FILES
new file mode 100644
index 0000000..7cdf523
--- /dev/null
+++ b/airflow/.openapi-generator/FILES
@@ -0,0 +1,217 @@
+.gitignore
+README.md
+api/openapi.yaml
+api_config.go
+api_connection.go
+api_dag.go
+api_dag_run.go
+api_event_log.go
+api_import_error.go
+api_monitoring.go
+api_permission.go
+api_plugin.go
+api_pool.go
+api_provider.go
+api_role.go
+api_task_instance.go
+api_user.go
+api_variable.go
+api_x_com.go
+client.go
+configuration.go
+docs/Action.md
+docs/ActionCollection.md
+docs/ActionCollectionAllOf.md
+docs/ActionResource.md
+docs/ClassReference.md
+docs/ClearTaskInstance.md
+docs/CollectionInfo.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/Provider.md
+docs/ProviderApi.md
+docs/ProviderCollection.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
+go.mod
+go.sum
+model_action.go
+model_action_collection.go
+model_action_collection_all_of.go
+model_action_resource.go
+model_class_reference.go
+model_clear_task_instance.go
+model_collection_info.go
+model_config.go
+model_config_option.go
+model_config_section.go
+model_connection.go
+model_connection_all_of.go
+model_connection_collection.go
+model_connection_collection_all_of.go
+model_connection_collection_item.go
+model_cron_expression.go
+model_dag.go
+model_dag_collection.go
+model_dag_collection_all_of.go
+model_dag_detail.go
+model_dag_detail_all_of.go
+model_dag_run.go
+model_dag_run_collection.go
+model_dag_run_collection_all_of.go
+model_dag_state.go
+model_error.go
+model_event_log.go
+model_event_log_collection.go
+model_event_log_collection_all_of.go
+model_extra_link.go
+model_extra_link_collection.go
+model_health_info.go
+model_health_status.go
+model_import_error.go
+model_import_error_collection.go
+model_import_error_collection_all_of.go
+model_inline_response_200.go
+model_inline_response_200_1.go
+model_list_dag_runs_form.go
+model_list_task_instance_form.go
+model_metadatabase_status.go
+model_plugin_collection.go
+model_plugin_collection_all_of.go
+model_plugin_collection_item.go
+model_pool.go
+model_pool_collection.go
+model_pool_collection_all_of.go
+model_provider.go
+model_provider_collection.go
+model_relative_delta.go
+model_resource.go
+model_role.go
+model_role_collection.go
+model_role_collection_all_of.go
+model_schedule_interval.go
+model_scheduler_status.go
+model_sla_miss.go
+model_tag.go
+model_task.go
+model_task_collection.go
+model_task_extra_links.go
+model_task_instance.go
+model_task_instance_collection.go
+model_task_instance_collection_all_of.go
+model_task_instance_reference.go
+model_task_instance_reference_collection.go
+model_task_state.go
+model_time_delta.go
+model_trigger_rule.go
+model_update_task_instances_state.go
+model_user.go
+model_user_all_of.go
+model_user_collection.go
+model_user_collection_all_of.go
+model_user_collection_item.go
+model_user_collection_item_roles.go
+model_variable.go
+model_variable_all_of.go
+model_variable_collection.go
+model_variable_collection_all_of.go
+model_variable_collection_item.go
+model_version_info.go
+model_weight_rule.go
+model_x_com.go
+model_x_com_all_of.go
+model_x_com_collection.go
+model_x_com_collection_all_of.go
+model_x_com_collection_item.go
+response.go
+utils.go
diff --git a/airflow/.openapi-generator/VERSION b/airflow/.openapi-generator/VERSION
index ecedc98..3bff059 100644
--- a/airflow/.openapi-generator/VERSION
+++ b/airflow/.openapi-generator/VERSION
@@ -1 +1 @@
-4.3.1
\ No newline at end of file
+5.1.1
\ No newline at end of file
diff --git a/airflow/README.md b/airflow/README.md
index 0b53280..3c8d439 100644
--- a/airflow/README.md
+++ b/airflow/README.md
@@ -19,13 +19,229 @@
 
 # Go API client for airflow
 
-Apache Airflow management API.
+# 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 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 |
+| v2.1 | New providers 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.
+
 
 ## Overview
 This API client was generated by the [OpenAPI Generator](https://openapi-generator.tech) project.  By using the [OpenAPI-spec](https://www.openapis.org/) from a remote server, you can easily generate an API client.
 
 - API version: 1.0.0
-- Package version: 1.0.0
+- Package version: 2.1.0
 - Build package: org.openapitools.codegen.languages.GoClientCodegen
 For more information, please visit [https://airflow.apache.org](https://airflow.apache.org)
 
@@ -37,13 +253,59 @@ Install the following dependencies:
 go get github.com/stretchr/testify/assert
 go get golang.org/x/oauth2
 go get golang.org/x/net/context
-go get github.com/antihax/optional
 ```
 
 Put the package under your project folder and add the following in import:
 
 ```golang
-import "./airflow"
+import sw "./airflow"
+```
+
+To use a proxy, set the environment variable `HTTP_PROXY`:
+
+```golang
+os.Setenv("HTTP_PROXY", "http://proxy_name:proxy_port")
+```
+
+## Configuration of Server URL
+
+Default configuration comes with `Servers` field that contains server objects as defined in the OpenAPI specification.
+
+### Select Server Configuration
+
+For using other server than the one defined on index 0 set context value `sw.ContextServerIndex` of type `int`.
+
+```golang
+ctx := context.WithValue(context.Background(), sw.ContextServerIndex, 1)
+```
+
+### Templated Server URL
+
+Templated server URL is formatted using default variables from configuration or from context value `sw.ContextServerVariables` of type `map[string]string`.
+
+```golang
+ctx := context.WithValue(context.Background(), sw.ContextServerVariables, map[string]string{
+	"basePath": "v2",
+})
+```
+
+Note, enum values are always validated and all unused variables are silently ignored.
+
+### URLs Configuration per Operation
+
+Each operation can use different server URL defined using `OperationServers` map in the `Configuration`.
+An operation is uniquely identifield by `"{classname}Service.{nickname}"` string.
+Similar rules for overriding default operation server index and variables applies by using `sw.ContextOperationServerIndices` and `sw.ContextOperationServerVariables` context maps.
+
+```
+ctx := context.WithValue(context.Background(), sw.ContextOperationServerIndices, map[string]int{
+	"{classname}Service.{nickname}": 2,
+})
+ctx = context.WithValue(context.Background(), sw.ContextOperationServerVariables, map[string]map[string]string{
+	"{classname}Service.{nickname}": {
+		"port": "8443",
+	},
+})
 ```
 
 ## Documentation for API Endpoints
@@ -53,51 +315,66 @@ All URIs are relative to *http://localhost/api/v1*
 Class | Method | HTTP request | Description
 ------------ | ------------- | ------------- | -------------
 *ConfigApi* | [**GetConfig**](docs/ConfigApi.md#getconfig) | **Get** /config | Get current configuration
-*ConnectionApi* | [**DeleteConnection**](docs/ConnectionApi.md#deleteconnection) | **Delete** /connections/{connection_id} | Delete a connection entry
-*ConnectionApi* | [**GetConnection**](docs/ConnectionApi.md#getconnection) | **Get** /connections/{connection_id} | Get a connection entry
-*ConnectionApi* | [**GetConnections**](docs/ConnectionApi.md#getconnections) | **Get** /connections | Get all connection entries
-*ConnectionApi* | [**PatchConnection**](docs/ConnectionApi.md#patchconnection) | **Patch** /connections/{connection_id} | Update a connection entry
-*ConnectionApi* | [**PostConnection**](docs/ConnectionApi.md#postconnection) | **Post** /connections | Create connection entry
+*ConnectionApi* | [**DeleteConnection**](docs/ConnectionApi.md#deleteconnection) | **Delete** /connections/{connection_id} | Delete a connection
+*ConnectionApi* | [**GetConnection**](docs/ConnectionApi.md#getconnection) | **Get** /connections/{connection_id} | Get a connection
+*ConnectionApi* | [**GetConnections**](docs/ConnectionApi.md#getconnections) | **Get** /connections | List connections
+*ConnectionApi* | [**PatchConnection**](docs/ConnectionApi.md#patchconnection) | **Patch** /connections/{connection_id} | Update a connection
+*ConnectionApi* | [**PostConnection**](docs/ConnectionApi.md#postconnection) | **Post** /connections | Create a connection
 *DAGApi* | [**GetDag**](docs/DAGApi.md#getdag) | **Get** /dags/{dag_id} | Get basic information about a DAG
 *DAGApi* | [**GetDagDetails**](docs/DAGApi.md#getdagdetails) | **Get** /dags/{dag_id}/details | Get a simplified representation of DAG
-*DAGApi* | [**GetDagSource**](docs/DAGApi.md#getdagsource) | **Get** /dagSources/{file_token} | Get source code using file token
-*DAGApi* | [**GetDags**](docs/DAGApi.md#getdags) | **Get** /dags | Get all DAGs
+*DAGApi* | [**GetDagSource**](docs/DAGApi.md#getdagsource) | **Get** /dagSources/{file_token} | Get a source code
+*DAGApi* | [**GetDags**](docs/DAGApi.md#getdags) | **Get** /dags | List DAGs
 *DAGApi* | [**GetTask**](docs/DAGApi.md#gettask) | **Get** /dags/{dag_id}/tasks/{task_id} | Get simplified representation of a task
 *DAGApi* | [**GetTasks**](docs/DAGApi.md#gettasks) | **Get** /dags/{dag_id}/tasks | Get tasks for DAG
 *DAGApi* | [**PatchDag**](docs/DAGApi.md#patchdag) | **Patch** /dags/{dag_id} | Update a DAG
-*DAGApi* | [**PostClearTaskInstances**](docs/DAGApi.md#postcleartaskinstances) | **Post** /dags/{dag_id}/clearTaskInstances | Clears a set of task instances associated with the DAG for a specified date range.
-*DAGRunApi* | [**DeleteDagRun**](docs/DAGRunApi.md#deletedagrun) | **Delete** /dags/{dag_id}/dagRuns/{dag_run_id} | Delete a DAG Run
-*DAGRunApi* | [**GetDagRun**](docs/DAGRunApi.md#getdagrun) | **Get** /dags/{dag_id}/dagRuns/{dag_run_id} | Get a DAG Run
-*DAGRunApi* | [**GetDagRuns**](docs/DAGRunApi.md#getdagruns) | **Get** /dags/{dag_id}/dagRuns | Get all DAG Runs
-*DAGRunApi* | [**GetDagRunsBatch**](docs/DAGRunApi.md#getdagrunsbatch) | **Post** /dags/~/dagRuns/list | Get all DAG Runs from all DAGs
-*DAGRunApi* | [**PostDagRun**](docs/DAGRunApi.md#postdagrun) | **Post** /dags/{dag_id}/dagRuns | Trigger a DAG Run
+*DAGApi* | [**PostClearTaskInstances**](docs/DAGApi.md#postcleartaskinstances) | **Post** /dags/{dag_id}/clearTaskInstances | Clear a set of task instances
+*DAGApi* | [**PostSetTaskInstancesState**](docs/DAGApi.md#postsettaskinstancesstate) | **Post** /dags/{dag_id}/updateTaskInstancesState | Set a state of task instances
+*DAGRunApi* | [**DeleteDagRun**](docs/DAGRunApi.md#deletedagrun) | **Delete** /dags/{dag_id}/dagRuns/{dag_run_id} | Delete a DAG run
+*DAGRunApi* | [**GetDagRun**](docs/DAGRunApi.md#getdagrun) | **Get** /dags/{dag_id}/dagRuns/{dag_run_id} | Get a DAG run
+*DAGRunApi* | [**GetDagRuns**](docs/DAGRunApi.md#getdagruns) | **Get** /dags/{dag_id}/dagRuns | List DAG runs
+*DAGRunApi* | [**GetDagRunsBatch**](docs/DAGRunApi.md#getdagrunsbatch) | **Post** /dags/~/dagRuns/list | List DAG runs (batch)
+*DAGRunApi* | [**PostDagRun**](docs/DAGRunApi.md#postdagrun) | **Post** /dags/{dag_id}/dagRuns | Trigger a new DAG run
 *EventLogApi* | [**GetEventLog**](docs/EventLogApi.md#geteventlog) | **Get** /eventLogs/{event_log_id} | Get a log entry
-*EventLogApi* | [**GetEventLogs**](docs/EventLogApi.md#geteventlogs) | **Get** /eventLogs | Get all log entries from event log
+*EventLogApi* | [**GetEventLogs**](docs/EventLogApi.md#geteventlogs) | **Get** /eventLogs | List log entries
 *ImportErrorApi* | [**GetImportError**](docs/ImportErrorApi.md#getimporterror) | **Get** /importErrors/{import_error_id} | Get an import error
-*ImportErrorApi* | [**GetImportErrors**](docs/ImportErrorApi.md#getimporterrors) | **Get** /importErrors | Get all import errors
-*MonitoringApi* | [**GetHealth**](docs/MonitoringApi.md#gethealth) | **Get** /health | Returns the status of Airflow&#39;s metadatabase and scheduler
+*ImportErrorApi* | [**GetImportErrors**](docs/ImportErrorApi.md#getimporterrors) | **Get** /importErrors | List import errors
+*MonitoringApi* | [**GetHealth**](docs/MonitoringApi.md#gethealth) | **Get** /health | Get instance status
 *MonitoringApi* | [**GetVersion**](docs/MonitoringApi.md#getversion) | **Get** /version | Get version information
+*PermissionApi* | [**GetPermissions**](docs/PermissionApi.md#getpermissions) | **Get** /permissions | List permissions
+*PluginApi* | [**GetPlugins**](docs/PluginApi.md#getplugins) | **Get** /plugins | Get a list of loaded plugins
 *PoolApi* | [**DeletePool**](docs/PoolApi.md#deletepool) | **Delete** /pools/{pool_name} | Delete a pool
 *PoolApi* | [**GetPool**](docs/PoolApi.md#getpool) | **Get** /pools/{pool_name} | Get a pool
-*PoolApi* | [**GetPools**](docs/PoolApi.md#getpools) | **Get** /pools | Get all pools
+*PoolApi* | [**GetPools**](docs/PoolApi.md#getpools) | **Get** /pools | List pools
 *PoolApi* | [**PatchPool**](docs/PoolApi.md#patchpool) | **Patch** /pools/{pool_name} | Update a pool
 *PoolApi* | [**PostPool**](docs/PoolApi.md#postpool) | **Post** /pools | Create a pool
-*TaskInstanceApi* | [**GetExtraLinks**](docs/TaskInstanceApi.md#getextralinks) | **Get** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/links | Get extra links for task instance
-*TaskInstanceApi* | [**GetLog**](docs/TaskInstanceApi.md#getlog) | **Get** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/logs/{task_try_number} | Get logs for a task instance
+*ProviderApi* | [**GetProviders**](docs/ProviderApi.md#getproviders) | **Get** /providers | List providers
+*RoleApi* | [**DeleteRole**](docs/RoleApi.md#deleterole) | **Delete** /roles/{role_name} | Delete a role
+*RoleApi* | [**GetRole**](docs/RoleApi.md#getrole) | **Get** /roles/{role_name} | Get a role
+*RoleApi* | [**GetRoles**](docs/RoleApi.md#getroles) | **Get** /roles | List roles
+*RoleApi* | [**PatchRole**](docs/RoleApi.md#patchrole) | **Patch** /roles/{role_name} | Update a role
+*RoleApi* | [**PostRole**](docs/RoleApi.md#postrole) | **Post** /roles | Create a role
+*TaskInstanceApi* | [**GetExtraLinks**](docs/TaskInstanceApi.md#getextralinks) | **Get** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/links | List extra links
+*TaskInstanceApi* | [**GetLog**](docs/TaskInstanceApi.md#getlog) | **Get** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/logs/{task_try_number} | Get logs
 *TaskInstanceApi* | [**GetTaskInstance**](docs/TaskInstanceApi.md#gettaskinstance) | **Get** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id} | Get a task instance
-*TaskInstanceApi* | [**GetTaskInstances**](docs/TaskInstanceApi.md#gettaskinstances) | **Get** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances | Get a list of task instance of DAG
-*TaskInstanceApi* | [**GetTaskInstancesBatch**](docs/TaskInstanceApi.md#gettaskinstancesbatch) | **Post** /dags/~/dagRuns/~/taskInstances/list | Get list of task instances from all DAGs and DAG Runs.
-*VariableApi* | [**DeleteVariable**](docs/VariableApi.md#deletevariable) | **Delete** /variables/{variable_key} | Delete variable
-*VariableApi* | [**GetVariable**](docs/VariableApi.md#getvariable) | **Get** /variables/{variable_key} | Get a variable by key
-*VariableApi* | [**GetVariables**](docs/VariableApi.md#getvariables) | **Get** /variables | Get all variables
-*VariableApi* | [**PatchVariable**](docs/VariableApi.md#patchvariable) | **Patch** /variables/{variable_key} | Update a variable by key
+*TaskInstanceApi* | [**GetTaskInstances**](docs/TaskInstanceApi.md#gettaskinstances) | **Get** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances | List task instances
+*TaskInstanceApi* | [**GetTaskInstancesBatch**](docs/TaskInstanceApi.md#gettaskinstancesbatch) | **Post** /dags/~/dagRuns/~/taskInstances/list | List task instances (batch)
+*UserApi* | [**GetUser**](docs/UserApi.md#getuser) | **Get** /users/{username} | Get a user
+*UserApi* | [**GetUsers**](docs/UserApi.md#getusers) | **Get** /users | List users
+*VariableApi* | [**DeleteVariable**](docs/VariableApi.md#deletevariable) | **Delete** /variables/{variable_key} | Delete a variable
+*VariableApi* | [**GetVariable**](docs/VariableApi.md#getvariable) | **Get** /variables/{variable_key} | Get a variable
+*VariableApi* | [**GetVariables**](docs/VariableApi.md#getvariables) | **Get** /variables | List variables
+*VariableApi* | [**PatchVariable**](docs/VariableApi.md#patchvariable) | **Patch** /variables/{variable_key} | Update a variable
 *VariableApi* | [**PostVariables**](docs/VariableApi.md#postvariables) | **Post** /variables | Create a variable
-*XComApi* | [**GetXcomEntries**](docs/XComApi.md#getxcomentries) | **Get** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/xcomEntries | Get all XCom entries
+*XComApi* | [**GetXcomEntries**](docs/XComApi.md#getxcomentries) | **Get** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/xcomEntries | List XCom entries
 *XComApi* | [**GetXcomEntry**](docs/XComApi.md#getxcomentry) | **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)
@@ -107,64 +384,120 @@ Class | Method | HTTP request | Description
  - [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)
- - [DagDetail](docs/DagDetail.md)
- - [DagDetailAllOf](docs/DagDetailAllOf.md)
- - [DagRun](docs/DagRun.md)
- - [DagRunCollection](docs/DagRunCollection.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)
+ - [Provider](docs/Provider.md)
+ - [ProviderCollection](docs/ProviderCollection.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)
- - [SlaMiss](docs/SlaMiss.md)
- - [SlaMissCollection](docs/SlaMissCollection.md)
  - [Tag](docs/Tag.md)
  - [Task](docs/Task.md)
  - [TaskCollection](docs/TaskCollection.md)
  - [TaskExtraLinks](docs/TaskExtraLinks.md)
- - [TaskFail](docs/TaskFail.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)
+ - [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)
+ - [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)
 
 
 ## Documentation For Authorization
 
- Endpoints do not require authorization.
 
 
+### Basic
+
+- **Type**: HTTP basic authentication
+
+Example
+
+```golang
+auth := context.WithValue(context.Background(), sw.ContextBasicAuth, sw.BasicAuth{
+    UserName: "username",
+    Password: "password",
+})
+r, err := client.Service.Operation(auth, args)
+```
+
+
+### Kerberos
+
+
+## Documentation for Utility Methods
+
+Due to the fact that model structure members are all pointers, this package contains
+a number of utility functions to easily obtain pointers to values of basic types.
+Each of these functions takes a value of the given basic type and returns a pointer to it:
+
+* `PtrBool`
+* `PtrInt`
+* `PtrInt32`
+* `PtrInt64`
+* `PtrFloat`
+* `PtrFloat32`
+* `PtrFloat64`
+* `PtrString`
+* `PtrTime`
 
 ## Author
 
diff --git a/airflow/api/openapi.yaml b/airflow/api/openapi.yaml
index 8fe6f15..8584173 100644
--- a/airflow/api/openapi.yaml
+++ b/airflow/api/openapi.yaml
@@ -21,14 +21,230 @@ info:
     email: dev@airflow.apache.org
     name: Apache Software Foundation
     url: https://airflow.apache.org
-  description: Apache Airflow management API.
+  description: |
+    # 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 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 |
+    | v2.1 | New providers 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.
   license:
     name: Apache 2.0
     url: http://www.apache.org/licenses/LICENSE-2.0.html
   title: Airflow API (Stable)
   version: 1.0.0
 externalDocs:
-  url: http://airflow.apache.org/docs/stable/
+  url: https://airflow.apache.org/docs/apache-airflow/stable/
 servers:
 - description: Apache Airflow Stable API.
   url: /api/v1
@@ -41,9 +257,14 @@ tags:
 - name: ImportError
 - name: Monitoring
 - name: Pool
+- name: Provider
 - name: TaskInstance
 - name: Variable
 - name: XCom
+- name: Plugin
+- name: Role
+- name: Permission
+- name: User
 paths:
   /connections:
     get:
@@ -68,15 +289,23 @@ paths:
           minimum: 0
           type: integer
         style: form
+      - description: |
+          The name of the field to order the results by.
+          Prefix a field name with `-` to reverse the sort order.
+        explode: true
+        in: query
+        name: order_by
+        required: false
+        schema:
+          type: string
+        style: form
       responses:
         "200":
           content:
             application/json:
               schema:
-                allOf:
-                - $ref: '#/components/schemas/ConnectionCollection'
-                - $ref: '#/components/schemas/CollectionInfo'
-          description: List of connection entry.
+                $ref: '#/components/schemas/ConnectionCollection'
+          description: Success.
         "401":
           content:
             application/json:
@@ -90,7 +319,7 @@ paths:
               schema:
                 $ref: '#/components/schemas/Error'
           description: Client does not have sufficient permission.
-      summary: Get all connection entries
+      summary: List connections
       tags:
       - Connection
       x-openapi-router-controller: airflow.api_connexion.endpoints.connection_endpoint
@@ -108,7 +337,7 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/Connection'
-          description: Successful response.
+          description: Success.
         "400":
           content:
             application/json:
@@ -128,7 +357,7 @@ paths:
               schema:
                 $ref: '#/components/schemas/Error'
           description: Client does not have sufficient permission.
-      summary: Create connection entry
+      summary: Create a connection
       tags:
       - Connection
       x-openapi-router-controller: airflow.api_connexion.endpoints.connection_endpoint
@@ -136,7 +365,7 @@ paths:
     delete:
       operationId: delete_connection
       parameters:
-      - description: The Connection ID.
+      - description: The connection ID.
         explode: false
         in: path
         name: connection_id
@@ -146,7 +375,7 @@ paths:
         style: simple
       responses:
         "204":
-          description: No content.
+          description: Success.
         "400":
           content:
             application/json:
@@ -166,14 +395,20 @@ paths:
               schema:
                 $ref: '#/components/schemas/Error'
           description: Client does not have sufficient permission.
-      summary: Delete a connection entry
+        "404":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: A specified resource is not found.
+      summary: Delete a connection
       tags:
       - Connection
       x-openapi-router-controller: airflow.api_connexion.endpoints.connection_endpoint
     get:
       operationId: get_connection
       parameters:
-      - description: The Connection ID.
+      - description: The connection ID.
         explode: false
         in: path
         name: connection_id
@@ -187,7 +422,7 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/Connection'
-          description: Successful response.
+          description: Success.
         "401":
           content:
             application/json:
@@ -207,14 +442,14 @@ paths:
               schema:
                 $ref: '#/components/schemas/Error'
           description: A specified resource is not found.
-      summary: Get a connection entry
+      summary: Get a connection
       tags:
       - Connection
       x-openapi-router-controller: airflow.api_connexion.endpoints.connection_endpoint
     patch:
       operationId: patch_connection
       parameters:
-      - description: The Connection ID.
+      - description: The connection ID.
         explode: false
         in: path
         name: connection_id
@@ -223,7 +458,8 @@ paths:
           type: string
         style: simple
       - description: |
-          The fields to update on the connection (connection, pool etc). If absent or empty, all modifiable fields are updated. A comma-separated list of fully qualified names of fields.
+          The fields to update on the resource. If absent or empty, all modifiable fields are updated.
+          A comma-separated list of fully qualified names of fields.
         explode: false
         in: query
         name: update_mask
@@ -245,7 +481,7 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/Connection'
-          description: Successful response.
+          description: Success.
         "400":
           content:
             application/json:
@@ -271,7 +507,7 @@ paths:
               schema:
                 $ref: '#/components/schemas/Error'
           description: A specified resource is not found.
-      summary: Update a connection entry
+      summary: Update a connection
       tags:
       - Connection
       x-openapi-router-controller: airflow.api_connexion.endpoints.connection_endpoint
@@ -298,15 +534,23 @@ paths:
           minimum: 0
           type: integer
         style: form
+      - description: |
+          The name of the field to order the results by.
+          Prefix a field name with `-` to reverse the sort order.
+        explode: true
+        in: query
+        name: order_by
+        required: false
+        schema:
+          type: string
+        style: form
       responses:
         "200":
           content:
             application/json:
               schema:
-                allOf:
-                - $ref: '#/components/schemas/DAGCollection'
-                - $ref: '#/components/schemas/CollectionInfo'
-          description: List of DAGs.
+                $ref: '#/components/schemas/DAGCollection'
+          description: Success.
         "401":
           content:
             application/json:
@@ -314,7 +558,7 @@ paths:
                 $ref: '#/components/schemas/Error'
           description: Request not authenticated due to missing, invalid, authentication
             info.
-      summary: Get all DAGs
+      summary: List DAGs
       tags:
       - DAG
       x-openapi-router-controller: airflow.api_connexion.endpoints.dag_endpoint
@@ -322,7 +566,7 @@ paths:
     get:
       description: |
         Presents only information available in database (DAGModel).
-        If you need detailed information, consider using GET /dags/{dag_id}/detail.
+        If you need detailed information, consider using GET /dags/{dag_id}/details.
       operationId: get_dag
       parameters:
       - description: The DAG ID.
@@ -339,7 +583,7 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/DAG'
-          description: Successful response.
+          description: Success.
         "401":
           content:
             application/json:
@@ -374,6 +618,18 @@ paths:
         schema:
           type: string
         style: simple
+      - description: |
+          The fields to update on the resource. If absent or empty, all modifiable fields are updated.
+          A comma-separated list of fully qualified names of fields.
+        explode: false
+        in: query
+        name: update_mask
+        required: false
+        schema:
+          items:
+            type: string
+          type: array
+        style: form
       requestBody:
         content:
           application/json:
@@ -386,7 +642,7 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/DAG'
-          description: Successful response.
+          description: Success.
         "401":
           content:
             application/json:
@@ -412,6 +668,8 @@ paths:
       x-openapi-router-controller: airflow.api_connexion.endpoints.dag_endpoint
   /dags/{dag_id}/clearTaskInstances:
     post:
+      description: |
+        Clears a set of task instances associated with the DAG for a specified date range.
       operationId: post_clear_task_instances
       parameters:
       - description: The DAG ID.
@@ -435,7 +693,58 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/TaskInstanceReferenceCollection'
-          description: A list of cleared task references
+          description: Success.
+        "401":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Request not authenticated due to missing, invalid, authentication
+            info.
+        "403":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Client does not have sufficient permission.
+        "404":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: A specified resource is not found.
+      summary: Clear a set of task instances
+      tags:
+      - DAG
+      x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint
+  /dags/{dag_id}/updateTaskInstancesState:
+    post:
+      description: |
+        Updates the state for multiple task instances simultaneously.
+      operationId: post_set_task_instances_state
+      parameters:
+      - description: The DAG ID.
+        explode: false
+        in: path
+        name: dag_id
+        required: true
+        schema:
+          type: string
+        style: simple
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/UpdateTaskInstancesState'
+        description: Parameters of action
+        required: true
+      responses:
+        "200":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/TaskInstanceReferenceCollection'
+          description: Success.
         "401":
           content:
             application/json:
@@ -455,15 +764,14 @@ paths:
               schema:
                 $ref: '#/components/schemas/Error'
           description: A specified resource is not found.
-      summary: Clears a set of task instances associated with the DAG for a specified
-        date range.
+      summary: Set a state of task instances
       tags:
       - DAG
       x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint
   /dags/{dag_id}/dagRuns:
     get:
       description: |
-        This endpoint allows specifying `~` as the dag_id to retrieve DAG Runs for all DAGs.
+        This endpoint allows specifying `~` as the dag_id to retrieve DAG runs for all DAGs.
       operationId: get_dag_runs
       parameters:
       - description: The DAG ID.
@@ -495,6 +803,7 @@ paths:
         style: form
       - description: |
           Returns objects greater or equal to the specified date.
+
           This can be combined with execution_date_lte parameter to receive only the selected period.
         explode: true
         in: query
@@ -506,6 +815,7 @@ paths:
         style: form
       - description: |
           Returns objects less than or equal to the specified date.
+
           This can be combined with execution_date_gte parameter to receive only the selected period.
         explode: true
         in: query
@@ -517,7 +827,8 @@ paths:
         style: form
       - description: |
           Returns objects greater or equal the specified date.
-          This can be combined with startd_ate_lte parameter to receive only the selected period.
+
+          This can be combined with start_date_lte parameter to receive only the selected period.
         explode: true
         in: query
         name: start_date_gte
@@ -528,6 +839,7 @@ paths:
         style: form
       - description: |
           Returns objects less or equal the specified date.
+
           This can be combined with start_date_gte parameter to receive only the selected period.
         explode: true
         in: query
@@ -539,6 +851,7 @@ paths:
         style: form
       - description: |
           Returns objects greater or equal the specified date.
+
           This can be combined with start_date_lte parameter to receive only the selected period.
         explode: true
         in: query
@@ -550,6 +863,7 @@ paths:
         style: form
       - description: |
           Returns objects less than or equal to the specified date.
+
           This can be combined with start_date_gte parameter to receive only the selected period.
         explode: true
         in: query
@@ -559,15 +873,23 @@ paths:
           format: date-time
           type: string
         style: form
+      - description: |
+          The name of the field to order the results by.
+          Prefix a field name with `-` to reverse the sort order.
+        explode: true
+        in: query
+        name: order_by
+        required: false
+        schema:
+          type: string
+        style: form
       responses:
         "200":
           content:
             application/json:
               schema:
-                allOf:
-                - $ref: '#/components/schemas/DAGRunCollection'
-                - $ref: '#/components/schemas/CollectionInfo'
-          description: List of DAG Runs.
+                $ref: '#/components/schemas/DAGRunCollection'
+          description: List of DAG runs.
         "401":
           content:
             application/json:
@@ -575,7 +897,7 @@ paths:
                 $ref: '#/components/schemas/Error'
           description: Request not authenticated due to missing, invalid, authentication
             info.
-      summary: Get all DAG Runs
+      summary: List DAG runs
       tags:
       - DAGRun
       x-openapi-router-controller: airflow.api_connexion.endpoints.dag_run_endpoint
@@ -602,7 +924,7 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/DAGRun'
-          description: Successful response.
+          description: Success.
         "400":
           content:
             application/json:
@@ -634,7 +956,7 @@ paths:
               schema:
                 $ref: '#/components/schemas/Error'
           description: A specified resource is not found.
-      summary: Trigger a DAG Run
+      summary: Trigger a new DAG run
       tags:
       - DAGRun
       x-openapi-router-controller: airflow.api_connexion.endpoints.dag_run_endpoint
@@ -654,10 +976,8 @@ paths:
           content:
             application/json:
               schema:
-                allOf:
-                - $ref: '#/components/schemas/DAGRunCollection'
-                - $ref: '#/components/schemas/CollectionInfo'
-          description: List of DAG Runs.
+                $ref: '#/components/schemas/DAGRunCollection'
+          description: Success.
         "400":
           content:
             application/json:
@@ -677,7 +997,7 @@ paths:
               schema:
                 $ref: '#/components/schemas/Error'
           description: Client does not have sufficient permission.
-      summary: Get all DAG Runs from all DAGs
+      summary: List DAG runs (batch)
       tags:
       - DAGRun
       x-openapi-router-controller: airflow.api_connexion.endpoints.dag_run_endpoint
@@ -693,7 +1013,7 @@ paths:
         schema:
           type: string
         style: simple
-      - description: The DAG Run ID.
+      - description: The DAG run ID.
         explode: false
         in: path
         name: dag_run_id
@@ -703,7 +1023,7 @@ paths:
         style: simple
       responses:
         "204":
-          description: No content.
+          description: Success.
         "400":
           content:
             application/json:
@@ -723,7 +1043,13 @@ paths:
               schema:
                 $ref: '#/components/schemas/Error'
           description: Client does not have sufficient permission.
-      summary: Delete a DAG Run
+        "404":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: A specified resource is not found.
+      summary: Delete a DAG run
       tags:
       - DAGRun
       x-openapi-router-controller: airflow.api_connexion.endpoints.dag_run_endpoint
@@ -738,7 +1064,7 @@ paths:
         schema:
           type: string
         style: simple
-      - description: The DAG Run ID.
+      - description: The DAG run ID.
         explode: false
         in: path
         name: dag_run_id
@@ -752,7 +1078,7 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/DAGRun'
-          description: Successful response.
+          description: Success.
         "401":
           content:
             application/json:
@@ -772,12 +1098,13 @@ paths:
               schema:
                 $ref: '#/components/schemas/Error'
           description: A specified resource is not found.
-      summary: Get a DAG Run
+      summary: Get a DAG run
       tags:
       - DAGRun
       x-openapi-router-controller: airflow.api_connexion.endpoints.dag_run_endpoint
   /eventLogs:
     get:
+      description: List log entries from event log.
       operationId: get_event_logs
       parameters:
       - description: The numbers of items to return.
@@ -799,15 +1126,23 @@ paths:
           minimum: 0
           type: integer
         style: form
+      - description: |
+          The name of the field to order the results by.
+          Prefix a field name with `-` to reverse the sort order.
+        explode: true
+        in: query
+        name: order_by
+        required: false
+        schema:
+          type: string
+        style: form
       responses:
         "200":
           content:
             application/json:
               schema:
-                allOf:
-                - $ref: '#/components/schemas/EventLogCollection'
-                - $ref: '#/components/schemas/CollectionInfo'
-          description: List of log entries.
+                $ref: '#/components/schemas/EventLogCollection'
+          description: Success.
         "401":
           content:
             application/json:
@@ -821,7 +1156,7 @@ paths:
               schema:
                 $ref: '#/components/schemas/Error'
           description: Client does not have sufficient permission.
-      summary: Get all log entries from event log
+      summary: List log entries
       tags:
       - EventLog
       x-openapi-router-controller: airflow.api_connexion.endpoints.event_log_endpoint
@@ -829,7 +1164,7 @@ paths:
     get:
       operationId: get_event_log
       parameters:
-      - description: The Event Log ID.
+      - description: The event log ID.
         explode: false
         in: path
         name: event_log_id
@@ -843,7 +1178,7 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/EventLog'
-          description: Successful response.
+          description: Success.
         "401":
           content:
             application/json:
@@ -890,15 +1225,23 @@ paths:
           minimum: 0
           type: integer
         style: form
+      - description: |
+          The name of the field to order the results by.
+          Prefix a field name with `-` to reverse the sort order.
+        explode: true
+        in: query
+        name: order_by
+        required: false
+        schema:
+          type: string
+        style: form
       responses:
         "200":
           content:
             application/json:
               schema:
-                allOf:
-                - $ref: '#/components/schemas/ImportErrorCollection'
-                - $ref: '#/components/schemas/CollectionInfo'
-          description: List of import errors.
+                $ref: '#/components/schemas/ImportErrorCollection'
+          description: Success.
         "401":
           content:
             application/json:
@@ -912,7 +1255,7 @@ paths:
               schema:
                 $ref: '#/components/schemas/Error'
           description: Client does not have sufficient permission.
-      summary: Get all import errors
+      summary: List import errors
       tags:
       - ImportError
       x-openapi-router-controller: airflow.api_connexion.endpoints.import_error_endpoint
@@ -920,7 +1263,7 @@ paths:
     get:
       operationId: get_import_error
       parameters:
-      - description: The Import Error ID.
+      - description: The import error ID.
         explode: false
         in: path
         name: import_error_id
@@ -934,7 +1277,7 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/ImportError'
-          description: Successful response.
+          description: Success.
         "401":
           content:
             application/json:
@@ -981,14 +1324,22 @@ paths:
           minimum: 0
           type: integer
         style: form
+      - description: |
+          The name of the field to order the results by.
+          Prefix a field name with `-` to reverse the sort order.
+        explode: true
+        in: query
+        name: order_by
+        required: false
+        schema:
+          type: string
+        style: form
       responses:
         "200":
           content:
             application/json:
               schema:
-                allOf:
-                - $ref: '#/components/schemas/PoolCollection'
-                - $ref: '#/components/schemas/CollectionInfo'
+                $ref: '#/components/schemas/PoolCollection'
           description: List of pools.
         "401":
           content:
@@ -1003,7 +1354,7 @@ paths:
               schema:
                 $ref: '#/components/schemas/Error'
           description: Client does not have sufficient permission.
-      summary: Get all pools
+      summary: List pools
       tags:
       - Pool
       x-openapi-router-controller: airflow.api_connexion.endpoints.pool_endpoint
@@ -1021,7 +1372,7 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/Pool'
-          description: Successful response.
+          description: Success.
         "400":
           content:
             application/json:
@@ -1049,7 +1400,7 @@ paths:
     delete:
       operationId: delete_pool
       parameters:
-      - description: The Pool name.
+      - description: The pool name.
         explode: false
         in: path
         name: pool_name
@@ -1059,7 +1410,7 @@ paths:
         style: simple
       responses:
         "204":
-          description: No content.
+          description: Success.
         "400":
           content:
             application/json:
@@ -1092,7 +1443,7 @@ paths:
     get:
       operationId: get_pool
       parameters:
-      - description: The Pool name.
+      - description: The pool name.
         explode: false
         in: path
         name: pool_name
@@ -1106,7 +1457,7 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/Pool'
-          description: Successful response.
+          description: Success.
         "401":
           content:
             application/json:
@@ -1133,7 +1484,7 @@ paths:
     patch:
       operationId: patch_pool
       parameters:
-      - description: The Pool name.
+      - description: The pool name.
         explode: false
         in: path
         name: pool_name
@@ -1142,7 +1493,8 @@ paths:
           type: string
         style: simple
       - description: |
-          The fields to update on the connection (connection, pool etc). If absent or empty, all modifiable fields are updated. A comma-separated list of fully qualified names of fields.
+          The fields to update on the resource. If absent or empty, all modifiable fields are updated.
+          A comma-separated list of fully qualified names of fields.
         explode: false
         in: query
         name: update_mask
@@ -1164,7 +1516,7 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/Pool'
-          description: Successful response.
+          description: Success.
         "400":
           content:
             application/json:
@@ -1200,10 +1552,39 @@ paths:
       tags:
       - Pool
       x-openapi-router-controller: airflow.api_connexion.endpoints.pool_endpoint
+  /providers:
+    get:
+      operationId: get_providers
+      responses:
+        "200":
+          content:
+            application/json:
+              schema:
+                allOf:
+                - $ref: '#/components/schemas/ProviderCollection'
+                - $ref: '#/components/schemas/CollectionInfo'
+          description: List of providers.
+        "401":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Request not authenticated due to missing, invalid, authentication
+            info.
+        "403":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Client does not have sufficient permission.
+      summary: List providers
+      tags:
+      - Provider
+      x-openapi-router-controller: airflow.api_connexion.endpoints.provider_endpoint
   /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances:
     get:
       description: |
-        This endpoint allows specifying `~` as the dag_id, dag_run_id to retrieve DAG Runs for all DAGs and DAG Runs.
+        This endpoint allows specifying `~` as the dag_id, dag_run_id to retrieve DAG runs for all DAGs and DAG runs.
       operationId: get_task_instances
       parameters:
       - description: The DAG ID.
@@ -1214,7 +1595,7 @@ paths:
         schema:
           type: string
         style: simple
-      - description: The DAG Run ID.
+      - description: The DAG run ID.
         explode: false
         in: path
         name: dag_run_id
@@ -1224,6 +1605,7 @@ paths:
         style: simple
       - description: |
           Returns objects greater or equal to the specified date.
+
           This can be combined with execution_date_lte parameter to receive only the selected period.
         explode: true
         in: query
@@ -1235,6 +1617,7 @@ paths:
         style: form
       - description: |
           Returns objects less than or equal to the specified date.
+
           This can be combined with execution_date_gte parameter to receive only the selected period.
         explode: true
         in: query
@@ -1246,7 +1629,8 @@ paths:
         style: form
       - description: |
           Returns objects greater or equal the specified date.
-          This can be combined with startd_ate_lte parameter to receive only the selected period.
+
+          This can be combined with start_date_lte parameter to receive only the selected period.
         explode: true
         in: query
         name: start_date_gte
@@ -1257,6 +1641,7 @@ paths:
         style: form
       - description: |
           Returns objects less or equal the specified date.
+
           This can be combined with start_date_gte parameter to receive only the selected period.
         explode: true
         in: query
@@ -1268,6 +1653,7 @@ paths:
         style: form
       - description: |
           Returns objects greater or equal the specified date.
+
           This can be combined with start_date_lte parameter to receive only the selected period.
         explode: true
         in: query
@@ -1279,6 +1665,7 @@ paths:
         style: form
       - description: |
           Returns objects less than or equal to the specified date.
+
           This can be combined with start_date_gte parameter to receive only the selected period.
         explode: true
         in: query
@@ -1290,6 +1677,7 @@ paths:
         style: form
       - description: |
           Returns objects greater than or equal to the specified values.
+
           This can be combined with duration_lte parameter to receive only the selected period.
         explode: true
         in: query
@@ -1300,6 +1688,7 @@ paths:
         style: form
       - description: |
           Returns objects less than or equal to the specified values.
+
           This can be combined with duration_gte parameter to receive only the selected range.
         explode: true
         in: query
@@ -1365,10 +1754,8 @@ paths:
           content:
             application/json:
               schema:
-                allOf:
-                - $ref: '#/components/schemas/TaskInstanceCollection'
-                - $ref: '#/components/schemas/CollectionInfo'
-          description: List of task instances.
+                $ref: '#/components/schemas/TaskInstanceCollection'
+          description: Success.
         "401":
           content:
             application/json:
@@ -1382,7 +1769,7 @@ paths:
               schema:
                 $ref: '#/components/schemas/Error'
           description: Client does not have sufficient permission.
-      summary: Get a list of task instance of DAG
+      summary: List task instances
       tags:
       - TaskInstance
       x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint
@@ -1398,7 +1785,7 @@ paths:
         schema:
           type: string
         style: simple
-      - description: The DAG Run ID.
+      - description: The DAG run ID.
         explode: false
         in: path
         name: dag_run_id
@@ -1406,7 +1793,7 @@ paths:
         schema:
           type: string
         style: simple
-      - description: The Task ID.
+      - description: The task ID.
         explode: false
         in: path
         name: task_id
@@ -1420,7 +1807,7 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/TaskInstance'
-          description: Successful response.
+          description: Success.
         "401":
           content:
             application/json:
@@ -1447,6 +1834,7 @@ paths:
   /dags/~/dagRuns/~/taskInstances/list:
     post:
       description: |
+        List task instances from all DAGs and DAG runs.
         This endpoint is a POST to allow filtering across a large number of DAG IDs, where as a GET it would run in to maximum HTTP request URL length limits.
       operationId: get_task_instances_batch
       requestBody:
@@ -1460,10 +1848,8 @@ paths:
           content:
             application/json:
               schema:
-                allOf:
-                - $ref: '#/components/schemas/TaskInstanceCollection'
-                - $ref: '#/components/schemas/CollectionInfo'
-          description: List of task instances.
+                $ref: '#/components/schemas/TaskInstanceCollection'
+          description: Success.
         "401":
           content:
             application/json:
@@ -1483,7 +1869,7 @@ paths:
               schema:
                 $ref: '#/components/schemas/Error'
           description: A specified resource is not found.
-      summary: Get list of task instances from all DAGs and DAG Runs.
+      summary: List task instances (batch)
       tags:
       - TaskInstance
       x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint
@@ -1512,15 +1898,23 @@ paths:
           minimum: 0
           type: integer
         style: form
+      - description: |
+          The name of the field to order the results by.
+          Prefix a field name with `-` to reverse the sort order.
+        explode: true
+        in: query
+        name: order_by
+        required: false
+        schema:
+          type: string
+        style: form
       responses:
         "200":
           content:
             application/json:
               schema:
-                allOf:
-                - $ref: '#/components/schemas/VariableCollection'
-                - $ref: '#/components/schemas/CollectionInfo'
-          description: List of variables.
+                $ref: '#/components/schemas/VariableCollection'
+          description: Success.
         "401":
           content:
             application/json:
@@ -1534,7 +1928,7 @@ paths:
               schema:
                 $ref: '#/components/schemas/Error'
           description: Client does not have sufficient permission.
-      summary: Get all variables
+      summary: List variables
       tags:
       - Variable
       x-openapi-router-controller: airflow.api_connexion.endpoints.variable_endpoint
@@ -1552,7 +1946,7 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/Variable'
-          description: Successful response.
+          description: Success.
         "400":
           content:
             application/json:
@@ -1580,7 +1974,7 @@ paths:
     delete:
       operationId: delete_variable
       parameters:
-      - description: The Variable Key.
+      - description: The variable Key.
         explode: false
         in: path
         name: variable_key
@@ -1590,7 +1984,7 @@ paths:
         style: simple
       responses:
         "204":
-          description: No content.
+          description: Success.
         "400":
           content:
             application/json:
@@ -1610,14 +2004,21 @@ paths:
               schema:
                 $ref: '#/components/schemas/Error'
           description: Client does not have sufficient permission.
-      summary: Delete variable
+        "404":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: A specified resource is not found.
+      summary: Delete a variable
       tags:
       - Variable
       x-openapi-router-controller: airflow.api_connexion.endpoints.variable_endpoint
     get:
+      description: Get a variable by key.
       operationId: get_variable
       parameters:
-      - description: The Variable Key.
+      - description: The variable Key.
         explode: false
         in: path
         name: variable_key
@@ -1631,7 +2032,7 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/Variable'
-          description: Successful response.
+          description: Success.
         "401":
           content:
             application/json:
@@ -1651,14 +2052,15 @@ paths:
               schema:
                 $ref: '#/components/schemas/Error'
           description: A specified resource is not found.
-      summary: Get a variable by key
+      summary: Get a variable
       tags:
       - Variable
       x-openapi-router-controller: airflow.api_connexion.endpoints.variable_endpoint
     patch:
+      description: Update a variable by key.
       operationId: patch_variable
       parameters:
-      - description: The Variable Key.
+      - description: The variable Key.
         explode: false
         in: path
         name: variable_key
@@ -1667,7 +2069,8 @@ paths:
           type: string
         style: simple
       - description: |
-          The fields to update on the connection (connection, pool etc). If absent or empty, all modifiable fields are updated. A comma-separated list of fully qualified names of fields.
+          The fields to update on the resource. If absent or empty, all modifiable fields are updated.
+          A comma-separated list of fully qualified names of fields.
         explode: false
         in: query
         name: update_mask
@@ -1689,7 +2092,7 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/Variable'
-          description: Successful response.
+          description: Success.
         "400":
           content:
             application/json:
@@ -1715,14 +2118,16 @@ paths:
               schema:
                 $ref: '#/components/schemas/Error'
           description: A specified resource is not found.
-      summary: Update a variable by key
+      summary: Update a variable
       tags:
       - Variable
       x-openapi-router-controller: airflow.api_connexion.endpoints.variable_endpoint
   /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/xcomEntries:
     get:
       description: This endpoint allows specifying `~` as the dag_id, dag_run_id,
-        task_id to retrieve XCOM entries for for all DAGs, DAG Runs and task instances.
+        task_id to retrieve XCOM entries for for all DAGs, DAG runs and task instances.
+        XCom values won't be returned as they can be large. Use this endpoint to get
+        a list of XCom entries and then fetch individual entry to get value.
       operationId: get_xcom_entries
       parameters:
       - description: The DAG ID.
@@ -1733,7 +2138,7 @@ paths:
         schema:
           type: string
         style: simple
-      - description: The DAG Run ID.
+      - description: The DAG run ID.
         explode: false
         in: path
         name: dag_run_id
@@ -1741,7 +2146,7 @@ paths:
         schema:
           type: string
         style: simple
-      - description: The Task ID.
+      - description: The task ID.
         explode: false
         in: path
         name: task_id
@@ -1773,10 +2178,8 @@ paths:
           content:
             application/json:
               schema:
-                allOf:
-                - $ref: '#/components/schemas/XComCollection'
-                - $ref: '#/components/schemas/CollectionInfo'
-          description: List of XCom entries.
+                $ref: '#/components/schemas/XComCollection'
+          description: Success.
         "401":
           content:
             application/json:
@@ -1790,7 +2193,7 @@ paths:
               schema:
                 $ref: '#/components/schemas/Error'
           description: Client does not have sufficient permission.
-      summary: Get all XCom entries
+      summary: List XCom entries
       tags:
       - XCom
       x-openapi-router-controller: airflow.api_connexion.endpoints.xcom_endpoint
@@ -1806,7 +2209,7 @@ paths:
         schema:
           type: string
         style: simple
-      - description: The DAG Run ID.
+      - description: The DAG run ID.
         explode: false
         in: path
         name: dag_run_id
@@ -1814,7 +2217,7 @@ paths:
         schema:
           type: string
         style: simple
-      - description: The Task ID.
+      - description: The task ID.
         explode: false
         in: path
         name: task_id
@@ -1822,7 +2225,7 @@ paths:
         schema:
           type: string
         style: simple
-      - description: The XCom Key.
+      - description: The XCom key.
         explode: false
         in: path
         name: xcom_key
@@ -1836,7 +2239,7 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/XCom'
-          description: Successful response.
+          description: Success.
         "401":
           content:
             application/json:
@@ -1862,6 +2265,8 @@ paths:
       x-openapi-router-controller: airflow.api_connexion.endpoints.xcom_endpoint
   /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/links:
     get:
+      description: |
+        List extra links for task instance.
       operationId: get_extra_links
       parameters:
       - description: The DAG ID.
@@ -1872,7 +2277,7 @@ paths:
         schema:
           type: string
         style: simple
-      - description: The DAG Run ID.
+      - description: The DAG run ID.
         explode: false
         in: path
         name: dag_run_id
@@ -1880,7 +2285,7 @@ paths:
         schema:
           type: string
         style: simple
-      - description: The Task ID.
+      - description: The task ID.
         explode: false
         in: path
         name: task_id
@@ -1894,7 +2299,7 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/ExtraLinkCollection'
-          description: Successful response.
+          description: Success.
         "401":
           content:
             application/json:
@@ -1914,13 +2319,13 @@ paths:
               schema:
                 $ref: '#/components/schemas/Error'
           description: A specified resource is not found.
-      summary: Get extra links for task instance
+      summary: List extra links
       tags:
       - TaskInstance
       x-openapi-router-controller: airflow.api_connexion.endpoints.extra_link_endpoint
   /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/logs/{task_try_number}:
     get:
-      description: Get logs for a specific task instance and its try number
+      description: Get logs for a specific task instance and its try number.
       operationId: get_log
       parameters:
       - description: The DAG ID.
@@ -1931,7 +2336,7 @@ paths:
         schema:
           type: string
         style: simple
-      - description: The DAG Run ID.
+      - description: The DAG run ID.
         explode: false
         in: path
         name: dag_run_id
@@ -1939,7 +2344,7 @@ paths:
         schema:
           type: string
         style: simple
-      - description: The Task ID.
+      - description: The task ID.
         explode: false
         in: path
         name: task_id
@@ -1947,7 +2352,7 @@ paths:
         schema:
           type: string
         style: simple
-      - description: The Task Try Number.
+      - description: The task try number.
         explode: false
         in: path
         name: task_try_number
@@ -1956,7 +2361,8 @@ paths:
           type: integer
         style: simple
       - description: |
-          A full content will be returned. By default, only the first fragment will be returned.
+          A full content will be returned.
+          By default, only the first fragment will be returned.
         explode: true
         in: query
         name: full_content
@@ -1965,7 +2371,8 @@ paths:
           type: boolean
         style: form
       - description: |
-          A token that allows you to continue fetching logs. If passed, it will specify the location from which the download should be continued.
+          A token that allows you to continue fetching logs.
+          If passed, it will specify the location from which the download should be continued.
         explode: true
         in: query
         name: token
@@ -1982,7 +2389,7 @@ paths:
             text/plain:
               schema:
                 $ref: '#/components/schemas/inline_response_200'
-          description: Content of logs.
+          description: Success.
         "400":
           content:
             application/json:
@@ -2008,7 +2415,7 @@ paths:
               schema:
                 $ref: '#/components/schemas/Error'
           description: A specified resource is not found.
-      summary: Get logs for a task instance
+      summary: Get logs
       tags:
       - TaskInstance
       x-openapi-router-controller: airflow.api_connexion.endpoints.log_endpoint
@@ -2032,7 +2439,7 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/DAGDetail'
-          description: Successful response.
+          description: Success.
         "401":
           content:
             application/json:
@@ -2068,13 +2475,23 @@ paths:
         schema:
           type: string
         style: simple
+      - description: |
+          The name of the field to order the results by.
+          Prefix a field name with `-` to reverse the sort order.
+        explode: true
+        in: query
+        name: order_by
+        required: false
+        schema:
+          type: string
+        style: form
       responses:
         "200":
           content:
             application/json:
               schema:
                 $ref: '#/components/schemas/TaskCollection'
-          description: Successful response.
+          description: Success.
         "401":
           content:
             application/json:
@@ -2110,7 +2527,7 @@ paths:
         schema:
           type: string
         style: simple
-      - description: The Task ID.
+      - description: The task ID.
         explode: false
         in: path
         name: task_id
@@ -2124,7 +2541,7 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/Task'
-          description: Successful response.
+          description: Success.
         "401":
           content:
             application/json:
@@ -2150,10 +2567,14 @@ paths:
       x-openapi-router-controller: airflow.api_connexion.endpoints.task_endpoint
   /dagSources/{file_token}:
     get:
+      description: |
+        Get a source code using file token.
       operationId: get_dag_source
       parameters:
       - description: |
-          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.
+          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.
         explode: false
         in: path
         name: file_token
@@ -2170,7 +2591,7 @@ paths:
             plain/text:
               schema:
                 $ref: '#/components/schemas/inline_response_200_1'
-          description: Successful response.
+          description: Success.
         "401":
           content:
             application/json:
@@ -2196,7 +2617,7 @@ paths:
               schema:
                 $ref: '#/components/schemas/Error'
           description: A specified Accept header is not allowed.
-      summary: Get source code using file token
+      summary: Get a source code
       tags:
       - DAG
       x-openapi-router-controller: airflow.api_connexion.endpoints.dag_source_endpoint
@@ -2207,12 +2628,30 @@ paths:
         "200":
           content:
             application/json:
+              example:
+                sections:
+                - name: core
+                  options:
+                  - key: dags_folder
+                    value: /home/user/my-dags-folder
+                - name: smtp
+                  options:
+                  - key: smtp_host
+                    value: localhost
+                  - key: smtp_mail_from
+                    value: airflow@example.com
               schema:
                 $ref: '#/components/schemas/Config'
             text/plain:
+              example: |
+                [core]
+                dags_folder = /home/user/my-dags-folder
+                [smtp]
+                smtp_host = localhost
+                smtp_mail_from =  airflow@example.com
               schema:
                 type: string
-          description: Return current configuration.
+          description: Success.
         "401":
           content:
             application/json:
@@ -2232,6 +2671,9 @@ paths:
       x-openapi-router-controller: airflow.api_connexion.endpoints.config_endpoint
   /health:
     get:
+      description: |
+        Get the status of Airflow's metadatabase and scheduler. It includes info about
+        metadatabase and last heartbeat of scheduler.
       operationId: get_health
       responses:
         "200":
@@ -2239,8 +2681,8 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/HealthInfo'
-          description: Returns info about metadatabase and last heart beat.
-      summary: Returns the status of Airflow's metadatabase and scheduler
+          description: Success.
+      summary: Get instance status
       tags:
       - Monitoring
       x-openapi-router-controller: airflow.api_connexion.endpoints.health_endpoint
@@ -2253,12 +2695,456 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/VersionInfo'
-          description: Return current configuration.
+          description: Success.
       summary: Get version information
       tags:
       - Monitoring
       x-openapi-router-controller: airflow.api_connexion.endpoints.version_endpoint
-components:
+  /plugins:
+    get:
+      operationId: get_plugins
+      parameters:
+      - description: The numbers of items to return.
+        explode: true
+        in: query
+        name: limit
+        required: false
+        schema:
+          default: 100
+          type: integer
+        style: form
+      - description: The number of items to skip before starting to collect the result
+          set.
+        explode: true
+        in: query
+        name: offset
+        required: false
+        schema:
+          minimum: 0
+          type: integer
+        style: form
+      responses:
+        "200":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/PluginCollection'
+          description: Success
+        "401":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Request not authenticated due to missing, invalid, authentication
+            info.
+        "403":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Client does not have sufficient permission.
+        "404":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: A specified resource is not found.
+      summary: Get a list of loaded plugins
+      tags:
+      - Plugin
+      x-openapi-router-controller: airflow.api_connexion.endpoints.plugin_endpoint
+  /roles:
+    get:
+      operationId: get_roles
+      parameters:
+      - description: The numbers of items to return.
+        explode: true
+        in: query
+        name: limit
+        required: false
+        schema:
+          default: 100
+          type: integer
+        style: form
+      - description: The number of items to skip before starting to collect the result
+          set.
+        explode: true
+        in: query
+        name: offset
+        required: false
+        schema:
+          minimum: 0
+          type: integer
+        style: form
+      - description: |
+          The name of the field to order the results by.
+          Prefix a field name with `-` to reverse the sort order.
+        explode: true
+        in: query
+        name: order_by
+        required: false
+        schema:
+          type: string
+        style: form
+      responses:
+        "200":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/RoleCollection'
+          description: Success.
+        "401":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Request not authenticated due to missing, invalid, authentication
+            info.
+        "403":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Client does not have sufficient permission.
+      summary: List roles
+      tags:
+      - Role
+      x-openapi-router-controller: airflow.api_connexion.endpoints.role_and_permission_endpoint
+    post:
+      operationId: post_role
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/Role'
+        required: true
+      responses:
+        "200":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Role'
+          description: Success.
+        "400":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Client specified an invalid argument.
+        "401":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Request not authenticated due to missing, invalid, authentication
+            info.
+        "403":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Client does not have sufficient permission.
+      summary: Create a role
+      tags:
+      - Role
+      x-openapi-router-controller: airflow.api_connexion.endpoints.role_and_permission_endpoint
+  /roles/{role_name}:
+    delete:
+      operationId: delete_role
+      parameters:
+      - description: The role name
+        explode: false
+        in: path
+        name: role_name
+        required: true
+        schema:
+          type: string
+        style: simple
+      responses:
+        "204":
+          description: Success.
+        "400":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Client specified an invalid argument.
+        "401":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Request not authenticated due to missing, invalid, authentication
+            info.
+        "403":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Client does not have sufficient permission.
+        "404":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: A specified resource is not found.
+      summary: Delete a role
+      tags:
+      - Role
+      x-openapi-router-controller: airflow.api_connexion.endpoints.role_and_permission_endpoint
+    get:
+      operationId: get_role
+      parameters:
+      - description: The role name
+        explode: false
+        in: path
+        name: role_name
+        required: true
+        schema:
+          type: string
+        style: simple
+      responses:
+        "200":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Role'
+          description: Success.
+        "401":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Request not authenticated due to missing, invalid, authentication
+            info.
+        "403":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Client does not have sufficient permission.
+        "404":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: A specified resource is not found.
+      summary: Get a role
+      tags:
+      - Role
+      x-openapi-router-controller: airflow.api_connexion.endpoints.role_and_permission_endpoint
+    patch:
+      operationId: patch_role
+      parameters:
+      - description: The role name
+        explode: false
+        in: path
+        name: role_name
+        required: true
+        schema:
+          type: string
+        style: simple
+      - description: |
+          The fields to update on the resource. If absent or empty, all modifiable fields are updated.
+          A comma-separated list of fully qualified names of fields.
+        explode: false
+        in: query
+        name: update_mask
+        required: false
+        schema:
+          items:
+            type: string
+          type: array
+        style: form
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/Role'
+        required: true
+      responses:
+        "200":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Role'
+          description: Success.
+        "400":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Client specified an invalid argument.
+        "401":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Request not authenticated due to missing, invalid, authentication
+            info.
+        "403":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Client does not have sufficient permission.
+        "404":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: A specified resource is not found.
+      summary: Update a role
+      tags:
+      - Role
+      x-openapi-router-controller: airflow.api_connexion.endpoints.role_and_permission_endpoint
+  /permissions:
+    get:
+      operationId: get_permissions
+      parameters:
+      - description: The numbers of items to return.
+        explode: true
+        in: query
+        name: limit
+        required: false
+        schema:
+          default: 100
+          type: integer
+        style: form
+      - description: The number of items to skip before starting to collect the result
+          set.
+        explode: true
+        in: query
+        name: offset
+        required: false
+        schema:
+          minimum: 0
+          type: integer
+        style: form
+      responses:
+        "200":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ActionCollection'
+          description: Success.
+        "401":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Request not authenticated due to missing, invalid, authentication
+            info.
+        "403":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Client does not have sufficient permission.
+      summary: List permissions
+      tags:
+      - Permission
+      x-openapi-router-controller: airflow.api_connexion.endpoints.role_and_permission_endpoint
+  /users:
+    get:
+      operationId: get_users
+      parameters:
+      - description: The numbers of items to return.
+        explode: true
+        in: query
+        name: limit
+        required: false
+        schema:
+          default: 100
+          type: integer
+        style: form
+      - description: The number of items to skip before starting to collect the result
+          set.
+        explode: true
+        in: query
+        name: offset
+        required: false
+        schema:
+          minimum: 0
+          type: integer
+        style: form
+      - description: |
+          The name of the field to order the results by.
+          Prefix a field name with `-` to reverse the sort order.
+        explode: true
+        in: query
+        name: order_by
+        required: false
+        schema:
+          type: string
+        style: form
+      responses:
+        "200":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/UserCollection'
+          description: Success.
+        "401":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Request not authenticated due to missing, invalid, authentication
+            info.
+        "403":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Client does not have sufficient permission.
+      summary: List users
+      tags:
+      - User
+      x-openapi-router-controller: airflow.api_connexion.endpoints.user_endpoint
+  /users/{username}:
+    get:
+      operationId: get_user
+      parameters:
+      - description: The username of the user
+        explode: false
+        in: path
+        name: username
+        required: true
+        schema:
+          type: string
+        style: simple
+      responses:
+        "200":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/UserCollectionItem'
+          description: Success.
+        "401":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Request not authenticated due to missing, invalid, authentication
+            info.
+        "403":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: Client does not have sufficient permission.
+        "404":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Error'
+          description: A specified resource is not found.
+      summary: Get a user
+      tags:
+      - User
+      x-openapi-router-controller: airflow.api_connexion.endpoints.user_endpoint
+components:
   callbacks: {}
   examples: {}
   headers: {}
@@ -2285,8 +3171,26 @@ components:
         default: 100
         type: integer
       style: form
+    Username:
+      description: The username of the user
+      explode: false
+      in: path
+      name: username
+      required: true
+      schema:
+        type: string
+      style: simple
+    RoleName:
+      description: The role name
+      explode: false
+      in: path
+      name: role_name
+      required: true
+      schema:
+        type: string
+      style: simple
     ConnectionID:
-      description: The Connection ID.
+      description: The connection ID.
       explode: false
       in: path
       name: connection_id
@@ -2304,7 +3208,7 @@ components:
         type: string
       style: simple
     TaskID:
-      description: The Task ID.
+      description: The task ID.
       explode: false
       in: path
       name: task_id
@@ -2313,7 +3217,7 @@ components:
         type: string
       style: simple
     DAGRunID:
-      description: The DAG Run ID.
+      description: The DAG run ID.
       explode: false
       in: path
       name: dag_run_id
@@ -2322,7 +3226,7 @@ components:
         type: string
       style: simple
     TaskTryNumber:
-      description: The Task Try Number.
+      description: The task try number.
       explode: false
       in: path
       name: task_try_number
@@ -2331,7 +3235,7 @@ components:
         type: integer
       style: simple
     EventLogID:
-      description: The Event Log ID.
+      description: The event log ID.
       explode: false
       in: path
       name: event_log_id
@@ -2340,7 +3244,7 @@ components:
         type: integer
       style: simple
     ImportErrorID:
-      description: The Import Error ID.
+      description: The import error ID.
       explode: false
       in: path
       name: import_error_id
@@ -2349,7 +3253,7 @@ components:
         type: integer
       style: simple
     PoolName:
-      description: The Pool name.
+      description: The pool name.
       explode: false
       in: path
       name: pool_name
@@ -2358,7 +3262,7 @@ components:
         type: string
       style: simple
     VariableKey:
-      description: The Variable Key.
+      description: The variable Key.
       explode: false
       in: path
       name: variable_key
@@ -2368,7 +3272,8 @@ components:
       style: simple
     FullContent:
       description: |
-        A full content will be returned. By default, only the first fragment will be returned.
+        A full content will be returned.
+        By default, only the first fragment will be returned.
       explode: true
       in: query
       name: full_content
@@ -2378,7 +3283,8 @@ components:
       style: form
     ContinuationToken:
       description: |
-        A token that allows you to continue fetching logs. If passed, it will specify the location from which the download should be continued.
+        A token that allows you to continue fetching logs.
+        If passed, it will specify the location from which the download should be continued.
       explode: true
       in: query
       name: token
@@ -2387,7 +3293,7 @@ components:
         type: string
       style: form
     XComKey:
-      description: The XCom Key.
+      description: The XCom key.
       explode: false
       in: path
       name: xcom_key
@@ -2398,6 +3304,7 @@ components:
     FilterExecutionDateGTE:
       description: |
         Returns objects greater or equal to the specified date.
+
         This can be combined with execution_date_lte parameter to receive only the selected period.
       explode: true
       in: query
@@ -2410,6 +3317,7 @@ components:
     FilterExecutionDateLTE:
       description: |
         Returns objects less than or equal to the specified date.
+
         This can be combined with execution_date_gte parameter to receive only the selected period.
       explode: true
       in: query
@@ -2422,7 +3330,8 @@ components:
     FilterStartDateGTE:
       description: |
         Returns objects greater or equal the specified date.
-        This can be combined with startd_ate_lte parameter to receive only the selected period.
+
+        This can be combined with start_date_lte parameter to receive only the selected period.
       explode: true
       in: query
       name: start_date_gte
@@ -2434,6 +3343,7 @@ components:
     FilterStartDateLTE:
       description: |
         Returns objects less or equal the specified date.
+
         This can be combined with start_date_gte parameter to receive only the selected period.
       explode: true
       in: query
@@ -2446,6 +3356,7 @@ components:
     FilterEndDateGTE:
       description: |
         Returns objects greater or equal the specified date.
+
         This can be combined with start_date_lte parameter to receive only the selected period.
       explode: true
       in: query
@@ -2458,6 +3369,7 @@ components:
     FilterEndDateLTE:
       description: |
         Returns objects less than or equal to the specified date.
+
         This can be combined with start_date_gte parameter to receive only the selected period.
       explode: true
       in: query
@@ -2470,6 +3382,7 @@ components:
     FilterDurationGTE:
       description: |
         Returns objects greater than or equal to the specified values.
+
         This can be combined with duration_lte parameter to receive only the selected period.
       explode: true
       in: query
@@ -2481,6 +3394,7 @@ components:
     FilterDurationLTE:
       description: |
         Returns objects less than or equal to the specified values.
+
         This can be combined with duration_gte parameter to receive only the selected range.
       explode: true
       in: query
@@ -2525,9 +3439,22 @@ components:
           type: string
         type: array
       style: form
+    OrderBy:
+      description: |
+        The name of the field to order the results by.
+        Prefix a field name with `-` to reverse the sort order.
+      explode: true
+      in: query
+      name: order_by
+      required: false
+      schema:
+        type: string
+      style: form
     FileToken:
       description: |
-        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.
+        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.
       explode: false
       in: path
       name: file_token
@@ -2537,7 +3464,8 @@ components:
       style: simple
     UpdateMask:
       description: |
-        The fields to update on the connection (connection, pool etc). If absent or empty, all modifiable fields are updated. A comma-separated list of fully qualified names of fields.
+        The fields to update on the resource. If absent or empty, all modifiable fields are updated.
+        A comma-separated list of fully qualified names of fields.
       explode: false
       in: query
       name: update_mask
@@ -2574,6 +3502,13 @@ components:
           schema:
             $ref: '#/components/schemas/Error'
       description: A specified resource is not found.
+    MethodNotAllowed:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/Error'
+      description: Request method is known by the server but is not supported by the
+        target resource.
     NotAcceptable:
       content:
         application/json:
@@ -2593,37 +3528,129 @@ components:
             $ref: '#/components/schemas/Error'
       description: Unknown server error.
   schemas:
+    UserCollectionItem:
+      description: |
+        A user object
+      example:
+        login_count: 0
+        failed_login_count: 6
+        created_on: created_on
+        last_login: last_login
+        roles:
+        - name: name
+        - name: name
+        last_name: last_name
+        active: true
+        first_name: first_name
+        email: email
+        changed_on: changed_on
+        username: username
+      properties:
+        first_name:
+          description: The user firstname
+          type: string
+        last_name:
+          description: The user lastname
+          type: string
+        username:
+          description: The username
+          type: string
+        email:
+          description: The user's email
+          type: string
+        active:
+          description: Whether the user is active
+          nullable: true
+          readOnly: true
+          type: boolean
+        last_login:
+          description: The last user login
+          format: datetime
+          nullable: true
+          readOnly: true
+          type: string
+        login_count:
+          description: The login count
+          nullable: true
+          readOnly: true
+          type: integer
+        failed_login_count:
+          description: The number of times the login failed
+          nullable: true
+          readOnly: true
+          type: integer
+        roles:
+          description: User roles
+          items:
+            $ref: '#/components/schemas/UserCollectionItem_roles'
+          readOnly: true
+          type: array
+        created_on:
+          description: The date user was created
+          format: datetime
+          nullable: true
+          readOnly: true
+          type: string
+        changed_on:
+          description: The date user was changed
+          format: datetime
+          nullable: true
+          readOnly: true
+          type: string
+      type: object
+    User:
+      allOf:
+      - $ref: '#/components/schemas/UserCollectionItem'
+      - $ref: '#/components/schemas/User_allOf'
+      description: A user object with sensitive data
+      type: object
+    UserCollection:
+      allOf:
+      - $ref: '#/components/schemas/UserCollection_allOf'
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: Collection of users.
+      type: object
     ConnectionCollectionItem:
+      description: |
+        Connection collection item.
+        The password and extra fields are only available when retrieving a single object due to the sensitivity of this data.
       properties:
         connection_id:
+          description: The connection ID.
           type: string
         conn_type:
+          description: The connection type.
           type: string
         host:
+          description: Host of the connection.
           nullable: true
           type: string
         login:
+          description: Login of the connection.
           nullable: true
           type: string
         schema:
+          description: Schema of the connection.
           nullable: true
           type: string
         port:
+          description: Port of the connection.
           nullable: true
           type: integer
       type: object
     ConnectionCollection:
-      properties:
-        connections:
-          items:
-            $ref: '#/components/schemas/ConnectionCollectionItem'
-          type: array
+      allOf:
+      - $ref: '#/components/schemas/ConnectionCollection_allOf'
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: Collection of connections.
       type: object
     Connection:
       allOf:
       - $ref: '#/components/schemas/ConnectionCollectionItem'
       - $ref: '#/components/schemas/Connection_allOf'
+      description: Full representation of the connection.
     DAG:
+      description: DAG
       example:
         root_dag_id: root_dag_id
         is_paused: true
@@ -2640,19 +3667,25 @@ components:
         - name: name
       properties:
         dag_id:
+          description: The ID of the DAG.
           readOnly: true
           type: string
         root_dag_id:
+          description: If the DAG is SubDAG then it is the top level DAG identifier.
+            Otherwise, null.
           nullable: true
           readOnly: true
           type: string
         is_paused:
+          description: Whether the DAG is paused.
           nullable: true
           type: boolean
         is_subdag:
+          description: Whether the DAG is SubDAG.
           readOnly: true
           type: boolean
         fileloc:
+          description: The absolute path to the file.
           readOnly: true
           type: string
         file_token:
@@ -2666,12 +3699,15 @@ components:
           readOnly: true
           type: array
         description:
+          description: |
+            User-provided DAG description, which can consist of several sentences or paragraphs that describe DAG contents.
           nullable: true
           readOnly: true
           type: string
         schedule_interval:
           $ref: '#/components/schemas/ScheduleInterval'
         tags:
+          description: List of tags.
           items:
             $ref: '#/components/schemas/Tag'
           nullable: true
@@ -2679,11 +3715,10 @@ components:
           type: array
       type: object
     DAGCollection:
-      properties:
-        dags:
-          items:
-            $ref: '#/components/schemas/DAG'
-          type: array
+      allOf:
+      - $ref: '#/components/schemas/DAGCollection_allOf'
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: Collection of DAGs.
       type: object
     DAGRun:
       example:
@@ -2698,9 +3733,14 @@ components:
         dag_run_id:
           description: |
             Run ID.
-            The value of this field can be set only when creating the object. If you try to modify the field of an existing object, the request fails with an BAD_REQUEST error.
+
+            The value of this field can be set only when creating the object. If you try to modify the
+            field of an existing object, the request fails with an BAD_REQUEST error.
+
             If not provided, a value will be generated based on execution_date.
+
             If the specified dag_run_id is in use, the creation request fails with an ALREADY_EXISTS error.
+
             This together with DAG_ID are a unique key.
           nullable: true
           type: string
@@ -2716,7 +3756,7 @@ components:
           type: string
         start_date:
           description: |
-            The start time. The time when DAG Run was actually created..
+            The start time. The time when DAG run was actually created.
           format: date-time
           readOnly: true
           type: string
@@ -2734,72 +3774,77 @@ components:
         conf:
           description: |
             JSON object describing additional configuration parameters.
-            The value of this field can be set only when creating the object. If you try to modify the field of an existing object, the request fails with an BAD_REQUEST error.
+
+            The value of this field can be set only when creating the object. If you try to modify the
+            field of an existing object, the request fails with an BAD_REQUEST error.
           type: object
       required:
       - dag_id
       type: object
     DAGRunCollection:
-      properties:
-        dag_runs:
-          items:
-            $ref: '#/components/schemas/DAGRun'
-          type: array
+      allOf:
+      - $ref: '#/components/schemas/DAGRunCollection_allOf'
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: Collection of DAG runs.
       type: object
     EventLog:
+      description: Log of user operations via CLI or Web UI.
       example:
         owner: owner
-        execution_date: execution_date
+        execution_date: 2000-01-23T04:56:07.000+00:00
         extra: extra
         event_log_id: 0
         task_id: task_id
         dag_id: dag_id
         event: event
-        when: when
+        when: 2000-01-23T04:56:07.000+00:00
       properties:
         event_log_id:
+          description: The event log ID
           readOnly: true
           type: integer
         when:
+          description: The time when these events happened.
+          format: date-time
           readOnly: true
           type: string
         dag_id:
+          description: The DAG ID
+          nullable: true
           readOnly: true
           type: string
         task_id:
+          description: The DAG ID
+          nullable: true
           readOnly: true
           type: string
         event:
+          description: A key describing the type of event.
           readOnly: true
           type: string
         execution_date:
+          description: |
+            When the event was dispatched for an object having execution_date, the value of this field.
+          format: date-time
+          nullable: true
           readOnly: true
           type: string
         owner:
+          description: Name of the user who triggered these events a.
           readOnly: true
           type: string
         extra:
+          description: |
+            Other information that was not included in the other fields, e.g. the complete CLI command.
           nullable: true
           readOnly: true
           type: string
       type: object
     EventLogCollection:
-      properties:
-        event_logs:
-          items:
-            $ref: '#/components/schemas/EventLog'
-          type: array
-      type: object
-    HealthInfo:
-      example:
-        scheduler:
-          latest_scheduler_heartbeat: latest_scheduler_heartbeat
-        metadatabase: {}
-      properties:
-        metadatabase:
-          $ref: '#/components/schemas/MetadatabaseStatus'
-        scheduler:
-          $ref: '#/components/schemas/SchedulerStatus'
+      allOf:
+      - $ref: '#/components/schemas/EventLogCollection_allOf'
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: Collection of event logs.
       type: object
     ImportError:
       example:
@@ -2809,34 +3854,64 @@ components:
         timestamp: timestamp
       properties:
         import_error_id:
+          description: The import error ID.
           readOnly: true
           type: integer
         timestamp:
+          description: The time when this error was created.
           format: datetime
           readOnly: true
           type: string
         filename:
+          description: The filename
           readOnly: true
           type: string
         stack_trace:
+          description: The full stackstrace..
           readOnly: true
           type: string
       type: object
     ImportErrorCollection:
+      allOf:
+      - $ref: '#/components/schemas/ImportErrorCollection_allOf'
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: Collection of import errors.
+      type: object
+    HealthInfo:
+      description: Instance status information.
+      example:
+        scheduler:
+          latest_scheduler_heartbeat: latest_scheduler_heartbeat
+        metadatabase: {}
       properties:
-        import_errors:
-          items:
-            $ref: '#/components/schemas/ImportError'
-          type: array
+        metadatabase:
+          $ref: '#/components/schemas/MetadatabaseStatus'
+        scheduler:
+          $ref: '#/components/schemas/SchedulerStatus'
       type: object
     MetadatabaseStatus:
-      description: Returns the status of the metadatabase
+      description: The status of the metadatabase.
       example: {}
       properties:
         status:
           $ref: '#/components/schemas/HealthStatus'
       type: object
+    SchedulerStatus:
+      description: The status and the latest scheduler heartbeat.
+      example:
+        latest_scheduler_heartbeat: latest_scheduler_heartbeat
+      properties:
+        status:
+          $ref: '#/components/schemas/HealthStatus'
+        latest_scheduler_heartbeat:
+          description: The time the scheduler last do a heartbeat.
+          format: datetime
+          nullable: true
+          readOnly: true
+          type: string
+      type: object
     Pool:
+      description: The pool
       example:
         queued_slots: 5
         open_slots: 5
@@ -2846,41 +3921,54 @@ components:
         occupied_slots: 6
       properties:
         name:
+          description: The name of pool.
           type: string
         slots:
+          description: |
+            The maximum number of slots that can be assigned to tasks. One job may occupy one or more slots.
           type: integer
         occupied_slots:
+          description: The number of slots used by running/queued tasks at the moment.
           readOnly: true
           type: integer
         used_slots:
+          description: The number of slots used by running tasks at the moment.
           readOnly: true
           type: integer
         queued_slots:
+          description: The number of slots used by queued tasks at the moment.
           readOnly: true
           type: integer
         open_slots:
+          description: The number of free slots at the moment.
           readOnly: true
           type: integer
       type: object
     PoolCollection:
-      properties:
-        pools:
-          items:
-            $ref: '#/components/schemas/Pool'
-          type: array
+      allOf:
+      - $ref: '#/components/schemas/PoolCollection_allOf'
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: Collection of pools.
       type: object
-    SchedulerStatus:
-      description: Returns the status and the latest scheduler heartbeat
-      example:
-        latest_scheduler_heartbeat: latest_scheduler_heartbeat
+    Provider:
+      description: The provider
       properties:
-        status:
-          $ref: '#/components/schemas/HealthStatus'
-        latest_scheduler_heartbeat:
-          format: datetime
-          nullable: true
-          readOnly: true
+        package_name:
+          description: The package name of the provider.
+          type: string
+        description:
+          description: The description of the provider.
           type: string
+        version:
+          description: The version of the provider.
+          type: string
+      type: object
+    ProviderCollection:
+      properties:
+        providers:
+          items:
+            $ref: '#/components/schemas/Provider'
+          type: array
       type: object
     SLAMiss:
       example:
@@ -2893,9 +3981,11 @@ components:
         timestamp: timestamp
       properties:
         task_id:
+          description: The task ID.
           readOnly: true
           type: string
         dag_id:
+          description: The DAG ID.
           type: string
         execution_date:
           format: datetime
@@ -2906,35 +3996,11 @@ components:
           format: datetime
           type: string
         description:
+          nullable: true
           type: string
         notification_sent:
           type: boolean
       type: object
-    SLAMissCollection:
-      properties:
-        sla_misses:
-          items:
-            $ref: '#/components/schemas/SLAMiss'
-          type: array
-      type: object
-    TaskFail:
-      properties:
-        task_id:
-          type: string
-        dag_id:
-          type: string
-        execution_date:
-          format: datetime
-          type: string
-        start_date:
-          format: datetime
-          type: string
-        end_date:
-          format: datetime
-          type: string
-        duration:
-          type: integer
-      type: object
     TaskInstance:
       example:
         end_date: end_date
@@ -2973,11 +4039,14 @@ components:
           type: string
         start_date:
           format: datetime
+          nullable: true
           type: string
         end_date:
           format: datetime
+          nullable: true
           type: string
         duration:
+          nullable: true
           type: number
         state:
           $ref: '#/components/schemas/TaskState'
@@ -3000,8 +4069,10 @@ components:
         operator:
           type: string
         queued_when:
+          nullable: true
           type: string
         pid:
+          nullable: true
           type: integer
         executor_config:
           type: string
@@ -3009,11 +4080,10 @@ components:
           $ref: '#/components/schemas/SLAMiss'
       type: object
     TaskInstanceCollection:
-      properties:
-        task_instances:
-          items:
-            $ref: '#/components/schemas/TaskInstance'
-          type: array
+      allOf:
+      - $ref: '#/components/schemas/TaskInstanceCollection_allOf'
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: Collection of task instances.
       type: object
     TaskInstanceReference:
       example:
@@ -3023,9 +4093,11 @@ components:
         dag_id: dag_id
       properties:
         task_id:
+          description: The task ID.
           readOnly: true
           type: string
         dag_id:
+          description: The DAG ID.
           readOnly: true
           type: string
         execution_date:
@@ -3033,6 +4105,7 @@ components:
           readOnly: true
           type: string
         dag_run_id:
+          description: The DAG run ID.
           readOnly: true
           type: string
       type: object
@@ -3054,22 +4127,29 @@ components:
           type: array
       type: object
     VariableCollectionItem:
+      description: |-
+        XCom entry collection item.
+        The value field are only available when retrieving a single object due to the sensitivity of this data.
       properties:
         key:
           type: string
       type: object
     VariableCollection:
-      properties:
-        variables:
-          items:
-            $ref: '#/components/schemas/VariableCollectionItem'
-          type: array
+      allOf:
+      - $ref: '#/components/schemas/VariableCollection_allOf'
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: Collection of variables.
       type: object
     Variable:
       allOf:
       - $ref: '#/components/schemas/VariableCollectionItem'
       - $ref: '#/components/schemas/Variable_allOf'
+      description: Full representation of Variable
     XComCollectionItem:
+      description: |
+        XCom entry collection item.
+
+        The value field is only available when reading a single object due to the size of the value.
       properties:
         key:
           type: string
@@ -3085,21 +4165,27 @@ components:
           type: string
       type: object
     XComCollection:
-      properties:
-        xcom_entries:
-          items:
-            $ref: '#/components/schemas/XComCollectionItem'
-          type: array
+      allOf:
+      - $ref: '#/components/schemas/XComCollection_allOf'
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: Collection of XCom entries.
       type: object
     XCom:
       allOf:
       - $ref: '#/components/schemas/XComCollectionItem'
-      - $ref: '#/components/schemas/Variable_allOf'
+      - $ref: '#/components/schemas/XCom_allOf'
+      description: Full representations of XCom entry.
     DAGDetail:
       allOf:
       - $ref: '#/components/schemas/DAG'
       - $ref: '#/components/schemas/DAGDetail_allOf'
+      description: |
+        DAG details.
+
+        For details see:
+        (airflow.models.DAG)[https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/models/index.html#airflow.models.DAG]
     ExtraLink:
+      description: Additional links containing additional information about the task.
       example:
         name: name
         href: href
@@ -3117,6 +4203,7 @@ components:
           type: string
       type: object
     ExtraLinkCollection:
+      description: The collection of extra links.
       example:
         extra_links:
         - name: name
@@ -3136,6 +4223,9 @@ components:
           type: array
       type: object
     Task:
+      description: |
+        For details see:
+        (airflow.models.BaseOperator)[https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/models/index.html#airflow.models.BaseOperator]
       example:
         owner: owner
         end_date: 2000-01-23T04:56:07.000+00:00
@@ -3247,9 +4337,11 @@ components:
         weight_rule:
           $ref: '#/components/schemas/WeightRule'
         ui_color:
+          description: Color in hexadecimal notation.
           pattern: ^#[a-fA-F0-9]{3,6}$
           type: string
         ui_fgcolor:
+          description: Color in hexadecimal notation.
           pattern: ^#[a-fA-F0-9]{3,6}$
           type: string
         template_fields:
@@ -3266,6 +4358,7 @@ components:
           type: array
       type: object
     TaskCollection:
+      description: Collection of tasks.
       example:
         tasks:
         - owner: owner
@@ -3382,7 +4475,143 @@ components:
             $ref: '#/components/schemas/Task'
           type: array
       type: object
+    PluginCollectionItem:
+      description: Plugin Item
+      properties:
+        number:
+          description: The plugin number
+          type: string
+        name:
+          description: The name of the plugin
+          type: string
+        hooks:
+          description: The plugin hooks
+          items:
+            nullable: true
+            type: string
+          type: array
+        executors:
+          description: The plugin executors
+          items:
+            nullable: true
+            type: string
+          type: array
+        macros:
+          description: The plugin macros
+          items:
+            nullable: true
+            type: object
+          type: array
+        flask_blueprints:
+          description: The flask blueprints
+          items:
+            nullable: true
+            type: object
+          type: array
+        appbuilder_views:
+          description: The appuilder views
+          items:
+            nullable: true
+            type: object
+          type: array
+        appbuilder_menu_items:
+          description: The Flask Appbuilder menu items
+          items:
+            nullable: true
+            type: object
+          type: array
+        global_operator_extra_links:
+          description: The global operator extra links
+          items:
+            nullable: true
+            type: object
+          type: array
+        operator_extra_links:
+          description: Operator extra links
+          items:
+            nullable: true
+            type: object
+          type: array
+        source:
+          description: The plugin source
+          nullable: true
+          type: string
+      type: object
+    PluginCollection:
+      allOf:
+      - $ref: '#/components/schemas/PluginCollection_allOf'
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: Plugin Collection
+      type: object
+    Role:
+      description: Role item
+      example:
+        name: name
+        actions:
+        - resource:
+            name: name
+          action:
+            name: name
+        - resource:
+            name: name
+          action:
+            name: name
+      properties:
+        name:
+          description: The name of the role
+          type: string
+        actions:
+          items:
+            $ref: '#/components/schemas/ActionResource'
+          type: array
+      type: object
+    RoleCollection:
+      allOf:
+      - $ref: '#/components/schemas/RoleCollection_allOf'
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: Role Collections
+      type: object
+    Action:
+      description: Action Item
+      example:
+        name: name
+      properties:
+        name:
+          description: The name of the permission "action"
+          nullable: false
+          type: string
+      type: object
+    ActionCollection:
+      allOf:
+      - $ref: '#/components/schemas/ActionCollection_allOf'
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: Action Collection
+      type: object
+    Resource:
+      description: A "resource" on which permissions are granted.
+      example:
+        name: name
+      properties:
+        name:
+          description: The name of the resource
+          nullable: false
+          type: string
+      type: object
+    ActionResource:
+      description: The Action-Resource item
+      example:
+        resource:
+          name: name
+        action:
+          name: name
+      properties:
+        action:
+          $ref: '#/components/schemas/Action'
+        resource:
+          $ref: '#/components/schemas/Resource'
+      type: object
     ConfigOption:
+      description: The option of configuration.
       example:
         value: value
         key: key
@@ -3395,6 +4624,7 @@ components:
           type: string
       type: object
     ConfigSection:
+      description: The section of configuration.
       example:
         name: name
         options:
@@ -3412,6 +4642,7 @@ components:
           type: array
       type: object
     Config:
+      description: The configuration.
       example:
         sections:
         - name: name
@@ -3449,19 +4680,29 @@ components:
     ClearTaskInstance:
       example:
         end_date: end_date
-        only_running: only_running
+        only_running: false
         reset_dag_runs: true
         include_parentdag: true
         include_subdags: true
         dry_run: true
-        only_failed: only_failed
+        only_failed: true
+        task_ids:
+        - task_ids
+        - task_ids
         start_date: start_date
       properties:
         dry_run:
           default: true
           description: |
-            If set, don't actually run this operation. The response will contain a list of task instances planned to be cleaned, but not modified in any way.
+            If set, don't actually run this operation. The response will contain a list of task instances
+            planned to be cleaned, but not modified in any way.
           type: boolean
+        task_ids:
+          description: A list of task ids to clear.
+          items:
+            type: string
+          minItems: 1
+          type: array
         start_date:
           description: The minimum execution date to clear.
           format: datetime
@@ -3471,13 +4712,13 @@ components:
           format: datetime
           type: string
         only_failed:
+          default: true
           description: Only clear failed tasks.
-          format: datetime
-          type: string
+          type: boolean
         only_running:
+          default: false
           description: Only clear running tasks.
-          format: datetime
-          type: string
+          type: boolean
         include_subdags:
           description: Clear tasks in subdags and clear external tasks indicated by
             ExternalTaskMarker.
@@ -3486,8 +4727,51 @@ components:
           description: Clear tasks in the parent dag of the subdag.
           type: boolean
         reset_dag_runs:
-          description: Set state of DAG Runs to RUNNING.
+          description: Set state of DAG runs to RUNNING.
+          type: boolean
+      type: object
+    UpdateTaskInstancesState:
+      example:
+        include_future: true
+        include_past: true
+        execution_date: execution_date
+        include_upstream: true
+        new_state: success
+        dry_run: true
+        task_id: task_id
+        include_downstream: true
+      properties:
+        dry_run:
+          default: true
+          description: |
+            If set, don't actually run this operation. The response will contain a list of task instances
+            planned to be affected, but won't be modified in any way.
+          type: boolean
+        task_id:
+          description: The task ID.
+          type: string
+        execution_date:
+          description: The execution date.
+          format: datetime
+          type: string
+        include_upstream:
+          description: If set to true, upstream tasks are also affected.
+          type: boolean
+        include_downstream:
+          description: If set to true, downstream tasks are also affected.
+          type: boolean
+        include_future:
+          description: If set to True, also tasks from future DAG Runs are affected.
+          type: boolean
+        include_past:
+          description: If set to True, also tasks from past DAG Runs are affected.
           type: boolean
+        new_state:
+          description: Expected new state.
+          enum:
+          - success
+          - failed
+          type: string
       type: object
     ListDagRunsForm:
       example:
@@ -3496,6 +4780,7 @@ components:
         execution_date_gte: 2000-01-23T04:56:07.000+00:00
         page_limit: 1
         execution_date_lte: 2000-01-23T04:56:07.000+00:00
+        order_by: order_by
         page_offset: 0
         end_date_gte: 2000-01-23T04:56:07.000+00:00
         start_date_lte: 2000-01-23T04:56:07.000+00:00
@@ -3503,6 +4788,11 @@ components:
         - dag_ids
         - dag_ids
       properties:
+        order_by:
+          description: |
+            The name of the field to order the results by. Prefix a field name
+            with `-` to reverse the sort order.
+          type: string
         page_offset:
           description: The number of items to skip before starting to collect the
             result set.
@@ -3523,36 +4813,42 @@ components:
         execution_date_gte:
           description: |
             Returns objects greater or equal to the specified date.
+
             This can be combined with execution_date_lte key to receive only the selected period.
           format: date-time
           type: string
         execution_date_lte:
           description: |
             Returns objects less than or equal to the specified date.
+
             This can be combined with execution_date_gte key to receive only the selected period.
           format: date-time
           type: string
         start_date_gte:
           description: |
             Returns objects greater or equal the specified date.
+
             This can be combined with start_date_lte key to receive only the selected period.
           format: date-time
           type: string
         start_date_lte:
           description: |
             Returns objects less or equal the specified date.
+
             This can be combined with start_date_gte parameter to receive only the selected period
           format: date-time
           type: string
         end_date_gte:
           description: |
             Returns objects greater or equal the specified date.
+
             This can be combined with end_date_lte parameter to receive only the selected period.
           format: date-time
           type: string
         end_date_lte:
           description: |
             Returns objects less than or equal to the specified date.
+
             This can be combined with end_date_gte parameter to receive only the selected period.
           format: date-time
           type: string
@@ -3563,22 +4859,22 @@ components:
         end_date_lte: 2000-01-23T04:56:07.000+00:00
         execution_date_gte: 2000-01-23T04:56:07.000+00:00
         duration_gte: 0.8008281904610115
-        State:
-        - State
-        - State
         execution_date_lte: 2000-01-23T04:56:07.000+00:00
+        pool:
+        - pool
+        - pool
         duration_lte: 6.027456183070403
-        Pool:
-        - Pool
-        - Pool
         end_date_gte: 2000-01-23T04:56:07.000+00:00
+        state:
+        - state
+        - state
         start_date_lte: 2000-01-23T04:56:07.000+00:00
-        Queue:
-        - Queue
-        - Queue
         dag_ids:
         - dag_ids
         - dag_ids
+        queue:
+        - queue
+        - queue
       properties:
         dag_ids:
           description: |-
@@ -3590,62 +4886,70 @@ components:
         execution_date_gte:
           description: |
             Returns objects greater or equal to the specified date.
+
             This can be combined with execution_date_lte parameter to receive only the selected period.
           format: date-time
           type: string
         execution_date_lte:
           description: |
             Returns objects less than or equal to the specified date.
+
             This can be combined with execution_date_gte parameter to receive only the selected period.
           format: date-time
           type: string
         start_date_gte:
           description: |
             Returns objects greater or equal the specified date.
-            This can be combined with startd_ate_lte parameter to receive only the selected period.
+
+            This can be combined with start_date_lte parameter to receive only the selected period.
           format: date-time
           type: string
         start_date_lte:
           description: |
             Returns objects less or equal the specified date.
+
             This can be combined with start_date_gte parameter to receive only the selected period.
           format: date-time
           type: string
         end_date_gte:
           description: |
             Returns objects greater or equal the specified date.
+
             This can be combined with start_date_lte parameter to receive only the selected period.
           format: date-time
           type: string
         end_date_lte:
           description: |
             Returns objects less than or equal to the specified date.
+
             This can be combined with start_date_gte parameter to receive only the selected period.
           format: date-time
           type: string
         duration_gte:
           description: |
             Returns objects greater than or equal to the specified values.
+
             This can be combined with duration_lte parameter to receive only the selected period.
           type: number
         duration_lte:
           description: |
             Returns objects less than or equal to the specified values.
+
             This can be combined with duration_gte parameter to receive only the selected range.
           type: number
-        State:
+        state:
           description: The value can be repeated to retrieve multiple matching values
             (OR condition).
           items:
             type: string
           type: array
-        Pool:
+        pool:
           description: The value can be repeated to retrieve multiple matching values
             (OR condition).
           items:
             type: string
           type: array
-        Queue:
+        queue:
           description: The value can be repeated to retrieve multiple matching values
             (OR condition).
           items:
@@ -3653,13 +4957,18 @@ components:
           type: array
       type: object
     ScheduleInterval:
+      description: |
+        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.
       discriminator:
         propertyName: __type
       oneOf:
       - $ref: '#/components/schemas/TimeDelta'
       - $ref: '#/components/schemas/RelativeDelta'
       - $ref: '#/components/schemas/CronExpression'
+      readOnly: true
     TimeDelta:
+      description: Time delta
       example:
         seconds: 5
         __type: __type
@@ -3681,6 +4990,7 @@ components:
       - seconds
       type: object
     RelativeDelta:
+      description: Relative delta
       properties:
         __type:
           type: string
@@ -3733,6 +5043,8 @@ components:
       - years
       type: object
     CronExpression:
+      description: Cron expression
+      nullable: true
       properties:
         __type:
           type: string
@@ -3745,6 +5057,7 @@ components:
     Timezone:
       type: string
     Tag:
+      description: Tag
       example:
         name: name
       properties:
@@ -3752,9 +5065,11 @@ components:
           type: string
       type: object
     Color:
+      description: Color in hexadecimal notation.
       pattern: ^#[a-fA-F0-9]{3,6}$
       type: string
     ClassReference:
+      description: Class reference
       example:
         class_name: class_name
         module_path: module_path
@@ -3768,11 +5083,13 @@ components:
       type: object
     Error:
       description: |
-        [RFC7807](https://tools.ietf.org/html/rfc7807) compliant response
+        [RFC7807](https://tools.ietf.org/html/rfc7807) compliant response.
       properties:
         type:
           description: |
-            A URI reference [RFC3986] that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type.
+            A URI reference [RFC3986] that identifies the problem type. This specification
+            encourages that, when dereferenced, it provide human-readable documentation for
+            the problem type.
           type: string
         title:
           description: A short, human-readable summary of the problem type.
@@ -3787,7 +5104,8 @@ components:
           type: string
         instance:
           description: |
-            A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
+            A URI reference that identifies the specific occurrence of the problem. It may or may
+            not yield further information if dereferenced.
           type: string
       required:
       - status
@@ -3795,12 +5113,14 @@ components:
       - type
       type: object
     CollectionInfo:
+      description: Metadata about collection.
       properties:
         total_entries:
-          description: Total count for all collection items.
+          description: Count of objects in the current result set.
           type: integer
       type: object
     TaskState:
+      description: Task state.
       enum:
       - success
       - running
@@ -3812,14 +5132,17 @@ components:
       - queued
       - none
       - scheduled
+      - removed
       type: string
     DagState:
+      description: DAG State.
       enum:
       - success
       - running
       - failed
       type: string
     TriggerRule:
+      description: Trigger rule.
       enum:
       - all_success
       - all_failed
@@ -3832,12 +5155,14 @@ components:
       - dummy
       type: string
     WeightRule:
+      description: Weight rule.
       enum:
       - downstream
       - upstream
       - absolute
       type: string
     HealthStatus:
+      description: Health status
       enum:
       - healthy
       - unhealthy
@@ -3851,25 +5176,122 @@ components:
           type: string
         content:
           type: string
+      type: object
     inline_response_200_1:
       example:
         content: content
       properties:
         content:
           type: string
+      type: object
+    UserCollectionItem_roles:
+      example:
+        name: name
+      nullable: true
+      properties:
+        name:
+          type: string
+      type: object
+    User_allOf:
+      properties:
+        password:
+          type: string
+          writeOnly: true
+      type: object
+    UserCollection_allOf:
+      properties:
+        users:
+          items:
+            $ref: '#/components/schemas/UserCollectionItem'
+          type: array
+      type: object
+    ConnectionCollection_allOf:
+      properties:
+        connections:
+          items:
+            $ref: '#/components/schemas/ConnectionCollectionItem'
+          type: array
+      type: object
     Connection_allOf:
       properties:
         password:
+          description: Paasword of the connection.
           format: password
           type: string
           writeOnly: true
         extra:
+          description: Other values that cannot be put into another field, e.g. RSA
+            keys.
           nullable: true
           type: string
+      type: object
+    DAGCollection_allOf:
+      properties:
+        dags:
+          items:
+            $ref: '#/components/schemas/DAG'
+          type: array
+      type: object
+    DAGRunCollection_allOf:
+      properties:
+        dag_runs:
+          items:
+            $ref: '#/components/schemas/DAGRun'
+          type: array
+      type: object
+    EventLogCollection_allOf:
+      properties:
+        event_logs:
+          items:
+            $ref: '#/components/schemas/EventLog'
+          type: array
+      type: object
+    ImportErrorCollection_allOf:
+      properties:
+        import_errors:
+          items:
+            $ref: '#/components/schemas/ImportError'
+          type: array
+      type: object
+    PoolCollection_allOf:
+      properties:
+        pools:
+          items:
+            $ref: '#/components/schemas/Pool'
+          type: array
+      type: object
+    TaskInstanceCollection_allOf:
+      properties:
+        task_instances:
+          items:
+            $ref: '#/components/schemas/TaskInstance'
+          type: array
+      type: object
+    VariableCollection_allOf:
+      properties:
+        variables:
+          items:
+            $ref: '#/components/schemas/VariableCollectionItem'
+          type: array
+      type: object
     Variable_allOf:
       properties:
         value:
           type: string
+      type: object
+    XComCollection_allOf:
+      properties:
+        xcom_entries:
+          items:
+            $ref: '#/components/schemas/XComCollectionItem'
+          type: array
+      type: object
+    XCom_allOf:
+      properties:
+        value:
+          description: The value
+          type: string
+      type: object
     DAGDetail_allOf:
       properties:
         timezone:
@@ -3885,16 +5307,22 @@ components:
           type: number
         start_date:
           format: date-time
+          nullable: true
           readOnly: true
           type: string
         dag_run_timeout:
           $ref: '#/components/schemas/TimeDelta'
         doc_md:
+          nullable: true
           readOnly: true
           type: string
         default_view:
           readOnly: true
           type: string
+        params:
+          readOnly: true
+          type: object
+      type: object
     Task_extra_links:
       example:
         class_ref:
@@ -3903,3 +5331,35 @@ components:
       properties:
         class_ref:
           $ref: '#/components/schemas/ClassReference'
+      type: object
+    PluginCollection_allOf:
+      properties:
+        plugins:
+          items:
+            $ref: '#/components/schemas/PluginCollectionItem'
+          type: array
+      type: object
+    RoleCollection_allOf:
+      properties:
+        roles:
+          items:
+            $ref: '#/components/schemas/Role'
+          type: array
+      type: object
+    ActionCollection_allOf:
+      properties:
+        actions:
+          items:
+            $ref: '#/components/schemas/Action'
+          type: array
+      type: object
+  securitySchemes:
+    Basic:
+      scheme: basic
+      type: http
+    GoogleOpenId:
+      openIdConnectUrl: https://accounts.google.com/.well-known/openid-configuration
+      type: openIdConnect
+    Kerberos:
+      scheme: negotiate
+      type: http
diff --git a/airflow/api_config.go b/airflow/api_config.go
index 429abd9..2657970 100644
--- a/airflow/api_config.go
+++ b/airflow/api_config.go
@@ -18,16 +18,18 @@
 /*
  * Airflow API (Stable)
  *
- * Apache Airflow management API.
+ * # 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 the [...]
  *
  * API version: 1.0.0
  * Contact: dev@airflow.apache.org
- * Generated by: OpenAPI Generator (https://openapi-generator.tech)
  */
 
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
 package airflow
 
 import (
+	"bytes"
 	_context "context"
 	_ioutil "io/ioutil"
 	_nethttp "net/http"
@@ -42,12 +44,33 @@ var (
 // ConfigApiService ConfigApi service
 type ConfigApiService service
 
+type ApiGetConfigRequest struct {
+	ctx _context.Context
+	ApiService *ConfigApiService
+}
+
+
+func (r ApiGetConfigRequest) Execute() (Config, *_nethttp.Response, error) {
+	return r.ApiService.GetConfigExecute(r)
+}
+
 /*
-GetConfig Get current configuration
+ * GetConfig Get current configuration
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
-@return Config
-*/
-func (a *ConfigApiService) GetConfig(ctx _context.Context) (Config, *_nethttp.Response, error) {
+ * @return ApiGetConfigRequest
+ */
+func (a *ConfigApiService) GetConfig(ctx _context.Context) ApiGetConfigRequest {
+	return ApiGetConfigRequest{
+		ApiService: a,
+		ctx: ctx,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return Config
+ */
+func (a *ConfigApiService) GetConfigExecute(r ApiGetConfigRequest) (Config, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodGet
 		localVarPostBody     interface{}
@@ -57,8 +80,13 @@ func (a *ConfigApiService) GetConfig(ctx _context.Context) (Config, *_nethttp.Re
 		localVarReturnValue  Config
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/config"
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ConfigApiService.GetConfig")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/config"
+
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
 	localVarFormParams := _neturl.Values{}
@@ -80,18 +108,19 @@ func (a *ConfigApiService) GetConfig(ctx _context.Context) (Config, *_nethttp.Re
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
diff --git a/airflow/api_connection.go b/airflow/api_connection.go
index 77b0450..eb6c347 100644
--- a/airflow/api_connection.go
+++ b/airflow/api_connection.go
@@ -18,22 +18,23 @@
 /*
  * Airflow API (Stable)
  *
- * Apache Airflow management API.
+ * # 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 the [...]
  *
  * API version: 1.0.0
  * Contact: dev@airflow.apache.org
- * Generated by: OpenAPI Generator (https://openapi-generator.tech)
  */
 
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
 package airflow
 
 import (
+	"bytes"
 	_context "context"
 	_ioutil "io/ioutil"
 	_nethttp "net/http"
 	_neturl "net/url"
 	"strings"
-	"github.com/antihax/optional"
 )
 
 // Linger please
@@ -44,12 +45,35 @@ var (
 // ConnectionApiService ConnectionApi service
 type ConnectionApiService service
 
+type ApiDeleteConnectionRequest struct {
+	ctx _context.Context
+	ApiService *ConnectionApiService
+	connectionId string
+}
+
+
+func (r ApiDeleteConnectionRequest) Execute() (*_nethttp.Response, error) {
+	return r.ApiService.DeleteConnectionExecute(r)
+}
+
 /*
-DeleteConnection Delete a connection entry
+ * DeleteConnection Delete a connection
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- * @param connectionId The Connection ID.
-*/
-func (a *ConnectionApiService) DeleteConnection(ctx _context.Context, connectionId string) (*_nethttp.Response, error) {
+ * @param connectionId The connection ID.
+ * @return ApiDeleteConnectionRequest
+ */
+func (a *ConnectionApiService) DeleteConnection(ctx _context.Context, connectionId string) ApiDeleteConnectionRequest {
+	return ApiDeleteConnectionRequest{
+		ApiService: a,
+		ctx: ctx,
+		connectionId: connectionId,
+	}
+}
+
+/*
+ * Execute executes the request
+ */
+func (a *ConnectionApiService) DeleteConnectionExecute(r ApiDeleteConnectionRequest) (*_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodDelete
 		localVarPostBody     interface{}
@@ -58,9 +82,13 @@ func (a *ConnectionApiService) DeleteConnection(ctx _context.Context, connection
 		localVarFileBytes    []byte
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/connections/{connection_id}"
-	localVarPath = strings.Replace(localVarPath, "{"+"connection_id"+"}", _neturl.QueryEscape(parameterToString(connectionId, "")) , -1)
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ConnectionApiService.DeleteConnection")
+	if err != nil {
+		return nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/connections/{connection_id}"
+	localVarPath = strings.Replace(localVarPath, "{"+"connection_id"+"}", _neturl.PathEscape(parameterToString(r.connectionId, "")), -1)
 
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
@@ -83,18 +111,19 @@ func (a *ConnectionApiService) DeleteConnection(ctx _context.Context, connection
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarHTTPResponse, err
 	}
@@ -132,6 +161,16 @@ func (a *ConnectionApiService) DeleteConnection(ctx _context.Context, connection
 				return localVarHTTPResponse, newErr
 			}
 			newErr.model = v
+			return localVarHTTPResponse, newErr
+		}
+		if localVarHTTPResponse.StatusCode == 404 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarHTTPResponse, newErr
+			}
+			newErr.model = v
 		}
 		return localVarHTTPResponse, newErr
 	}
@@ -139,13 +178,36 @@ func (a *ConnectionApiService) DeleteConnection(ctx _context.Context, connection
 	return localVarHTTPResponse, nil
 }
 
+type ApiGetConnectionRequest struct {
+	ctx _context.Context
+	ApiService *ConnectionApiService
+	connectionId string
+}
+
+
+func (r ApiGetConnectionRequest) Execute() (Connection, *_nethttp.Response, error) {
+	return r.ApiService.GetConnectionExecute(r)
+}
+
 /*
-GetConnection Get a connection entry
+ * GetConnection Get a connection
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- * @param connectionId The Connection ID.
-@return Connection
-*/
-func (a *ConnectionApiService) GetConnection(ctx _context.Context, connectionId string) (Connection, *_nethttp.Response, error) {
+ * @param connectionId The connection ID.
+ * @return ApiGetConnectionRequest
+ */
+func (a *ConnectionApiService) GetConnection(ctx _context.Context, connectionId string) ApiGetConnectionRequest {
+	return ApiGetConnectionRequest{
+		ApiService: a,
+		ctx: ctx,
+		connectionId: connectionId,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return Connection
+ */
+func (a *ConnectionApiService) GetConnectionExecute(r ApiGetConnectionRequest) (Connection, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodGet
 		localVarPostBody     interface{}
@@ -155,9 +217,13 @@ func (a *ConnectionApiService) GetConnection(ctx _context.Context, connectionId
 		localVarReturnValue  Connection
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/connections/{connection_id}"
-	localVarPath = strings.Replace(localVarPath, "{"+"connection_id"+"}", _neturl.QueryEscape(parameterToString(connectionId, "")) , -1)
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ConnectionApiService.GetConnection")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/connections/{connection_id}"
+	localVarPath = strings.Replace(localVarPath, "{"+"connection_id"+"}", _neturl.PathEscape(parameterToString(r.connectionId, "")), -1)
 
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
@@ -180,18 +246,19 @@ func (a *ConnectionApiService) GetConnection(ctx _context.Context, connectionId
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
@@ -245,21 +312,48 @@ func (a *ConnectionApiService) GetConnection(ctx _context.Context, connectionId
 	return localVarReturnValue, localVarHTTPResponse, nil
 }
 
-// GetConnectionsOpts Optional parameters for the method 'GetConnections'
-type GetConnectionsOpts struct {
-    Limit optional.Int32
-    Offset optional.Int32
+type ApiGetConnectionsRequest struct {
+	ctx _context.Context
+	ApiService *ConnectionApiService
+	limit *int32
+	offset *int32
+	orderBy *string
+}
+
+func (r ApiGetConnectionsRequest) Limit(limit int32) ApiGetConnectionsRequest {
+	r.limit = &limit
+	return r
+}
+func (r ApiGetConnectionsRequest) Offset(offset int32) ApiGetConnectionsRequest {
+	r.offset = &offset
+	return r
+}
+func (r ApiGetConnectionsRequest) OrderBy(orderBy string) ApiGetConnectionsRequest {
+	r.orderBy = &orderBy
+	return r
+}
+
+func (r ApiGetConnectionsRequest) Execute() (ConnectionCollection, *_nethttp.Response, error) {
+	return r.ApiService.GetConnectionsExecute(r)
 }
 
 /*
-GetConnections Get all connection entries
+ * GetConnections List connections
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- * @param optional nil or *GetConnectionsOpts - Optional Parameters:
- * @param "Limit" (optional.Int32) -  The numbers of items to return.
- * @param "Offset" (optional.Int32) -  The number of items to skip before starting to collect the result set.
-@return ConnectionCollection
-*/
-func (a *ConnectionApiService) GetConnections(ctx _context.Context, localVarOptionals *GetConnectionsOpts) (ConnectionCollection, *_nethttp.Response, error) {
+ * @return ApiGetConnectionsRequest
+ */
+func (a *ConnectionApiService) GetConnections(ctx _context.Context) ApiGetConnectionsRequest {
+	return ApiGetConnectionsRequest{
+		ApiService: a,
+		ctx: ctx,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return ConnectionCollection
+ */
+func (a *ConnectionApiService) GetConnectionsExecute(r ApiGetConnectionsRequest) (ConnectionCollection, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodGet
 		localVarPostBody     interface{}
@@ -269,17 +363,25 @@ func (a *ConnectionApiService) GetConnections(ctx _context.Context, localVarOpti
 		localVarReturnValue  ConnectionCollection
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/connections"
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ConnectionApiService.GetConnections")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/connections"
+
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
 	localVarFormParams := _neturl.Values{}
 
-	if localVarOptionals != nil && localVarOptionals.Limit.IsSet() {
-		localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), ""))
+	if r.limit != nil {
+		localVarQueryParams.Add("limit", parameterToString(*r.limit, ""))
 	}
-	if localVarOptionals != nil && localVarOptionals.Offset.IsSet() {
-		localVarQueryParams.Add("offset", parameterToString(localVarOptionals.Offset.Value(), ""))
+	if r.offset != nil {
+		localVarQueryParams.Add("offset", parameterToString(*r.offset, ""))
+	}
+	if r.orderBy != nil {
+		localVarQueryParams.Add("order_by", parameterToString(*r.orderBy, ""))
 	}
 	// to determine the Content-Type header
 	localVarHTTPContentTypes := []string{}
@@ -298,18 +400,19 @@ func (a *ConnectionApiService) GetConnections(ctx _context.Context, localVarOpti
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
@@ -353,21 +456,46 @@ func (a *ConnectionApiService) GetConnections(ctx _context.Context, localVarOpti
 	return localVarReturnValue, localVarHTTPResponse, nil
 }
 
-// PatchConnectionOpts Optional parameters for the method 'PatchConnection'
-type PatchConnectionOpts struct {
-    UpdateMask optional.Interface
+type ApiPatchConnectionRequest struct {
+	ctx _context.Context
+	ApiService *ConnectionApiService
+	connectionId string
+	connection *Connection
+	updateMask *[]string
+}
+
+func (r ApiPatchConnectionRequest) Connection(connection Connection) ApiPatchConnectionRequest {
+	r.connection = &connection
+	return r
+}
+func (r ApiPatchConnectionRequest) UpdateMask(updateMask []string) ApiPatchConnectionRequest {
+	r.updateMask = &updateMask
+	return r
+}
+
+func (r ApiPatchConnectionRequest) Execute() (Connection, *_nethttp.Response, error) {
+	return r.ApiService.PatchConnectionExecute(r)
 }
 
 /*
-PatchConnection Update a connection entry
+ * PatchConnection Update a connection
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- * @param connectionId The Connection ID.
- * @param connection
- * @param optional nil or *PatchConnectionOpts - Optional Parameters:
- * @param "UpdateMask" (optional.Interface of []string) -  The fields to update on the connection (connection, pool etc). If absent or empty, all modifiable fields are updated. A comma-separated list of fully qualified names of fields. 
-@return Connection
-*/
-func (a *ConnectionApiService) PatchConnection(ctx _context.Context, connectionId string, connection Connection, localVarOptionals *PatchConnectionOpts) (Connection, *_nethttp.Response, error) {
+ * @param connectionId The connection ID.
+ * @return ApiPatchConnectionRequest
+ */
+func (a *ConnectionApiService) PatchConnection(ctx _context.Context, connectionId string) ApiPatchConnectionRequest {
+	return ApiPatchConnectionRequest{
+		ApiService: a,
+		ctx: ctx,
+		connectionId: connectionId,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return Connection
+ */
+func (a *ConnectionApiService) PatchConnectionExecute(r ApiPatchConnectionRequest) (Connection, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodPatch
 		localVarPostBody     interface{}
@@ -377,16 +505,23 @@ func (a *ConnectionApiService) PatchConnection(ctx _context.Context, connectionI
 		localVarReturnValue  Connection
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/connections/{connection_id}"
-	localVarPath = strings.Replace(localVarPath, "{"+"connection_id"+"}", _neturl.QueryEscape(parameterToString(connectionId, "")) , -1)
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ConnectionApiService.PatchConnection")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/connections/{connection_id}"
+	localVarPath = strings.Replace(localVarPath, "{"+"connection_id"+"}", _neturl.PathEscape(parameterToString(r.connectionId, "")), -1)
 
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
 	localVarFormParams := _neturl.Values{}
+	if r.connection == nil {
+		return localVarReturnValue, nil, reportError("connection is required and must be specified")
+	}
 
-	if localVarOptionals != nil && localVarOptionals.UpdateMask.IsSet() {
-		localVarQueryParams.Add("update_mask", parameterToString(localVarOptionals.UpdateMask.Value(), "csv"))
+	if r.updateMask != nil {
+		localVarQueryParams.Add("update_mask", parameterToString(*r.updateMask, "csv"))
 	}
 	// to determine the Content-Type header
 	localVarHTTPContentTypes := []string{"application/json"}
@@ -406,19 +541,20 @@ func (a *ConnectionApiService) PatchConnection(ctx _context.Context, connectionI
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
 	// body params
-	localVarPostBody = &connection
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	localVarPostBody = r.connection
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
@@ -482,13 +618,38 @@ func (a *ConnectionApiService) PatchConnection(ctx _context.Context, connectionI
 	return localVarReturnValue, localVarHTTPResponse, nil
 }
 
+type ApiPostConnectionRequest struct {
+	ctx _context.Context
+	ApiService *ConnectionApiService
+	connection *Connection
+}
+
+func (r ApiPostConnectionRequest) Connection(connection Connection) ApiPostConnectionRequest {
+	r.connection = &connection
+	return r
+}
+
+func (r ApiPostConnectionRequest) Execute() (Connection, *_nethttp.Response, error) {
+	return r.ApiService.PostConnectionExecute(r)
+}
+
 /*
-PostConnection Create connection entry
+ * PostConnection Create a connection
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- * @param connection
-@return Connection
-*/
-func (a *ConnectionApiService) PostConnection(ctx _context.Context, connection Connection) (Connection, *_nethttp.Response, error) {
+ * @return ApiPostConnectionRequest
+ */
+func (a *ConnectionApiService) PostConnection(ctx _context.Context) ApiPostConnectionRequest {
+	return ApiPostConnectionRequest{
+		ApiService: a,
+		ctx: ctx,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return Connection
+ */
+func (a *ConnectionApiService) PostConnectionExecute(r ApiPostConnectionRequest) (Connection, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodPost
 		localVarPostBody     interface{}
@@ -498,11 +659,19 @@ func (a *ConnectionApiService) PostConnection(ctx _context.Context, connection C
 		localVarReturnValue  Connection
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/connections"
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ConnectionApiService.PostConnection")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/connections"
+
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
 	localVarFormParams := _neturl.Values{}
+	if r.connection == nil {
+		return localVarReturnValue, nil, reportError("connection is required and must be specified")
+	}
 
 	// to determine the Content-Type header
 	localVarHTTPContentTypes := []string{"application/json"}
@@ -522,19 +691,20 @@ func (a *ConnectionApiService) PostConnection(ctx _context.Context, connection C
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
 	// body params
-	localVarPostBody = &connection
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	localVarPostBody = r.connection
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
diff --git a/airflow/api_dag.go b/airflow/api_dag.go
index bdf443c..bd07a11 100644
--- a/airflow/api_dag.go
+++ b/airflow/api_dag.go
@@ -18,22 +18,23 @@
 /*
  * Airflow API (Stable)
  *
- * Apache Airflow management API.
+ * # 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 the [...]
  *
  * API version: 1.0.0
  * Contact: dev@airflow.apache.org
- * Generated by: OpenAPI Generator (https://openapi-generator.tech)
  */
 
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
 package airflow
 
 import (
+	"bytes"
 	_context "context"
 	_ioutil "io/ioutil"
 	_nethttp "net/http"
 	_neturl "net/url"
 	"strings"
-	"github.com/antihax/optional"
 )
 
 // Linger please
@@ -44,26 +45,55 @@ var (
 // DAGApiService DAGApi service
 type DAGApiService service
 
+type ApiGetDagRequest struct {
+	ctx _context.Context
+	ApiService *DAGApiService
+	dagId string
+}
+
+
+func (r ApiGetDagRequest) Execute() (DAG, *_nethttp.Response, error) {
+	return r.ApiService.GetDagExecute(r)
+}
+
 /*
-GetDag Get basic information about a DAG
-Presents only information available in database (DAGModel). If you need detailed information, consider using GET /dags/{dag_id}/detail. 
+ * GetDag Get basic information about a DAG
+ * Presents only information available in database (DAGModel).
+If you need detailed information, consider using GET /dags/{dag_id}/details.
+
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
  * @param dagId The DAG ID.
-@return Dag
-*/
-func (a *DAGApiService) GetDag(ctx _context.Context, dagId string) (Dag, *_nethttp.Response, error) {
+ * @return ApiGetDagRequest
+ */
+func (a *DAGApiService) GetDag(ctx _context.Context, dagId string) ApiGetDagRequest {
+	return ApiGetDagRequest{
+		ApiService: a,
+		ctx: ctx,
+		dagId: dagId,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return DAG
+ */
+func (a *DAGApiService) GetDagExecute(r ApiGetDagRequest) (DAG, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodGet
 		localVarPostBody     interface{}
 		localVarFormFileName string
 		localVarFileName     string
 		localVarFileBytes    []byte
-		localVarReturnValue  Dag
+		localVarReturnValue  DAG
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/dags/{dag_id}"
-	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.QueryEscape(parameterToString(dagId, "")) , -1)
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DAGApiService.GetDag")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/dags/{dag_id}"
+	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.PathEscape(parameterToString(r.dagId, "")), -1)
 
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
@@ -86,18 +116,19 @@ func (a *DAGApiService) GetDag(ctx _context.Context, dagId string) (Dag, *_netht
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
@@ -151,26 +182,54 @@ func (a *DAGApiService) GetDag(ctx _context.Context, dagId string) (Dag, *_netht
 	return localVarReturnValue, localVarHTTPResponse, nil
 }
 
+type ApiGetDagDetailsRequest struct {
+	ctx _context.Context
+	ApiService *DAGApiService
+	dagId string
+}
+
+
+func (r ApiGetDagDetailsRequest) Execute() (DAGDetail, *_nethttp.Response, error) {
+	return r.ApiService.GetDagDetailsExecute(r)
+}
+
 /*
-GetDagDetails Get a simplified representation of DAG
-The response contains many DAG attributes, so the response can be large. If possible, consider using GET /dags/{dag_id}. 
+ * GetDagDetails Get a simplified representation of DAG
+ * The response contains many DAG attributes, so the response can be large. If possible, consider using GET /dags/{dag_id}.
+
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
  * @param dagId The DAG ID.
-@return DagDetail
-*/
-func (a *DAGApiService) GetDagDetails(ctx _context.Context, dagId string) (DagDetail, *_nethttp.Response, error) {
+ * @return ApiGetDagDetailsRequest
+ */
+func (a *DAGApiService) GetDagDetails(ctx _context.Context, dagId string) ApiGetDagDetailsRequest {
+	return ApiGetDagDetailsRequest{
+		ApiService: a,
+		ctx: ctx,
+		dagId: dagId,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return DAGDetail
+ */
+func (a *DAGApiService) GetDagDetailsExecute(r ApiGetDagDetailsRequest) (DAGDetail, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodGet
 		localVarPostBody     interface{}
 		localVarFormFileName string
 		localVarFileName     string
 		localVarFileBytes    []byte
-		localVarReturnValue  DagDetail
+		localVarReturnValue  DAGDetail
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/dags/{dag_id}/details"
-	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.QueryEscape(parameterToString(dagId, "")) , -1)
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DAGApiService.GetDagDetails")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/dags/{dag_id}/details"
+	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.PathEscape(parameterToString(r.dagId, "")), -1)
 
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
@@ -193,18 +252,19 @@ func (a *DAGApiService) GetDagDetails(ctx _context.Context, dagId string) (DagDe
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
@@ -258,13 +318,38 @@ func (a *DAGApiService) GetDagDetails(ctx _context.Context, dagId string) (DagDe
 	return localVarReturnValue, localVarHTTPResponse, nil
 }
 
+type ApiGetDagSourceRequest struct {
+	ctx _context.Context
+	ApiService *DAGApiService
+	fileToken string
+}
+
+
+func (r ApiGetDagSourceRequest) Execute() (InlineResponse2001, *_nethttp.Response, error) {
+	return r.ApiService.GetDagSourceExecute(r)
+}
+
 /*
-GetDagSource Get source code using file token
+ * GetDagSource Get a source code
+ * Get a source code using file token.
+
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
  * @param fileToken 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. 
-@return InlineResponse2001
-*/
-func (a *DAGApiService) GetDagSource(ctx _context.Context, fileToken string) (InlineResponse2001, *_nethttp.Response, error) {
+ * @return ApiGetDagSourceRequest
+ */
+func (a *DAGApiService) GetDagSource(ctx _context.Context, fileToken string) ApiGetDagSourceRequest {
+	return ApiGetDagSourceRequest{
+		ApiService: a,
+		ctx: ctx,
+		fileToken: fileToken,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return InlineResponse2001
+ */
+func (a *DAGApiService) GetDagSourceExecute(r ApiGetDagSourceRequest) (InlineResponse2001, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodGet
 		localVarPostBody     interface{}
@@ -274,9 +359,13 @@ func (a *DAGApiService) GetDagSource(ctx _context.Context, fileToken string) (In
 		localVarReturnValue  InlineResponse2001
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/dagSources/{file_token}"
-	localVarPath = strings.Replace(localVarPath, "{"+"file_token"+"}", _neturl.QueryEscape(parameterToString(fileToken, "")) , -1)
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DAGApiService.GetDagSource")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/dagSources/{file_token}"
+	localVarPath = strings.Replace(localVarPath, "{"+"file_token"+"}", _neturl.PathEscape(parameterToString(r.fileToken, "")), -1)
 
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
@@ -299,18 +388,19 @@ func (a *DAGApiService) GetDagSource(ctx _context.Context, fileToken string) (In
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
@@ -374,41 +464,76 @@ func (a *DAGApiService) GetDagSource(ctx _context.Context, fileToken string) (In
 	return localVarReturnValue, localVarHTTPResponse, nil
 }
 
-// GetDagsOpts Optional parameters for the method 'GetDags'
-type GetDagsOpts struct {
-    Limit optional.Int32
-    Offset optional.Int32
+type ApiGetDagsRequest struct {
+	ctx _context.Context
+	ApiService *DAGApiService
+	limit *int32
+	offset *int32
+	orderBy *string
+}
+
+func (r ApiGetDagsRequest) Limit(limit int32) ApiGetDagsRequest {
+	r.limit = &limit
+	return r
+}
+func (r ApiGetDagsRequest) Offset(offset int32) ApiGetDagsRequest {
+	r.offset = &offset
+	return r
+}
+func (r ApiGetDagsRequest) OrderBy(orderBy string) ApiGetDagsRequest {
+	r.orderBy = &orderBy
+	return r
+}
+
+func (r ApiGetDagsRequest) Execute() (DAGCollection, *_nethttp.Response, error) {
+	return r.ApiService.GetDagsExecute(r)
 }
 
 /*
-GetDags Get all DAGs
+ * GetDags List DAGs
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- * @param optional nil or *GetDagsOpts - Optional Parameters:
- * @param "Limit" (optional.Int32) -  The numbers of items to return.
- * @param "Offset" (optional.Int32) -  The number of items to skip before starting to collect the result set.
-@return DagCollection
-*/
-func (a *DAGApiService) GetDags(ctx _context.Context, localVarOptionals *GetDagsOpts) (DagCollection, *_nethttp.Response, error) {
+ * @return ApiGetDagsRequest
+ */
+func (a *DAGApiService) GetDags(ctx _context.Context) ApiGetDagsRequest {
+	return ApiGetDagsRequest{
+		ApiService: a,
+		ctx: ctx,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return DAGCollection
+ */
+func (a *DAGApiService) GetDagsExecute(r ApiGetDagsRequest) (DAGCollection, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodGet
 		localVarPostBody     interface{}
 		localVarFormFileName string
 		localVarFileName     string
 		localVarFileBytes    []byte
-		localVarReturnValue  DagCollection
+		localVarReturnValue  DAGCollection
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/dags"
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DAGApiService.GetDags")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/dags"
+
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
 	localVarFormParams := _neturl.Values{}
 
-	if localVarOptionals != nil && localVarOptionals.Limit.IsSet() {
-		localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), ""))
+	if r.limit != nil {
+		localVarQueryParams.Add("limit", parameterToString(*r.limit, ""))
+	}
+	if r.offset != nil {
+		localVarQueryParams.Add("offset", parameterToString(*r.offset, ""))
 	}
-	if localVarOptionals != nil && localVarOptionals.Offset.IsSet() {
-		localVarQueryParams.Add("offset", parameterToString(localVarOptionals.Offset.Value(), ""))
+	if r.orderBy != nil {
+		localVarQueryParams.Add("order_by", parameterToString(*r.orderBy, ""))
 	}
 	// to determine the Content-Type header
 	localVarHTTPContentTypes := []string{}
@@ -427,18 +552,19 @@ func (a *DAGApiService) GetDags(ctx _context.Context, localVarOptionals *GetDags
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
@@ -472,14 +598,39 @@ func (a *DAGApiService) GetDags(ctx _context.Context, localVarOptionals *GetDags
 	return localVarReturnValue, localVarHTTPResponse, nil
 }
 
+type ApiGetTaskRequest struct {
+	ctx _context.Context
+	ApiService *DAGApiService
+	dagId string
+	taskId string
+}
+
+
+func (r ApiGetTaskRequest) Execute() (Task, *_nethttp.Response, error) {
+	return r.ApiService.GetTaskExecute(r)
+}
+
 /*
-GetTask Get simplified representation of a task
+ * GetTask Get simplified representation of a task
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
  * @param dagId The DAG ID.
- * @param taskId The Task ID.
-@return Task
-*/
-func (a *DAGApiService) GetTask(ctx _context.Context, dagId string, taskId string) (Task, *_nethttp.Response, error) {
+ * @param taskId The task ID.
+ * @return ApiGetTaskRequest
+ */
+func (a *DAGApiService) GetTask(ctx _context.Context, dagId string, taskId string) ApiGetTaskRequest {
+	return ApiGetTaskRequest{
+		ApiService: a,
+		ctx: ctx,
+		dagId: dagId,
+		taskId: taskId,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return Task
+ */
+func (a *DAGApiService) GetTaskExecute(r ApiGetTaskRequest) (Task, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodGet
 		localVarPostBody     interface{}
@@ -489,11 +640,14 @@ func (a *DAGApiService) GetTask(ctx _context.Context, dagId string, taskId strin
 		localVarReturnValue  Task
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/dags/{dag_id}/tasks/{task_id}"
-	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.QueryEscape(parameterToString(dagId, "")) , -1)
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DAGApiService.GetTask")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
 
-	localVarPath = strings.Replace(localVarPath, "{"+"task_id"+"}", _neturl.QueryEscape(parameterToString(taskId, "")) , -1)
+	localVarPath := localBasePath + "/dags/{dag_id}/tasks/{task_id}"
+	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.PathEscape(parameterToString(r.dagId, "")), -1)
+	localVarPath = strings.Replace(localVarPath, "{"+"task_id"+"}", _neturl.PathEscape(parameterToString(r.taskId, "")), -1)
 
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
@@ -516,18 +670,19 @@ func (a *DAGApiService) GetTask(ctx _context.Context, dagId string, taskId strin
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
@@ -581,13 +736,41 @@ func (a *DAGApiService) GetTask(ctx _context.Context, dagId string, taskId strin
 	return localVarReturnValue, localVarHTTPResponse, nil
 }
 
+type ApiGetTasksRequest struct {
+	ctx _context.Context
+	ApiService *DAGApiService
+	dagId string
+	orderBy *string
+}
+
+func (r ApiGetTasksRequest) OrderBy(orderBy string) ApiGetTasksRequest {
+	r.orderBy = &orderBy
+	return r
+}
+
+func (r ApiGetTasksRequest) Execute() (TaskCollection, *_nethttp.Response, error) {
+	return r.ApiService.GetTasksExecute(r)
+}
+
 /*
-GetTasks Get tasks for DAG
+ * GetTasks Get tasks for DAG
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
  * @param dagId The DAG ID.
-@return TaskCollection
-*/
-func (a *DAGApiService) GetTasks(ctx _context.Context, dagId string) (TaskCollection, *_nethttp.Response, error) {
+ * @return ApiGetTasksRequest
+ */
+func (a *DAGApiService) GetTasks(ctx _context.Context, dagId string) ApiGetTasksRequest {
+	return ApiGetTasksRequest{
+		ApiService: a,
+		ctx: ctx,
+		dagId: dagId,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return TaskCollection
+ */
+func (a *DAGApiService) GetTasksExecute(r ApiGetTasksRequest) (TaskCollection, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodGet
 		localVarPostBody     interface{}
@@ -597,14 +780,21 @@ func (a *DAGApiService) GetTasks(ctx _context.Context, dagId string) (TaskCollec
 		localVarReturnValue  TaskCollection
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/dags/{dag_id}/tasks"
-	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.QueryEscape(parameterToString(dagId, "")) , -1)
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DAGApiService.GetTasks")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/dags/{dag_id}/tasks"
+	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.PathEscape(parameterToString(r.dagId, "")), -1)
 
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
 	localVarFormParams := _neturl.Values{}
 
+	if r.orderBy != nil {
+		localVarQueryParams.Add("order_by", parameterToString(*r.orderBy, ""))
+	}
 	// to determine the Content-Type header
 	localVarHTTPContentTypes := []string{}
 
@@ -622,18 +812,19 @@ func (a *DAGApiService) GetTasks(ctx _context.Context, dagId string) (TaskCollec
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
@@ -687,30 +878,218 @@ func (a *DAGApiService) GetTasks(ctx _context.Context, dagId string) (TaskCollec
 	return localVarReturnValue, localVarHTTPResponse, nil
 }
 
+type ApiPatchDagRequest struct {
+	ctx _context.Context
+	ApiService *DAGApiService
+	dagId string
+	dAG *DAG
+	updateMask *[]string
+}
+
+func (r ApiPatchDagRequest) DAG(dAG DAG) ApiPatchDagRequest {
+	r.dAG = &dAG
+	return r
+}
+func (r ApiPatchDagRequest) UpdateMask(updateMask []string) ApiPatchDagRequest {
+	r.updateMask = &updateMask
+	return r
+}
+
+func (r ApiPatchDagRequest) Execute() (DAG, *_nethttp.Response, error) {
+	return r.ApiService.PatchDagExecute(r)
+}
+
 /*
-PatchDag Update a DAG
+ * PatchDag Update a DAG
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
  * @param dagId The DAG ID.
- * @param dag
-@return Dag
-*/
-func (a *DAGApiService) PatchDag(ctx _context.Context, dagId string, dag Dag) (Dag, *_nethttp.Response, error) {
+ * @return ApiPatchDagRequest
+ */
+func (a *DAGApiService) PatchDag(ctx _context.Context, dagId string) ApiPatchDagRequest {
+	return ApiPatchDagRequest{
+		ApiService: a,
+		ctx: ctx,
+		dagId: dagId,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return DAG
+ */
+func (a *DAGApiService) PatchDagExecute(r ApiPatchDagRequest) (DAG, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodPatch
 		localVarPostBody     interface{}
 		localVarFormFileName string
 		localVarFileName     string
 		localVarFileBytes    []byte
-		localVarReturnValue  Dag
+		localVarReturnValue  DAG
+	)
+
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DAGApiService.PatchDag")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/dags/{dag_id}"
+	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.PathEscape(parameterToString(r.dagId, "")), -1)
+
+	localVarHeaderParams := make(map[string]string)
+	localVarQueryParams := _neturl.Values{}
+	localVarFormParams := _neturl.Values{}
+	if r.dAG == nil {
+		return localVarReturnValue, nil, reportError("dAG is required and must be specified")
+	}
+
+	if r.updateMask != nil {
+		localVarQueryParams.Add("update_mask", parameterToString(*r.updateMask, "csv"))
+	}
+	// to determine the Content-Type header
+	localVarHTTPContentTypes := []string{"application/json"}
+
+	// set Content-Type header
+	localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+	if localVarHTTPContentType != "" {
+		localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+	}
+
+	// to determine the Accept header
+	localVarHTTPHeaderAccepts := []string{"application/json"}
+
+	// set Accept header
+	localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+	if localVarHTTPHeaderAccept != "" {
+		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+	}
+	// body params
+	localVarPostBody = r.dAG
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	if err != nil {
+		return localVarReturnValue, nil, err
+	}
+
+	localVarHTTPResponse, err := a.client.callAPI(req)
+	if err != nil || localVarHTTPResponse == nil {
+		return localVarReturnValue, localVarHTTPResponse, err
+	}
+
+	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
+	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
+	if err != nil {
+		return localVarReturnValue, localVarHTTPResponse, err
+	}
+
+	if localVarHTTPResponse.StatusCode >= 300 {
+		newErr := GenericOpenAPIError{
+			body:  localVarBody,
+			error: localVarHTTPResponse.Status,
+		}
+		if localVarHTTPResponse.StatusCode == 401 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarReturnValue, localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+			return localVarReturnValue, localVarHTTPResponse, newErr
+		}
+		if localVarHTTPResponse.StatusCode == 403 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarReturnValue, localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+			return localVarReturnValue, localVarHTTPResponse, newErr
+		}
+		if localVarHTTPResponse.StatusCode == 404 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarReturnValue, localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+		}
+		return localVarReturnValue, localVarHTTPResponse, newErr
+	}
+
+	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+	if err != nil {
+		newErr := GenericOpenAPIError{
+			body:  localVarBody,
+			error: err.Error(),
+		}
+		return localVarReturnValue, localVarHTTPResponse, newErr
+	}
+
+	return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiPostClearTaskInstancesRequest struct {
+	ctx _context.Context
+	ApiService *DAGApiService
+	dagId string
+	clearTaskInstance *ClearTaskInstance
+}
+
+func (r ApiPostClearTaskInstancesRequest) ClearTaskInstance(clearTaskInstance ClearTaskInstance) ApiPostClearTaskInstancesRequest {
+	r.clearTaskInstance = &clearTaskInstance
+	return r
+}
+
+func (r ApiPostClearTaskInstancesRequest) Execute() (TaskInstanceReferenceCollection, *_nethttp.Response, error) {
+	return r.ApiService.PostClearTaskInstancesExecute(r)
+}
+
+/*
+ * PostClearTaskInstances Clear a set of task instances
+ * Clears a set of task instances associated with the DAG for a specified date range.
+
+ * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param dagId The DAG ID.
+ * @return ApiPostClearTaskInstancesRequest
+ */
+func (a *DAGApiService) PostClearTaskInstances(ctx _context.Context, dagId string) ApiPostClearTaskInstancesRequest {
+	return ApiPostClearTaskInstancesRequest{
+		ApiService: a,
+		ctx: ctx,
+		dagId: dagId,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return TaskInstanceReferenceCollection
+ */
+func (a *DAGApiService) PostClearTaskInstancesExecute(r ApiPostClearTaskInstancesRequest) (TaskInstanceReferenceCollection, *_nethttp.Response, error) {
+	var (
+		localVarHTTPMethod   = _nethttp.MethodPost
+		localVarPostBody     interface{}
+		localVarFormFileName string
+		localVarFileName     string
+		localVarFileBytes    []byte
+		localVarReturnValue  TaskInstanceReferenceCollection
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/dags/{dag_id}"
-	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.QueryEscape(parameterToString(dagId, "")) , -1)
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DAGApiService.PostClearTaskInstances")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/dags/{dag_id}/clearTaskInstances"
+	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.PathEscape(parameterToString(r.dagId, "")), -1)
 
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
 	localVarFormParams := _neturl.Values{}
+	if r.clearTaskInstance == nil {
+		return localVarReturnValue, nil, reportError("clearTaskInstance is required and must be specified")
+	}
 
 	// to determine the Content-Type header
 	localVarHTTPContentTypes := []string{"application/json"}
@@ -730,19 +1109,20 @@ func (a *DAGApiService) PatchDag(ctx _context.Context, dagId string, dag Dag) (D
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
 	// body params
-	localVarPostBody = &dag
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	localVarPostBody = r.clearTaskInstance
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
@@ -796,14 +1176,43 @@ func (a *DAGApiService) PatchDag(ctx _context.Context, dagId string, dag Dag) (D
 	return localVarReturnValue, localVarHTTPResponse, nil
 }
 
+type ApiPostSetTaskInstancesStateRequest struct {
+	ctx _context.Context
+	ApiService *DAGApiService
+	dagId string
+	updateTaskInstancesState *UpdateTaskInstancesState
+}
+
+func (r ApiPostSetTaskInstancesStateRequest) UpdateTaskInstancesState(updateTaskInstancesState UpdateTaskInstancesState) ApiPostSetTaskInstancesStateRequest {
+	r.updateTaskInstancesState = &updateTaskInstancesState
+	return r
+}
+
+func (r ApiPostSetTaskInstancesStateRequest) Execute() (TaskInstanceReferenceCollection, *_nethttp.Response, error) {
+	return r.ApiService.PostSetTaskInstancesStateExecute(r)
+}
+
 /*
-PostClearTaskInstances Clears a set of task instances associated with the DAG for a specified date range.
+ * PostSetTaskInstancesState Set a state of task instances
+ * Updates the state for multiple task instances simultaneously.
+
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
  * @param dagId The DAG ID.
- * @param clearTaskInstance Parameters of action
-@return TaskInstanceReferenceCollection
-*/
-func (a *DAGApiService) PostClearTaskInstances(ctx _context.Context, dagId string, clearTaskInstance ClearTaskInstance) (TaskInstanceReferenceCollection, *_nethttp.Response, error) {
+ * @return ApiPostSetTaskInstancesStateRequest
+ */
+func (a *DAGApiService) PostSetTaskInstancesState(ctx _context.Context, dagId string) ApiPostSetTaskInstancesStateRequest {
+	return ApiPostSetTaskInstancesStateRequest{
+		ApiService: a,
+		ctx: ctx,
+		dagId: dagId,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return TaskInstanceReferenceCollection
+ */
+func (a *DAGApiService) PostSetTaskInstancesStateExecute(r ApiPostSetTaskInstancesStateRequest) (TaskInstanceReferenceCollection, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodPost
 		localVarPostBody     interface{}
@@ -813,13 +1222,20 @@ func (a *DAGApiService) PostClearTaskInstances(ctx _context.Context, dagId strin
 		localVarReturnValue  TaskInstanceReferenceCollection
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/dags/{dag_id}/clearTaskInstances"
-	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.QueryEscape(parameterToString(dagId, "")) , -1)
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DAGApiService.PostSetTaskInstancesState")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/dags/{dag_id}/updateTaskInstancesState"
+	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.PathEscape(parameterToString(r.dagId, "")), -1)
 
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
 	localVarFormParams := _neturl.Values{}
+	if r.updateTaskInstancesState == nil {
+		return localVarReturnValue, nil, reportError("updateTaskInstancesState is required and must be specified")
+	}
 
 	// to determine the Content-Type header
 	localVarHTTPContentTypes := []string{"application/json"}
@@ -839,19 +1255,20 @@ func (a *DAGApiService) PostClearTaskInstances(ctx _context.Context, dagId strin
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
 	// body params
-	localVarPostBody = &clearTaskInstance
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	localVarPostBody = r.updateTaskInstancesState
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
diff --git a/airflow/api_dag_run.go b/airflow/api_dag_run.go
index 96f32bf..89b926c 100644
--- a/airflow/api_dag_run.go
+++ b/airflow/api_dag_run.go
@@ -18,22 +18,24 @@
 /*
  * Airflow API (Stable)
  *
- * Apache Airflow management API.
+ * # 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 the [...]
  *
  * API version: 1.0.0
  * Contact: dev@airflow.apache.org
- * Generated by: OpenAPI Generator (https://openapi-generator.tech)
  */
 
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
 package airflow
 
 import (
+	"bytes"
 	_context "context"
 	_ioutil "io/ioutil"
 	_nethttp "net/http"
 	_neturl "net/url"
 	"strings"
-	"github.com/antihax/optional"
+	"time"
 )
 
 // Linger please
@@ -44,13 +46,38 @@ var (
 // DAGRunApiService DAGRunApi service
 type DAGRunApiService service
 
+type ApiDeleteDagRunRequest struct {
+	ctx _context.Context
+	ApiService *DAGRunApiService
+	dagId string
+	dagRunId string
+}
+
+
+func (r ApiDeleteDagRunRequest) Execute() (*_nethttp.Response, error) {
+	return r.ApiService.DeleteDagRunExecute(r)
+}
+
 /*
-DeleteDagRun Delete a DAG Run
+ * DeleteDagRun Delete a DAG run
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
  * @param dagId The DAG ID.
- * @param dagRunId The DAG Run ID.
-*/
-func (a *DAGRunApiService) DeleteDagRun(ctx _context.Context, dagId string, dagRunId string) (*_nethttp.Response, error) {
+ * @param dagRunId The DAG run ID.
+ * @return ApiDeleteDagRunRequest
+ */
+func (a *DAGRunApiService) DeleteDagRun(ctx _context.Context, dagId string, dagRunId string) ApiDeleteDagRunRequest {
+	return ApiDeleteDagRunRequest{
+		ApiService: a,
+		ctx: ctx,
+		dagId: dagId,
+		dagRunId: dagRunId,
+	}
+}
+
+/*
+ * Execute executes the request
+ */
+func (a *DAGRunApiService) DeleteDagRunExecute(r ApiDeleteDagRunRequest) (*_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodDelete
 		localVarPostBody     interface{}
@@ -59,11 +86,14 @@ func (a *DAGRunApiService) DeleteDagRun(ctx _context.Context, dagId string, dagR
 		localVarFileBytes    []byte
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/dags/{dag_id}/dagRuns/{dag_run_id}"
-	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.QueryEscape(parameterToString(dagId, "")) , -1)
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DAGRunApiService.DeleteDagRun")
+	if err != nil {
+		return nil, GenericOpenAPIError{error: err.Error()}
+	}
 
-	localVarPath = strings.Replace(localVarPath, "{"+"dag_run_id"+"}", _neturl.QueryEscape(parameterToString(dagRunId, "")) , -1)
+	localVarPath := localBasePath + "/dags/{dag_id}/dagRuns/{dag_run_id}"
+	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.PathEscape(parameterToString(r.dagId, "")), -1)
+	localVarPath = strings.Replace(localVarPath, "{"+"dag_run_id"+"}", _neturl.PathEscape(parameterToString(r.dagRunId, "")), -1)
 
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
@@ -86,18 +116,19 @@ func (a *DAGRunApiService) DeleteDagRun(ctx _context.Context, dagId string, dagR
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarHTTPResponse, err
 	}
@@ -135,6 +166,16 @@ func (a *DAGRunApiService) DeleteDagRun(ctx _context.Context, dagId string, dagR
 				return localVarHTTPResponse, newErr
 			}
 			newErr.model = v
+			return localVarHTTPResponse, newErr
+		}
+		if localVarHTTPResponse.StatusCode == 404 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarHTTPResponse, newErr
+			}
+			newErr.model = v
 		}
 		return localVarHTTPResponse, newErr
 	}
@@ -142,28 +183,56 @@ func (a *DAGRunApiService) DeleteDagRun(ctx _context.Context, dagId string, dagR
 	return localVarHTTPResponse, nil
 }
 
+type ApiGetDagRunRequest struct {
+	ctx _context.Context
+	ApiService *DAGRunApiService
+	dagId string
+	dagRunId string
+}
+
+
+func (r ApiGetDagRunRequest) Execute() (DAGRun, *_nethttp.Response, error) {
+	return r.ApiService.GetDagRunExecute(r)
+}
+
 /*
-GetDagRun Get a DAG Run
+ * GetDagRun Get a DAG run
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
  * @param dagId The DAG ID.
- * @param dagRunId The DAG Run ID.
-@return DagRun
-*/
-func (a *DAGRunApiService) GetDagRun(ctx _context.Context, dagId string, dagRunId string) (DagRun, *_nethttp.Response, error) {
+ * @param dagRunId The DAG run ID.
+ * @return ApiGetDagRunRequest
+ */
+func (a *DAGRunApiService) GetDagRun(ctx _context.Context, dagId string, dagRunId string) ApiGetDagRunRequest {
+	return ApiGetDagRunRequest{
+		ApiService: a,
+		ctx: ctx,
+		dagId: dagId,
+		dagRunId: dagRunId,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return DAGRun
+ */
+func (a *DAGRunApiService) GetDagRunExecute(r ApiGetDagRunRequest) (DAGRun, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodGet
 		localVarPostBody     interface{}
 		localVarFormFileName string
 		localVarFileName     string
 		localVarFileBytes    []byte
-		localVarReturnValue  DagRun
+		localVarReturnValue  DAGRun
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/dags/{dag_id}/dagRuns/{dag_run_id}"
-	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.QueryEscape(parameterToString(dagId, "")) , -1)
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DAGRunApiService.GetDagRun")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
 
-	localVarPath = strings.Replace(localVarPath, "{"+"dag_run_id"+"}", _neturl.QueryEscape(parameterToString(dagRunId, "")) , -1)
+	localVarPath := localBasePath + "/dags/{dag_id}/dagRuns/{dag_run_id}"
+	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.PathEscape(parameterToString(r.dagId, "")), -1)
+	localVarPath = strings.Replace(localVarPath, "{"+"dag_run_id"+"}", _neturl.PathEscape(parameterToString(r.dagRunId, "")), -1)
 
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
@@ -186,18 +255,19 @@ func (a *DAGRunApiService) GetDagRun(ctx _context.Context, dagId string, dagRunI
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
@@ -251,75 +321,130 @@ func (a *DAGRunApiService) GetDagRun(ctx _context.Context, dagId string, dagRunI
 	return localVarReturnValue, localVarHTTPResponse, nil
 }
 
-// GetDagRunsOpts Optional parameters for the method 'GetDagRuns'
-type GetDagRunsOpts struct {
-    Limit optional.Int32
-    Offset optional.Int32
-    ExecutionDateGte optional.Time
-    ExecutionDateLte optional.Time
-    StartDateGte optional.Time
-    StartDateLte optional.Time
-    EndDateGte optional.Time
-    EndDateLte optional.Time
+type ApiGetDagRunsRequest struct {
+	ctx _context.Context
+	ApiService *DAGRunApiService
+	dagId string
+	limit *int32
+	offset *int32
+	executionDateGte *time.Time
+	executionDateLte *time.Time
+	startDateGte *time.Time
+	startDateLte *time.Time
+	endDateGte *time.Time
+	endDateLte *time.Time
+	orderBy *string
+}
+
+func (r ApiGetDagRunsRequest) Limit(limit int32) ApiGetDagRunsRequest {
+	r.limit = &limit
+	return r
+}
+func (r ApiGetDagRunsRequest) Offset(offset int32) ApiGetDagRunsRequest {
+	r.offset = &offset
+	return r
+}
+func (r ApiGetDagRunsRequest) ExecutionDateGte(executionDateGte time.Time) ApiGetDagRunsRequest {
+	r.executionDateGte = &executionDateGte
+	return r
+}
+func (r ApiGetDagRunsRequest) ExecutionDateLte(executionDateLte time.Time) ApiGetDagRunsRequest {
+	r.executionDateLte = &executionDateLte
+	return r
+}
+func (r ApiGetDagRunsRequest) StartDateGte(startDateGte time.Time) ApiGetDagRunsRequest {
+	r.startDateGte = &startDateGte
+	return r
+}
+func (r ApiGetDagRunsRequest) StartDateLte(startDateLte time.Time) ApiGetDagRunsRequest {
+	r.startDateLte = &startDateLte
+	return r
+}
+func (r ApiGetDagRunsRequest) EndDateGte(endDateGte time.Time) ApiGetDagRunsRequest {
+	r.endDateGte = &endDateGte
+	return r
+}
+func (r ApiGetDagRunsRequest) EndDateLte(endDateLte time.Time) ApiGetDagRunsRequest {
+	r.endDateLte = &endDateLte
+	return r
+}
+func (r ApiGetDagRunsRequest) OrderBy(orderBy string) ApiGetDagRunsRequest {
+	r.orderBy = &orderBy
+	return r
+}
+
+func (r ApiGetDagRunsRequest) Execute() (DAGRunCollection, *_nethttp.Response, error) {
+	return r.ApiService.GetDagRunsExecute(r)
 }
 
 /*
-GetDagRuns Get all DAG Runs
-This endpoint allows specifying &#x60;~&#x60; as the dag_id to retrieve DAG Runs for all DAGs. 
+ * GetDagRuns List DAG runs
+ * This endpoint allows specifying `~` as the dag_id to retrieve DAG runs for all DAGs.
+
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
  * @param dagId The DAG ID.
- * @param optional nil or *GetDagRunsOpts - Optional Parameters:
- * @param "Limit" (optional.Int32) -  The numbers of items to return.
- * @param "Offset" (optional.Int32) -  The number of items to skip before starting to collect the result set.
- * @param "ExecutionDateGte" (optional.Time) -  Returns objects greater or equal to the specified date. This can be combined with execution_date_lte parameter to receive only the selected period. 
- * @param "ExecutionDateLte" (optional.Time) -  Returns objects less than or equal to the specified date. This can be combined with execution_date_gte parameter to receive only the selected period. 
- * @param "StartDateGte" (optional.Time) -  Returns objects greater or equal the specified date. This can be combined with startd_ate_lte parameter to receive only the selected period. 
- * @param "StartDateLte" (optional.Time) -  Returns objects less or equal the specified date. This can be combined with start_date_gte parameter to receive only the selected period. 
- * @param "EndDateGte" (optional.Time) -  Returns objects greater or equal the specified date. This can be combined with start_date_lte parameter to receive only the selected period. 
- * @param "EndDateLte" (optional.Time) -  Returns objects less than or equal to the specified date. This can be combined with start_date_gte parameter to receive only the selected period. 
-@return DagRunCollection
-*/
-func (a *DAGRunApiService) GetDagRuns(ctx _context.Context, dagId string, localVarOptionals *GetDagRunsOpts) (DagRunCollection, *_nethttp.Response, error) {
+ * @return ApiGetDagRunsRequest
+ */
+func (a *DAGRunApiService) GetDagRuns(ctx _context.Context, dagId string) ApiGetDagRunsRequest {
+	return ApiGetDagRunsRequest{
+		ApiService: a,
+		ctx: ctx,
+		dagId: dagId,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return DAGRunCollection
+ */
+func (a *DAGRunApiService) GetDagRunsExecute(r ApiGetDagRunsRequest) (DAGRunCollection, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodGet
 		localVarPostBody     interface{}
 		localVarFormFileName string
 		localVarFileName     string
 		localVarFileBytes    []byte
-		localVarReturnValue  DagRunCollection
+		localVarReturnValue  DAGRunCollection
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/dags/{dag_id}/dagRuns"
-	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.QueryEscape(parameterToString(dagId, "")) , -1)
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DAGRunApiService.GetDagRuns")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/dags/{dag_id}/dagRuns"
+	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.PathEscape(parameterToString(r.dagId, "")), -1)
 
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
 	localVarFormParams := _neturl.Values{}
 
-	if localVarOptionals != nil && localVarOptionals.Limit.IsSet() {
-		localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), ""))
+	if r.limit != nil {
+		localVarQueryParams.Add("limit", parameterToString(*r.limit, ""))
 	}
-	if localVarOptionals != nil && localVarOptionals.Offset.IsSet() {
-		localVarQueryParams.Add("offset", parameterToString(localVarOptionals.Offset.Value(), ""))
+	if r.offset != nil {
+		localVarQueryParams.Add("offset", parameterToString(*r.offset, ""))
 	}
-	if localVarOptionals != nil && localVarOptionals.ExecutionDateGte.IsSet() {
-		localVarQueryParams.Add("execution_date_gte", parameterToString(localVarOptionals.ExecutionDateGte.Value(), ""))
+	if r.executionDateGte != nil {
+		localVarQueryParams.Add("execution_date_gte", parameterToString(*r.executionDateGte, ""))
 	}
-	if localVarOptionals != nil && localVarOptionals.ExecutionDateLte.IsSet() {
-		localVarQueryParams.Add("execution_date_lte", parameterToString(localVarOptionals.ExecutionDateLte.Value(), ""))
+	if r.executionDateLte != nil {
+		localVarQueryParams.Add("execution_date_lte", parameterToString(*r.executionDateLte, ""))
 	}
-	if localVarOptionals != nil && localVarOptionals.StartDateGte.IsSet() {
-		localVarQueryParams.Add("start_date_gte", parameterToString(localVarOptionals.StartDateGte.Value(), ""))
+	if r.startDateGte != nil {
+		localVarQueryParams.Add("start_date_gte", parameterToString(*r.startDateGte, ""))
 	}
-	if localVarOptionals != nil && localVarOptionals.StartDateLte.IsSet() {
-		localVarQueryParams.Add("start_date_lte", parameterToString(localVarOptionals.StartDateLte.Value(), ""))
+	if r.startDateLte != nil {
+		localVarQueryParams.Add("start_date_lte", parameterToString(*r.startDateLte, ""))
 	}
-	if localVarOptionals != nil && localVarOptionals.EndDateGte.IsSet() {
-		localVarQueryParams.Add("end_date_gte", parameterToString(localVarOptionals.EndDateGte.Value(), ""))
+	if r.endDateGte != nil {
+		localVarQueryParams.Add("end_date_gte", parameterToString(*r.endDateGte, ""))
 	}
-	if localVarOptionals != nil && localVarOptionals.EndDateLte.IsSet() {
-		localVarQueryParams.Add("end_date_lte", parameterToString(localVarOptionals.EndDateLte.Value(), ""))
+	if r.endDateLte != nil {
+		localVarQueryParams.Add("end_date_lte", parameterToString(*r.endDateLte, ""))
+	}
+	if r.orderBy != nil {
+		localVarQueryParams.Add("order_by", parameterToString(*r.orderBy, ""))
 	}
 	// to determine the Content-Type header
 	localVarHTTPContentTypes := []string{}
@@ -338,18 +463,19 @@ func (a *DAGRunApiService) GetDagRuns(ctx _context.Context, dagId string, localV
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
@@ -383,28 +509,62 @@ func (a *DAGRunApiService) GetDagRuns(ctx _context.Context, dagId string, localV
 	return localVarReturnValue, localVarHTTPResponse, nil
 }
 
+type ApiGetDagRunsBatchRequest struct {
+	ctx _context.Context
+	ApiService *DAGRunApiService
+	listDagRunsForm *ListDagRunsForm
+}
+
+func (r ApiGetDagRunsBatchRequest) ListDagRunsForm(listDagRunsForm ListDagRunsForm) ApiGetDagRunsBatchRequest {
+	r.listDagRunsForm = &listDagRunsForm
+	return r
+}
+
+func (r ApiGetDagRunsBatchRequest) Execute() (DAGRunCollection, *_nethttp.Response, error) {
+	return r.ApiService.GetDagRunsBatchExecute(r)
+}
+
 /*
-GetDagRunsBatch Get all DAG Runs from all DAGs
-This endpoint is a POST to allow filtering across a large number of DAG IDs, where as a GET it would run in to maximum HTTP request URL length limit. 
+ * GetDagRunsBatch List DAG runs (batch)
+ * This endpoint is a POST to allow filtering across a large number of DAG IDs, where as a GET it would run in to maximum HTTP request URL length limit.
+
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- * @param listDagRunsForm
-@return DagRunCollection
-*/
-func (a *DAGRunApiService) GetDagRunsBatch(ctx _context.Context, listDagRunsForm ListDagRunsForm) (DagRunCollection, *_nethttp.Response, error) {
+ * @return ApiGetDagRunsBatchRequest
+ */
+func (a *DAGRunApiService) GetDagRunsBatch(ctx _context.Context) ApiGetDagRunsBatchRequest {
+	return ApiGetDagRunsBatchRequest{
+		ApiService: a,
+		ctx: ctx,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return DAGRunCollection
+ */
+func (a *DAGRunApiService) GetDagRunsBatchExecute(r ApiGetDagRunsBatchRequest) (DAGRunCollection, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodPost
 		localVarPostBody     interface{}
 		localVarFormFileName string
 		localVarFileName     string
 		localVarFileBytes    []byte
-		localVarReturnValue  DagRunCollection
+		localVarReturnValue  DAGRunCollection
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/dags/~/dagRuns/list"
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DAGRunApiService.GetDagRunsBatch")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/dags/~/dagRuns/list"
+
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
 	localVarFormParams := _neturl.Values{}
+	if r.listDagRunsForm == nil {
+		return localVarReturnValue, nil, reportError("listDagRunsForm is required and must be specified")
+	}
 
 	// to determine the Content-Type header
 	localVarHTTPContentTypes := []string{"application/json"}
@@ -424,19 +584,20 @@ func (a *DAGRunApiService) GetDagRunsBatch(ctx _context.Context, listDagRunsForm
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
 	// body params
-	localVarPostBody = &listDagRunsForm
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	localVarPostBody = r.listDagRunsForm
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
@@ -490,30 +651,64 @@ func (a *DAGRunApiService) GetDagRunsBatch(ctx _context.Context, listDagRunsForm
 	return localVarReturnValue, localVarHTTPResponse, nil
 }
 
+type ApiPostDagRunRequest struct {
+	ctx _context.Context
+	ApiService *DAGRunApiService
+	dagId string
+	dAGRun *DAGRun
+}
+
+func (r ApiPostDagRunRequest) DAGRun(dAGRun DAGRun) ApiPostDagRunRequest {
+	r.dAGRun = &dAGRun
+	return r
+}
+
+func (r ApiPostDagRunRequest) Execute() (DAGRun, *_nethttp.Response, error) {
+	return r.ApiService.PostDagRunExecute(r)
+}
+
 /*
-PostDagRun Trigger a DAG Run
+ * PostDagRun Trigger a new DAG run
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
  * @param dagId The DAG ID.
- * @param dagRun
-@return DagRun
-*/
-func (a *DAGRunApiService) PostDagRun(ctx _context.Context, dagId string, dagRun DagRun) (DagRun, *_nethttp.Response, error) {
+ * @return ApiPostDagRunRequest
+ */
+func (a *DAGRunApiService) PostDagRun(ctx _context.Context, dagId string) ApiPostDagRunRequest {
+	return ApiPostDagRunRequest{
+		ApiService: a,
+		ctx: ctx,
+		dagId: dagId,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return DAGRun
+ */
+func (a *DAGRunApiService) PostDagRunExecute(r ApiPostDagRunRequest) (DAGRun, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodPost
 		localVarPostBody     interface{}
 		localVarFormFileName string
 		localVarFileName     string
 		localVarFileBytes    []byte
-		localVarReturnValue  DagRun
+		localVarReturnValue  DAGRun
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/dags/{dag_id}/dagRuns"
-	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.QueryEscape(parameterToString(dagId, "")) , -1)
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DAGRunApiService.PostDagRun")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/dags/{dag_id}/dagRuns"
+	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.PathEscape(parameterToString(r.dagId, "")), -1)
 
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
 	localVarFormParams := _neturl.Values{}
+	if r.dAGRun == nil {
+		return localVarReturnValue, nil, reportError("dAGRun is required and must be specified")
+	}
 
 	// to determine the Content-Type header
 	localVarHTTPContentTypes := []string{"application/json"}
@@ -533,19 +728,20 @@ func (a *DAGRunApiService) PostDagRun(ctx _context.Context, dagId string, dagRun
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
 	// body params
-	localVarPostBody = &dagRun
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	localVarPostBody = r.dAGRun
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
diff --git a/airflow/api_event_log.go b/airflow/api_event_log.go
index 7ff9b55..7247f29 100644
--- a/airflow/api_event_log.go
+++ b/airflow/api_event_log.go
@@ -18,22 +18,23 @@
 /*
  * Airflow API (Stable)
  *
- * Apache Airflow management API.
+ * # 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 the [...]
  *
  * API version: 1.0.0
  * Contact: dev@airflow.apache.org
- * Generated by: OpenAPI Generator (https://openapi-generator.tech)
  */
 
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
 package airflow
 
 import (
+	"bytes"
 	_context "context"
 	_ioutil "io/ioutil"
 	_nethttp "net/http"
 	_neturl "net/url"
 	"strings"
-	"github.com/antihax/optional"
 )
 
 // Linger please
@@ -44,13 +45,36 @@ var (
 // EventLogApiService EventLogApi service
 type EventLogApiService service
 
+type ApiGetEventLogRequest struct {
+	ctx _context.Context
+	ApiService *EventLogApiService
+	eventLogId int32
+}
+
+
+func (r ApiGetEventLogRequest) Execute() (EventLog, *_nethttp.Response, error) {
+	return r.ApiService.GetEventLogExecute(r)
+}
+
 /*
-GetEventLog Get a log entry
+ * GetEventLog Get a log entry
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- * @param eventLogId The Event Log ID.
-@return EventLog
-*/
-func (a *EventLogApiService) GetEventLog(ctx _context.Context, eventLogId int32) (EventLog, *_nethttp.Response, error) {
+ * @param eventLogId The event log ID.
+ * @return ApiGetEventLogRequest
+ */
+func (a *EventLogApiService) GetEventLog(ctx _context.Context, eventLogId int32) ApiGetEventLogRequest {
+	return ApiGetEventLogRequest{
+		ApiService: a,
+		ctx: ctx,
+		eventLogId: eventLogId,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return EventLog
+ */
+func (a *EventLogApiService) GetEventLogExecute(r ApiGetEventLogRequest) (EventLog, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodGet
 		localVarPostBody     interface{}
@@ -60,9 +84,13 @@ func (a *EventLogApiService) GetEventLog(ctx _context.Context, eventLogId int32)
 		localVarReturnValue  EventLog
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/eventLogs/{event_log_id}"
-	localVarPath = strings.Replace(localVarPath, "{"+"event_log_id"+"}", _neturl.QueryEscape(parameterToString(eventLogId, "")) , -1)
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "EventLogApiService.GetEventLog")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/eventLogs/{event_log_id}"
+	localVarPath = strings.Replace(localVarPath, "{"+"event_log_id"+"}", _neturl.PathEscape(parameterToString(r.eventLogId, "")), -1)
 
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
@@ -85,18 +113,19 @@ func (a *EventLogApiService) GetEventLog(ctx _context.Context, eventLogId int32)
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
@@ -150,21 +179,49 @@ func (a *EventLogApiService) GetEventLog(ctx _context.Context, eventLogId int32)
 	return localVarReturnValue, localVarHTTPResponse, nil
 }
 
-// GetEventLogsOpts Optional parameters for the method 'GetEventLogs'
-type GetEventLogsOpts struct {
-    Limit optional.Int32
-    Offset optional.Int32
+type ApiGetEventLogsRequest struct {
+	ctx _context.Context
+	ApiService *EventLogApiService
+	limit *int32
+	offset *int32
+	orderBy *string
+}
+
+func (r ApiGetEventLogsRequest) Limit(limit int32) ApiGetEventLogsRequest {
+	r.limit = &limit
+	return r
+}
+func (r ApiGetEventLogsRequest) Offset(offset int32) ApiGetEventLogsRequest {
+	r.offset = &offset
+	return r
+}
+func (r ApiGetEventLogsRequest) OrderBy(orderBy string) ApiGetEventLogsRequest {
+	r.orderBy = &orderBy
+	return r
+}
+
+func (r ApiGetEventLogsRequest) Execute() (EventLogCollection, *_nethttp.Response, error) {
+	return r.ApiService.GetEventLogsExecute(r)
 }
 
 /*
-GetEventLogs Get all log entries from event log
+ * GetEventLogs List log entries
+ * List log entries from event log.
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- * @param optional nil or *GetEventLogsOpts - Optional Parameters:
- * @param "Limit" (optional.Int32) -  The numbers of items to return.
- * @param "Offset" (optional.Int32) -  The number of items to skip before starting to collect the result set.
-@return EventLogCollection
-*/
-func (a *EventLogApiService) GetEventLogs(ctx _context.Context, localVarOptionals *GetEventLogsOpts) (EventLogCollection, *_nethttp.Response, error) {
+ * @return ApiGetEventLogsRequest
+ */
+func (a *EventLogApiService) GetEventLogs(ctx _context.Context) ApiGetEventLogsRequest {
+	return ApiGetEventLogsRequest{
+		ApiService: a,
+		ctx: ctx,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return EventLogCollection
+ */
+func (a *EventLogApiService) GetEventLogsExecute(r ApiGetEventLogsRequest) (EventLogCollection, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodGet
 		localVarPostBody     interface{}
@@ -174,17 +231,25 @@ func (a *EventLogApiService) GetEventLogs(ctx _context.Context, localVarOptional
 		localVarReturnValue  EventLogCollection
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/eventLogs"
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "EventLogApiService.GetEventLogs")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/eventLogs"
+
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
 	localVarFormParams := _neturl.Values{}
 
-	if localVarOptionals != nil && localVarOptionals.Limit.IsSet() {
-		localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), ""))
+	if r.limit != nil {
+		localVarQueryParams.Add("limit", parameterToString(*r.limit, ""))
+	}
+	if r.offset != nil {
+		localVarQueryParams.Add("offset", parameterToString(*r.offset, ""))
 	}
-	if localVarOptionals != nil && localVarOptionals.Offset.IsSet() {
-		localVarQueryParams.Add("offset", parameterToString(localVarOptionals.Offset.Value(), ""))
+	if r.orderBy != nil {
+		localVarQueryParams.Add("order_by", parameterToString(*r.orderBy, ""))
 	}
 	// to determine the Content-Type header
 	localVarHTTPContentTypes := []string{}
@@ -203,18 +268,19 @@ func (a *EventLogApiService) GetEventLogs(ctx _context.Context, localVarOptional
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
diff --git a/airflow/api_import_error.go b/airflow/api_import_error.go
index fdecc19..d1fa788 100644
--- a/airflow/api_import_error.go
+++ b/airflow/api_import_error.go
@@ -18,22 +18,23 @@
 /*
  * Airflow API (Stable)
  *
- * Apache Airflow management API.
+ * # 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 the [...]
  *
  * API version: 1.0.0
  * Contact: dev@airflow.apache.org
- * Generated by: OpenAPI Generator (https://openapi-generator.tech)
  */
 
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
 package airflow
 
 import (
+	"bytes"
 	_context "context"
 	_ioutil "io/ioutil"
 	_nethttp "net/http"
 	_neturl "net/url"
 	"strings"
-	"github.com/antihax/optional"
 )
 
 // Linger please
@@ -44,13 +45,36 @@ var (
 // ImportErrorApiService ImportErrorApi service
 type ImportErrorApiService service
 
+type ApiGetImportErrorRequest struct {
+	ctx _context.Context
+	ApiService *ImportErrorApiService
+	importErrorId int32
+}
+
+
+func (r ApiGetImportErrorRequest) Execute() (ImportError, *_nethttp.Response, error) {
+	return r.ApiService.GetImportErrorExecute(r)
+}
+
 /*
-GetImportError Get an import error
+ * GetImportError Get an import error
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- * @param importErrorId The Import Error ID.
-@return ImportError
-*/
-func (a *ImportErrorApiService) GetImportError(ctx _context.Context, importErrorId int32) (ImportError, *_nethttp.Response, error) {
+ * @param importErrorId The import error ID.
+ * @return ApiGetImportErrorRequest
+ */
+func (a *ImportErrorApiService) GetImportError(ctx _context.Context, importErrorId int32) ApiGetImportErrorRequest {
+	return ApiGetImportErrorRequest{
+		ApiService: a,
+		ctx: ctx,
+		importErrorId: importErrorId,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return ImportError
+ */
+func (a *ImportErrorApiService) GetImportErrorExecute(r ApiGetImportErrorRequest) (ImportError, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodGet
 		localVarPostBody     interface{}
@@ -60,9 +84,13 @@ func (a *ImportErrorApiService) GetImportError(ctx _context.Context, importError
 		localVarReturnValue  ImportError
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/importErrors/{import_error_id}"
-	localVarPath = strings.Replace(localVarPath, "{"+"import_error_id"+"}", _neturl.QueryEscape(parameterToString(importErrorId, "")) , -1)
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ImportErrorApiService.GetImportError")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/importErrors/{import_error_id}"
+	localVarPath = strings.Replace(localVarPath, "{"+"import_error_id"+"}", _neturl.PathEscape(parameterToString(r.importErrorId, "")), -1)
 
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
@@ -85,18 +113,19 @@ func (a *ImportErrorApiService) GetImportError(ctx _context.Context, importError
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
@@ -150,21 +179,48 @@ func (a *ImportErrorApiService) GetImportError(ctx _context.Context, importError
 	return localVarReturnValue, localVarHTTPResponse, nil
 }
 
-// GetImportErrorsOpts Optional parameters for the method 'GetImportErrors'
-type GetImportErrorsOpts struct {
-    Limit optional.Int32
-    Offset optional.Int32
+type ApiGetImportErrorsRequest struct {
+	ctx _context.Context
+	ApiService *ImportErrorApiService
+	limit *int32
+	offset *int32
+	orderBy *string
+}
+
+func (r ApiGetImportErrorsRequest) Limit(limit int32) ApiGetImportErrorsRequest {
+	r.limit = &limit
+	return r
+}
+func (r ApiGetImportErrorsRequest) Offset(offset int32) ApiGetImportErrorsRequest {
+	r.offset = &offset
+	return r
+}
+func (r ApiGetImportErrorsRequest) OrderBy(orderBy string) ApiGetImportErrorsRequest {
+	r.orderBy = &orderBy
+	return r
+}
+
+func (r ApiGetImportErrorsRequest) Execute() (ImportErrorCollection, *_nethttp.Response, error) {
+	return r.ApiService.GetImportErrorsExecute(r)
 }
 
 /*
-GetImportErrors Get all import errors
+ * GetImportErrors List import errors
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- * @param optional nil or *GetImportErrorsOpts - Optional Parameters:
- * @param "Limit" (optional.Int32) -  The numbers of items to return.
- * @param "Offset" (optional.Int32) -  The number of items to skip before starting to collect the result set.
-@return ImportErrorCollection
-*/
-func (a *ImportErrorApiService) GetImportErrors(ctx _context.Context, localVarOptionals *GetImportErrorsOpts) (ImportErrorCollection, *_nethttp.Response, error) {
+ * @return ApiGetImportErrorsRequest
+ */
+func (a *ImportErrorApiService) GetImportErrors(ctx _context.Context) ApiGetImportErrorsRequest {
+	return ApiGetImportErrorsRequest{
+		ApiService: a,
+		ctx: ctx,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return ImportErrorCollection
+ */
+func (a *ImportErrorApiService) GetImportErrorsExecute(r ApiGetImportErrorsRequest) (ImportErrorCollection, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodGet
 		localVarPostBody     interface{}
@@ -174,17 +230,25 @@ func (a *ImportErrorApiService) GetImportErrors(ctx _context.Context, localVarOp
 		localVarReturnValue  ImportErrorCollection
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/importErrors"
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ImportErrorApiService.GetImportErrors")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/importErrors"
+
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
 	localVarFormParams := _neturl.Values{}
 
-	if localVarOptionals != nil && localVarOptionals.Limit.IsSet() {
-		localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), ""))
+	if r.limit != nil {
+		localVarQueryParams.Add("limit", parameterToString(*r.limit, ""))
+	}
+	if r.offset != nil {
+		localVarQueryParams.Add("offset", parameterToString(*r.offset, ""))
 	}
-	if localVarOptionals != nil && localVarOptionals.Offset.IsSet() {
-		localVarQueryParams.Add("offset", parameterToString(localVarOptionals.Offset.Value(), ""))
+	if r.orderBy != nil {
+		localVarQueryParams.Add("order_by", parameterToString(*r.orderBy, ""))
 	}
 	// to determine the Content-Type header
 	localVarHTTPContentTypes := []string{}
@@ -203,18 +267,19 @@ func (a *ImportErrorApiService) GetImportErrors(ctx _context.Context, localVarOp
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
diff --git a/airflow/api_monitoring.go b/airflow/api_monitoring.go
index 4186211..335a2d0 100644
--- a/airflow/api_monitoring.go
+++ b/airflow/api_monitoring.go
@@ -18,16 +18,18 @@
 /*
  * Airflow API (Stable)
  *
- * Apache Airflow management API.
+ * # 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 the [...]
  *
  * API version: 1.0.0
  * Contact: dev@airflow.apache.org
- * Generated by: OpenAPI Generator (https://openapi-generator.tech)
  */
 
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
 package airflow
 
 import (
+	"bytes"
 	_context "context"
 	_ioutil "io/ioutil"
 	_nethttp "net/http"
@@ -42,12 +44,36 @@ var (
 // MonitoringApiService MonitoringApi service
 type MonitoringApiService service
 
+type ApiGetHealthRequest struct {
+	ctx _context.Context
+	ApiService *MonitoringApiService
+}
+
+
+func (r ApiGetHealthRequest) Execute() (HealthInfo, *_nethttp.Response, error) {
+	return r.ApiService.GetHealthExecute(r)
+}
+
 /*
-GetHealth Returns the status of Airflow's metadatabase and scheduler
+ * GetHealth Get instance status
+ * Get the status of Airflow's metadatabase and scheduler. It includes info about
+metadatabase and last heartbeat of scheduler.
+
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
-@return HealthInfo
-*/
-func (a *MonitoringApiService) GetHealth(ctx _context.Context) (HealthInfo, *_nethttp.Response, error) {
+ * @return ApiGetHealthRequest
+ */
+func (a *MonitoringApiService) GetHealth(ctx _context.Context) ApiGetHealthRequest {
+	return ApiGetHealthRequest{
+		ApiService: a,
+		ctx: ctx,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return HealthInfo
+ */
+func (a *MonitoringApiService) GetHealthExecute(r ApiGetHealthRequest) (HealthInfo, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodGet
 		localVarPostBody     interface{}
@@ -57,8 +83,13 @@ func (a *MonitoringApiService) GetHealth(ctx _context.Context) (HealthInfo, *_ne
 		localVarReturnValue  HealthInfo
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/health"
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "MonitoringApiService.GetHealth")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/health"
+
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
 	localVarFormParams := _neturl.Values{}
@@ -80,18 +111,19 @@ func (a *MonitoringApiService) GetHealth(ctx _context.Context) (HealthInfo, *_ne
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
@@ -116,12 +148,33 @@ func (a *MonitoringApiService) GetHealth(ctx _context.Context) (HealthInfo, *_ne
 	return localVarReturnValue, localVarHTTPResponse, nil
 }
 
+type ApiGetVersionRequest struct {
+	ctx _context.Context
+	ApiService *MonitoringApiService
+}
+
+
+func (r ApiGetVersionRequest) Execute() (VersionInfo, *_nethttp.Response, error) {
+	return r.ApiService.GetVersionExecute(r)
+}
+
 /*
-GetVersion Get version information
+ * GetVersion Get version information
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
-@return VersionInfo
-*/
-func (a *MonitoringApiService) GetVersion(ctx _context.Context) (VersionInfo, *_nethttp.Response, error) {
+ * @return ApiGetVersionRequest
+ */
+func (a *MonitoringApiService) GetVersion(ctx _context.Context) ApiGetVersionRequest {
+	return ApiGetVersionRequest{
+		ApiService: a,
+		ctx: ctx,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return VersionInfo
+ */
+func (a *MonitoringApiService) GetVersionExecute(r ApiGetVersionRequest) (VersionInfo, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodGet
 		localVarPostBody     interface{}
@@ -131,8 +184,13 @@ func (a *MonitoringApiService) GetVersion(ctx _context.Context) (VersionInfo, *_
 		localVarReturnValue  VersionInfo
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/version"
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "MonitoringApiService.GetVersion")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/version"
+
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
 	localVarFormParams := _neturl.Values{}
@@ -154,18 +212,19 @@ func (a *MonitoringApiService) GetVersion(ctx _context.Context) (VersionInfo, *_
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
diff --git a/airflow/api_permission.go b/airflow/api_permission.go
new file mode 100644
index 0000000..eb7f5f7
--- /dev/null
+++ b/airflow/api_permission.go
@@ -0,0 +1,181 @@
+// 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.
+
+/*
+ * 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 the [...]
+ *
+ * API version: 1.0.0
+ * Contact: dev@airflow.apache.org
+ */
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package airflow
+
+import (
+	"bytes"
+	_context "context"
+	_ioutil "io/ioutil"
+	_nethttp "net/http"
+	_neturl "net/url"
+)
+
+// Linger please
+var (
+	_ _context.Context
+)
+
+// PermissionApiService PermissionApi service
+type PermissionApiService service
+
+type ApiGetPermissionsRequest struct {
+	ctx _context.Context
+	ApiService *PermissionApiService
+	limit *int32
+	offset *int32
+}
+
+func (r ApiGetPermissionsRequest) Limit(limit int32) ApiGetPermissionsRequest {
+	r.limit = &limit
+	return r
+}
+func (r ApiGetPermissionsRequest) Offset(offset int32) ApiGetPermissionsRequest {
+	r.offset = &offset
+	return r
+}
+
+func (r ApiGetPermissionsRequest) Execute() (ActionCollection, *_nethttp.Response, error) {
+	return r.ApiService.GetPermissionsExecute(r)
+}
+
+/*
+ * GetPermissions List permissions
+ * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @return ApiGetPermissionsRequest
+ */
+func (a *PermissionApiService) GetPermissions(ctx _context.Context) ApiGetPermissionsRequest {
+	return ApiGetPermissionsRequest{
+		ApiService: a,
+		ctx: ctx,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return ActionCollection
+ */
+func (a *PermissionApiService) GetPermissionsExecute(r ApiGetPermissionsRequest) (ActionCollection, *_nethttp.Response, error) {
+	var (
+		localVarHTTPMethod   = _nethttp.MethodGet
+		localVarPostBody     interface{}
+		localVarFormFileName string
+		localVarFileName     string
+		localVarFileBytes    []byte
+		localVarReturnValue  ActionCollection
+	)
+
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "PermissionApiService.GetPermissions")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/permissions"
+
+	localVarHeaderParams := make(map[string]string)
+	localVarQueryParams := _neturl.Values{}
+	localVarFormParams := _neturl.Values{}
+
+	if r.limit != nil {
+		localVarQueryParams.Add("limit", parameterToString(*r.limit, ""))
+	}
+	if r.offset != nil {
+		localVarQueryParams.Add("offset", parameterToString(*r.offset, ""))
+	}
+	// to determine the Content-Type header
+	localVarHTTPContentTypes := []string{}
+
+	// set Content-Type header
+	localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+	if localVarHTTPContentType != "" {
+		localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+	}
+
+	// to determine the Accept header
+	localVarHTTPHeaderAccepts := []string{"application/json"}
+
+	// set Accept header
+	localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+	if localVarHTTPHeaderAccept != "" {
+		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+	}
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	if err != nil {
+		return localVarReturnValue, nil, err
+	}
+
+	localVarHTTPResponse, err := a.client.callAPI(req)
+	if err != nil || localVarHTTPResponse == nil {
+		return localVarReturnValue, localVarHTTPResponse, err
+	}
+
+	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
+	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
+	if err != nil {
+		return localVarReturnValue, localVarHTTPResponse, err
+	}
+
+	if localVarHTTPResponse.StatusCode >= 300 {
+		newErr := GenericOpenAPIError{
+			body:  localVarBody,
+			error: localVarHTTPResponse.Status,
+		}
+		if localVarHTTPResponse.StatusCode == 401 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarReturnValue, localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+			return localVarReturnValue, localVarHTTPResponse, newErr
+		}
+		if localVarHTTPResponse.StatusCode == 403 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarReturnValue, localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+		}
+		return localVarReturnValue, localVarHTTPResponse, newErr
+	}
+
+	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+	if err != nil {
+		newErr := GenericOpenAPIError{
+			body:  localVarBody,
+			error: err.Error(),
+		}
+		return localVarReturnValue, localVarHTTPResponse, newErr
+	}
+
+	return localVarReturnValue, localVarHTTPResponse, nil
+}
diff --git a/airflow/api_plugin.go b/airflow/api_plugin.go
new file mode 100644
index 0000000..a98f10b
--- /dev/null
+++ b/airflow/api_plugin.go
@@ -0,0 +1,191 @@
+// 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.
+
+/*
+ * 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 the [...]
+ *
+ * API version: 1.0.0
+ * Contact: dev@airflow.apache.org
+ */
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package airflow
+
+import (
+	"bytes"
+	_context "context"
+	_ioutil "io/ioutil"
+	_nethttp "net/http"
+	_neturl "net/url"
+)
+
+// Linger please
+var (
+	_ _context.Context
+)
+
+// PluginApiService PluginApi service
+type PluginApiService service
+
+type ApiGetPluginsRequest struct {
+	ctx _context.Context
+	ApiService *PluginApiService
+	limit *int32
+	offset *int32
+}
+
+func (r ApiGetPluginsRequest) Limit(limit int32) ApiGetPluginsRequest {
+	r.limit = &limit
+	return r
+}
+func (r ApiGetPluginsRequest) Offset(offset int32) ApiGetPluginsRequest {
+	r.offset = &offset
+	return r
+}
+
+func (r ApiGetPluginsRequest) Execute() (PluginCollection, *_nethttp.Response, error) {
+	return r.ApiService.GetPluginsExecute(r)
+}
+
+/*
+ * GetPlugins Get a list of loaded plugins
+ * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @return ApiGetPluginsRequest
+ */
+func (a *PluginApiService) GetPlugins(ctx _context.Context) ApiGetPluginsRequest {
+	return ApiGetPluginsRequest{
+		ApiService: a,
+		ctx: ctx,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return PluginCollection
+ */
+func (a *PluginApiService) GetPluginsExecute(r ApiGetPluginsRequest) (PluginCollection, *_nethttp.Response, error) {
+	var (
+		localVarHTTPMethod   = _nethttp.MethodGet
+		localVarPostBody     interface{}
+		localVarFormFileName string
+		localVarFileName     string
+		localVarFileBytes    []byte
+		localVarReturnValue  PluginCollection
+	)
+
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "PluginApiService.GetPlugins")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/plugins"
+
+	localVarHeaderParams := make(map[string]string)
+	localVarQueryParams := _neturl.Values{}
+	localVarFormParams := _neturl.Values{}
+
+	if r.limit != nil {
+		localVarQueryParams.Add("limit", parameterToString(*r.limit, ""))
+	}
+	if r.offset != nil {
+		localVarQueryParams.Add("offset", parameterToString(*r.offset, ""))
+	}
+	// to determine the Content-Type header
+	localVarHTTPContentTypes := []string{}
+
+	// set Content-Type header
+	localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+	if localVarHTTPContentType != "" {
+		localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+	}
+
+	// to determine the Accept header
+	localVarHTTPHeaderAccepts := []string{"application/json"}
+
+	// set Accept header
+	localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+	if localVarHTTPHeaderAccept != "" {
+		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+	}
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	if err != nil {
+		return localVarReturnValue, nil, err
+	}
+
+	localVarHTTPResponse, err := a.client.callAPI(req)
+	if err != nil || localVarHTTPResponse == nil {
+		return localVarReturnValue, localVarHTTPResponse, err
+	}
+
+	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
+	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
+	if err != nil {
+		return localVarReturnValue, localVarHTTPResponse, err
+	}
+
+	if localVarHTTPResponse.StatusCode >= 300 {
+		newErr := GenericOpenAPIError{
+			body:  localVarBody,
+			error: localVarHTTPResponse.Status,
+		}
+		if localVarHTTPResponse.StatusCode == 401 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarReturnValue, localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+			return localVarReturnValue, localVarHTTPResponse, newErr
+		}
+		if localVarHTTPResponse.StatusCode == 403 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarReturnValue, localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+			return localVarReturnValue, localVarHTTPResponse, newErr
+		}
+		if localVarHTTPResponse.StatusCode == 404 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarReturnValue, localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+		}
+		return localVarReturnValue, localVarHTTPResponse, newErr
+	}
+
+	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+	if err != nil {
+		newErr := GenericOpenAPIError{
+			body:  localVarBody,
+			error: err.Error(),
+		}
+		return localVarReturnValue, localVarHTTPResponse, newErr
+	}
+
+	return localVarReturnValue, localVarHTTPResponse, nil
+}
diff --git a/airflow/api_pool.go b/airflow/api_pool.go
index 77cf45b..3ff7524 100644
--- a/airflow/api_pool.go
+++ b/airflow/api_pool.go
@@ -18,22 +18,23 @@
 /*
  * Airflow API (Stable)
  *
- * Apache Airflow management API.
+ * # 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 the [...]
  *
  * API version: 1.0.0
  * Contact: dev@airflow.apache.org
- * Generated by: OpenAPI Generator (https://openapi-generator.tech)
  */
 
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
 package airflow
 
 import (
+	"bytes"
 	_context "context"
 	_ioutil "io/ioutil"
 	_nethttp "net/http"
 	_neturl "net/url"
 	"strings"
-	"github.com/antihax/optional"
 )
 
 // Linger please
@@ -44,12 +45,35 @@ var (
 // PoolApiService PoolApi service
 type PoolApiService service
 
+type ApiDeletePoolRequest struct {
+	ctx _context.Context
+	ApiService *PoolApiService
+	poolName string
+}
+
+
+func (r ApiDeletePoolRequest) Execute() (*_nethttp.Response, error) {
+	return r.ApiService.DeletePoolExecute(r)
+}
+
 /*
-DeletePool Delete a pool
+ * DeletePool Delete a pool
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- * @param poolName The Pool name.
-*/
-func (a *PoolApiService) DeletePool(ctx _context.Context, poolName string) (*_nethttp.Response, error) {
+ * @param poolName The pool name.
+ * @return ApiDeletePoolRequest
+ */
+func (a *PoolApiService) DeletePool(ctx _context.Context, poolName string) ApiDeletePoolRequest {
+	return ApiDeletePoolRequest{
+		ApiService: a,
+		ctx: ctx,
+		poolName: poolName,
+	}
+}
+
+/*
+ * Execute executes the request
+ */
+func (a *PoolApiService) DeletePoolExecute(r ApiDeletePoolRequest) (*_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodDelete
 		localVarPostBody     interface{}
@@ -58,9 +82,13 @@ func (a *PoolApiService) DeletePool(ctx _context.Context, poolName string) (*_ne
 		localVarFileBytes    []byte
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/pools/{pool_name}"
-	localVarPath = strings.Replace(localVarPath, "{"+"pool_name"+"}", _neturl.QueryEscape(parameterToString(poolName, "")) , -1)
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "PoolApiService.DeletePool")
+	if err != nil {
+		return nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/pools/{pool_name}"
+	localVarPath = strings.Replace(localVarPath, "{"+"pool_name"+"}", _neturl.PathEscape(parameterToString(r.poolName, "")), -1)
 
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
@@ -83,18 +111,19 @@ func (a *PoolApiService) DeletePool(ctx _context.Context, poolName string) (*_ne
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarHTTPResponse, err
 	}
@@ -149,13 +178,36 @@ func (a *PoolApiService) DeletePool(ctx _context.Context, poolName string) (*_ne
 	return localVarHTTPResponse, nil
 }
 
+type ApiGetPoolRequest struct {
+	ctx _context.Context
+	ApiService *PoolApiService
+	poolName string
+}
+
+
+func (r ApiGetPoolRequest) Execute() (Pool, *_nethttp.Response, error) {
+	return r.ApiService.GetPoolExecute(r)
+}
+
 /*
-GetPool Get a pool
+ * GetPool Get a pool
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- * @param poolName The Pool name.
-@return Pool
-*/
-func (a *PoolApiService) GetPool(ctx _context.Context, poolName string) (Pool, *_nethttp.Response, error) {
+ * @param poolName The pool name.
+ * @return ApiGetPoolRequest
+ */
+func (a *PoolApiService) GetPool(ctx _context.Context, poolName string) ApiGetPoolRequest {
+	return ApiGetPoolRequest{
+		ApiService: a,
+		ctx: ctx,
+		poolName: poolName,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return Pool
+ */
+func (a *PoolApiService) GetPoolExecute(r ApiGetPoolRequest) (Pool, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodGet
 		localVarPostBody     interface{}
@@ -165,9 +217,13 @@ func (a *PoolApiService) GetPool(ctx _context.Context, poolName string) (Pool, *
 		localVarReturnValue  Pool
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/pools/{pool_name}"
-	localVarPath = strings.Replace(localVarPath, "{"+"pool_name"+"}", _neturl.QueryEscape(parameterToString(poolName, "")) , -1)
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "PoolApiService.GetPool")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/pools/{pool_name}"
+	localVarPath = strings.Replace(localVarPath, "{"+"pool_name"+"}", _neturl.PathEscape(parameterToString(r.poolName, "")), -1)
 
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
@@ -190,18 +246,19 @@ func (a *PoolApiService) GetPool(ctx _context.Context, poolName string) (Pool, *
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
@@ -255,21 +312,48 @@ func (a *PoolApiService) GetPool(ctx _context.Context, poolName string) (Pool, *
 	return localVarReturnValue, localVarHTTPResponse, nil
 }
 
-// GetPoolsOpts Optional parameters for the method 'GetPools'
-type GetPoolsOpts struct {
-    Limit optional.Int32
-    Offset optional.Int32
+type ApiGetPoolsRequest struct {
+	ctx _context.Context
+	ApiService *PoolApiService
+	limit *int32
+	offset *int32
+	orderBy *string
+}
+
+func (r ApiGetPoolsRequest) Limit(limit int32) ApiGetPoolsRequest {
+	r.limit = &limit
+	return r
+}
+func (r ApiGetPoolsRequest) Offset(offset int32) ApiGetPoolsRequest {
+	r.offset = &offset
+	return r
+}
+func (r ApiGetPoolsRequest) OrderBy(orderBy string) ApiGetPoolsRequest {
+	r.orderBy = &orderBy
+	return r
+}
+
+func (r ApiGetPoolsRequest) Execute() (PoolCollection, *_nethttp.Response, error) {
+	return r.ApiService.GetPoolsExecute(r)
 }
 
 /*
-GetPools Get all pools
+ * GetPools List pools
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- * @param optional nil or *GetPoolsOpts - Optional Parameters:
- * @param "Limit" (optional.Int32) -  The numbers of items to return.
- * @param "Offset" (optional.Int32) -  The number of items to skip before starting to collect the result set.
-@return PoolCollection
-*/
-func (a *PoolApiService) GetPools(ctx _context.Context, localVarOptionals *GetPoolsOpts) (PoolCollection, *_nethttp.Response, error) {
+ * @return ApiGetPoolsRequest
+ */
+func (a *PoolApiService) GetPools(ctx _context.Context) ApiGetPoolsRequest {
+	return ApiGetPoolsRequest{
+		ApiService: a,
+		ctx: ctx,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return PoolCollection
+ */
+func (a *PoolApiService) GetPoolsExecute(r ApiGetPoolsRequest) (PoolCollection, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodGet
 		localVarPostBody     interface{}
@@ -279,17 +363,25 @@ func (a *PoolApiService) GetPools(ctx _context.Context, localVarOptionals *GetPo
 		localVarReturnValue  PoolCollection
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/pools"
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "PoolApiService.GetPools")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/pools"
+
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
 	localVarFormParams := _neturl.Values{}
 
-	if localVarOptionals != nil && localVarOptionals.Limit.IsSet() {
-		localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), ""))
+	if r.limit != nil {
+		localVarQueryParams.Add("limit", parameterToString(*r.limit, ""))
+	}
+	if r.offset != nil {
+		localVarQueryParams.Add("offset", parameterToString(*r.offset, ""))
 	}
-	if localVarOptionals != nil && localVarOptionals.Offset.IsSet() {
-		localVarQueryParams.Add("offset", parameterToString(localVarOptionals.Offset.Value(), ""))
+	if r.orderBy != nil {
+		localVarQueryParams.Add("order_by", parameterToString(*r.orderBy, ""))
 	}
 	// to determine the Content-Type header
 	localVarHTTPContentTypes := []string{}
@@ -308,18 +400,19 @@ func (a *PoolApiService) GetPools(ctx _context.Context, localVarOptionals *GetPo
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
@@ -363,21 +456,46 @@ func (a *PoolApiService) GetPools(ctx _context.Context, localVarOptionals *GetPo
 	return localVarReturnValue, localVarHTTPResponse, nil
 }
 
-// PatchPoolOpts Optional parameters for the method 'PatchPool'
-type PatchPoolOpts struct {
-    UpdateMask optional.Interface
+type ApiPatchPoolRequest struct {
+	ctx _context.Context
+	ApiService *PoolApiService
+	poolName string
+	pool *Pool
+	updateMask *[]string
+}
+
+func (r ApiPatchPoolRequest) Pool(pool Pool) ApiPatchPoolRequest {
+	r.pool = &pool
+	return r
+}
+func (r ApiPatchPoolRequest) UpdateMask(updateMask []string) ApiPatchPoolRequest {
+	r.updateMask = &updateMask
+	return r
+}
+
+func (r ApiPatchPoolRequest) Execute() (Pool, *_nethttp.Response, error) {
+	return r.ApiService.PatchPoolExecute(r)
 }
 
 /*
-PatchPool Update a pool
+ * PatchPool Update a pool
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- * @param poolName The Pool name.
- * @param pool
- * @param optional nil or *PatchPoolOpts - Optional Parameters:
- * @param "UpdateMask" (optional.Interface of []string) -  The fields to update on the connection (connection, pool etc). If absent or empty, all modifiable fields are updated. A comma-separated list of fully qualified names of fields. 
-@return Pool
-*/
-func (a *PoolApiService) PatchPool(ctx _context.Context, poolName string, pool Pool, localVarOptionals *PatchPoolOpts) (Pool, *_nethttp.Response, error) {
+ * @param poolName The pool name.
+ * @return ApiPatchPoolRequest
+ */
+func (a *PoolApiService) PatchPool(ctx _context.Context, poolName string) ApiPatchPoolRequest {
+	return ApiPatchPoolRequest{
+		ApiService: a,
+		ctx: ctx,
+		poolName: poolName,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return Pool
+ */
+func (a *PoolApiService) PatchPoolExecute(r ApiPatchPoolRequest) (Pool, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodPatch
 		localVarPostBody     interface{}
@@ -387,16 +505,23 @@ func (a *PoolApiService) PatchPool(ctx _context.Context, poolName string, pool P
 		localVarReturnValue  Pool
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/pools/{pool_name}"
-	localVarPath = strings.Replace(localVarPath, "{"+"pool_name"+"}", _neturl.QueryEscape(parameterToString(poolName, "")) , -1)
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "PoolApiService.PatchPool")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/pools/{pool_name}"
+	localVarPath = strings.Replace(localVarPath, "{"+"pool_name"+"}", _neturl.PathEscape(parameterToString(r.poolName, "")), -1)
 
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
 	localVarFormParams := _neturl.Values{}
+	if r.pool == nil {
+		return localVarReturnValue, nil, reportError("pool is required and must be specified")
+	}
 
-	if localVarOptionals != nil && localVarOptionals.UpdateMask.IsSet() {
-		localVarQueryParams.Add("update_mask", parameterToString(localVarOptionals.UpdateMask.Value(), "csv"))
+	if r.updateMask != nil {
+		localVarQueryParams.Add("update_mask", parameterToString(*r.updateMask, "csv"))
 	}
 	// to determine the Content-Type header
 	localVarHTTPContentTypes := []string{"application/json"}
@@ -416,19 +541,20 @@ func (a *PoolApiService) PatchPool(ctx _context.Context, poolName string, pool P
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
 	// body params
-	localVarPostBody = &pool
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	localVarPostBody = r.pool
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
@@ -502,13 +628,38 @@ func (a *PoolApiService) PatchPool(ctx _context.Context, poolName string, pool P
 	return localVarReturnValue, localVarHTTPResponse, nil
 }
 
+type ApiPostPoolRequest struct {
+	ctx _context.Context
+	ApiService *PoolApiService
+	pool *Pool
+}
+
+func (r ApiPostPoolRequest) Pool(pool Pool) ApiPostPoolRequest {
+	r.pool = &pool
+	return r
+}
+
+func (r ApiPostPoolRequest) Execute() (Pool, *_nethttp.Response, error) {
+	return r.ApiService.PostPoolExecute(r)
+}
+
 /*
-PostPool Create a pool
+ * PostPool Create a pool
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- * @param pool
-@return Pool
-*/
-func (a *PoolApiService) PostPool(ctx _context.Context, pool Pool) (Pool, *_nethttp.Response, error) {
+ * @return ApiPostPoolRequest
+ */
+func (a *PoolApiService) PostPool(ctx _context.Context) ApiPostPoolRequest {
+	return ApiPostPoolRequest{
+		ApiService: a,
+		ctx: ctx,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return Pool
+ */
+func (a *PoolApiService) PostPoolExecute(r ApiPostPoolRequest) (Pool, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodPost
 		localVarPostBody     interface{}
@@ -518,11 +669,19 @@ func (a *PoolApiService) PostPool(ctx _context.Context, pool Pool) (Pool, *_neth
 		localVarReturnValue  Pool
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/pools"
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "PoolApiService.PostPool")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/pools"
+
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
 	localVarFormParams := _neturl.Values{}
+	if r.pool == nil {
+		return localVarReturnValue, nil, reportError("pool is required and must be specified")
+	}
 
 	// to determine the Content-Type header
 	localVarHTTPContentTypes := []string{"application/json"}
@@ -542,19 +701,20 @@ func (a *PoolApiService) PostPool(ctx _context.Context, pool Pool) (Pool, *_neth
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
 	// body params
-	localVarPostBody = &pool
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	localVarPostBody = r.pool
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
diff --git a/airflow/api_provider.go b/airflow/api_provider.go
new file mode 100644
index 0000000..13f6c1b
--- /dev/null
+++ b/airflow/api_provider.go
@@ -0,0 +1,165 @@
+// 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.
+
+/*
+ * 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 the [...]
+ *
+ * API version: 1.0.0
+ * Contact: dev@airflow.apache.org
+ */
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package airflow
+
+import (
+	"bytes"
+	_context "context"
+	_ioutil "io/ioutil"
+	_nethttp "net/http"
+	_neturl "net/url"
+)
+
+// Linger please
+var (
+	_ _context.Context
+)
+
+// ProviderApiService ProviderApi service
+type ProviderApiService service
+
+type ApiGetProvidersRequest struct {
+	ctx _context.Context
+	ApiService *ProviderApiService
+}
+
+
+func (r ApiGetProvidersRequest) Execute() (ProviderCollection, *_nethttp.Response, error) {
+	return r.ApiService.GetProvidersExecute(r)
+}
+
+/*
+ * GetProviders List providers
+ * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @return ApiGetProvidersRequest
+ */
+func (a *ProviderApiService) GetProviders(ctx _context.Context) ApiGetProvidersRequest {
+	return ApiGetProvidersRequest{
+		ApiService: a,
+		ctx: ctx,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return ProviderCollection
+ */
+func (a *ProviderApiService) GetProvidersExecute(r ApiGetProvidersRequest) (ProviderCollection, *_nethttp.Response, error) {
+	var (
+		localVarHTTPMethod   = _nethttp.MethodGet
+		localVarPostBody     interface{}
+		localVarFormFileName string
+		localVarFileName     string
+		localVarFileBytes    []byte
+		localVarReturnValue  ProviderCollection
+	)
+
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ProviderApiService.GetProviders")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/providers"
+
+	localVarHeaderParams := make(map[string]string)
+	localVarQueryParams := _neturl.Values{}
+	localVarFormParams := _neturl.Values{}
+
+	// to determine the Content-Type header
+	localVarHTTPContentTypes := []string{}
+
+	// set Content-Type header
+	localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+	if localVarHTTPContentType != "" {
+		localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+	}
+
+	// to determine the Accept header
+	localVarHTTPHeaderAccepts := []string{"application/json"}
+
+	// set Accept header
+	localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+	if localVarHTTPHeaderAccept != "" {
+		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+	}
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	if err != nil {
+		return localVarReturnValue, nil, err
+	}
+
+	localVarHTTPResponse, err := a.client.callAPI(req)
+	if err != nil || localVarHTTPResponse == nil {
+		return localVarReturnValue, localVarHTTPResponse, err
+	}
+
+	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
+	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
+	if err != nil {
+		return localVarReturnValue, localVarHTTPResponse, err
+	}
+
+	if localVarHTTPResponse.StatusCode >= 300 {
+		newErr := GenericOpenAPIError{
+			body:  localVarBody,
+			error: localVarHTTPResponse.Status,
+		}
+		if localVarHTTPResponse.StatusCode == 401 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarReturnValue, localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+			return localVarReturnValue, localVarHTTPResponse, newErr
+		}
+		if localVarHTTPResponse.StatusCode == 403 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarReturnValue, localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+		}
+		return localVarReturnValue, localVarHTTPResponse, newErr
+	}
+
+	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+	if err != nil {
+		newErr := GenericOpenAPIError{
+			body:  localVarBody,
+			error: err.Error(),
+		}
+		return localVarReturnValue, localVarHTTPResponse, newErr
+	}
+
+	return localVarReturnValue, localVarHTTPResponse, nil
+}
diff --git a/airflow/api_role.go b/airflow/api_role.go
new file mode 100644
index 0000000..86b725d
--- /dev/null
+++ b/airflow/api_role.go
@@ -0,0 +1,759 @@
+// 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.
+
+/*
+ * 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 the [...]
+ *
+ * API version: 1.0.0
+ * Contact: dev@airflow.apache.org
+ */
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package airflow
+
+import (
+	"bytes"
+	_context "context"
+	_ioutil "io/ioutil"
+	_nethttp "net/http"
+	_neturl "net/url"
+	"strings"
+)
+
+// Linger please
+var (
+	_ _context.Context
+)
+
+// RoleApiService RoleApi service
+type RoleApiService service
+
+type ApiDeleteRoleRequest struct {
+	ctx _context.Context
+	ApiService *RoleApiService
+	roleName string
+}
+
+
+func (r ApiDeleteRoleRequest) Execute() (*_nethttp.Response, error) {
+	return r.ApiService.DeleteRoleExecute(r)
+}
+
+/*
+ * DeleteRole Delete a role
+ * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param roleName The role name
+ * @return ApiDeleteRoleRequest
+ */
+func (a *RoleApiService) DeleteRole(ctx _context.Context, roleName string) ApiDeleteRoleRequest {
+	return ApiDeleteRoleRequest{
+		ApiService: a,
+		ctx: ctx,
+		roleName: roleName,
+	}
+}
+
+/*
+ * Execute executes the request
+ */
+func (a *RoleApiService) DeleteRoleExecute(r ApiDeleteRoleRequest) (*_nethttp.Response, error) {
+	var (
+		localVarHTTPMethod   = _nethttp.MethodDelete
+		localVarPostBody     interface{}
+		localVarFormFileName string
+		localVarFileName     string
+		localVarFileBytes    []byte
+	)
+
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "RoleApiService.DeleteRole")
+	if err != nil {
+		return nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/roles/{role_name}"
+	localVarPath = strings.Replace(localVarPath, "{"+"role_name"+"}", _neturl.PathEscape(parameterToString(r.roleName, "")), -1)
+
+	localVarHeaderParams := make(map[string]string)
+	localVarQueryParams := _neturl.Values{}
+	localVarFormParams := _neturl.Values{}
+
+	// to determine the Content-Type header
+	localVarHTTPContentTypes := []string{}
+
+	// set Content-Type header
+	localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+	if localVarHTTPContentType != "" {
+		localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+	}
+
+	// to determine the Accept header
+	localVarHTTPHeaderAccepts := []string{"application/json"}
+
+	// set Accept header
+	localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+	if localVarHTTPHeaderAccept != "" {
+		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+	}
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	if err != nil {
+		return nil, err
+	}
+
+	localVarHTTPResponse, err := a.client.callAPI(req)
+	if err != nil || localVarHTTPResponse == nil {
+		return localVarHTTPResponse, err
+	}
+
+	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
+	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
+	if err != nil {
+		return localVarHTTPResponse, err
+	}
+
+	if localVarHTTPResponse.StatusCode >= 300 {
+		newErr := GenericOpenAPIError{
+			body:  localVarBody,
+			error: localVarHTTPResponse.Status,
+		}
+		if localVarHTTPResponse.StatusCode == 400 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+			return localVarHTTPResponse, newErr
+		}
+		if localVarHTTPResponse.StatusCode == 401 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+			return localVarHTTPResponse, newErr
+		}
+		if localVarHTTPResponse.StatusCode == 403 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+			return localVarHTTPResponse, newErr
+		}
+		if localVarHTTPResponse.StatusCode == 404 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+		}
+		return localVarHTTPResponse, newErr
+	}
+
+	return localVarHTTPResponse, nil
+}
+
+type ApiGetRoleRequest struct {
+	ctx _context.Context
+	ApiService *RoleApiService
+	roleName string
+}
+
+
+func (r ApiGetRoleRequest) Execute() (Role, *_nethttp.Response, error) {
+	return r.ApiService.GetRoleExecute(r)
+}
+
+/*
+ * GetRole Get a role
+ * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param roleName The role name
+ * @return ApiGetRoleRequest
+ */
+func (a *RoleApiService) GetRole(ctx _context.Context, roleName string) ApiGetRoleRequest {
+	return ApiGetRoleRequest{
+		ApiService: a,
+		ctx: ctx,
+		roleName: roleName,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return Role
+ */
+func (a *RoleApiService) GetRoleExecute(r ApiGetRoleRequest) (Role, *_nethttp.Response, error) {
+	var (
+		localVarHTTPMethod   = _nethttp.MethodGet
+		localVarPostBody     interface{}
+		localVarFormFileName string
+		localVarFileName     string
+		localVarFileBytes    []byte
+		localVarReturnValue  Role
+	)
+
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "RoleApiService.GetRole")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/roles/{role_name}"
+	localVarPath = strings.Replace(localVarPath, "{"+"role_name"+"}", _neturl.PathEscape(parameterToString(r.roleName, "")), -1)
+
+	localVarHeaderParams := make(map[string]string)
+	localVarQueryParams := _neturl.Values{}
+	localVarFormParams := _neturl.Values{}
+
+	// to determine the Content-Type header
+	localVarHTTPContentTypes := []string{}
+
+	// set Content-Type header
+	localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+	if localVarHTTPContentType != "" {
+		localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+	}
+
+	// to determine the Accept header
+	localVarHTTPHeaderAccepts := []string{"application/json"}
+
+	// set Accept header
+	localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+	if localVarHTTPHeaderAccept != "" {
+		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+	}
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	if err != nil {
+		return localVarReturnValue, nil, err
+	}
+
+	localVarHTTPResponse, err := a.client.callAPI(req)
+	if err != nil || localVarHTTPResponse == nil {
+		return localVarReturnValue, localVarHTTPResponse, err
+	}
+
+	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
+	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
+	if err != nil {
+		return localVarReturnValue, localVarHTTPResponse, err
+	}
+
+	if localVarHTTPResponse.StatusCode >= 300 {
+		newErr := GenericOpenAPIError{
+			body:  localVarBody,
+			error: localVarHTTPResponse.Status,
+		}
+		if localVarHTTPResponse.StatusCode == 401 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarReturnValue, localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+			return localVarReturnValue, localVarHTTPResponse, newErr
+		}
+		if localVarHTTPResponse.StatusCode == 403 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarReturnValue, localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+			return localVarReturnValue, localVarHTTPResponse, newErr
+		}
+		if localVarHTTPResponse.StatusCode == 404 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarReturnValue, localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+		}
+		return localVarReturnValue, localVarHTTPResponse, newErr
+	}
+
+	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+	if err != nil {
+		newErr := GenericOpenAPIError{
+			body:  localVarBody,
+			error: err.Error(),
+		}
+		return localVarReturnValue, localVarHTTPResponse, newErr
+	}
+
+	return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiGetRolesRequest struct {
+	ctx _context.Context
+	ApiService *RoleApiService
+	limit *int32
+	offset *int32
+	orderBy *string
+}
+
+func (r ApiGetRolesRequest) Limit(limit int32) ApiGetRolesRequest {
+	r.limit = &limit
+	return r
+}
+func (r ApiGetRolesRequest) Offset(offset int32) ApiGetRolesRequest {
+	r.offset = &offset
+	return r
+}
+func (r ApiGetRolesRequest) OrderBy(orderBy string) ApiGetRolesRequest {
+	r.orderBy = &orderBy
+	return r
+}
+
+func (r ApiGetRolesRequest) Execute() (RoleCollection, *_nethttp.Response, error) {
+	return r.ApiService.GetRolesExecute(r)
+}
+
+/*
+ * GetRoles List roles
+ * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @return ApiGetRolesRequest
+ */
+func (a *RoleApiService) GetRoles(ctx _context.Context) ApiGetRolesRequest {
+	return ApiGetRolesRequest{
+		ApiService: a,
+		ctx: ctx,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return RoleCollection
+ */
+func (a *RoleApiService) GetRolesExecute(r ApiGetRolesRequest) (RoleCollection, *_nethttp.Response, error) {
+	var (
+		localVarHTTPMethod   = _nethttp.MethodGet
+		localVarPostBody     interface{}
+		localVarFormFileName string
+		localVarFileName     string
+		localVarFileBytes    []byte
+		localVarReturnValue  RoleCollection
+	)
+
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "RoleApiService.GetRoles")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/roles"
+
+	localVarHeaderParams := make(map[string]string)
+	localVarQueryParams := _neturl.Values{}
+	localVarFormParams := _neturl.Values{}
+
+	if r.limit != nil {
+		localVarQueryParams.Add("limit", parameterToString(*r.limit, ""))
+	}
+	if r.offset != nil {
+		localVarQueryParams.Add("offset", parameterToString(*r.offset, ""))
+	}
+	if r.orderBy != nil {
+		localVarQueryParams.Add("order_by", parameterToString(*r.orderBy, ""))
+	}
+	// to determine the Content-Type header
+	localVarHTTPContentTypes := []string{}
+
+	// set Content-Type header
+	localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+	if localVarHTTPContentType != "" {
+		localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+	}
+
+	// to determine the Accept header
+	localVarHTTPHeaderAccepts := []string{"application/json"}
+
+	// set Accept header
+	localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+	if localVarHTTPHeaderAccept != "" {
+		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+	}
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	if err != nil {
+		return localVarReturnValue, nil, err
+	}
+
+	localVarHTTPResponse, err := a.client.callAPI(req)
+	if err != nil || localVarHTTPResponse == nil {
+		return localVarReturnValue, localVarHTTPResponse, err
+	}
+
+	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
+	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
+	if err != nil {
+		return localVarReturnValue, localVarHTTPResponse, err
+	}
+
+	if localVarHTTPResponse.StatusCode >= 300 {
+		newErr := GenericOpenAPIError{
+			body:  localVarBody,
+			error: localVarHTTPResponse.Status,
+		}
+		if localVarHTTPResponse.StatusCode == 401 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarReturnValue, localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+			return localVarReturnValue, localVarHTTPResponse, newErr
+		}
+		if localVarHTTPResponse.StatusCode == 403 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarReturnValue, localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+		}
+		return localVarReturnValue, localVarHTTPResponse, newErr
+	}
+
+	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+	if err != nil {
+		newErr := GenericOpenAPIError{
+			body:  localVarBody,
+			error: err.Error(),
+		}
+		return localVarReturnValue, localVarHTTPResponse, newErr
+	}
+
+	return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiPatchRoleRequest struct {
+	ctx _context.Context
+	ApiService *RoleApiService
+	roleName string
+	role *Role
+	updateMask *[]string
+}
+
+func (r ApiPatchRoleRequest) Role(role Role) ApiPatchRoleRequest {
+	r.role = &role
+	return r
+}
+func (r ApiPatchRoleRequest) UpdateMask(updateMask []string) ApiPatchRoleRequest {
+	r.updateMask = &updateMask
+	return r
+}
+
+func (r ApiPatchRoleRequest) Execute() (Role, *_nethttp.Response, error) {
+	return r.ApiService.PatchRoleExecute(r)
+}
+
+/*
+ * PatchRole Update a role
+ * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param roleName The role name
+ * @return ApiPatchRoleRequest
+ */
+func (a *RoleApiService) PatchRole(ctx _context.Context, roleName string) ApiPatchRoleRequest {
+	return ApiPatchRoleRequest{
+		ApiService: a,
+		ctx: ctx,
+		roleName: roleName,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return Role
+ */
+func (a *RoleApiService) PatchRoleExecute(r ApiPatchRoleRequest) (Role, *_nethttp.Response, error) {
+	var (
+		localVarHTTPMethod   = _nethttp.MethodPatch
+		localVarPostBody     interface{}
+		localVarFormFileName string
+		localVarFileName     string
+		localVarFileBytes    []byte
+		localVarReturnValue  Role
+	)
+
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "RoleApiService.PatchRole")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/roles/{role_name}"
+	localVarPath = strings.Replace(localVarPath, "{"+"role_name"+"}", _neturl.PathEscape(parameterToString(r.roleName, "")), -1)
+
+	localVarHeaderParams := make(map[string]string)
+	localVarQueryParams := _neturl.Values{}
+	localVarFormParams := _neturl.Values{}
+	if r.role == nil {
+		return localVarReturnValue, nil, reportError("role is required and must be specified")
+	}
+
+	if r.updateMask != nil {
+		localVarQueryParams.Add("update_mask", parameterToString(*r.updateMask, "csv"))
+	}
+	// to determine the Content-Type header
+	localVarHTTPContentTypes := []string{"application/json"}
+
+	// set Content-Type header
+	localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+	if localVarHTTPContentType != "" {
+		localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+	}
+
+	// to determine the Accept header
+	localVarHTTPHeaderAccepts := []string{"application/json"}
+
+	// set Accept header
+	localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+	if localVarHTTPHeaderAccept != "" {
+		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+	}
+	// body params
+	localVarPostBody = r.role
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	if err != nil {
+		return localVarReturnValue, nil, err
+	}
+
+	localVarHTTPResponse, err := a.client.callAPI(req)
+	if err != nil || localVarHTTPResponse == nil {
+		return localVarReturnValue, localVarHTTPResponse, err
+	}
+
+	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
+	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
+	if err != nil {
+		return localVarReturnValue, localVarHTTPResponse, err
+	}
+
+	if localVarHTTPResponse.StatusCode >= 300 {
+		newErr := GenericOpenAPIError{
+			body:  localVarBody,
+			error: localVarHTTPResponse.Status,
+		}
+		if localVarHTTPResponse.StatusCode == 400 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarReturnValue, localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+			return localVarReturnValue, localVarHTTPResponse, newErr
+		}
+		if localVarHTTPResponse.StatusCode == 401 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarReturnValue, localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+			return localVarReturnValue, localVarHTTPResponse, newErr
+		}
+		if localVarHTTPResponse.StatusCode == 403 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarReturnValue, localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+			return localVarReturnValue, localVarHTTPResponse, newErr
+		}
+		if localVarHTTPResponse.StatusCode == 404 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarReturnValue, localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+		}
+		return localVarReturnValue, localVarHTTPResponse, newErr
+	}
+
+	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+	if err != nil {
+		newErr := GenericOpenAPIError{
+			body:  localVarBody,
+			error: err.Error(),
+		}
+		return localVarReturnValue, localVarHTTPResponse, newErr
+	}
+
+	return localVarReturnValue, localVarHTTPResponse, nil
+}
+
+type ApiPostRoleRequest struct {
+	ctx _context.Context
+	ApiService *RoleApiService
+	role *Role
+}
+
+func (r ApiPostRoleRequest) Role(role Role) ApiPostRoleRequest {
+	r.role = &role
+	return r
+}
+
+func (r ApiPostRoleRequest) Execute() (Role, *_nethttp.Response, error) {
+	return r.ApiService.PostRoleExecute(r)
+}
+
+/*
+ * PostRole Create a role
+ * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @return ApiPostRoleRequest
+ */
+func (a *RoleApiService) PostRole(ctx _context.Context) ApiPostRoleRequest {
+	return ApiPostRoleRequest{
+		ApiService: a,
+		ctx: ctx,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return Role
+ */
+func (a *RoleApiService) PostRoleExecute(r ApiPostRoleRequest) (Role, *_nethttp.Response, error) {
+	var (
+		localVarHTTPMethod   = _nethttp.MethodPost
+		localVarPostBody     interface{}
+		localVarFormFileName string
+		localVarFileName     string
+		localVarFileBytes    []byte
+		localVarReturnValue  Role
+	)
+
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "RoleApiService.PostRole")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
+
+	localVarPath := localBasePath + "/roles"
+
+	localVarHeaderParams := make(map[string]string)
+	localVarQueryParams := _neturl.Values{}
+	localVarFormParams := _neturl.Values{}
+	if r.role == nil {
+		return localVarReturnValue, nil, reportError("role is required and must be specified")
+	}
+
+	// to determine the Content-Type header
+	localVarHTTPContentTypes := []string{"application/json"}
+
+	// set Content-Type header
+	localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+	if localVarHTTPContentType != "" {
+		localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+	}
+
+	// to determine the Accept header
+	localVarHTTPHeaderAccepts := []string{"application/json"}
+
+	// set Accept header
+	localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+	if localVarHTTPHeaderAccept != "" {
+		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+	}
+	// body params
+	localVarPostBody = r.role
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	if err != nil {
+		return localVarReturnValue, nil, err
+	}
+
+	localVarHTTPResponse, err := a.client.callAPI(req)
+	if err != nil || localVarHTTPResponse == nil {
+		return localVarReturnValue, localVarHTTPResponse, err
+	}
+
+	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
+	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
+	if err != nil {
+		return localVarReturnValue, localVarHTTPResponse, err
+	}
+
+	if localVarHTTPResponse.StatusCode >= 300 {
+		newErr := GenericOpenAPIError{
+			body:  localVarBody,
+			error: localVarHTTPResponse.Status,
+		}
+		if localVarHTTPResponse.StatusCode == 400 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarReturnValue, localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+			return localVarReturnValue, localVarHTTPResponse, newErr
+		}
+		if localVarHTTPResponse.StatusCode == 401 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarReturnValue, localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+			return localVarReturnValue, localVarHTTPResponse, newErr
+		}
+		if localVarHTTPResponse.StatusCode == 403 {
+			var v Error
+			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+			if err != nil {
+				newErr.error = err.Error()
+				return localVarReturnValue, localVarHTTPResponse, newErr
+			}
+			newErr.model = v
+		}
+		return localVarReturnValue, localVarHTTPResponse, newErr
+	}
+
+	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+	if err != nil {
+		newErr := GenericOpenAPIError{
+			body:  localVarBody,
+			error: err.Error(),
+		}
+		return localVarReturnValue, localVarHTTPResponse, newErr
+	}
+
+	return localVarReturnValue, localVarHTTPResponse, nil
+}
diff --git a/airflow/api_task_instance.go b/airflow/api_task_instance.go
index 91254cb..3b0df86 100644
--- a/airflow/api_task_instance.go
+++ b/airflow/api_task_instance.go
@@ -18,22 +18,24 @@
 /*
  * Airflow API (Stable)
  *
- * Apache Airflow management API.
+ * # 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 the [...]
  *
  * API version: 1.0.0
  * Contact: dev@airflow.apache.org
- * Generated by: OpenAPI Generator (https://openapi-generator.tech)
  */
 
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
 package airflow
 
 import (
+	"bytes"
 	_context "context"
 	_ioutil "io/ioutil"
 	_nethttp "net/http"
 	_neturl "net/url"
 	"strings"
-	"github.com/antihax/optional"
+	"time"
 	"reflect"
 )
 
@@ -45,15 +47,44 @@ var (
 // TaskInstanceApiService TaskInstanceApi service
 type TaskInstanceApiService service
 
+type ApiGetExtraLinksRequest struct {
+	ctx _context.Context
+	ApiService *TaskInstanceApiService
+	dagId string
+	dagRunId string
+	taskId string
+}
+
+
+func (r ApiGetExtraLinksRequest) Execute() (ExtraLinkCollection, *_nethttp.Response, error) {
+	return r.ApiService.GetExtraLinksExecute(r)
+}
+
 /*
-GetExtraLinks Get extra links for task instance
+ * GetExtraLinks List extra links
+ * List extra links for task instance.
+
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
  * @param dagId The DAG ID.
- * @param dagRunId The DAG Run ID.
- * @param taskId The Task ID.
-@return ExtraLinkCollection
-*/
-func (a *TaskInstanceApiService) GetExtraLinks(ctx _context.Context, dagId string, dagRunId string, taskId string) (ExtraLinkCollection, *_nethttp.Response, error) {
+ * @param dagRunId The DAG run ID.
+ * @param taskId The task ID.
+ * @return ApiGetExtraLinksRequest
+ */
+func (a *TaskInstanceApiService) GetExtraLinks(ctx _context.Context, dagId string, dagRunId string, taskId string) ApiGetExtraLinksRequest {
+	return ApiGetExtraLinksRequest{
+		ApiService: a,
+		ctx: ctx,
+		dagId: dagId,
+		dagRunId: dagRunId,
+		taskId: taskId,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return ExtraLinkCollection
+ */
+func (a *TaskInstanceApiService) GetExtraLinksExecute(r ApiGetExtraLinksRequest) (ExtraLinkCollection, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodGet
 		localVarPostBody     interface{}
@@ -63,13 +94,15 @@ func (a *TaskInstanceApiService) GetExtraLinks(ctx _context.Context, dagId strin
 		localVarReturnValue  ExtraLinkCollection
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/links"
-	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.QueryEscape(parameterToString(dagId, "")) , -1)
-
-	localVarPath = strings.Replace(localVarPath, "{"+"dag_run_id"+"}", _neturl.QueryEscape(parameterToString(dagRunId, "")) , -1)
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "TaskInstanceApiService.GetExtraLinks")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
 
-	localVarPath = strings.Replace(localVarPath, "{"+"task_id"+"}", _neturl.QueryEscape(parameterToString(taskId, "")) , -1)
+	localVarPath := localBasePath + "/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/links"
+	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.PathEscape(parameterToString(r.dagId, "")), -1)
+	localVarPath = strings.Replace(localVarPath, "{"+"dag_run_id"+"}", _neturl.PathEscape(parameterToString(r.dagRunId, "")), -1)
+	localVarPath = strings.Replace(localVarPath, "{"+"task_id"+"}", _neturl.PathEscape(parameterToString(r.taskId, "")), -1)
 
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
@@ -92,18 +125,19 @@ func (a *TaskInstanceApiService) GetExtraLinks(ctx _context.Context, dagId strin
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
@@ -157,26 +191,56 @@ func (a *TaskInstanceApiService) GetExtraLinks(ctx _context.Context, dagId strin
 	return localVarReturnValue, localVarHTTPResponse, nil
 }
 
-// GetLogOpts Optional parameters for the method 'GetLog'
-type GetLogOpts struct {
-    FullContent optional.Bool
-    Token optional.String
+type ApiGetLogRequest struct {
+	ctx _context.Context
+	ApiService *TaskInstanceApiService
+	dagId string
+	dagRunId string
+	taskId string
+	taskTryNumber int32
+	fullContent *bool
+	token *string
+}
+
+func (r ApiGetLogRequest) FullContent(fullContent bool) ApiGetLogRequest {
+	r.fullContent = &fullContent
+	return r
+}
+func (r ApiGetLogRequest) Token(token string) ApiGetLogRequest {
+	r.token = &token
+	return r
+}
+
+func (r ApiGetLogRequest) Execute() (InlineResponse200, *_nethttp.Response, error) {
+	return r.ApiService.GetLogExecute(r)
 }
 
 /*
-GetLog Get logs for a task instance
-Get logs for a specific task instance and its try number
+ * GetLog Get logs
+ * Get logs for a specific task instance and its try number.
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
  * @param dagId The DAG ID.
- * @param dagRunId The DAG Run ID.
- * @param taskId The Task ID.
- * @param taskTryNumber The Task Try Number.
- * @param optional nil or *GetLogOpts - Optional Parameters:
- * @param "FullContent" (optional.Bool) -  A full content will be returned. By default, only the first fragment will be returned. 
- * @param "Token" (optional.String) -  A token that allows you to continue fetching logs. If passed, it will specify the location from which the download should be continued. 
-@return InlineResponse200
-*/
-func (a *TaskInstanceApiService) GetLog(ctx _context.Context, dagId string, dagRunId string, taskId string, taskTryNumber int32, localVarOptionals *GetLogOpts) (InlineResponse200, *_nethttp.Response, error) {
+ * @param dagRunId The DAG run ID.
+ * @param taskId The task ID.
+ * @param taskTryNumber The task try number.
+ * @return ApiGetLogRequest
+ */
+func (a *TaskInstanceApiService) GetLog(ctx _context.Context, dagId string, dagRunId string, taskId string, taskTryNumber int32) ApiGetLogRequest {
+	return ApiGetLogRequest{
+		ApiService: a,
+		ctx: ctx,
+		dagId: dagId,
+		dagRunId: dagRunId,
+		taskId: taskId,
+		taskTryNumber: taskTryNumber,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return InlineResponse200
+ */
+func (a *TaskInstanceApiService) GetLogExecute(r ApiGetLogRequest) (InlineResponse200, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodGet
 		localVarPostBody     interface{}
@@ -186,25 +250,26 @@ func (a *TaskInstanceApiService) GetLog(ctx _context.Context, dagId string, dagR
 		localVarReturnValue  InlineResponse200
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/logs/{task_try_number}"
-	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.QueryEscape(parameterToString(dagId, "")) , -1)
-
-	localVarPath = strings.Replace(localVarPath, "{"+"dag_run_id"+"}", _neturl.QueryEscape(parameterToString(dagRunId, "")) , -1)
-
-	localVarPath = strings.Replace(localVarPath, "{"+"task_id"+"}", _neturl.QueryEscape(parameterToString(taskId, "")) , -1)
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "TaskInstanceApiService.GetLog")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
 
-	localVarPath = strings.Replace(localVarPath, "{"+"task_try_number"+"}", _neturl.QueryEscape(parameterToString(taskTryNumber, "")) , -1)
+	localVarPath := localBasePath + "/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/logs/{task_try_number}"
+	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.PathEscape(parameterToString(r.dagId, "")), -1)
+	localVarPath = strings.Replace(localVarPath, "{"+"dag_run_id"+"}", _neturl.PathEscape(parameterToString(r.dagRunId, "")), -1)
+	localVarPath = strings.Replace(localVarPath, "{"+"task_id"+"}", _neturl.PathEscape(parameterToString(r.taskId, "")), -1)
+	localVarPath = strings.Replace(localVarPath, "{"+"task_try_number"+"}", _neturl.PathEscape(parameterToString(r.taskTryNumber, "")), -1)
 
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
 	localVarFormParams := _neturl.Values{}
 
-	if localVarOptionals != nil && localVarOptionals.FullContent.IsSet() {
-		localVarQueryParams.Add("full_content", parameterToString(localVarOptionals.FullContent.Value(), ""))
+	if r.fullContent != nil {
+		localVarQueryParams.Add("full_content", parameterToString(*r.fullContent, ""))
 	}
-	if localVarOptionals != nil && localVarOptionals.Token.IsSet() {
-		localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), ""))
+	if r.token != nil {
+		localVarQueryParams.Add("token", parameterToString(*r.token, ""))
 	}
 	// to determine the Content-Type header
 	localVarHTTPContentTypes := []string{}
@@ -223,18 +288,19 @@ func (a *TaskInstanceApiService) GetLog(ctx _context.Context, dagId string, dagR
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
@@ -298,15 +364,42 @@ func (a *TaskInstanceApiService) GetLog(ctx _context.Context, dagId string, dagR
 	return localVarReturnValue, localVarHTTPResponse, nil
 }
 
+type ApiGetTaskInstanceRequest struct {
+	ctx _context.Context
+	ApiService *TaskInstanceApiService
+	dagId string
+	dagRunId string
+	taskId string
+}
+
+
+func (r ApiGetTaskInstanceRequest) Execute() (TaskInstance, *_nethttp.Response, error) {
+	return r.ApiService.GetTaskInstanceExecute(r)
+}
+
 /*
-GetTaskInstance Get a task instance
+ * GetTaskInstance Get a task instance
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
  * @param dagId The DAG ID.
- * @param dagRunId The DAG Run ID.
- * @param taskId The Task ID.
-@return TaskInstance
-*/
-func (a *TaskInstanceApiService) GetTaskInstance(ctx _context.Context, dagId string, dagRunId string, taskId string) (TaskInstance, *_nethttp.Response, error) {
+ * @param dagRunId The DAG run ID.
+ * @param taskId The task ID.
+ * @return ApiGetTaskInstanceRequest
+ */
+func (a *TaskInstanceApiService) GetTaskInstance(ctx _context.Context, dagId string, dagRunId string, taskId string) ApiGetTaskInstanceRequest {
+	return ApiGetTaskInstanceRequest{
+		ApiService: a,
+		ctx: ctx,
+		dagId: dagId,
+		dagRunId: dagRunId,
+		taskId: taskId,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return TaskInstance
+ */
+func (a *TaskInstanceApiService) GetTaskInstanceExecute(r ApiGetTaskInstanceRequest) (TaskInstance, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodGet
 		localVarPostBody     interface{}
@@ -316,13 +409,15 @@ func (a *TaskInstanceApiService) GetTaskInstance(ctx _context.Context, dagId str
 		localVarReturnValue  TaskInstance
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}"
-	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.QueryEscape(parameterToString(dagId, "")) , -1)
-
-	localVarPath = strings.Replace(localVarPath, "{"+"dag_run_id"+"}", _neturl.QueryEscape(parameterToString(dagRunId, "")) , -1)
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "TaskInstanceApiService.GetTaskInstance")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
 
-	localVarPath = strings.Replace(localVarPath, "{"+"task_id"+"}", _neturl.QueryEscape(parameterToString(taskId, "")) , -1)
+	localVarPath := localBasePath + "/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}"
+	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.PathEscape(parameterToString(r.dagId, "")), -1)
+	localVarPath = strings.Replace(localVarPath, "{"+"dag_run_id"+"}", _neturl.PathEscape(parameterToString(r.dagRunId, "")), -1)
+	localVarPath = strings.Replace(localVarPath, "{"+"task_id"+"}", _neturl.PathEscape(parameterToString(r.taskId, "")), -1)
 
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
@@ -345,18 +440,19 @@ func (a *TaskInstanceApiService) GetTaskInstance(ctx _context.Context, dagId str
 	if localVarHTTPHeaderAccept != "" {
 		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
 	}
-	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
 	if err != nil {
 		return localVarReturnValue, nil, err
 	}
 
-	localVarHTTPResponse, err := a.client.callAPI(r)
+	localVarHTTPResponse, err := a.client.callAPI(req)
 	if err != nil || localVarHTTPResponse == nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
 
 	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
 	localVarHTTPResponse.Body.Close()
+	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
 	if err != nil {
 		return localVarReturnValue, localVarHTTPResponse, err
 	}
@@ -410,46 +506,106 @@ func (a *TaskInstanceApiService) GetTaskInstance(ctx _context.Context, dagId str
 	return localVarReturnValue, localVarHTTPResponse, nil
 }
 
-// GetTaskInstancesOpts Optional parameters for the method 'GetTaskInstances'
-type GetTaskInstancesOpts struct {
-    ExecutionDateGte optional.Time
-    ExecutionDateLte optional.Time
-    StartDateGte optional.Time
-    StartDateLte optional.Time
-    EndDateGte optional.Time
-    EndDateLte optional.Time
-    DurationGte optional.Float32
-    DurationLte optional.Float32
-    State optional.Interface
-    Pool optional.Interface
-    Queue optional.Interface
-    Limit optional.Int32
-    Offset optional.Int32
+type ApiGetTaskInstancesRequest struct {
+	ctx _context.Context
+	ApiService *TaskInstanceApiService
+	dagId string
+	dagRunId string
+	executionDateGte *time.Time
+	executionDateLte *time.Time
+	startDateGte *time.Time
+	startDateLte *time.Time
+	endDateGte *time.Time
+	endDateLte *time.Time
+	durationGte *float32
+	durationLte *float32
+	state *[]string
+	pool *[]string
+	queue *[]string
+	limit *int32
+	offset *int32
+}
+
+func (r ApiGetTaskInstancesRequest) ExecutionDateGte(executionDateGte time.Time) ApiGetTaskInstancesRequest {
+	r.executionDateGte = &executionDateGte
+	return r
+}
+func (r ApiGetTaskInstancesRequest) ExecutionDateLte(executionDateLte time.Time) ApiGetTaskInstancesRequest {
+	r.executionDateLte = &executionDateLte
+	return r
+}
+func (r ApiGetTaskInstancesRequest) StartDateGte(startDateGte time.Time) ApiGetTaskInstancesRequest {
+	r.startDateGte = &startDateGte
+	return r
+}
+func (r ApiGetTaskInstancesRequest) StartDateLte(startDateLte time.Time) ApiGetTaskInstancesRequest {
+	r.startDateLte = &startDateLte
+	return r
+}
+func (r ApiGetTaskInstancesRequest) EndDateGte(endDateGte time.Time) ApiGetTaskInstancesRequest {
+	r.endDateGte = &endDateGte
+	return r
+}
+func (r ApiGetTaskInstancesRequest) EndDateLte(endDateLte time.Time) ApiGetTaskInstancesRequest {
+	r.endDateLte = &endDateLte
+	return r
+}
+func (r ApiGetTaskInstancesRequest) DurationGte(durationGte float32) ApiGetTaskInstancesRequest {
+	r.durationGte = &durationGte
+	return r
+}
+func (r ApiGetTaskInstancesRequest) DurationLte(durationLte float32) ApiGetTaskInstancesRequest {
+	r.durationLte = &durationLte
+	return r
+}
+func (r ApiGetTaskInstancesRequest) State(state []string) ApiGetTaskInstancesRequest {
+	r.state = &state
+	return r
+}
+func (r ApiGetTaskInstancesRequest) Pool(pool []string) ApiGetTaskInstancesRequest {
+	r.pool = &pool
+	return r
+}
+func (r ApiGetTaskInstancesRequest) Queue(queue []string) ApiGetTaskInstancesRequest {
+	r.queue = &queue
+	return r
+}
+func (r ApiGetTaskInstancesRequest) Limit(limit int32) ApiGetTaskInstancesRequest {
+	r.limit = &limit
+	return r
+}
+func (r ApiGetTaskInstancesRequest) Offset(offset int32) ApiGetTaskInstancesRequest {
+	r.offset = &offset
+	return r
+}
+
+func (r ApiGetTaskInstancesRequest) Execute() (TaskInstanceCollection, *_nethttp.Response, error) {
+	return r.ApiService.GetTaskInstancesExecute(r)
 }
 
 /*
-GetTaskInstances Get a list of task instance of DAG
-This endpoint allows specifying &#x60;~&#x60; as the dag_id, dag_run_id to retrieve DAG Runs for all DAGs and DAG Runs. 
+ * GetTaskInstances List task instances
+ * This endpoint allows specifying `~` as the dag_id, dag_run_id to retrieve DAG runs for all DAGs and DAG runs.
+
  * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
  * @param dagId The DAG ID.
- * @param dagRunId The DAG Run ID.
- * @param optional nil or *GetTaskInstancesOpts - Optional Parameters:
- * @param "ExecutionDateGte" (optional.Time) -  Returns objects greater or equal to the specified date. This can be combined with execution_date_lte parameter to receive only the selected period. 
- * @param "ExecutionDateLte" (optional.Time) -  Returns objects less than or equal to the specified date. This can be combined with execution_date_gte parameter to receive only the selected period. 
- * @param "StartDateGte" (optional.Time) -  Returns objects greater or equal the specified date. This can be combined with startd_ate_lte parameter to receive only the selected period. 
- * @param "StartDateLte" (optional.Time) -  Returns objects less or equal the specified date. This can be combined with start_date_gte parameter to receive only the selected period. 
- * @param "EndDateGte" (optional.Time) -  Returns objects greater or equal the specified date. This can be combined with start_date_lte parameter to receive only the selected period. 
- * @param "EndDateLte" (optional.Time) -  Returns objects less than or equal to the specified date. This can be combined with start_date_gte parameter to receive only the selected period. 
- * @param "DurationGte" (optional.Float32) -  Returns objects greater than or equal to the specified values. This can be combined with duration_lte parameter to receive only the selected period. 
- * @param "DurationLte" (optional.Float32) -  Returns objects less than or equal to the specified values. This can be combined with duration_gte parameter to receive only the selected range. 
- * @param "State" (optional.Interface of []string) -  The value can be repeated to retrieve multiple matching values (OR condition).
- * @param "Pool" (optional.Interface of []string) -  The value can be repeated to retrieve multiple matching values (OR condition).
- * @param "Queue" (optional.Interface of []string) -  The value can be repeated to retrieve multiple matching values (OR condition).
- * @param "Limit" (optional.Int32) -  The numbers of items to return.
- * @param "Offset" (optional.Int32) -  The number of items to skip before starting to collect the result set.
-@return TaskInstanceCollection
-*/
-func (a *TaskInstanceApiService) GetTaskInstances(ctx _context.Context, dagId string, dagRunId string, localVarOptionals *GetTaskInstancesOpts) (TaskInstanceCollection, *_nethttp.Response, error) {
+ * @param dagRunId The DAG run ID.
+ * @return ApiGetTaskInstancesRequest
+ */
+func (a *TaskInstanceApiService) GetTaskInstances(ctx _context.Context, dagId string, dagRunId string) ApiGetTaskInstancesRequest {
+	return ApiGetTaskInstancesRequest{
+		ApiService: a,
+		ctx: ctx,
+		dagId: dagId,
+		dagRunId: dagRunId,
+	}
+}
+
+/*
+ * Execute executes the request
+ * @return TaskInstanceCollection
+ */
+func (a *TaskInstanceApiService) GetTaskInstancesExecute(r ApiGetTaskInstancesRequest) (TaskInstanceCollection, *_nethttp.Response, error) {
 	var (
 		localVarHTTPMethod   = _nethttp.MethodGet
 		localVarPostBody     interface{}
@@ -459,42 +615,45 @@ func (a *TaskInstanceApiService) GetTaskInstances(ctx _context.Context, dagId st
 		localVarReturnValue  TaskInstanceCollection
 	)
 
-	// create path and map variables
-	localVarPath := a.client.cfg.BasePath + "/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances"
-	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.QueryEscape(parameterToString(dagId, "")) , -1)
+	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "TaskInstanceApiService.GetTaskInstances")
+	if err != nil {
+		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
+	}
 
-	localVarPath = strings.Replace(localVarPath, "{"+"dag_run_id"+"}", _neturl.QueryEscape(parameterToString(dagRunId, "")) , -1)
+	localVarPath := localBasePath + "/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances"
+	localVarPath = strings.Replace(localVarPath, "{"+"dag_id"+"}", _neturl.PathEscape(parameterToString(r.dagId, "")), -1)
+	localVarPath = strings.Replace(localVarPath, "{"+"dag_run_id"+"}", _neturl.PathEscape(parameterToString(r.dagRunId, "")), -1)
 
 	localVarHeaderParams := make(map[string]string)
 	localVarQueryParams := _neturl.Values{}
 	localVarFormParams := _neturl.Values{}
 
-	if localVarOptionals != nil && localVarOptionals.ExecutionDateGte.IsSet() {
-		localVarQueryParams.Add("execution_date_gte", parameterToString(localVarOptionals.ExecutionDateGte.Value(), ""))
+	if r.executionDateGte != nil {
+		localVarQueryParams.Add("execution_date_gte", parameterToString(*r.executionDateGte, ""))
 	}
-	if localVarOptionals != nil && localVarOptionals.ExecutionDateLte.IsSet() {
-		localVarQueryParams.Add("execution_date_lte", parameterToString(localVarOptionals.ExecutionDateLte.Value(), ""))
+	if r.executionDateLte != nil {
+		localVarQueryParams.Add("execution_date_lte", parameterToString(*r.executionDateLte, ""))
 	}
-	if localVarOptionals != nil && localVarOptionals.StartDateGte.IsSet() {
-		localVarQueryParams.Add("start_date_gte", parameterToString(localVarOptionals.StartDateGte.Value(), ""))
... 40291 lines suppressed ...