44
55from sinch .core .ports .http_transport import HTTPTransport
66from sinch .core .token_manager import TokenManager , TokenManagerAsync
7+ from sinch .core .enums import HTTPAuthentication
78
89
910class Configuration :
@@ -22,14 +23,18 @@ def __init__(
2223 disable_https = False ,
2324 connection_timeout = 10 ,
2425 application_key : str = None ,
25- application_secret : str = None
26+ application_secret : str = None ,
27+ service_plan_id : str = None ,
28+ sms_api_token : str = None
2629 ):
2730 self .key_id = key_id
2831 self .key_secret = key_secret
2932 self .project_id = project_id
3033 self .application_key = application_key
3134 self .application_secret = application_secret
3235 self .connection_timeout = connection_timeout
36+ self .sms_api_token = sms_api_token
37+ self .service_plan_id = service_plan_id
3338 self .auth_origin = "auth.sinch.com"
3439 self .numbers_origin = "numbers.api.sinch.com"
3540 self .verification_origin = "verification.api.sinch.com"
@@ -39,7 +44,10 @@ def __init__(
3944 self ._conversation_region = "eu"
4045 self ._conversation_domain = ".conversation.api.sinch.com"
4146 self ._sms_region = "us"
47+ self ._sms_region_with_service_plan_id = "us"
4248 self ._sms_domain = "zt.{}.sms.api.sinch.com"
49+ self ._sms_domain_with_service_plan_id = "{}.sms.api.sinch.com"
50+ self ._sms_authentication = HTTPAuthentication .OAUTH .value
4351 self ._templates_region = "eu"
4452 self ._templates_domain = ".template.api.sinch.com"
4553 self .token_manager = token_manager
@@ -48,6 +56,7 @@ def __init__(
4856
4957 self ._set_conversation_origin ()
5058 self ._set_sms_origin ()
59+ self ._set_sms_origin_with_service_plan_id ()
5160 self ._set_templates_origin ()
5261 self ._set_voice_origin ()
5362
@@ -58,23 +67,35 @@ def __init__(
5867 else :
5968 self .logger = logging .getLogger ("Sinch" )
6069
61- def _set_voice_origin (self ):
62- if not self ._voice_region :
63- self .voice_origin = self ._voice_domain .format ("calling" )
64- else :
65- self .voice_origin = self ._voice_domain .format ("calling-" + self ._voice_region )
70+ def _set_sms_origin_with_service_plan_id (self ):
71+ self .sms_origin_with_service_plan_id = self ._sms_domain_with_service_plan_id .format (
72+ self ._sms_region_with_service_plan_id
73+ )
6674
67- def _set_voice_region (self , region ):
68- self ._voice_region = region
69- self ._set_voice_origin ()
75+ def _set_sms_region_with_service_plan_id (self , region ):
76+ self ._sms_region_with_service_plan_id = region
77+ self ._set_sms_origin_with_service_plan_id ()
7078
71- def _get_voice_region (self ):
72- return self ._voice_region
79+ def _get_sms_region_with_service_plan_id (self ):
80+ return self ._sms_region_with_service_plan_id
7381
74- voice_region = property (
75- _get_voice_region ,
76- _set_voice_region ,
77- doc = "Voice Region"
82+ sms_region_with_service_plan_id = property (
83+ _get_sms_region_with_service_plan_id ,
84+ _set_sms_region_with_service_plan_id ,
85+ doc = "SMS Region for service plan id version of the SMS API"
86+ )
87+
88+ def _set_sms_domain_with_service_plan_id (self , domain ):
89+ self ._sms_domain_with_service_plan_id = domain
90+ self ._set_sms_origin_with_service_plan_id ()
91+
92+ def _get_sms_domain_with_service_plan_id (self ):
93+ return self ._sms_domain_with_service_plan_id
94+
95+ sms_domain_with_service_plan_id = property (
96+ _get_sms_domain_with_service_plan_id ,
97+ _set_sms_domain_with_service_plan_id ,
98+ doc = "SMS Domain for service plan id version of the SMS API"
7899 )
79100
80101 def _set_sms_origin (self ):
@@ -98,7 +119,7 @@ def _set_sms_domain(self, domain):
98119 self ._set_sms_origin ()
99120
100121 def _get_sms_domain (self ):
101- return self .sms_domain
122+ return self ._sms_domain
102123
103124 sms_domain = property (
104125 _get_sms_domain ,
@@ -163,3 +184,22 @@ def _get_templates_domain(self):
163184 _set_templates_domain ,
164185 doc = "Conversation API Templates Domain"
165186 )
187+
188+ def _set_voice_origin (self ):
189+ if not self ._voice_region :
190+ self .voice_origin = self ._voice_domain .format ("calling" )
191+ else :
192+ self .voice_origin = self ._voice_domain .format ("calling-" + self ._voice_region )
193+
194+ def _set_voice_region (self , region ):
195+ self ._voice_region = region
196+ self ._set_voice_origin ()
197+
198+ def _get_voice_region (self ):
199+ return self ._voice_region
200+
201+ voice_region = property (
202+ _get_voice_region ,
203+ _set_voice_region ,
204+ doc = "Voice Region"
205+ )
0 commit comments