doordeck-headless-sdk 0.104.0__tar.gz → 0.106.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of doordeck-headless-sdk might be problematic. Click here for more details.
- {doordeck_headless_sdk-0.104.0/src/doordeck_headless_sdk.egg-info → doordeck_headless_sdk-0.106.0}/PKG-INFO +1 -1
- {doordeck_headless_sdk-0.104.0 → doordeck_headless_sdk-0.106.0}/README.md +1 -1
- {doordeck_headless_sdk-0.104.0 → doordeck_headless_sdk-0.106.0}/pyproject.toml +1 -1
- {doordeck_headless_sdk-0.104.0 → doordeck_headless_sdk-0.106.0}/src/doordeck_headless_sdk/Doordeck.Headless.Sdk.dll +0 -0
- {doordeck_headless_sdk-0.104.0 → doordeck_headless_sdk-0.106.0}/src/doordeck_headless_sdk/_doordeck_headless_sdk.pyd +0 -0
- {doordeck_headless_sdk-0.104.0 → doordeck_headless_sdk-0.106.0}/src/doordeck_headless_sdk/doordeck_headless_sdk.py +293 -26
- {doordeck_headless_sdk-0.104.0 → doordeck_headless_sdk-0.106.0/src/doordeck_headless_sdk.egg-info}/PKG-INFO +1 -1
- {doordeck_headless_sdk-0.104.0 → doordeck_headless_sdk-0.106.0}/LICENSE +0 -0
- {doordeck_headless_sdk-0.104.0 → doordeck_headless_sdk-0.106.0}/setup.cfg +0 -0
- {doordeck_headless_sdk-0.104.0 → doordeck_headless_sdk-0.106.0}/src/doordeck_headless_sdk/__init__.py +0 -0
- {doordeck_headless_sdk-0.104.0 → doordeck_headless_sdk-0.106.0}/src/doordeck_headless_sdk.egg-info/SOURCES.txt +0 -0
- {doordeck_headless_sdk-0.104.0 → doordeck_headless_sdk-0.106.0}/src/doordeck_headless_sdk.egg-info/dependency_links.txt +0 -0
- {doordeck_headless_sdk-0.104.0 → doordeck_headless_sdk-0.106.0}/src/doordeck_headless_sdk.egg-info/top_level.txt +0 -0
|
@@ -27,4 +27,4 @@ The SDK supports a range of targets for different platforms:
|
|
|
27
27
|
To start using the Doordeck Headless SDK, refer to the [documentation index](https://github.com/doordeck/doordeck-headless-sdk/blob/main/docs/01_INDEX.md#index) for detailed setup and usage instructions tailored to your platform.
|
|
28
28
|
|
|
29
29
|
## Samples
|
|
30
|
-
We provide samples for different targets, where you can see how the SDK can be used in fully functional projects. For more information, please see the [samples page](https://github.com/doordeck/doordeck-headless-sdk/blob/main/docs/15_SAMPLES.md).
|
|
30
|
+
We provide samples for different targets, where you can see how the SDK can be used in fully functional projects. For more information, please see the [samples page](https://github.com/doordeck/doordeck-headless-sdk/blob/main/docs/15_SAMPLES.md).
|
|
@@ -3,7 +3,7 @@ requires = ["setuptools"]
|
|
|
3
3
|
build-backend = "setuptools.build_meta"
|
|
4
4
|
[project]
|
|
5
5
|
name = "doordeck_headless_sdk"
|
|
6
|
-
version = "0.
|
|
6
|
+
version = "0.106.0"
|
|
7
7
|
description = "The official Doordeck SDK for Kotlin Multiplatform"
|
|
8
8
|
readme = "README.md"
|
|
9
9
|
requires-python = "==3.13.2"
|
|
Binary file
|
|
Binary file
|
|
@@ -73,7 +73,7 @@ from dataclasses import dataclass, field
|
|
|
73
73
|
|
|
74
74
|
|
|
75
75
|
class SdkException(Exception):
|
|
76
|
-
def __init__(self, message: str, exception: Exception = None):
|
|
76
|
+
def __init__(self, message: str, exception: typing.Optional[Exception] = None):
|
|
77
77
|
super().__init__(message)
|
|
78
78
|
self.exception = exception
|
|
79
79
|
|
|
@@ -89,8 +89,8 @@ class MissingAndroidContextException(SdkException):
|
|
|
89
89
|
|
|
90
90
|
|
|
91
91
|
class BatchShareFailedException(SdkException):
|
|
92
|
-
def __init__(self, message: str, user_ids:
|
|
93
|
-
super().__init__(message
|
|
92
|
+
def __init__(self, message: str, user_ids: typing.List[str]):
|
|
93
|
+
super().__init__(message)
|
|
94
94
|
self.user_ids = user_ids
|
|
95
95
|
|
|
96
96
|
|
|
@@ -254,7 +254,7 @@ class AlpetaController(LockController):
|
|
|
254
254
|
username: str
|
|
255
255
|
password: str
|
|
256
256
|
doorId: int
|
|
257
|
-
baseUrl: str = None
|
|
257
|
+
baseUrl: typing.Optional[str] = None
|
|
258
258
|
|
|
259
259
|
def __post_init__(self):
|
|
260
260
|
self.type = "alpeta"
|
|
@@ -265,7 +265,7 @@ class AmagController(LockController):
|
|
|
265
265
|
username: str
|
|
266
266
|
password: str
|
|
267
267
|
doorId: int
|
|
268
|
-
baseUrl: str = None
|
|
268
|
+
baseUrl: typing.Optional[str] = None
|
|
269
269
|
|
|
270
270
|
def __post_init__(self):
|
|
271
271
|
self.type = "amag"
|
|
@@ -324,7 +324,7 @@ class GallagherController(LockController):
|
|
|
324
324
|
type: str = field(init=False)
|
|
325
325
|
apiKey: str
|
|
326
326
|
doorId: str
|
|
327
|
-
baseUrl: Optional[str] = None
|
|
327
|
+
baseUrl: typing.Optional[str] = None
|
|
328
328
|
|
|
329
329
|
def __post_init__(self):
|
|
330
330
|
self.type = "gallagher"
|
|
@@ -366,10 +366,10 @@ class MitrefinchController(LockController):
|
|
|
366
366
|
class PaxtonNet2Controller(LockController):
|
|
367
367
|
type: str = field(init=False)
|
|
368
368
|
host: str
|
|
369
|
-
username: Optional[str] = None
|
|
370
|
-
password: Optional[str] = None
|
|
371
369
|
address: str
|
|
372
370
|
output: int
|
|
371
|
+
username: typing.Optional[str] = None
|
|
372
|
+
password: typing.Optional[str] = None
|
|
373
373
|
|
|
374
374
|
def __post_init__(self):
|
|
375
375
|
self.type = "net2"
|
|
@@ -402,7 +402,7 @@ class IntegraV2Controller(LockController):
|
|
|
402
402
|
sessionId: str
|
|
403
403
|
controllerId: int
|
|
404
404
|
cardholderId: int
|
|
405
|
-
pinCode: Optional[int] = None
|
|
405
|
+
pinCode: typing.Optional[int] = None
|
|
406
406
|
|
|
407
407
|
def __post_init__(self):
|
|
408
408
|
self.type = "integra-v2"
|
|
@@ -430,7 +430,7 @@ class TdsiExgardeController(LockController):
|
|
|
430
430
|
username: str
|
|
431
431
|
password: str
|
|
432
432
|
doorId: int
|
|
433
|
-
dbUrl: Optional[str] = None
|
|
433
|
+
dbUrl: typing.Optional[str] = None
|
|
434
434
|
|
|
435
435
|
def __post_init__(self):
|
|
436
436
|
self.type = "tdsi-exgarde"
|
|
@@ -452,7 +452,7 @@ class ZktecoController(LockController):
|
|
|
452
452
|
clientSecret: str
|
|
453
453
|
doorId: str
|
|
454
454
|
entityType: typing.Literal["DOOR", "FLOOR"]
|
|
455
|
-
baseUrl: str = None
|
|
455
|
+
baseUrl: typing.Optional[str] = None
|
|
456
456
|
|
|
457
457
|
def __post_init__(self):
|
|
458
458
|
self.type = "zkteco-zkbio-cvsecurity"
|
|
@@ -602,6 +602,222 @@ class Ed25519Key(AuthKey):
|
|
|
602
602
|
self.kty = "OKP"
|
|
603
603
|
|
|
604
604
|
|
|
605
|
+
class ISecureStorage:
|
|
606
|
+
def set_api_environment(self, api_environment: str) -> None:
|
|
607
|
+
raise NotImplementedError
|
|
608
|
+
|
|
609
|
+
def get_api_environment(self) -> str | None:
|
|
610
|
+
raise NotImplementedError
|
|
611
|
+
|
|
612
|
+
def add_cloud_auth_token(self, token: str) -> None:
|
|
613
|
+
raise NotImplementedError
|
|
614
|
+
|
|
615
|
+
def get_cloud_auth_token(self) -> str | None:
|
|
616
|
+
raise NotImplementedError
|
|
617
|
+
|
|
618
|
+
def add_cloud_refresh_auth_token(self, token: str) -> None:
|
|
619
|
+
raise NotImplementedError
|
|
620
|
+
|
|
621
|
+
def get_cloud_refresh_token(self) -> str | None:
|
|
622
|
+
raise NotImplementedError
|
|
623
|
+
|
|
624
|
+
def set_fusion_host(self, host: str) -> None:
|
|
625
|
+
raise NotImplementedError
|
|
626
|
+
|
|
627
|
+
def get_fusion_host(self) -> str | None:
|
|
628
|
+
raise NotImplementedError
|
|
629
|
+
|
|
630
|
+
def add_fusion_auth_token(self, token: str) -> None:
|
|
631
|
+
raise NotImplementedError
|
|
632
|
+
|
|
633
|
+
def get_fusion_auth_token(self) -> str | None:
|
|
634
|
+
raise NotImplementedError
|
|
635
|
+
|
|
636
|
+
def add_public_key(self, public_key: bytes) -> None:
|
|
637
|
+
raise NotImplementedError
|
|
638
|
+
|
|
639
|
+
def get_public_key(self) -> bytes | None:
|
|
640
|
+
raise NotImplementedError
|
|
641
|
+
|
|
642
|
+
def add_private_key(self, private_key: bytes) -> None:
|
|
643
|
+
raise NotImplementedError
|
|
644
|
+
|
|
645
|
+
def get_private_key(self) -> bytes | None:
|
|
646
|
+
raise NotImplementedError
|
|
647
|
+
|
|
648
|
+
def set_key_pair_verified(self, verified: bool) -> None:
|
|
649
|
+
raise NotImplementedError
|
|
650
|
+
|
|
651
|
+
def get_key_pair_verified(self) -> bool | None:
|
|
652
|
+
raise NotImplementedError
|
|
653
|
+
|
|
654
|
+
def add_user_id(self, user_id: str) -> None:
|
|
655
|
+
raise NotImplementedError
|
|
656
|
+
|
|
657
|
+
def get_user_id(self) -> str | None:
|
|
658
|
+
raise NotImplementedError
|
|
659
|
+
|
|
660
|
+
def set_user_email(self, user_email: str) -> None:
|
|
661
|
+
raise NotImplementedError
|
|
662
|
+
|
|
663
|
+
def get_user_email(self) -> str | None:
|
|
664
|
+
raise NotImplementedError
|
|
665
|
+
|
|
666
|
+
def add_certificate_chain(self, certificate_chain: typing.List[str]) -> None:
|
|
667
|
+
raise NotImplementedError
|
|
668
|
+
|
|
669
|
+
def get_certificate_chain(self) -> typing.List[str]:
|
|
670
|
+
raise NotImplementedError
|
|
671
|
+
|
|
672
|
+
def clear(self) -> None:
|
|
673
|
+
raise NotImplementedError
|
|
674
|
+
|
|
675
|
+
class SecureStorage:
|
|
676
|
+
Implementation: ISecureStorage | None = None
|
|
677
|
+
|
|
678
|
+
static_buffer = ctypes.create_string_buffer(1024 * 10)
|
|
679
|
+
|
|
680
|
+
py_set_data_type = ctypes.CFUNCTYPE(None, ctypes.c_void_p)
|
|
681
|
+
py_get_data_type = ctypes.CFUNCTYPE(ctypes.c_char_p)
|
|
682
|
+
|
|
683
|
+
@staticmethod
|
|
684
|
+
def set_api_environment(result) -> None:
|
|
685
|
+
if SecureStorage.Implementation is not None and result is not None:
|
|
686
|
+
SecureStorage.Implementation.set_api_environment(ctypes.string_at(result).decode())
|
|
687
|
+
|
|
688
|
+
@staticmethod
|
|
689
|
+
def get_api_environment() -> int | None:
|
|
690
|
+
if r := SecureStorage.Implementation and SecureStorage.Implementation.get_api_environment():
|
|
691
|
+
SecureStorage.static_buffer.value = r.encode()
|
|
692
|
+
return ctypes.addressof(SecureStorage.static_buffer)
|
|
693
|
+
return None
|
|
694
|
+
|
|
695
|
+
@staticmethod
|
|
696
|
+
def add_cloud_auth_token(result) -> None:
|
|
697
|
+
if SecureStorage.Implementation is not None and result is not None:
|
|
698
|
+
SecureStorage.Implementation.add_cloud_auth_token(ctypes.string_at(result).decode())
|
|
699
|
+
|
|
700
|
+
@staticmethod
|
|
701
|
+
def get_cloud_auth_token() -> int | None:
|
|
702
|
+
if r := SecureStorage.Implementation and SecureStorage.Implementation.get_cloud_auth_token():
|
|
703
|
+
SecureStorage.static_buffer.value = r.encode()
|
|
704
|
+
return ctypes.addressof(SecureStorage.static_buffer)
|
|
705
|
+
return None
|
|
706
|
+
|
|
707
|
+
@staticmethod
|
|
708
|
+
def add_cloud_refresh_auth_token(result) -> None:
|
|
709
|
+
if SecureStorage.Implementation is not None and result is not None:
|
|
710
|
+
SecureStorage.Implementation.add_cloud_refresh_auth_token(ctypes.string_at(result).decode())
|
|
711
|
+
|
|
712
|
+
@staticmethod
|
|
713
|
+
def get_cloud_refresh_token() -> int | None:
|
|
714
|
+
if r := SecureStorage.Implementation and SecureStorage.Implementation.get_cloud_refresh_token():
|
|
715
|
+
SecureStorage.static_buffer.value = r.encode()
|
|
716
|
+
return ctypes.addressof(SecureStorage.static_buffer)
|
|
717
|
+
return None
|
|
718
|
+
|
|
719
|
+
@staticmethod
|
|
720
|
+
def set_fusion_host(result) -> None:
|
|
721
|
+
if SecureStorage.Implementation is not None and result is not None:
|
|
722
|
+
SecureStorage.Implementation.set_fusion_host(ctypes.string_at(result).decode())
|
|
723
|
+
|
|
724
|
+
@staticmethod
|
|
725
|
+
def get_fusion_host() -> int | None:
|
|
726
|
+
if r := SecureStorage.Implementation and SecureStorage.Implementation.get_fusion_host():
|
|
727
|
+
SecureStorage.static_buffer.value = r.encode()
|
|
728
|
+
return ctypes.addressof(SecureStorage.static_buffer)
|
|
729
|
+
return None
|
|
730
|
+
|
|
731
|
+
@staticmethod
|
|
732
|
+
def add_fusion_auth_token(result) -> None:
|
|
733
|
+
if SecureStorage.Implementation is not None and result is not None:
|
|
734
|
+
SecureStorage.Implementation.add_fusion_auth_token(ctypes.string_at(result).decode())
|
|
735
|
+
|
|
736
|
+
@staticmethod
|
|
737
|
+
def get_fusion_auth_token() -> int | None:
|
|
738
|
+
if r := SecureStorage.Implementation and SecureStorage.Implementation.get_fusion_auth_token():
|
|
739
|
+
SecureStorage.static_buffer.value = r.encode()
|
|
740
|
+
return ctypes.addressof(SecureStorage.static_buffer)
|
|
741
|
+
return None
|
|
742
|
+
|
|
743
|
+
@staticmethod
|
|
744
|
+
def add_public_key(result) -> None:
|
|
745
|
+
if SecureStorage.Implementation is not None and result is not None:
|
|
746
|
+
SecureStorage.Implementation.add_public_key(decode_base64_to_byte_array(ctypes.string_at(result).decode()))
|
|
747
|
+
|
|
748
|
+
@staticmethod
|
|
749
|
+
def get_public_key() -> int | None:
|
|
750
|
+
if r := SecureStorage.Implementation and SecureStorage.Implementation.get_public_key():
|
|
751
|
+
SecureStorage.static_buffer.value = encode_byte_array_to_base64(r).encode()
|
|
752
|
+
return ctypes.addressof(SecureStorage.static_buffer)
|
|
753
|
+
return None
|
|
754
|
+
|
|
755
|
+
@staticmethod
|
|
756
|
+
def add_private_key(result) -> None:
|
|
757
|
+
if SecureStorage.Implementation is not None and result is not None:
|
|
758
|
+
SecureStorage.Implementation.add_private_key(decode_base64_to_byte_array(ctypes.string_at(result).decode()))
|
|
759
|
+
|
|
760
|
+
@staticmethod
|
|
761
|
+
def get_private_key() -> int | None:
|
|
762
|
+
if r := SecureStorage.Implementation and SecureStorage.Implementation.get_private_key():
|
|
763
|
+
SecureStorage.static_buffer.value = encode_byte_array_to_base64(r).encode()
|
|
764
|
+
return ctypes.addressof(SecureStorage.static_buffer)
|
|
765
|
+
return None
|
|
766
|
+
|
|
767
|
+
@staticmethod
|
|
768
|
+
def set_key_pair_verified(result) -> None:
|
|
769
|
+
if SecureStorage.Implementation is not None and result is not None:
|
|
770
|
+
SecureStorage.Implementation.set_key_pair_verified(bool(ctypes.string_at(result).decode()))
|
|
771
|
+
|
|
772
|
+
@staticmethod
|
|
773
|
+
def get_key_pair_verified() -> int | None:
|
|
774
|
+
if r := SecureStorage.Implementation and SecureStorage.Implementation.get_key_pair_verified():
|
|
775
|
+
SecureStorage.static_buffer.value = str(r).encode()
|
|
776
|
+
return ctypes.addressof(SecureStorage.static_buffer)
|
|
777
|
+
return None
|
|
778
|
+
|
|
779
|
+
@staticmethod
|
|
780
|
+
def add_user_id(result) -> None:
|
|
781
|
+
if SecureStorage.Implementation is not None and result is not None:
|
|
782
|
+
SecureStorage.Implementation.add_user_id(ctypes.string_at(result).decode())
|
|
783
|
+
|
|
784
|
+
@staticmethod
|
|
785
|
+
def get_user_id() -> int | None:
|
|
786
|
+
if r := SecureStorage.Implementation and SecureStorage.Implementation.get_user_id():
|
|
787
|
+
SecureStorage.static_buffer.value = r.encode()
|
|
788
|
+
return ctypes.addressof(SecureStorage.static_buffer)
|
|
789
|
+
return None
|
|
790
|
+
|
|
791
|
+
@staticmethod
|
|
792
|
+
def set_user_email(result) -> None:
|
|
793
|
+
if SecureStorage.Implementation is not None and result is not None:
|
|
794
|
+
SecureStorage.Implementation.set_user_email(ctypes.string_at(result).decode())
|
|
795
|
+
|
|
796
|
+
@staticmethod
|
|
797
|
+
def get_user_email() -> int | None:
|
|
798
|
+
if r := SecureStorage.Implementation and SecureStorage.Implementation.get_user_email():
|
|
799
|
+
SecureStorage.static_buffer.value = r.encode()
|
|
800
|
+
return ctypes.addressof(SecureStorage.static_buffer)
|
|
801
|
+
return None
|
|
802
|
+
|
|
803
|
+
@staticmethod
|
|
804
|
+
def add_certificate_chain(result) -> None:
|
|
805
|
+
if SecureStorage.Implementation is not None and result is not None:
|
|
806
|
+
SecureStorage.Implementation.add_certificate_chain(string_to_certificate_chain(ctypes.string_at(result).decode()))
|
|
807
|
+
|
|
808
|
+
@staticmethod
|
|
809
|
+
def get_certificate_chain() -> int | None:
|
|
810
|
+
if r := SecureStorage.Implementation and SecureStorage.Implementation.get_certificate_chain():
|
|
811
|
+
SecureStorage.static_buffer.value = certificate_chain_to_string(r).encode()
|
|
812
|
+
return ctypes.addressof(SecureStorage.static_buffer)
|
|
813
|
+
return None
|
|
814
|
+
|
|
815
|
+
@staticmethod
|
|
816
|
+
def clear() -> None:
|
|
817
|
+
if SecureStorage.Implementation is not None:
|
|
818
|
+
SecureStorage.Implementation.clear()
|
|
819
|
+
|
|
820
|
+
|
|
605
821
|
class Account(object):
|
|
606
822
|
|
|
607
823
|
def __init__(self, resource):
|
|
@@ -627,7 +843,7 @@ class Account(object):
|
|
|
627
843
|
[self.resource, json.dumps(data)]
|
|
628
844
|
)
|
|
629
845
|
|
|
630
|
-
async def register_ephemeral_key_with_secondary_authentication(self, publicKey: str, method: Optional[typing.Literal["EMAIL", "TELEPHONE", "SMS"]] = None):
|
|
846
|
+
async def register_ephemeral_key_with_secondary_authentication(self, publicKey: str, method: typing.Optional[typing.Literal["EMAIL", "TELEPHONE", "SMS"]] = None):
|
|
631
847
|
data = {
|
|
632
848
|
"publicKey": publicKey,
|
|
633
849
|
"method": method
|
|
@@ -637,7 +853,7 @@ class Account(object):
|
|
|
637
853
|
[self.resource, json.dumps(data)]
|
|
638
854
|
)
|
|
639
855
|
|
|
640
|
-
async def verify_ephemeral_key_registration(self, code: str, privateKey: str = None):
|
|
856
|
+
async def verify_ephemeral_key_registration(self, code: str, privateKey: typing.Optional[str] = None):
|
|
641
857
|
data = {
|
|
642
858
|
"code": code,
|
|
643
859
|
"privateKey": privateKey
|
|
@@ -698,7 +914,7 @@ class Accountless(object):
|
|
|
698
914
|
[self.resource, json.dumps(data)]
|
|
699
915
|
)
|
|
700
916
|
|
|
701
|
-
async def registration(self, email: str, password: str, force: bool = False, displayName: str = None, publicKey: str = None):
|
|
917
|
+
async def registration(self, email: str, password: str, force: bool = False, displayName: typing.Optional[str] = None, publicKey: typing.Optional[str] = None):
|
|
702
918
|
data = {
|
|
703
919
|
"email": email,
|
|
704
920
|
"password": password,
|
|
@@ -915,7 +1131,7 @@ class Helper(object):
|
|
|
915
1131
|
[self.resource, json.dumps(data)]
|
|
916
1132
|
)
|
|
917
1133
|
|
|
918
|
-
async def assisted_register(self, email: str, password: str, force: bool = False, displayName: str = None):
|
|
1134
|
+
async def assisted_register(self, email: str, password: str, force: bool = False, displayName: typing.Optional[str] = None):
|
|
919
1135
|
data = {
|
|
920
1136
|
"email": email,
|
|
921
1137
|
"password": password,
|
|
@@ -976,7 +1192,7 @@ class LockOperations(object):
|
|
|
976
1192
|
[self.resource, json.dumps(data)]
|
|
977
1193
|
)
|
|
978
1194
|
|
|
979
|
-
async def update_lock_name(self, lockId: str, name: str = None):
|
|
1195
|
+
async def update_lock_name(self, lockId: str, name: typing.Optional[str] = None):
|
|
980
1196
|
data = {
|
|
981
1197
|
"lockId": lockId,
|
|
982
1198
|
"name": name
|
|
@@ -986,7 +1202,7 @@ class LockOperations(object):
|
|
|
986
1202
|
[self.resource, json.dumps(data)]
|
|
987
1203
|
)
|
|
988
1204
|
|
|
989
|
-
async def update_lock_favourite(self, lockId: str, favourite: bool = None):
|
|
1205
|
+
async def update_lock_favourite(self, lockId: str, favourite: typing.Optional[bool] = None):
|
|
990
1206
|
data = {
|
|
991
1207
|
"lockId": lockId,
|
|
992
1208
|
"favourite": favourite
|
|
@@ -996,7 +1212,7 @@ class LockOperations(object):
|
|
|
996
1212
|
[self.resource, json.dumps(data)]
|
|
997
1213
|
)
|
|
998
1214
|
|
|
999
|
-
async def update_lock_colour(self, lockId: str, colour: str = None):
|
|
1215
|
+
async def update_lock_colour(self, lockId: str, colour: typing.Optional[str] = None):
|
|
1000
1216
|
data = {
|
|
1001
1217
|
"lockId": lockId,
|
|
1002
1218
|
"colour": colour
|
|
@@ -1006,7 +1222,7 @@ class LockOperations(object):
|
|
|
1006
1222
|
[self.resource, json.dumps(data)]
|
|
1007
1223
|
)
|
|
1008
1224
|
|
|
1009
|
-
async def update_lock_setting_default_name(self, lockId: str, name: str = None):
|
|
1225
|
+
async def update_lock_setting_default_name(self, lockId: str, name: typing.Optional[str] = None):
|
|
1010
1226
|
data = {
|
|
1011
1227
|
"lockId": lockId,
|
|
1012
1228
|
"name": name
|
|
@@ -1039,17 +1255,17 @@ class LockOperations(object):
|
|
|
1039
1255
|
async def set_lock_setting_time_restrictions(self, lockId: str, times: List[TimeRequirement]):
|
|
1040
1256
|
data = {
|
|
1041
1257
|
"lockId": lockId,
|
|
1042
|
-
"times": dataclasses.asdict(times
|
|
1258
|
+
"times": [dataclasses.asdict(t) for t in times]
|
|
1043
1259
|
}
|
|
1044
1260
|
return await execute_async(
|
|
1045
1261
|
_doordeck_headless_sdk.setLockSettingTimeRestrictions,
|
|
1046
1262
|
[self.resource, json.dumps(data)]
|
|
1047
1263
|
)
|
|
1048
1264
|
|
|
1049
|
-
async def update_lock_setting_location_restrictions(self, lockId: str, location: LocationRequirement = None):
|
|
1265
|
+
async def update_lock_setting_location_restrictions(self, lockId: str, location: typing.Optional[LocationRequirement] = None):
|
|
1050
1266
|
data = {
|
|
1051
1267
|
"lockId": lockId,
|
|
1052
|
-
"location": dataclasses.asdict(location)
|
|
1268
|
+
**({"location": dataclasses.asdict(location)} if location is not None else {})
|
|
1053
1269
|
}
|
|
1054
1270
|
return await execute_async(
|
|
1055
1271
|
_doordeck_headless_sdk.updateLockSettingLocationRestrictions,
|
|
@@ -1429,9 +1645,57 @@ class Tiles(object):
|
|
|
1429
1645
|
|
|
1430
1646
|
class InitializeSdk(object):
|
|
1431
1647
|
|
|
1432
|
-
def __init__(self, api_environment: typing.Literal["DEV", "STAGING", "PROD"] = "PROD",
|
|
1648
|
+
def __init__(self, api_environment: typing.Literal["DEV", "STAGING", "PROD"] = "PROD",
|
|
1649
|
+
cloud_auth_token: typing.Optional[str] = None, cloud_refresh_token: typing.Optional[str] = None,
|
|
1650
|
+
fusion_host: typing.Optional[str] = None, secure_storage_impl: typing.Optional[ISecureStorage] = None,
|
|
1651
|
+
debug_logging: typing.Optional[bool] = None):
|
|
1652
|
+
|
|
1653
|
+
self.secureStorage = Doordeck_Headless_Sdk_kref_com_doordeck_multiplatform_sdk_storage_SecureStorage()
|
|
1654
|
+
if secure_storage_impl is not None:
|
|
1655
|
+
SecureStorage.Implementation = secure_storage_impl
|
|
1656
|
+
|
|
1657
|
+
setApiEnvironmentCp = ctypes.cast(SecureStorage.py_set_data_type(SecureStorage.set_api_environment), ctypes.c_void_p).value
|
|
1658
|
+
getApiEnvironmentCp = ctypes.cast(SecureStorage.py_get_data_type(SecureStorage.get_api_environment), ctypes.c_void_p).value
|
|
1659
|
+
addCloudAuthTokenCp = ctypes.cast(SecureStorage.py_set_data_type(SecureStorage.add_cloud_auth_token), ctypes.c_void_p).value
|
|
1660
|
+
getCloudAuthTokenCp = ctypes.cast(SecureStorage.py_get_data_type(SecureStorage.get_cloud_auth_token), ctypes.c_void_p).value
|
|
1661
|
+
addCloudRefreshTokenCp = ctypes.cast(SecureStorage.py_set_data_type(SecureStorage.add_cloud_refresh_auth_token), ctypes.c_void_p).value
|
|
1662
|
+
getCloudRefreshTokenCp = ctypes.cast(SecureStorage.py_get_data_type(SecureStorage.get_cloud_refresh_token), ctypes.c_void_p).value
|
|
1663
|
+
setFusionHostCp = ctypes.cast(SecureStorage.py_set_data_type(SecureStorage.set_fusion_host), ctypes.c_void_p).value
|
|
1664
|
+
getFusionHostCp = ctypes.cast(SecureStorage.py_get_data_type(SecureStorage.get_fusion_host), ctypes.c_void_p).value
|
|
1665
|
+
addFusionAuthTokenCp = ctypes.cast(SecureStorage.py_set_data_type(SecureStorage.add_fusion_auth_token), ctypes.c_void_p).value
|
|
1666
|
+
getFusionAuthTokenCp = ctypes.cast(SecureStorage.py_get_data_type(SecureStorage.get_fusion_auth_token), ctypes.c_void_p).value
|
|
1667
|
+
addPublicKeyCp = ctypes.cast(SecureStorage.py_set_data_type(SecureStorage.add_public_key), ctypes.c_void_p).value
|
|
1668
|
+
getPublicKeyCp = ctypes.cast(SecureStorage.py_get_data_type(SecureStorage.get_public_key), ctypes.c_void_p).value
|
|
1669
|
+
addPrivateKeyCp = ctypes.cast(SecureStorage.py_set_data_type(SecureStorage.add_private_key), ctypes.c_void_p).value
|
|
1670
|
+
getPrivateKeyCp = ctypes.cast(SecureStorage.py_get_data_type(SecureStorage.get_private_key), ctypes.c_void_p).value
|
|
1671
|
+
setKeyPairVerifiedCp = ctypes.cast(SecureStorage.py_set_data_type(SecureStorage.set_key_pair_verified), ctypes.c_void_p).value
|
|
1672
|
+
getKeyPairVerifiedCp = ctypes.cast(SecureStorage.py_get_data_type(SecureStorage.get_key_pair_verified), ctypes.c_void_p).value
|
|
1673
|
+
addUserIdCp = ctypes.cast(SecureStorage.py_set_data_type(SecureStorage.add_user_id), ctypes.c_void_p).value
|
|
1674
|
+
getUserIdCp = ctypes.cast(SecureStorage.py_get_data_type(SecureStorage.get_user_id), ctypes.c_void_p).value
|
|
1675
|
+
addUserEmailCp = ctypes.cast(SecureStorage.py_set_data_type(SecureStorage.set_user_email), ctypes.c_void_p).value
|
|
1676
|
+
getUserEmailCp = ctypes.cast(SecureStorage.py_get_data_type(SecureStorage.get_user_email), ctypes.c_void_p).value
|
|
1677
|
+
addCertificateChainCp = ctypes.cast(SecureStorage.py_set_data_type(SecureStorage.add_certificate_chain), ctypes.c_void_p).value
|
|
1678
|
+
getCertificateChainCp = ctypes.cast(SecureStorage.py_get_data_type(SecureStorage.get_certificate_chain), ctypes.c_void_p).value
|
|
1679
|
+
clearCp = ctypes.cast(SecureStorage.py_get_data_type(SecureStorage.clear), ctypes.c_void_p).value
|
|
1680
|
+
|
|
1681
|
+
self.secureStorage = _doordeck_headless_sdk.createMingwSecureStorage(
|
|
1682
|
+
setApiEnvironmentCp, getApiEnvironmentCp,
|
|
1683
|
+
addCloudAuthTokenCp, getCloudAuthTokenCp,
|
|
1684
|
+
addCloudRefreshTokenCp, getCloudRefreshTokenCp,
|
|
1685
|
+
setFusionHostCp, getFusionHostCp,
|
|
1686
|
+
addFusionAuthTokenCp, getFusionAuthTokenCp,
|
|
1687
|
+
addPublicKeyCp, getPublicKeyCp,
|
|
1688
|
+
addPrivateKeyCp, getPrivateKeyCp,
|
|
1689
|
+
setKeyPairVerifiedCp, getKeyPairVerifiedCp,
|
|
1690
|
+
addUserIdCp, getUserIdCp,
|
|
1691
|
+
addUserEmailCp, getUserEmailCp,
|
|
1692
|
+
addCertificateChainCp, getCertificateChainCp,
|
|
1693
|
+
clearCp
|
|
1694
|
+
)
|
|
1695
|
+
|
|
1433
1696
|
self.sdkApiEnvironment = _doordeck_headless_sdk.getApiEnvironmentByName(Doordeck_Headless_Sdk_kref_com_doordeck_multiplatform_sdk_model_data_ApiEnvironment(), api_environment)
|
|
1434
|
-
self.
|
|
1697
|
+
self.debugLogging = 'False' if debug_logging is None else str(debug_logging)
|
|
1698
|
+
self.sdkConfig = _doordeck_headless_sdk.buildSdkConfig(self.sdkApiEnvironment, cloud_auth_token, cloud_refresh_token, fusion_host, self.secureStorage, self.debugLogging)
|
|
1435
1699
|
self.sdk = initialize(Doordeck_Headless_Sdk_kref_com_doordeck_multiplatform_sdk_KDoordeckFactory(), self.sdkConfig)
|
|
1436
1700
|
self.accountless = Accountless(accountless(self.sdk))
|
|
1437
1701
|
self.account = Account(account(self.sdk))
|
|
@@ -8371,8 +8635,8 @@ def generateEncodedKeyPair(thiz):
|
|
|
8371
8635
|
def createMingwSecureStorage(setApiEnvironmentCp, getApiEnvironmentCp, addCloudAuthTokenCp, getCloudAuthTokenCp, addCloudRefreshTokenCp, getCloudRefreshTokenCp, setFusionHostCp, getFusionHostCp, addFusionAuthTokenCp, getFusionAuthTokenCp, addPublicKeyCp, getPublicKeyCp, addPrivateKeyCp, getPrivateKeyCp, setKeyPairVerifiedCp, getKeyPairVerifiedCp, addUserIdCp, getUserIdCp, addUserEmailCp, getUserEmailCp, addCertificateChainCp, getCertificateChainCp, clearCp):
|
|
8372
8636
|
return _doordeck_headless_sdk.createMingwSecureStorage(setApiEnvironmentCp, getApiEnvironmentCp, addCloudAuthTokenCp, getCloudAuthTokenCp, addCloudRefreshTokenCp, getCloudRefreshTokenCp, setFusionHostCp, getFusionHostCp, addFusionAuthTokenCp, getFusionAuthTokenCp, addPublicKeyCp, getPublicKeyCp, addPrivateKeyCp, getPrivateKeyCp, setKeyPairVerifiedCp, getKeyPairVerifiedCp, addUserIdCp, getUserIdCp, addUserEmailCp, getUserEmailCp, addCertificateChainCp, getCertificateChainCp, clearCp)
|
|
8373
8637
|
|
|
8374
|
-
def buildSdkConfig(apiEnvironment, cloudAuthToken, cloudRefreshToken, fusionHost, secureStorage):
|
|
8375
|
-
return _doordeck_headless_sdk.buildSdkConfig(apiEnvironment, cloudAuthToken, cloudRefreshToken, fusionHost, secureStorage)
|
|
8638
|
+
def buildSdkConfig(apiEnvironment, cloudAuthToken, cloudRefreshToken, fusionHost, secureStorage, debugLogging):
|
|
8639
|
+
return _doordeck_headless_sdk.buildSdkConfig(apiEnvironment, cloudAuthToken, cloudRefreshToken, fusionHost, secureStorage, debugLogging)
|
|
8376
8640
|
|
|
8377
8641
|
def getApiEnvironmentByName(thiz, name):
|
|
8378
8642
|
return _doordeck_headless_sdk.getApiEnvironmentByName(thiz, name)
|
|
@@ -18729,6 +18993,7 @@ class Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatfo
|
|
|
18729
18993
|
get_apiEnvironment = property(_doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_get_apiEnvironment_get, _doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_get_apiEnvironment_set)
|
|
18730
18994
|
get_cloudAuthToken = property(_doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_get_cloudAuthToken_get, _doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_get_cloudAuthToken_set)
|
|
18731
18995
|
get_cloudRefreshToken = property(_doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_get_cloudRefreshToken_get, _doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_get_cloudRefreshToken_set)
|
|
18996
|
+
get_debugLogging = property(_doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_get_debugLogging_get, _doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_get_debugLogging_set)
|
|
18732
18997
|
get_fusionHost = property(_doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_get_fusionHost_get, _doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_get_fusionHost_set)
|
|
18733
18998
|
get_secureStorage = property(_doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_get_secureStorage_get, _doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_get_secureStorage_set)
|
|
18734
18999
|
component1 = property(_doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_component1_get, _doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_component1_set)
|
|
@@ -18736,6 +19001,7 @@ class Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatfo
|
|
|
18736
19001
|
component3 = property(_doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_component3_get, _doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_component3_set)
|
|
18737
19002
|
component4 = property(_doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_component4_get, _doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_component4_set)
|
|
18738
19003
|
component5 = property(_doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_component5_get, _doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_component5_set)
|
|
19004
|
+
component6 = property(_doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_component6_get, _doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_component6_set)
|
|
18739
19005
|
copy = property(_doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_copy_get, _doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_copy_set)
|
|
18740
19006
|
equals = property(_doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_equals_get, _doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_equals_set)
|
|
18741
19007
|
hashCode = property(_doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_hashCode_get, _doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_hashCode_set)
|
|
@@ -18756,6 +19022,7 @@ class Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatfo
|
|
|
18756
19022
|
setApiEnvironment = property(_doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_Builder_setApiEnvironment_get, _doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_Builder_setApiEnvironment_set)
|
|
18757
19023
|
setCloudAuthToken = property(_doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_Builder_setCloudAuthToken_get, _doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_Builder_setCloudAuthToken_set)
|
|
18758
19024
|
setCloudRefreshToken = property(_doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_Builder_setCloudRefreshToken_get, _doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_Builder_setCloudRefreshToken_set)
|
|
19025
|
+
setDebugLogging = property(_doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_Builder_setDebugLogging_get, _doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_Builder_setDebugLogging_set)
|
|
18759
19026
|
setFusionHost = property(_doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_Builder_setFusionHost_get, _doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_Builder_setFusionHost_set)
|
|
18760
19027
|
setSecureStorageOverride = property(_doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_Builder_setSecureStorageOverride_get, _doordeck_headless_sdk.Doordeck_Headless_Sdk_ExportedSymbols_kotlin_root_com_doordeck_multiplatform_sdk_config_SdkConfig_Builder_setSecureStorageOverride_set)
|
|
18761
19028
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|