// File: crates/hyperswitch_connectors/src/constants.rs

/// Header Constants
pub(crate) mod headers {
    pub(crate) const ACCEPT: &str = "Accept";
    pub(crate) const API_KEY: &str = "API-KEY";
    pub(crate) const APIKEY: &str = "apikey";
    pub(crate) const API_TOKEN: &str = "Api-Token";
    pub(crate) const AUTHORIZATION: &str = "Authorization";
    pub(crate) const CONTENT_TYPE: &str = "Content-Type";
    pub(crate) const DATE: &str = "Date";
    pub(crate) const IDEMPOTENCY_KEY: &str = "Idempotency-Key";
    pub(crate) const MESSAGE_SIGNATURE: &str = "Message-Signature";
    pub(crate) const MERCHANT_ID: &str = "Merchant-ID";
    pub(crate) const MERCHANTID: &str = "MerchantID";
    pub(crate) const MERCHANT_TOKEN: &str = "MerchantToken";
    pub(crate) const REQUEST_ID: &str = "request-id";
    pub(crate) const NONCE: &str = "nonce";
    pub(crate) const TIMESTAMP: &str = "Timestamp";
    pub(crate) const TOKEN: &str = "token";
    pub(crate) const X_ACCEPT_VERSION: &str = "X-Accept-Version";
    pub(crate) const X_CC_API_KEY: &str = "X-CC-Api-Key";
    pub(crate) const X_CC_VERSION: &str = "X-CC-Version";
    pub(crate) const X_DATE: &str = "X-Date";
    pub(crate) const X_LOGIN: &str = "X-Login";
    pub(crate) const X_NN_ACCESS_KEY: &str = "X-NN-Access-Key";
    pub(crate) const X_TRANS_KEY: &str = "X-Trans-Key";
    pub(crate) const X_RANDOM_VALUE: &str = "X-RandomValue";
    pub(crate) const X_REQUEST_DATE: &str = "X-RequestDate";
    pub(crate) const X_VERSION: &str = "X-Version";
    pub(crate) const X_API_KEY: &str = "X-Api-Key";
    pub(crate) const CORRELATION_ID: &str = "Correlation-Id";
    pub(crate) const WP_API_VERSION: &str = "WP-Api-Version";
    pub(crate) const STRIPE_COMPATIBLE_CONNECT_ACCOUNT: &str = "Stripe-Account";
    pub(crate) const SOURCE: &str = "Source";
    pub(crate) const USER_AGENT: &str = "User-Agent";
    pub(crate) const KEY: &str = "key";
    pub(crate) const X_SIGNATURE: &str = "X-Signature";
    pub(crate) const SOAP_ACTION: &str = "SOAPAction";
    pub(crate) const X_PROFILE_ID: &str = "X-Profile-Id";
}

/// Unsupported response type error message
pub const UNSUPPORTED_ERROR_MESSAGE: &str = "Unsupported response type";

/// Error message for Authentication Error from the connector
pub const CONNECTOR_UNAUTHORIZED_ERROR: &str = "Authentication Error from the connector";

/// Error message when Refund request has been voided.
pub const REFUND_VOIDED: &str = "Refund request has been voided.";

pub const LOW_BALANCE_ERROR_MESSAGE: &str = "Insufficient balance in the payment method";

pub const MISMATCHED_CURRENCY: &str = "Payment Method currency does not match the payment currency";

pub const DUIT_NOW_BRAND_COLOR: &str = "#ED2E67";

pub const DUIT_NOW_BRAND_TEXT: &str = "MALAYSIA NATIONAL QR";

pub(crate) const CANNOT_CONTINUE_AUTH: &str =
    "Cannot continue with Authorization due to failed Liability Shift.";

#[cfg(feature = "payouts")]
pub(crate) const DEFAULT_NOTIFICATION_SCRIPT_LANGUAGE: &str = "en-US";

pub(crate) const PLAN_ITEM_TYPE: &str = "plan";


// File: crates/hyperswitch_connectors/src/connectors.rs

