# AUTO-GENERATED — do not edit by hand.
# Source: services.proto ∩ bindings/uniffi.rs  |  Regenerate: make generate
SERVICE_FLOWS = {
    "DisputeClient": {
        # accept: DisputeService.Accept — Concede dispute and accepts chargeback loss. Acknowledges liability and stops dispute defense process when evidence is insufficient.
        "accept": "DisputeServiceAcceptResponse",
        # defend: DisputeService.Defend — Submit defense with reason code for dispute. Presents formal argument against customer's chargeback claim with supporting documentation.
        "defend": "DisputeServiceDefendResponse",
        # submit_evidence: DisputeService.SubmitEvidence — Upload evidence to dispute customer chargeback. Provides documentation like receipts and delivery proof to contest fraudulent transaction claims.
        "submit_evidence": "DisputeServiceSubmitEvidenceResponse",
    },
    "PaymentMethodAuthenticationClient": {
        # authenticate: PaymentMethodAuthenticationService.Authenticate — Execute 3DS challenge or frictionless verification. Authenticates customer via bank challenge or behind-the-scenes verification for fraud prevention.
        "authenticate": "PaymentMethodAuthenticationServiceAuthenticateResponse",
        # post_authenticate: PaymentMethodAuthenticationService.PostAuthenticate — Validate authentication results with the issuing bank. Processes bank's authentication decision to determine if payment can proceed.
        "post_authenticate": "PaymentMethodAuthenticationServicePostAuthenticateResponse",
        # pre_authenticate: PaymentMethodAuthenticationService.PreAuthenticate — Initiate 3DS flow before payment authorization. Collects device data and prepares authentication context for frictionless or challenge-based verification.
        "pre_authenticate": "PaymentMethodAuthenticationServicePreAuthenticateResponse",
    },
    "PaymentClient": {
        # authorize: PaymentService.Authorize — Authorize a payment amount on a payment method. This reserves funds without capturing them, essential for verifying availability before finalizing.
        "authorize": "PaymentServiceAuthorizeResponse",
        # capture: PaymentService.Capture — Finalize an authorized payment by transferring funds. Captures the authorized amount to complete the transaction and move funds to your merchant account.
        "capture": "PaymentServiceCaptureResponse",
        # create_order: PaymentService.CreateOrder — Create a payment order for later processing. Establishes a transaction context that can be authorized or captured in subsequent API calls.
        "create_order": "PaymentServiceCreateOrderResponse",
        # get: PaymentService.Get — Retrieve current payment status from the payment processor. Enables synchronization between your system and payment processors for accurate state tracking.
        "get": "PaymentServiceGetResponse",
        # incremental_authorization: PaymentService.IncrementalAuthorization — Increase the authorized amount for an existing payment. Enables you to capture additional funds when the transaction amount changes after initial authorization.
        "incremental_authorization": "PaymentServiceIncrementalAuthorizationResponse",
        # proxy_authorize: PaymentService.ProxyAuthorize — Authorize using vault-aliased card data. Proxy substitutes before connector.
        "proxy_authorize": "PaymentServiceAuthorizeResponse",
        # proxy_setup_recurring: PaymentService.ProxySetupRecurring — Setup recurring mandate using vault-aliased card data.
        "proxy_setup_recurring": "PaymentServiceSetupRecurringResponse",
        # refund: PaymentService.Refund — Process a partial or full refund for a captured payment. Returns funds to the customer when goods are returned or services are cancelled.
        "refund": "RefundResponse",
        # reverse: PaymentService.Reverse — Reverse a captured payment in full. Initiates a complete refund when you need to cancel a settled transaction rather than just an authorization.
        "reverse": "PaymentServiceReverseResponse",
        # setup_recurring: PaymentService.SetupRecurring — Configure a payment method for recurring billing. Sets up the mandate and payment details needed for future automated charges.
        "setup_recurring": "PaymentServiceSetupRecurringResponse",
        # token_authorize: PaymentService.TokenAuthorize — Authorize using a connector-issued payment method token.
        "token_authorize": "PaymentServiceAuthorizeResponse",
        # token_setup_recurring: PaymentService.TokenSetupRecurring — Setup a recurring mandate using a connector token.
        "token_setup_recurring": "PaymentServiceSetupRecurringResponse",
        # void: PaymentService.Void — Cancel an authorized payment that has not been captured. Releases held funds back to the customer's payment method when a transaction cannot be completed.
        "void": "PaymentServiceVoidResponse",
    },
    "RecurringPaymentClient": {
        # charge: RecurringPaymentService.Charge — Charge using an existing stored recurring payment instruction. Processes repeat payments for subscriptions or recurring billing without collecting payment details.
        "charge": "RecurringPaymentServiceChargeResponse",
        # recurring_revoke: RecurringPaymentService.Revoke — Cancel an existing recurring payment mandate. Stops future automatic charges on customer's stored consent for subscription cancellations.
        "recurring_revoke": "RecurringPaymentServiceRevokeResponse",
    },
    "MerchantAuthenticationClient": {
        # create_client_authentication_token: MerchantAuthenticationService.CreateClientAuthenticationToken — Initialize client-facing SDK sessions for wallets, device fingerprinting, etc. Returns structured data the client SDK needs to render payment/verification UI.
        "create_client_authentication_token": "MerchantAuthenticationServiceCreateClientAuthenticationTokenResponse",
        # create_server_authentication_token: MerchantAuthenticationService.CreateServerAuthenticationToken — Generate short-lived connector authentication token. Provides secure credentials for connector API access without storing secrets client-side.
        "create_server_authentication_token": "MerchantAuthenticationServiceCreateServerAuthenticationTokenResponse",
        # create_server_session_authentication_token: MerchantAuthenticationService.CreateServerSessionAuthenticationToken — Create a server-side session with the connector. Establishes session state for multi-step operations like 3DS verification or wallet authorization.
        "create_server_session_authentication_token": "MerchantAuthenticationServiceCreateServerSessionAuthenticationTokenResponse",
    },
    "CustomerClient": {
        # customer_create: CustomerService.Create — Create customer record in the payment processor system. Stores customer details for future payment operations without re-sending personal information.
        "customer_create": "CustomerServiceCreateResponse",
        # customer_get: CustomerService.Get — Retrieves customer details from the payment processor. Callers typically use this before Create to implement get-or-create semantics for connectors that reject duplicates (e.g. Glomopay).
        "customer_get": "CustomerServiceGetResponse",
    },
    "PaymentMethodClient": {
        # eligibility: PaymentMethodService.Eligibility — Check if the payment method is eligible for the transaction (e.g. BNPL pre-checkout check)
        "eligibility": "PaymentMethodServiceEligibilityResponse",
        # refresh: PaymentMethodService.Refresh — Refresh a payment method the caller already holds in full. The request carries the instrument itself, not a reference to it: use Refresh when you own the complete payment method details and the provider exposes an endpoint that evaluates them.
        "refresh": "PaymentMethodServiceRefreshResponse",
        # tokenize: PaymentMethodService.Tokenize — Tokenize payment method for secure storage. Replaces raw card details with secure token for one-click payments and recurring billing.
        "tokenize": "PaymentMethodServiceTokenizeResponse",
    },
    "PayoutClient": {
        # payout_create: PayoutService.Create — Creates a payout.
        "payout_create": "PayoutServiceCreateResponse",
        # payout_create_link: PayoutService.CreateLink — Creates a link between the recipient and the payout.
        "payout_create_link": "PayoutServiceCreateLinkResponse",
        # payout_create_recipient: PayoutService.CreateRecipient — Create payout recipient.
        "payout_create_recipient": "PayoutServiceCreateRecipientResponse",
        # payout_eligibility: PayoutService.Eligibility — Check eligibility of a payout before initiating it (e.g. SEPA VoP / payee verification).
        "payout_eligibility": "PayoutMethodEligibilityResponse",
        # payout_enroll_disburse_account: PayoutService.EnrollDisburseAccount — Enroll disburse account.
        "payout_enroll_disburse_account": "PayoutServiceEnrollDisburseAccountResponse",
        # payout_get: PayoutService.Get — Retrieve payout details.
        "payout_get": "PayoutServiceGetResponse",
        # payout_stage: PayoutService.Stage — Stage the payout.
        "payout_stage": "PayoutServiceStageResponse",
        # payout_transfer: PayoutService.Transfer — Creates a payout fund transfer.
        "payout_transfer": "PayoutServiceTransferResponse",
        # payout_void: PayoutService.Void — Void a payout.
        "payout_void": "PayoutServiceVoidResponse",
    },
    "FraudAndRiskManagementClient": {
        # post_risk_check: FraudAndRiskManagementService.PostRiskCheck — Evaluate fraud risk after payment processing. Analyzes payment outcomes and post-transaction signals to refine risk models and detect chargeback fraud.
        "post_risk_check": "FrmServicePostRiskCheckResponse",
        # pre_risk_check: FraudAndRiskManagementService.PreRiskCheck — Evaluate fraud risk before payment processing. Analyzes transaction details, customer behavior, and device fingerprints to determine if the payment should proceed, be rejected, or flagged for manual review.
        "pre_risk_check": "FrmServicePreRiskCheckResponse",
    },
    "RefundClient": {
        # refund_get: RefundService.Get — Retrieve refund status from the payment processor. Tracks refund progress through processor settlement for accurate customer communication.
        "refund_get": "RefundResponse",
    },
    "SurchargeClient": {
        # surcharge_calculate: SurchargeService.Calculate — Calculate surcharge fees for a payment amount before processing.
        "surcharge_calculate": "SurchargeServiceCalculateResponse",
    },
}

# Single-step flows: no HTTP round-trip (e.g. webhook processing).
SINGLE_SERVICE_FLOWS = {
    "EventClient": {
        # handle_event: EventService.HandleEvent — Verify webhook source and return a unified typed response. Response mirrors PaymentService.Get / RefundService.Get / DisputeService.Get.
        "handle_event": "EventServiceHandleResponse",
        # parse_event: EventService.ParseEvent — Parse a raw webhook payload without credentials. Returns resource reference and event type — sufficient to resolve secrets or early-exit.
        "parse_event": "EventServiceParseResponse",
    },
    "PaymentClient": {
        # verify_redirect_response: PaymentService.VerifyRedirectResponse — Verify and process redirect responses from 3D Secure or other external flows. Validates authentication results and updates payment state accordingly.
        "verify_redirect_response": "PaymentServiceVerifyRedirectResponseResponse",
    },
}
