5
5
# --------------------------------------------------------------------------
6
6
7
7
# pylint: disable=docstring-keyword-should-match-keyword-only
8
- from typing import List , Optional , Union , Any
8
+ from typing import List , Optional , Union , Any , cast , Dict
9
9
import uuid
10
10
11
11
from azure .core .credentials import TokenCredential , AzureKeyCredential
@@ -96,7 +96,7 @@ def from_connection_string(cls, conn_str: str, **kwargs: Any) -> "PhoneNumbersCl
96
96
"""
97
97
endpoint , access_key = parse_connection_str (conn_str )
98
98
99
- return cls (endpoint , access_key , ** kwargs )
99
+ return cls (endpoint , AzureKeyCredential ( access_key ) , ** kwargs )
100
100
101
101
@distributed_trace
102
102
def begin_purchase_phone_numbers (
@@ -240,7 +240,9 @@ def begin_update_phone_number_capabilities(
240
240
)
241
241
242
242
result_properties = poller .result ().additional_properties
243
- if "status" in result_properties and result_properties ["status" ].lower () == "failed" :
243
+ if (result_properties is not None and
244
+ "status" in result_properties and
245
+ result_properties ["status" ].lower () == "failed" ):
244
246
raise HttpResponseError (
245
247
message = result_properties ["error" ]["message" ])
246
248
@@ -271,7 +273,8 @@ def list_purchased_phone_numbers(self, **kwargs: Any) -> ItemPaged[PurchasedPhon
271
273
:returns: An iterator of purchased phone numbers.
272
274
:rtype: ~azure.core.paging.ItemPaged[~azure.communication.phonenumbers.PurchasedPhoneNumber]
273
275
"""
274
- return self ._phone_number_client .phone_numbers .list_phone_numbers (** kwargs )
276
+ return cast (ItemPaged [PurchasedPhoneNumber ],
277
+ self ._phone_number_client .phone_numbers .list_phone_numbers (** kwargs ))
275
278
276
279
@distributed_trace
277
280
def list_available_countries (self , ** kwargs : Any ) -> ItemPaged [PhoneNumberCountry ]:
@@ -287,9 +290,10 @@ def list_available_countries(self, **kwargs: Any) -> ItemPaged[PhoneNumberCountr
287
290
~azure.core.paging.ItemPaged[~azure.communication.phonenumbers.PhoneNumberCountry]
288
291
:raises ~azure.core.exceptions.HttpResponseError:
289
292
"""
290
- return self ._phone_number_client .phone_numbers .list_available_countries (
291
- accept_language = self ._accepted_language , ** kwargs
292
- )
293
+ return cast (ItemPaged [PhoneNumberCountry ],
294
+ self ._phone_number_client .phone_numbers .list_available_countries (
295
+ accept_language = self ._accepted_language , ** kwargs
296
+ ))
293
297
294
298
@distributed_trace
295
299
def list_available_localities (self , country_code : str , ** kwargs : Any ) -> ItemPaged [PhoneNumberLocality ]:
@@ -310,13 +314,14 @@ def list_available_localities(self, country_code: str, **kwargs: Any) -> ItemPag
310
314
~azure.core.paging.ItemPaged[~azure.communication.phonenumbers.PhoneNumberLocality]
311
315
:raises ~azure.core.exceptions.HttpResponseError:
312
316
"""
313
- return self ._phone_number_client .phone_numbers .list_available_localities (
314
- country_code ,
315
- administrative_division = kwargs .pop (
316
- "administrative_division" , None ),
317
- accept_language = self ._accepted_language ,
318
- ** kwargs
319
- )
317
+ return cast (ItemPaged [PhoneNumberLocality ],
318
+ self ._phone_number_client .phone_numbers .list_available_localities (
319
+ country_code ,
320
+ administrative_division = kwargs .pop (
321
+ "administrative_division" , None ),
322
+ accept_language = self ._accepted_language ,
323
+ ** kwargs
324
+ ))
320
325
321
326
@distributed_trace
322
327
def list_available_offerings (self , country_code : str , ** kwargs : Any ) -> ItemPaged [PhoneNumberOffering ]:
@@ -340,12 +345,13 @@ def list_available_offerings(self, country_code: str, **kwargs: Any) -> ItemPage
340
345
~azure.core.paging.ItemPaged[~azure.communication.phonenumbers.PhoneNumberOffering]
341
346
:raises ~azure.core.exceptions.HttpResponseError:
342
347
"""
343
- return self ._phone_number_client .phone_numbers .list_offerings (
344
- country_code ,
345
- phone_number_type = kwargs .pop ("phone_number_type" , None ),
346
- assignment_type = kwargs .pop ("assignment_type" , None ),
347
- ** kwargs
348
- )
348
+ return cast (ItemPaged [PhoneNumberOffering ],
349
+ self ._phone_number_client .phone_numbers .list_offerings (
350
+ country_code ,
351
+ phone_number_type = kwargs .pop ("phone_number_type" , None ),
352
+ assignment_type = kwargs .pop ("assignment_type" , None ),
353
+ ** kwargs
354
+ ))
349
355
350
356
@distributed_trace
351
357
def list_available_area_codes (
@@ -374,15 +380,16 @@ def list_available_area_codes(
374
380
:rtype: ~azure.core.paging.ItemPaged[~azure.communication.phonenumbers.PhoneNumberAreaCode]
375
381
:raises ~azure.core.exceptions.HttpResponseError:
376
382
"""
377
- return self ._phone_number_client .phone_numbers .list_area_codes (
378
- country_code ,
379
- phone_number_type = phone_number_type ,
380
- assignment_type = kwargs .pop ("assignment_type" , None ),
381
- locality = kwargs .pop ("locality" , None ),
382
- administrative_division = kwargs .pop (
383
- "administrative_division" , None ),
384
- ** kwargs
385
- )
383
+ return cast (ItemPaged [PhoneNumberAreaCode ],
384
+ self ._phone_number_client .phone_numbers .list_area_codes (
385
+ country_code ,
386
+ phone_number_type = phone_number_type ,
387
+ assignment_type = kwargs .pop ("assignment_type" , None ),
388
+ locality = kwargs .pop ("locality" , None ),
389
+ administrative_division = kwargs .pop (
390
+ "administrative_division" , None ),
391
+ ** kwargs
392
+ ))
386
393
387
394
@distributed_trace
388
395
def search_operator_information (
@@ -443,9 +450,10 @@ def list_reservations(
443
450
# This allows mapping the generated model to the public model.
444
451
# Internally, the generated client will create an instance of this iterator with each fetched page.
445
452
446
- return self ._phone_number_client .phone_numbers .list_reservations (
447
- max_page_size = max_page_size ,
448
- ** kwargs )
453
+ return cast (ItemPaged [PhoneNumbersReservation ],
454
+ self ._phone_number_client .phone_numbers .list_reservations (
455
+ max_page_size = max_page_size ,
456
+ ** kwargs ))
449
457
450
458
@distributed_trace
451
459
def create_or_update_reservation (
@@ -481,15 +489,18 @@ def create_or_update_reservation(
481
489
except ValueError as exc :
482
490
raise ValueError ("reservation_id must be in valid UUID format" ) from exc
483
491
484
- phone_numbers = {}
492
+ phone_numbers : Dict [ str , Optional [ AvailablePhoneNumber ]] = {}
485
493
if numbers_to_add :
486
494
for number in numbers_to_add :
487
- phone_numbers [number .id ] = number
495
+ if number .id is not None :
496
+ phone_numbers [number .id ] = number
488
497
if numbers_to_remove :
489
- for number in numbers_to_remove :
490
- phone_numbers [number ] = None
498
+ for number_id in numbers_to_remove :
499
+ phone_numbers [number_id ] = None
491
500
492
- reservation = PhoneNumbersReservation (phone_numbers = phone_numbers )
501
+ # Cast to satisfy type checker - merge-patch operations allow None values
502
+ reservation = PhoneNumbersReservation (
503
+ phone_numbers = cast (Optional [Dict [str , AvailablePhoneNumber ]], phone_numbers ))
493
504
494
505
return self ._phone_number_client .phone_numbers .create_or_update_reservation (
495
506
reservation_id , reservation , ** kwargs )
0 commit comments