pub mod aci;
pub mod adyen;
pub mod adyenplatform;
pub mod affirm;
pub mod airwallex;
pub mod amazonpay;
pub mod archipel;
pub mod authipay;
pub mod authorizedotnet;
pub mod bambora;
pub mod bamboraapac;
pub mod bankofamerica;
pub mod barclaycard;
pub mod billwerk;
pub mod bitpay;
pub mod blackhawknetwork;
pub mod bluesnap;
pub mod boku;
pub mod braintree;
pub mod breadpay;
pub mod calida;
pub mod cashtocode;
pub mod celero;
pub mod chargebee;
pub mod checkbook;
pub mod checkout;
pub mod coinbase;
pub mod coingate;
pub mod cryptopay;
pub mod ctp_mastercard;
pub mod custombilling;
pub mod cybersource;
pub mod datatrans;
pub mod deutschebank;
pub mod digitalvirgo;
pub mod dlocal;
#[cfg(feature = "dummy_connector")]
pub mod dummyconnector;
pub mod dwolla;
pub mod ebanx;
pub mod elavon;
pub mod envoy;
pub mod facilitapay;
pub mod finix;
pub mod fiserv;
pub mod fiservemea;
pub mod fiuu;
pub mod flexiti;
pub mod forte;
pub mod getnet;
pub mod gigadat;
pub mod globalpay;
pub mod globepay;
pub mod gocardless;
pub mod gpayments;
pub mod helcim;
pub mod hipay;
pub mod hyperswitch_vault;
pub mod hyperwallet;
pub mod iatapay;
pub mod inespay;
pub mod itaubank;
pub mod jpmorgan;
pub mod juspaythreedsserver;
pub mod katapult;
pub mod klarna;
pub mod loonio;
pub mod mifinity;
pub mod mollie;
pub mod moneris;
pub mod mpgs;
pub mod multisafepay;
pub mod netcetera;
pub mod nexinets;
pub mod nexixpay;
pub mod nmi;
pub mod nomupay;
pub mod noon;
pub mod nordea;
pub mod novalnet;
pub mod nuvei;
pub mod opayo;
pub mod opennode;
pub mod paybox;
pub mod payeezy;
pub mod payjustnow;
pub mod payload;
pub mod payme;
pub mod payone;
pub mod paypal;
pub mod paysafe;
pub mod paystack;
pub mod paytm;
pub mod payu;
pub mod peachpayments;
pub mod phonepe;
pub mod placetopay;
pub mod plaid;
pub mod powertranz;
pub mod prophetpay;
pub mod rapyd;
pub mod razorpay;
pub mod recurly;
pub mod redsys;
pub mod riskified;
pub mod santander;
pub mod shift4;
pub mod sift;
pub mod signifyd;
pub mod silverflow;
pub mod square;
pub mod stax;
pub mod stripe;
pub mod stripebilling;
pub mod taxjar;
pub mod tesouro;
pub mod threedsecureio;
pub mod thunes;
pub mod tokenex;
pub mod tokenio;
pub mod trustpay;
pub mod trustpayments;
pub mod tsys;
pub mod unified_authentication_service;
pub mod vgs;
pub mod volt;
pub mod wellsfargo;
pub mod wellsfargopayout;
pub mod wise;
pub mod worldline;
pub mod worldpay;
pub mod worldpayvantiv;
pub mod worldpayxml;
pub mod xendit;
pub mod zen;
pub mod zift;
pub mod zsl;
#[cfg(feature = "dummy_connector")]
pub use self::dummyconnector::DummyConnector;
pub use self::{
    aci::Aci, adyen::Adyen, adyenplatform::Adyenplatform, affirm::Affirm, airwallex::Airwallex,
    amazonpay::Amazonpay, archipel::Archipel, authipay::Authipay, authorizedotnet::Authorizedotnet,
    bambora::Bambora, bamboraapac::Bamboraapac, bankofamerica::Bankofamerica,
    barclaycard::Barclaycard, billwerk::Billwerk, bitpay::Bitpay,
    blackhawknetwork::Blackhawknetwork, bluesnap::Bluesnap, boku::Boku, braintree::Braintree,
    breadpay::Breadpay, calida::Calida, cashtocode::Cashtocode, celero::Celero,
    chargebee::Chargebee, checkbook::Checkbook, checkout::Checkout, coinbase::Coinbase,
    coingate::Coingate, cryptopay::Cryptopay, ctp_mastercard::CtpMastercard,
    custombilling::Custombilling, cybersource::Cybersource, datatrans::Datatrans,
    deutschebank::Deutschebank, digitalvirgo::Digitalvirgo, dlocal::Dlocal, dwolla::Dwolla,
    ebanx::Ebanx, elavon::Elavon, envoy::Envoy, facilitapay::Facilitapay, finix::Finix,
    fiserv::Fiserv, fiservemea::Fiservemea, fiuu::Fiuu, flexiti::Flexiti, forte::Forte,
    getnet::Getnet, gigadat::Gigadat, globalpay::Globalpay, globepay::Globepay,
    gocardless::Gocardless, gpayments::Gpayments, helcim::Helcim, hipay::Hipay,
    hyperswitch_vault::HyperswitchVault, hyperwallet::Hyperwallet, iatapay::Iatapay,
    inespay::Inespay, itaubank::Itaubank, jpmorgan::Jpmorgan,
    juspaythreedsserver::Juspaythreedsserver, katapult::Katapult, klarna::Klarna, loonio::Loonio,
    mifinity::Mifinity, mollie::Mollie, moneris::Moneris, mpgs::Mpgs, multisafepay::Multisafepay,
    netcetera::Netcetera, nexinets::Nexinets, nexixpay::Nexixpay, nmi::Nmi, nomupay::Nomupay,
    noon::Noon, nordea::Nordea, novalnet::Novalnet, nuvei::Nuvei, opayo::Opayo, opennode::Opennode,
    paybox::Paybox, payeezy::Payeezy, payjustnow::Payjustnow, payload::Payload, payme::Payme,
    payone::Payone, paypal::Paypal, paysafe::Paysafe, paystack::Paystack, paytm::Paytm, payu::Payu,
    peachpayments::Peachpayments, phonepe::Phonepe, placetopay::Placetopay, plaid::Plaid,
    powertranz::Powertranz, prophetpay::Prophetpay, rapyd::Rapyd, razorpay::Razorpay,
    recurly::Recurly, redsys::Redsys, riskified::Riskified, santander::Santander, shift4::Shift4,
    sift::Sift, signifyd::Signifyd, silverflow::Silverflow, square::Square, stax::Stax,
    stripe::Stripe, stripebilling::Stripebilling, taxjar::Taxjar, tesouro::Tesouro,
    threedsecureio::Threedsecureio, thunes::Thunes, tokenex::Tokenex, tokenio::Tokenio,
    trustpay::Trustpay, trustpayments::Trustpayments, tsys::Tsys,
    unified_authentication_service::UnifiedAuthenticationService, vgs::Vgs, volt::Volt,
    wellsfargo::Wellsfargo, wellsfargopayout::Wellsfargopayout, wise::Wise, worldline::Worldline,
    worldpay::Worldpay, worldpayvantiv::Worldpayvantiv, worldpayxml::Worldpayxml, xendit::Xendit,
    zen::Zen, zift::Zift, zsl::Zsl,
};


// File: crates/hyperswitch_connectors/src/lib.rs

//! Hyperswitch connectors

pub mod connectors;
pub mod constants;
pub mod default_implementations;
pub mod default_implementations_v2;
pub mod metrics;
pub mod types;
pub mod utils;


// File: crates/hyperswitch_connectors/src/metrics.rs

//! Metrics interface

use router_env::{counter_metric, global_meter};

global_meter!(GLOBAL_METER, "ROUTER_API");

counter_metric!(CONNECTOR_RESPONSE_DESERIALIZATION_FAILURE, GLOBAL_METER);