#
# 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.
# fmt:, off
"""Hooks."""
from __future__ import annotations

from airflow.utils.deprecation_tools import add_deprecated_classes

__deprecated_classes = {
    'S3_hook': {
        'S3Hook': 'airflow.providers.amazon.aws.hooks.s3.S3Hook',
        'provide_bucket_name': 'airflow.providers.amazon.aws.hooks.s3.provide_bucket_name',
    },
    'base_hook': {
        'BaseHook': 'airflow.hooks.base.BaseHook',
    },
    'dbapi_hook': {
        'DbApiHook': 'airflow.providers.common.sql.hooks.sql.DbApiHook',
    },
    'docker_hook': {
        'DockerHook': 'airflow.providers.docker.hooks.docker.DockerHook',
    },
    'druid_hook': {
        'DruidDbApiHook': 'airflow.providers.apache.druid.hooks.druid.DruidDbApiHook',
        'DruidHook': 'airflow.providers.apache.druid.hooks.druid.DruidHook',
    },
    'hdfs_hook': {
        'HDFSHook': 'airflow.providers.apache.hdfs.hooks.hdfs.HDFSHook',
        'HDFSHookException': 'airflow.providers.apache.hdfs.hooks.hdfs.HDFSHookException',
    },
    'hive_hooks': {
        'HIVE_QUEUE_PRIORITIES': 'airflow.providers.apache.hive.hooks.hive.HIVE_QUEUE_PRIORITIES',
        'HiveCliHook': 'airflow.providers.apache.hive.hooks.hive.HiveCliHook',
        'HiveMetastoreHook': 'airflow.providers.apache.hive.hooks.hive.HiveMetastoreHook',
        'HiveServer2Hook': 'airflow.providers.apache.hive.hooks.hive.HiveServer2Hook',
    },
    'http_hook': {
        'HttpHook': 'airflow.providers.http.hooks.http.HttpHook',
    },
    'jdbc_hook': {
        'JdbcHook': 'airflow.providers.jdbc.hooks.jdbc.JdbcHook',
        'jaydebeapi': 'airflow.providers.jdbc.hooks.jdbc.jaydebeapi',
    },
    'mssql_hook': {
        'MsSqlHook': 'airflow.providers.microsoft.mssql.hooks.mssql.MsSqlHook',
    },
    'mysql_hook': {
        'MySqlHook': 'airflow.providers.mysql.hooks.mysql.MySqlHook',
    },
    'oracle_hook': {
        'OracleHook': 'airflow.providers.oracle.hooks.oracle.OracleHook',
    },
    'pig_hook': {
        'PigCliHook': 'airflow.providers.apache.pig.hooks.pig.PigCliHook',
    },
    'postgres_hook': {
        'PostgresHook': 'airflow.providers.postgres.hooks.postgres.PostgresHook',
    },
    'presto_hook': {
        'PrestoHook': 'airflow.providers.presto.hooks.presto.PrestoHook',
    },
    'samba_hook': {
        'SambaHook': 'airflow.providers.samba.hooks.samba.SambaHook',
    },
    'slack_hook': {
        'SlackHook': 'airflow.providers.slack.hooks.slack.SlackHook',
    },
    'sqlite_hook': {
        'SqliteHook': 'airflow.providers.sqlite.hooks.sqlite.SqliteHook',
    },
    'webhdfs_hook': {
        'WebHDFSHook': 'airflow.providers.apache.hdfs.hooks.webhdfs.WebHDFSHook',
    },
    'zendesk_hook': {
        'ZendeskHook': 'airflow.providers.zendesk.hooks.zendesk.ZendeskHook',
    },
}

add_deprecated_classes(__deprecated_classes, __name__)
