Source code for whatsapp_sdk.config

"""Configuration module for WhatsApp SDK.

Handles all configuration settings and validation.
"""

from __future__ import annotations

from typing import Optional

from pydantic import BaseModel, Field


[docs] class WhatsAppConfig(BaseModel): """Configuration for WhatsApp SDK. Contains all settings needed to interact with the WhatsApp Business API. """ phone_number_id: str = Field(..., description="WhatsApp Business phone number ID") access_token: str = Field(..., description="Meta access token for API authentication") app_secret: Optional[str] = Field( None, description="App secret for webhook signature validation" ) webhook_verify_token: Optional[str] = Field(None, description="Token for webhook verification") base_url: str = Field("https://graph.facebook.com", description="Meta Graph API base URL") api_version: str = Field("v23.0", description="WhatsApp API version") timeout: int = Field(30, gt=0, description="Request timeout in seconds") max_retries: int = Field(3, ge=0, description="Maximum number of retries for failed requests") rate_limit: int = Field(80, gt=0, description="Maximum requests per second")
[docs] class Config: """Pydantic config.""" validate_assignment = True