alibabacloud-eiam20211201 2.4.0__tar.gz → 2.5.1__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.
Files changed (17) hide show
  1. {alibabacloud_eiam20211201-2.4.0 → alibabacloud_eiam20211201-2.5.1}/ChangeLog.md +19 -0
  2. {alibabacloud_eiam20211201-2.4.0 → alibabacloud_eiam20211201-2.5.1}/PKG-INFO +1 -1
  3. alibabacloud_eiam20211201-2.5.1/alibabacloud_eiam20211201/__init__.py +1 -0
  4. {alibabacloud_eiam20211201-2.4.0 → alibabacloud_eiam20211201-2.5.1}/alibabacloud_eiam20211201/client.py +340 -0
  5. {alibabacloud_eiam20211201-2.4.0 → alibabacloud_eiam20211201-2.5.1}/alibabacloud_eiam20211201/models.py +575 -0
  6. {alibabacloud_eiam20211201-2.4.0 → alibabacloud_eiam20211201-2.5.1}/alibabacloud_eiam20211201.egg-info/PKG-INFO +1 -1
  7. {alibabacloud_eiam20211201-2.4.0 → alibabacloud_eiam20211201-2.5.1}/setup.py +1 -1
  8. alibabacloud_eiam20211201-2.4.0/alibabacloud_eiam20211201/__init__.py +0 -1
  9. {alibabacloud_eiam20211201-2.4.0 → alibabacloud_eiam20211201-2.5.1}/LICENSE +0 -0
  10. {alibabacloud_eiam20211201-2.4.0 → alibabacloud_eiam20211201-2.5.1}/MANIFEST.in +0 -0
  11. {alibabacloud_eiam20211201-2.4.0 → alibabacloud_eiam20211201-2.5.1}/README-CN.md +0 -0
  12. {alibabacloud_eiam20211201-2.4.0 → alibabacloud_eiam20211201-2.5.1}/README.md +0 -0
  13. {alibabacloud_eiam20211201-2.4.0 → alibabacloud_eiam20211201-2.5.1}/alibabacloud_eiam20211201.egg-info/SOURCES.txt +0 -0
  14. {alibabacloud_eiam20211201-2.4.0 → alibabacloud_eiam20211201-2.5.1}/alibabacloud_eiam20211201.egg-info/dependency_links.txt +0 -0
  15. {alibabacloud_eiam20211201-2.4.0 → alibabacloud_eiam20211201-2.5.1}/alibabacloud_eiam20211201.egg-info/requires.txt +0 -0
  16. {alibabacloud_eiam20211201-2.4.0 → alibabacloud_eiam20211201-2.5.1}/alibabacloud_eiam20211201.egg-info/top_level.txt +0 -0
  17. {alibabacloud_eiam20211201-2.4.0 → alibabacloud_eiam20211201-2.5.1}/setup.cfg +0 -0
@@ -1,3 +1,22 @@
1
+ 2025-11-11 Version: 2.5.0
2
+ - Support API BindUserAuthnSourceMapping.
3
+ - Support API ListUserAuthnSourceMappings.
4
+ - Support API UnbindUserAuthnSourceMapping.
5
+
6
+
7
+ 2025-10-30 Version: 2.4.0
8
+ - Support API AddCustomPrivacyPoliciesToBrand.
9
+ - Support API CreateCustomPrivacyPolicy.
10
+ - Support API DeleteCustomPrivacyPolicy.
11
+ - Support API DisableCustomPrivacyPolicy.
12
+ - Support API EnableCustomPrivacyPolicy.
13
+ - Support API GetCustomPrivacyPolicy.
14
+ - Support API ListCustomPrivacyPolicies.
15
+ - Support API ListCustomPrivacyPoliciesForBrand.
16
+ - Support API RemoveCustomPrivacyPoliciesFromBrand.
17
+ - Support API UpdateCustomPrivacyPolicy.
18
+
19
+
1
20
  2025-10-20 Version: 2.3.0
2
21
  - Support API CreateBrand.
3
22
  - Support API DeleteBrand.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: alibabacloud_eiam20211201
3
- Version: 2.4.0
3
+ Version: 2.5.1
4
4
  Summary: Alibaba Cloud Eiam (20211201) SDK Library for Python
5
5
  Home-page: https://github.com/aliyun/alibabacloud-python-sdk
6
6
  Author: Alibaba Cloud SDK
@@ -0,0 +1 @@
1
+ __version__ = '2.5.1'
@@ -773,6 +773,114 @@ class Client(OpenApiClient):
773
773
  runtime = util_models.RuntimeOptions()
774
774
  return await self.authorize_application_to_users_with_options_async(request, runtime)
775
775
 
776
+ def bind_user_authn_source_mapping_with_options(
777
+ self,
778
+ request: eiam_20211201_models.BindUserAuthnSourceMappingRequest,
779
+ runtime: util_models.RuntimeOptions,
780
+ ) -> eiam_20211201_models.BindUserAuthnSourceMappingResponse:
781
+ """
782
+ @summary 绑定三方登录账户
783
+
784
+ @param request: BindUserAuthnSourceMappingRequest
785
+ @param runtime: runtime options for this request RuntimeOptions
786
+ @return: BindUserAuthnSourceMappingResponse
787
+ """
788
+ UtilClient.validate_model(request)
789
+ query = {}
790
+ if not UtilClient.is_unset(request.identity_provider_id):
791
+ query['IdentityProviderId'] = request.identity_provider_id
792
+ if not UtilClient.is_unset(request.instance_id):
793
+ query['InstanceId'] = request.instance_id
794
+ if not UtilClient.is_unset(request.user_external_id):
795
+ query['UserExternalId'] = request.user_external_id
796
+ if not UtilClient.is_unset(request.user_id):
797
+ query['UserId'] = request.user_id
798
+ req = open_api_models.OpenApiRequest(
799
+ query=OpenApiUtilClient.query(query)
800
+ )
801
+ params = open_api_models.Params(
802
+ action='BindUserAuthnSourceMapping',
803
+ version='2021-12-01',
804
+ protocol='HTTPS',
805
+ pathname='/',
806
+ method='POST',
807
+ auth_type='AK',
808
+ style='RPC',
809
+ req_body_type='formData',
810
+ body_type='json'
811
+ )
812
+ return TeaCore.from_map(
813
+ eiam_20211201_models.BindUserAuthnSourceMappingResponse(),
814
+ self.call_api(params, req, runtime)
815
+ )
816
+
817
+ async def bind_user_authn_source_mapping_with_options_async(
818
+ self,
819
+ request: eiam_20211201_models.BindUserAuthnSourceMappingRequest,
820
+ runtime: util_models.RuntimeOptions,
821
+ ) -> eiam_20211201_models.BindUserAuthnSourceMappingResponse:
822
+ """
823
+ @summary 绑定三方登录账户
824
+
825
+ @param request: BindUserAuthnSourceMappingRequest
826
+ @param runtime: runtime options for this request RuntimeOptions
827
+ @return: BindUserAuthnSourceMappingResponse
828
+ """
829
+ UtilClient.validate_model(request)
830
+ query = {}
831
+ if not UtilClient.is_unset(request.identity_provider_id):
832
+ query['IdentityProviderId'] = request.identity_provider_id
833
+ if not UtilClient.is_unset(request.instance_id):
834
+ query['InstanceId'] = request.instance_id
835
+ if not UtilClient.is_unset(request.user_external_id):
836
+ query['UserExternalId'] = request.user_external_id
837
+ if not UtilClient.is_unset(request.user_id):
838
+ query['UserId'] = request.user_id
839
+ req = open_api_models.OpenApiRequest(
840
+ query=OpenApiUtilClient.query(query)
841
+ )
842
+ params = open_api_models.Params(
843
+ action='BindUserAuthnSourceMapping',
844
+ version='2021-12-01',
845
+ protocol='HTTPS',
846
+ pathname='/',
847
+ method='POST',
848
+ auth_type='AK',
849
+ style='RPC',
850
+ req_body_type='formData',
851
+ body_type='json'
852
+ )
853
+ return TeaCore.from_map(
854
+ eiam_20211201_models.BindUserAuthnSourceMappingResponse(),
855
+ await self.call_api_async(params, req, runtime)
856
+ )
857
+
858
+ def bind_user_authn_source_mapping(
859
+ self,
860
+ request: eiam_20211201_models.BindUserAuthnSourceMappingRequest,
861
+ ) -> eiam_20211201_models.BindUserAuthnSourceMappingResponse:
862
+ """
863
+ @summary 绑定三方登录账户
864
+
865
+ @param request: BindUserAuthnSourceMappingRequest
866
+ @return: BindUserAuthnSourceMappingResponse
867
+ """
868
+ runtime = util_models.RuntimeOptions()
869
+ return self.bind_user_authn_source_mapping_with_options(request, runtime)
870
+
871
+ async def bind_user_authn_source_mapping_async(
872
+ self,
873
+ request: eiam_20211201_models.BindUserAuthnSourceMappingRequest,
874
+ ) -> eiam_20211201_models.BindUserAuthnSourceMappingResponse:
875
+ """
876
+ @summary 绑定三方登录账户
877
+
878
+ @param request: BindUserAuthnSourceMappingRequest
879
+ @return: BindUserAuthnSourceMappingResponse
880
+ """
881
+ runtime = util_models.RuntimeOptions()
882
+ return await self.bind_user_authn_source_mapping_with_options_async(request, runtime)
883
+
776
884
  def create_application_with_options(
777
885
  self,
778
886
  request: eiam_20211201_models.CreateApplicationRequest,
@@ -13909,6 +14017,8 @@ class Client(OpenApiClient):
13909
14017
  """
13910
14018
  UtilClient.validate_model(request)
13911
14019
  query = {}
14020
+ if not UtilClient.is_unset(request.direction):
14021
+ query['Direction'] = request.direction
13912
14022
  if not UtilClient.is_unset(request.instance_id):
13913
14023
  query['InstanceId'] = request.instance_id
13914
14024
  if not UtilClient.is_unset(request.page_number):
@@ -13948,6 +14058,8 @@ class Client(OpenApiClient):
13948
14058
  """
13949
14059
  UtilClient.validate_model(request)
13950
14060
  query = {}
14061
+ if not UtilClient.is_unset(request.direction):
14062
+ query['Direction'] = request.direction
13951
14063
  if not UtilClient.is_unset(request.instance_id):
13952
14064
  query['InstanceId'] = request.instance_id
13953
14065
  if not UtilClient.is_unset(request.page_number):
@@ -15263,6 +15375,126 @@ class Client(OpenApiClient):
15263
15375
  runtime = util_models.RuntimeOptions()
15264
15376
  return await self.list_synchronization_jobs_with_options_async(request, runtime)
15265
15377
 
15378
+ def list_user_authn_source_mappings_with_options(
15379
+ self,
15380
+ request: eiam_20211201_models.ListUserAuthnSourceMappingsRequest,
15381
+ runtime: util_models.RuntimeOptions,
15382
+ ) -> eiam_20211201_models.ListUserAuthnSourceMappingsResponse:
15383
+ """
15384
+ @summary 查询三方登录账户绑定关系
15385
+
15386
+ @param request: ListUserAuthnSourceMappingsRequest
15387
+ @param runtime: runtime options for this request RuntimeOptions
15388
+ @return: ListUserAuthnSourceMappingsResponse
15389
+ """
15390
+ UtilClient.validate_model(request)
15391
+ query = {}
15392
+ if not UtilClient.is_unset(request.identity_provider_id):
15393
+ query['IdentityProviderId'] = request.identity_provider_id
15394
+ if not UtilClient.is_unset(request.instance_id):
15395
+ query['InstanceId'] = request.instance_id
15396
+ if not UtilClient.is_unset(request.max_results):
15397
+ query['MaxResults'] = request.max_results
15398
+ if not UtilClient.is_unset(request.next_token):
15399
+ query['NextToken'] = request.next_token
15400
+ if not UtilClient.is_unset(request.previous_token):
15401
+ query['PreviousToken'] = request.previous_token
15402
+ if not UtilClient.is_unset(request.user_external_id):
15403
+ query['UserExternalId'] = request.user_external_id
15404
+ if not UtilClient.is_unset(request.user_id):
15405
+ query['UserId'] = request.user_id
15406
+ req = open_api_models.OpenApiRequest(
15407
+ query=OpenApiUtilClient.query(query)
15408
+ )
15409
+ params = open_api_models.Params(
15410
+ action='ListUserAuthnSourceMappings',
15411
+ version='2021-12-01',
15412
+ protocol='HTTPS',
15413
+ pathname='/',
15414
+ method='POST',
15415
+ auth_type='AK',
15416
+ style='RPC',
15417
+ req_body_type='formData',
15418
+ body_type='json'
15419
+ )
15420
+ return TeaCore.from_map(
15421
+ eiam_20211201_models.ListUserAuthnSourceMappingsResponse(),
15422
+ self.call_api(params, req, runtime)
15423
+ )
15424
+
15425
+ async def list_user_authn_source_mappings_with_options_async(
15426
+ self,
15427
+ request: eiam_20211201_models.ListUserAuthnSourceMappingsRequest,
15428
+ runtime: util_models.RuntimeOptions,
15429
+ ) -> eiam_20211201_models.ListUserAuthnSourceMappingsResponse:
15430
+ """
15431
+ @summary 查询三方登录账户绑定关系
15432
+
15433
+ @param request: ListUserAuthnSourceMappingsRequest
15434
+ @param runtime: runtime options for this request RuntimeOptions
15435
+ @return: ListUserAuthnSourceMappingsResponse
15436
+ """
15437
+ UtilClient.validate_model(request)
15438
+ query = {}
15439
+ if not UtilClient.is_unset(request.identity_provider_id):
15440
+ query['IdentityProviderId'] = request.identity_provider_id
15441
+ if not UtilClient.is_unset(request.instance_id):
15442
+ query['InstanceId'] = request.instance_id
15443
+ if not UtilClient.is_unset(request.max_results):
15444
+ query['MaxResults'] = request.max_results
15445
+ if not UtilClient.is_unset(request.next_token):
15446
+ query['NextToken'] = request.next_token
15447
+ if not UtilClient.is_unset(request.previous_token):
15448
+ query['PreviousToken'] = request.previous_token
15449
+ if not UtilClient.is_unset(request.user_external_id):
15450
+ query['UserExternalId'] = request.user_external_id
15451
+ if not UtilClient.is_unset(request.user_id):
15452
+ query['UserId'] = request.user_id
15453
+ req = open_api_models.OpenApiRequest(
15454
+ query=OpenApiUtilClient.query(query)
15455
+ )
15456
+ params = open_api_models.Params(
15457
+ action='ListUserAuthnSourceMappings',
15458
+ version='2021-12-01',
15459
+ protocol='HTTPS',
15460
+ pathname='/',
15461
+ method='POST',
15462
+ auth_type='AK',
15463
+ style='RPC',
15464
+ req_body_type='formData',
15465
+ body_type='json'
15466
+ )
15467
+ return TeaCore.from_map(
15468
+ eiam_20211201_models.ListUserAuthnSourceMappingsResponse(),
15469
+ await self.call_api_async(params, req, runtime)
15470
+ )
15471
+
15472
+ def list_user_authn_source_mappings(
15473
+ self,
15474
+ request: eiam_20211201_models.ListUserAuthnSourceMappingsRequest,
15475
+ ) -> eiam_20211201_models.ListUserAuthnSourceMappingsResponse:
15476
+ """
15477
+ @summary 查询三方登录账户绑定关系
15478
+
15479
+ @param request: ListUserAuthnSourceMappingsRequest
15480
+ @return: ListUserAuthnSourceMappingsResponse
15481
+ """
15482
+ runtime = util_models.RuntimeOptions()
15483
+ return self.list_user_authn_source_mappings_with_options(request, runtime)
15484
+
15485
+ async def list_user_authn_source_mappings_async(
15486
+ self,
15487
+ request: eiam_20211201_models.ListUserAuthnSourceMappingsRequest,
15488
+ ) -> eiam_20211201_models.ListUserAuthnSourceMappingsResponse:
15489
+ """
15490
+ @summary 查询三方登录账户绑定关系
15491
+
15492
+ @param request: ListUserAuthnSourceMappingsRequest
15493
+ @return: ListUserAuthnSourceMappingsResponse
15494
+ """
15495
+ runtime = util_models.RuntimeOptions()
15496
+ return await self.list_user_authn_source_mappings_with_options_async(request, runtime)
15497
+
15266
15498
  def list_users_with_options(
15267
15499
  self,
15268
15500
  request: eiam_20211201_models.ListUsersRequest,
@@ -18247,6 +18479,114 @@ class Client(OpenApiClient):
18247
18479
  runtime = util_models.RuntimeOptions()
18248
18480
  return await self.set_user_primary_organizational_unit_with_options_async(request, runtime)
18249
18481
 
18482
+ def unbind_user_authn_source_mapping_with_options(
18483
+ self,
18484
+ request: eiam_20211201_models.UnbindUserAuthnSourceMappingRequest,
18485
+ runtime: util_models.RuntimeOptions,
18486
+ ) -> eiam_20211201_models.UnbindUserAuthnSourceMappingResponse:
18487
+ """
18488
+ @summary 解绑三方登录账户
18489
+
18490
+ @param request: UnbindUserAuthnSourceMappingRequest
18491
+ @param runtime: runtime options for this request RuntimeOptions
18492
+ @return: UnbindUserAuthnSourceMappingResponse
18493
+ """
18494
+ UtilClient.validate_model(request)
18495
+ query = {}
18496
+ if not UtilClient.is_unset(request.identity_provider_id):
18497
+ query['IdentityProviderId'] = request.identity_provider_id
18498
+ if not UtilClient.is_unset(request.instance_id):
18499
+ query['InstanceId'] = request.instance_id
18500
+ if not UtilClient.is_unset(request.user_external_id):
18501
+ query['UserExternalId'] = request.user_external_id
18502
+ if not UtilClient.is_unset(request.user_id):
18503
+ query['UserId'] = request.user_id
18504
+ req = open_api_models.OpenApiRequest(
18505
+ query=OpenApiUtilClient.query(query)
18506
+ )
18507
+ params = open_api_models.Params(
18508
+ action='UnbindUserAuthnSourceMapping',
18509
+ version='2021-12-01',
18510
+ protocol='HTTPS',
18511
+ pathname='/',
18512
+ method='POST',
18513
+ auth_type='AK',
18514
+ style='RPC',
18515
+ req_body_type='formData',
18516
+ body_type='json'
18517
+ )
18518
+ return TeaCore.from_map(
18519
+ eiam_20211201_models.UnbindUserAuthnSourceMappingResponse(),
18520
+ self.call_api(params, req, runtime)
18521
+ )
18522
+
18523
+ async def unbind_user_authn_source_mapping_with_options_async(
18524
+ self,
18525
+ request: eiam_20211201_models.UnbindUserAuthnSourceMappingRequest,
18526
+ runtime: util_models.RuntimeOptions,
18527
+ ) -> eiam_20211201_models.UnbindUserAuthnSourceMappingResponse:
18528
+ """
18529
+ @summary 解绑三方登录账户
18530
+
18531
+ @param request: UnbindUserAuthnSourceMappingRequest
18532
+ @param runtime: runtime options for this request RuntimeOptions
18533
+ @return: UnbindUserAuthnSourceMappingResponse
18534
+ """
18535
+ UtilClient.validate_model(request)
18536
+ query = {}
18537
+ if not UtilClient.is_unset(request.identity_provider_id):
18538
+ query['IdentityProviderId'] = request.identity_provider_id
18539
+ if not UtilClient.is_unset(request.instance_id):
18540
+ query['InstanceId'] = request.instance_id
18541
+ if not UtilClient.is_unset(request.user_external_id):
18542
+ query['UserExternalId'] = request.user_external_id
18543
+ if not UtilClient.is_unset(request.user_id):
18544
+ query['UserId'] = request.user_id
18545
+ req = open_api_models.OpenApiRequest(
18546
+ query=OpenApiUtilClient.query(query)
18547
+ )
18548
+ params = open_api_models.Params(
18549
+ action='UnbindUserAuthnSourceMapping',
18550
+ version='2021-12-01',
18551
+ protocol='HTTPS',
18552
+ pathname='/',
18553
+ method='POST',
18554
+ auth_type='AK',
18555
+ style='RPC',
18556
+ req_body_type='formData',
18557
+ body_type='json'
18558
+ )
18559
+ return TeaCore.from_map(
18560
+ eiam_20211201_models.UnbindUserAuthnSourceMappingResponse(),
18561
+ await self.call_api_async(params, req, runtime)
18562
+ )
18563
+
18564
+ def unbind_user_authn_source_mapping(
18565
+ self,
18566
+ request: eiam_20211201_models.UnbindUserAuthnSourceMappingRequest,
18567
+ ) -> eiam_20211201_models.UnbindUserAuthnSourceMappingResponse:
18568
+ """
18569
+ @summary 解绑三方登录账户
18570
+
18571
+ @param request: UnbindUserAuthnSourceMappingRequest
18572
+ @return: UnbindUserAuthnSourceMappingResponse
18573
+ """
18574
+ runtime = util_models.RuntimeOptions()
18575
+ return self.unbind_user_authn_source_mapping_with_options(request, runtime)
18576
+
18577
+ async def unbind_user_authn_source_mapping_async(
18578
+ self,
18579
+ request: eiam_20211201_models.UnbindUserAuthnSourceMappingRequest,
18580
+ ) -> eiam_20211201_models.UnbindUserAuthnSourceMappingResponse:
18581
+ """
18582
+ @summary 解绑三方登录账户
18583
+
18584
+ @param request: UnbindUserAuthnSourceMappingRequest
18585
+ @return: UnbindUserAuthnSourceMappingResponse
18586
+ """
18587
+ runtime = util_models.RuntimeOptions()
18588
+ return await self.unbind_user_authn_source_mapping_with_options_async(request, runtime)
18589
+
18250
18590
  def unlock_user_with_options(
18251
18591
  self,
18252
18592
  request: eiam_20211201_models.UnlockUserRequest,
@@ -836,6 +836,131 @@ class AuthorizeApplicationToUsersResponse(TeaModel):
836
836
  return self
837
837
 
838
838
 
839
+ class BindUserAuthnSourceMappingRequest(TeaModel):
840
+ def __init__(
841
+ self,
842
+ identity_provider_id: str = None,
843
+ instance_id: str = None,
844
+ user_external_id: str = None,
845
+ user_id: str = None,
846
+ ):
847
+ # 来源Idp Id
848
+ #
849
+ # This parameter is required.
850
+ self.identity_provider_id = identity_provider_id
851
+ # IDaaS EIAM实例的ID。
852
+ #
853
+ # This parameter is required.
854
+ self.instance_id = instance_id
855
+ # 外部关联ID
856
+ #
857
+ # This parameter is required.
858
+ self.user_external_id = user_external_id
859
+ # 用户ID
860
+ #
861
+ # This parameter is required.
862
+ self.user_id = user_id
863
+
864
+ def validate(self):
865
+ pass
866
+
867
+ def to_map(self):
868
+ _map = super().to_map()
869
+ if _map is not None:
870
+ return _map
871
+
872
+ result = dict()
873
+ if self.identity_provider_id is not None:
874
+ result['IdentityProviderId'] = self.identity_provider_id
875
+ if self.instance_id is not None:
876
+ result['InstanceId'] = self.instance_id
877
+ if self.user_external_id is not None:
878
+ result['UserExternalId'] = self.user_external_id
879
+ if self.user_id is not None:
880
+ result['UserId'] = self.user_id
881
+ return result
882
+
883
+ def from_map(self, m: dict = None):
884
+ m = m or dict()
885
+ if m.get('IdentityProviderId') is not None:
886
+ self.identity_provider_id = m.get('IdentityProviderId')
887
+ if m.get('InstanceId') is not None:
888
+ self.instance_id = m.get('InstanceId')
889
+ if m.get('UserExternalId') is not None:
890
+ self.user_external_id = m.get('UserExternalId')
891
+ if m.get('UserId') is not None:
892
+ self.user_id = m.get('UserId')
893
+ return self
894
+
895
+
896
+ class BindUserAuthnSourceMappingResponseBody(TeaModel):
897
+ def __init__(
898
+ self,
899
+ request_id: str = None,
900
+ ):
901
+ self.request_id = request_id
902
+
903
+ def validate(self):
904
+ pass
905
+
906
+ def to_map(self):
907
+ _map = super().to_map()
908
+ if _map is not None:
909
+ return _map
910
+
911
+ result = dict()
912
+ if self.request_id is not None:
913
+ result['RequestId'] = self.request_id
914
+ return result
915
+
916
+ def from_map(self, m: dict = None):
917
+ m = m or dict()
918
+ if m.get('RequestId') is not None:
919
+ self.request_id = m.get('RequestId')
920
+ return self
921
+
922
+
923
+ class BindUserAuthnSourceMappingResponse(TeaModel):
924
+ def __init__(
925
+ self,
926
+ headers: Dict[str, str] = None,
927
+ status_code: int = None,
928
+ body: BindUserAuthnSourceMappingResponseBody = None,
929
+ ):
930
+ self.headers = headers
931
+ self.status_code = status_code
932
+ self.body = body
933
+
934
+ def validate(self):
935
+ if self.body:
936
+ self.body.validate()
937
+
938
+ def to_map(self):
939
+ _map = super().to_map()
940
+ if _map is not None:
941
+ return _map
942
+
943
+ result = dict()
944
+ if self.headers is not None:
945
+ result['headers'] = self.headers
946
+ if self.status_code is not None:
947
+ result['statusCode'] = self.status_code
948
+ if self.body is not None:
949
+ result['body'] = self.body.to_map()
950
+ return result
951
+
952
+ def from_map(self, m: dict = None):
953
+ m = m or dict()
954
+ if m.get('headers') is not None:
955
+ self.headers = m.get('headers')
956
+ if m.get('statusCode') is not None:
957
+ self.status_code = m.get('statusCode')
958
+ if m.get('body') is not None:
959
+ temp_model = BindUserAuthnSourceMappingResponseBody()
960
+ self.body = temp_model.from_map(m['body'])
961
+ return self
962
+
963
+
839
964
  class CreateApplicationRequest(TeaModel):
840
965
  def __init__(
841
966
  self,
@@ -3490,10 +3615,13 @@ class CreateIdentityProviderRequestLdapConfig(TeaModel):
3490
3615
  ldap_server_host: str = None,
3491
3616
  ldap_server_port: int = None,
3492
3617
  organization_unit_object_class: str = None,
3618
+ organizational_unit_rdn: str = None,
3619
+ password_sync_status: str = None,
3493
3620
  start_tls_status: str = None,
3494
3621
  user_login_identifier: str = None,
3495
3622
  user_object_class: str = None,
3496
3623
  user_object_class_custom_filter: str = None,
3624
+ user_rdn: str = None,
3497
3625
  ):
3498
3626
  # Administrator password.
3499
3627
  self.administrator_password = administrator_password
@@ -3521,6 +3649,8 @@ class CreateIdentityProviderRequestLdapConfig(TeaModel):
3521
3649
  self.ldap_server_port = ldap_server_port
3522
3650
  # Organization Unit ObjectClass.
3523
3651
  self.organization_unit_object_class = organization_unit_object_class
3652
+ self.organizational_unit_rdn = organizational_unit_rdn
3653
+ self.password_sync_status = password_sync_status
3524
3654
  # Whether startTLS is enabled. Value range:
3525
3655
  # - Disabled: disabled
3526
3656
  #
@@ -3532,6 +3662,7 @@ class CreateIdentityProviderRequestLdapConfig(TeaModel):
3532
3662
  self.user_object_class = user_object_class
3533
3663
  # Custom filter for User ObjectClass.
3534
3664
  self.user_object_class_custom_filter = user_object_class_custom_filter
3665
+ self.user_rdn = user_rdn
3535
3666
 
3536
3667
  def validate(self):
3537
3668
  pass
@@ -3564,6 +3695,10 @@ class CreateIdentityProviderRequestLdapConfig(TeaModel):
3564
3695
  result['LdapServerPort'] = self.ldap_server_port
3565
3696
  if self.organization_unit_object_class is not None:
3566
3697
  result['OrganizationUnitObjectClass'] = self.organization_unit_object_class
3698
+ if self.organizational_unit_rdn is not None:
3699
+ result['OrganizationalUnitRdn'] = self.organizational_unit_rdn
3700
+ if self.password_sync_status is not None:
3701
+ result['PasswordSyncStatus'] = self.password_sync_status
3567
3702
  if self.start_tls_status is not None:
3568
3703
  result['StartTlsStatus'] = self.start_tls_status
3569
3704
  if self.user_login_identifier is not None:
@@ -3572,6 +3707,8 @@ class CreateIdentityProviderRequestLdapConfig(TeaModel):
3572
3707
  result['UserObjectClass'] = self.user_object_class
3573
3708
  if self.user_object_class_custom_filter is not None:
3574
3709
  result['UserObjectClassCustomFilter'] = self.user_object_class_custom_filter
3710
+ if self.user_rdn is not None:
3711
+ result['UserRdn'] = self.user_rdn
3575
3712
  return result
3576
3713
 
3577
3714
  def from_map(self, m: dict = None):
@@ -3598,6 +3735,10 @@ class CreateIdentityProviderRequestLdapConfig(TeaModel):
3598
3735
  self.ldap_server_port = m.get('LdapServerPort')
3599
3736
  if m.get('OrganizationUnitObjectClass') is not None:
3600
3737
  self.organization_unit_object_class = m.get('OrganizationUnitObjectClass')
3738
+ if m.get('OrganizationalUnitRdn') is not None:
3739
+ self.organizational_unit_rdn = m.get('OrganizationalUnitRdn')
3740
+ if m.get('PasswordSyncStatus') is not None:
3741
+ self.password_sync_status = m.get('PasswordSyncStatus')
3601
3742
  if m.get('StartTlsStatus') is not None:
3602
3743
  self.start_tls_status = m.get('StartTlsStatus')
3603
3744
  if m.get('UserLoginIdentifier') is not None:
@@ -3606,6 +3747,8 @@ class CreateIdentityProviderRequestLdapConfig(TeaModel):
3606
3747
  self.user_object_class = m.get('UserObjectClass')
3607
3748
  if m.get('UserObjectClassCustomFilter') is not None:
3608
3749
  self.user_object_class_custom_filter = m.get('UserObjectClassCustomFilter')
3750
+ if m.get('UserRdn') is not None:
3751
+ self.user_rdn = m.get('UserRdn')
3609
3752
  return self
3610
3753
 
3611
3754
 
@@ -3932,6 +4075,45 @@ class CreateIdentityProviderRequestUdPullConfig(TeaModel):
3932
4075
  return self
3933
4076
 
3934
4077
 
4078
+ class CreateIdentityProviderRequestUdPushConfigPeriodicSyncConfig(TeaModel):
4079
+ def __init__(
4080
+ self,
4081
+ periodic_sync_cron: str = None,
4082
+ periodic_sync_times: List[int] = None,
4083
+ periodic_sync_type: str = None,
4084
+ ):
4085
+ self.periodic_sync_cron = periodic_sync_cron
4086
+ self.periodic_sync_times = periodic_sync_times
4087
+ self.periodic_sync_type = periodic_sync_type
4088
+
4089
+ def validate(self):
4090
+ pass
4091
+
4092
+ def to_map(self):
4093
+ _map = super().to_map()
4094
+ if _map is not None:
4095
+ return _map
4096
+
4097
+ result = dict()
4098
+ if self.periodic_sync_cron is not None:
4099
+ result['PeriodicSyncCron'] = self.periodic_sync_cron
4100
+ if self.periodic_sync_times is not None:
4101
+ result['PeriodicSyncTimes'] = self.periodic_sync_times
4102
+ if self.periodic_sync_type is not None:
4103
+ result['PeriodicSyncType'] = self.periodic_sync_type
4104
+ return result
4105
+
4106
+ def from_map(self, m: dict = None):
4107
+ m = m or dict()
4108
+ if m.get('PeriodicSyncCron') is not None:
4109
+ self.periodic_sync_cron = m.get('PeriodicSyncCron')
4110
+ if m.get('PeriodicSyncTimes') is not None:
4111
+ self.periodic_sync_times = m.get('PeriodicSyncTimes')
4112
+ if m.get('PeriodicSyncType') is not None:
4113
+ self.periodic_sync_type = m.get('PeriodicSyncType')
4114
+ return self
4115
+
4116
+
3935
4117
  class CreateIdentityProviderRequestUdPushConfigUdSyncScopeConfigs(TeaModel):
3936
4118
  def __init__(
3937
4119
  self,
@@ -3971,17 +4153,21 @@ class CreateIdentityProviderRequestUdPushConfig(TeaModel):
3971
4153
  def __init__(
3972
4154
  self,
3973
4155
  incremental_callback_status: str = None,
4156
+ periodic_sync_config: CreateIdentityProviderRequestUdPushConfigPeriodicSyncConfig = None,
3974
4157
  periodic_sync_status: str = None,
3975
4158
  ud_sync_scope_configs: List[CreateIdentityProviderRequestUdPushConfigUdSyncScopeConfigs] = None,
3976
4159
  ):
3977
4160
  # Incremental callback status. This field is reserved and currently not in use; please ignore it.
3978
4161
  self.incremental_callback_status = incremental_callback_status
4162
+ self.periodic_sync_config = periodic_sync_config
3979
4163
  # Periodic check status. This field is currently not in use, please ignore it.
3980
4164
  self.periodic_sync_status = periodic_sync_status
3981
4165
  # Outbound synchronization configuration information.
3982
4166
  self.ud_sync_scope_configs = ud_sync_scope_configs
3983
4167
 
3984
4168
  def validate(self):
4169
+ if self.periodic_sync_config:
4170
+ self.periodic_sync_config.validate()
3985
4171
  if self.ud_sync_scope_configs:
3986
4172
  for k in self.ud_sync_scope_configs:
3987
4173
  if k:
@@ -3995,6 +4181,8 @@ class CreateIdentityProviderRequestUdPushConfig(TeaModel):
3995
4181
  result = dict()
3996
4182
  if self.incremental_callback_status is not None:
3997
4183
  result['IncrementalCallbackStatus'] = self.incremental_callback_status
4184
+ if self.periodic_sync_config is not None:
4185
+ result['PeriodicSyncConfig'] = self.periodic_sync_config.to_map()
3998
4186
  if self.periodic_sync_status is not None:
3999
4187
  result['PeriodicSyncStatus'] = self.periodic_sync_status
4000
4188
  result['UdSyncScopeConfigs'] = []
@@ -4007,6 +4195,9 @@ class CreateIdentityProviderRequestUdPushConfig(TeaModel):
4007
4195
  m = m or dict()
4008
4196
  if m.get('IncrementalCallbackStatus') is not None:
4009
4197
  self.incremental_callback_status = m.get('IncrementalCallbackStatus')
4198
+ if m.get('PeriodicSyncConfig') is not None:
4199
+ temp_model = CreateIdentityProviderRequestUdPushConfigPeriodicSyncConfig()
4200
+ self.periodic_sync_config = temp_model.from_map(m['PeriodicSyncConfig'])
4010
4201
  if m.get('PeriodicSyncStatus') is not None:
4011
4202
  self.periodic_sync_status = m.get('PeriodicSyncStatus')
4012
4203
  self.ud_sync_scope_configs = []
@@ -28564,10 +28755,12 @@ class ListGroupsForUserResponse(TeaModel):
28564
28755
  class ListIdentityProvidersRequest(TeaModel):
28565
28756
  def __init__(
28566
28757
  self,
28758
+ direction: str = None,
28567
28759
  instance_id: str = None,
28568
28760
  page_number: int = None,
28569
28761
  page_size: int = None,
28570
28762
  ):
28763
+ self.direction = direction
28571
28764
  # The instance ID.
28572
28765
  #
28573
28766
  # This parameter is required.
@@ -28586,6 +28779,8 @@ class ListIdentityProvidersRequest(TeaModel):
28586
28779
  return _map
28587
28780
 
28588
28781
  result = dict()
28782
+ if self.direction is not None:
28783
+ result['Direction'] = self.direction
28589
28784
  if self.instance_id is not None:
28590
28785
  result['InstanceId'] = self.instance_id
28591
28786
  if self.page_number is not None:
@@ -28596,6 +28791,8 @@ class ListIdentityProvidersRequest(TeaModel):
28596
28791
 
28597
28792
  def from_map(self, m: dict = None):
28598
28793
  m = m or dict()
28794
+ if m.get('Direction') is not None:
28795
+ self.direction = m.get('Direction')
28599
28796
  if m.get('InstanceId') is not None:
28600
28797
  self.instance_id = m.get('InstanceId')
28601
28798
  if m.get('PageNumber') is not None:
@@ -32978,6 +33175,259 @@ class ListSynchronizationJobsResponse(TeaModel):
32978
33175
  return self
32979
33176
 
32980
33177
 
33178
+ class ListUserAuthnSourceMappingsRequest(TeaModel):
33179
+ def __init__(
33180
+ self,
33181
+ identity_provider_id: str = None,
33182
+ instance_id: str = None,
33183
+ max_results: int = None,
33184
+ next_token: str = None,
33185
+ previous_token: str = None,
33186
+ user_external_id: str = None,
33187
+ user_id: str = None,
33188
+ ):
33189
+ # 来源Idp Id
33190
+ self.identity_provider_id = identity_provider_id
33191
+ # IDaaS EIAM实例的ID。
33192
+ #
33193
+ # This parameter is required.
33194
+ self.instance_id = instance_id
33195
+ # 分页查询时每页行数。默认值为20,最大值为100。
33196
+ self.max_results = max_results
33197
+ # 查询凭证(Token),取值为上一次API调用返回的NextToken参数值。
33198
+ self.next_token = next_token
33199
+ # 查询上一页凭证(Token),取值为上一次API调用返回的previousToken参数值。
33200
+ self.previous_token = previous_token
33201
+ # 外部关联ID
33202
+ self.user_external_id = user_external_id
33203
+ # 用户ID
33204
+ #
33205
+ # This parameter is required.
33206
+ self.user_id = user_id
33207
+
33208
+ def validate(self):
33209
+ pass
33210
+
33211
+ def to_map(self):
33212
+ _map = super().to_map()
33213
+ if _map is not None:
33214
+ return _map
33215
+
33216
+ result = dict()
33217
+ if self.identity_provider_id is not None:
33218
+ result['IdentityProviderId'] = self.identity_provider_id
33219
+ if self.instance_id is not None:
33220
+ result['InstanceId'] = self.instance_id
33221
+ if self.max_results is not None:
33222
+ result['MaxResults'] = self.max_results
33223
+ if self.next_token is not None:
33224
+ result['NextToken'] = self.next_token
33225
+ if self.previous_token is not None:
33226
+ result['PreviousToken'] = self.previous_token
33227
+ if self.user_external_id is not None:
33228
+ result['UserExternalId'] = self.user_external_id
33229
+ if self.user_id is not None:
33230
+ result['UserId'] = self.user_id
33231
+ return result
33232
+
33233
+ def from_map(self, m: dict = None):
33234
+ m = m or dict()
33235
+ if m.get('IdentityProviderId') is not None:
33236
+ self.identity_provider_id = m.get('IdentityProviderId')
33237
+ if m.get('InstanceId') is not None:
33238
+ self.instance_id = m.get('InstanceId')
33239
+ if m.get('MaxResults') is not None:
33240
+ self.max_results = m.get('MaxResults')
33241
+ if m.get('NextToken') is not None:
33242
+ self.next_token = m.get('NextToken')
33243
+ if m.get('PreviousToken') is not None:
33244
+ self.previous_token = m.get('PreviousToken')
33245
+ if m.get('UserExternalId') is not None:
33246
+ self.user_external_id = m.get('UserExternalId')
33247
+ if m.get('UserId') is not None:
33248
+ self.user_id = m.get('UserId')
33249
+ return self
33250
+
33251
+
33252
+ class ListUserAuthnSourceMappingsResponseBodyUserAuthnSourceMappings(TeaModel):
33253
+ def __init__(
33254
+ self,
33255
+ authn_source_type: str = None,
33256
+ create_time: int = None,
33257
+ identity_provider_id: str = None,
33258
+ instance_id: str = None,
33259
+ update_time: int = None,
33260
+ user_external_id: str = None,
33261
+ user_id: str = None,
33262
+ ):
33263
+ # 来源Idp类型
33264
+ self.authn_source_type = authn_source_type
33265
+ # 创建时间
33266
+ self.create_time = create_time
33267
+ # 来源Idp Id
33268
+ self.identity_provider_id = identity_provider_id
33269
+ # 实例Id
33270
+ self.instance_id = instance_id
33271
+ # 最近一次更新时间
33272
+ self.update_time = update_time
33273
+ # 外部ID
33274
+ self.user_external_id = user_external_id
33275
+ # 用户ID
33276
+ self.user_id = user_id
33277
+
33278
+ def validate(self):
33279
+ pass
33280
+
33281
+ def to_map(self):
33282
+ _map = super().to_map()
33283
+ if _map is not None:
33284
+ return _map
33285
+
33286
+ result = dict()
33287
+ if self.authn_source_type is not None:
33288
+ result['AuthnSourceType'] = self.authn_source_type
33289
+ if self.create_time is not None:
33290
+ result['CreateTime'] = self.create_time
33291
+ if self.identity_provider_id is not None:
33292
+ result['IdentityProviderId'] = self.identity_provider_id
33293
+ if self.instance_id is not None:
33294
+ result['InstanceId'] = self.instance_id
33295
+ if self.update_time is not None:
33296
+ result['UpdateTime'] = self.update_time
33297
+ if self.user_external_id is not None:
33298
+ result['UserExternalId'] = self.user_external_id
33299
+ if self.user_id is not None:
33300
+ result['UserId'] = self.user_id
33301
+ return result
33302
+
33303
+ def from_map(self, m: dict = None):
33304
+ m = m or dict()
33305
+ if m.get('AuthnSourceType') is not None:
33306
+ self.authn_source_type = m.get('AuthnSourceType')
33307
+ if m.get('CreateTime') is not None:
33308
+ self.create_time = m.get('CreateTime')
33309
+ if m.get('IdentityProviderId') is not None:
33310
+ self.identity_provider_id = m.get('IdentityProviderId')
33311
+ if m.get('InstanceId') is not None:
33312
+ self.instance_id = m.get('InstanceId')
33313
+ if m.get('UpdateTime') is not None:
33314
+ self.update_time = m.get('UpdateTime')
33315
+ if m.get('UserExternalId') is not None:
33316
+ self.user_external_id = m.get('UserExternalId')
33317
+ if m.get('UserId') is not None:
33318
+ self.user_id = m.get('UserId')
33319
+ return self
33320
+
33321
+
33322
+ class ListUserAuthnSourceMappingsResponseBody(TeaModel):
33323
+ def __init__(
33324
+ self,
33325
+ max_results: int = None,
33326
+ next_token: str = None,
33327
+ previous_token: str = None,
33328
+ request_id: str = None,
33329
+ total_count: int = None,
33330
+ user_authn_source_mappings: List[ListUserAuthnSourceMappingsResponseBodyUserAuthnSourceMappings] = None,
33331
+ ):
33332
+ # 分页查询时每页行数。
33333
+ self.max_results = max_results
33334
+ # 本次调用返回的查询凭证(Token)值,用于下一次翻页查询。
33335
+ self.next_token = next_token
33336
+ # 本次调用返回的查询凭证(Token)值,用于上一次翻页查询。
33337
+ self.previous_token = previous_token
33338
+ self.request_id = request_id
33339
+ self.total_count = total_count
33340
+ self.user_authn_source_mappings = user_authn_source_mappings
33341
+
33342
+ def validate(self):
33343
+ if self.user_authn_source_mappings:
33344
+ for k in self.user_authn_source_mappings:
33345
+ if k:
33346
+ k.validate()
33347
+
33348
+ def to_map(self):
33349
+ _map = super().to_map()
33350
+ if _map is not None:
33351
+ return _map
33352
+
33353
+ result = dict()
33354
+ if self.max_results is not None:
33355
+ result['MaxResults'] = self.max_results
33356
+ if self.next_token is not None:
33357
+ result['NextToken'] = self.next_token
33358
+ if self.previous_token is not None:
33359
+ result['PreviousToken'] = self.previous_token
33360
+ if self.request_id is not None:
33361
+ result['RequestId'] = self.request_id
33362
+ if self.total_count is not None:
33363
+ result['TotalCount'] = self.total_count
33364
+ result['UserAuthnSourceMappings'] = []
33365
+ if self.user_authn_source_mappings is not None:
33366
+ for k in self.user_authn_source_mappings:
33367
+ result['UserAuthnSourceMappings'].append(k.to_map() if k else None)
33368
+ return result
33369
+
33370
+ def from_map(self, m: dict = None):
33371
+ m = m or dict()
33372
+ if m.get('MaxResults') is not None:
33373
+ self.max_results = m.get('MaxResults')
33374
+ if m.get('NextToken') is not None:
33375
+ self.next_token = m.get('NextToken')
33376
+ if m.get('PreviousToken') is not None:
33377
+ self.previous_token = m.get('PreviousToken')
33378
+ if m.get('RequestId') is not None:
33379
+ self.request_id = m.get('RequestId')
33380
+ if m.get('TotalCount') is not None:
33381
+ self.total_count = m.get('TotalCount')
33382
+ self.user_authn_source_mappings = []
33383
+ if m.get('UserAuthnSourceMappings') is not None:
33384
+ for k in m.get('UserAuthnSourceMappings'):
33385
+ temp_model = ListUserAuthnSourceMappingsResponseBodyUserAuthnSourceMappings()
33386
+ self.user_authn_source_mappings.append(temp_model.from_map(k))
33387
+ return self
33388
+
33389
+
33390
+ class ListUserAuthnSourceMappingsResponse(TeaModel):
33391
+ def __init__(
33392
+ self,
33393
+ headers: Dict[str, str] = None,
33394
+ status_code: int = None,
33395
+ body: ListUserAuthnSourceMappingsResponseBody = None,
33396
+ ):
33397
+ self.headers = headers
33398
+ self.status_code = status_code
33399
+ self.body = body
33400
+
33401
+ def validate(self):
33402
+ if self.body:
33403
+ self.body.validate()
33404
+
33405
+ def to_map(self):
33406
+ _map = super().to_map()
33407
+ if _map is not None:
33408
+ return _map
33409
+
33410
+ result = dict()
33411
+ if self.headers is not None:
33412
+ result['headers'] = self.headers
33413
+ if self.status_code is not None:
33414
+ result['statusCode'] = self.status_code
33415
+ if self.body is not None:
33416
+ result['body'] = self.body.to_map()
33417
+ return result
33418
+
33419
+ def from_map(self, m: dict = None):
33420
+ m = m or dict()
33421
+ if m.get('headers') is not None:
33422
+ self.headers = m.get('headers')
33423
+ if m.get('statusCode') is not None:
33424
+ self.status_code = m.get('statusCode')
33425
+ if m.get('body') is not None:
33426
+ temp_model = ListUserAuthnSourceMappingsResponseBody()
33427
+ self.body = temp_model.from_map(m['body'])
33428
+ return self
33429
+
33430
+
32981
33431
  class ListUsersRequest(TeaModel):
32982
33432
  def __init__(
32983
33433
  self,
@@ -37931,6 +38381,131 @@ class SetUserPrimaryOrganizationalUnitResponse(TeaModel):
37931
38381
  return self
37932
38382
 
37933
38383
 
38384
+ class UnbindUserAuthnSourceMappingRequest(TeaModel):
38385
+ def __init__(
38386
+ self,
38387
+ identity_provider_id: str = None,
38388
+ instance_id: str = None,
38389
+ user_external_id: str = None,
38390
+ user_id: str = None,
38391
+ ):
38392
+ # 来源ID
38393
+ #
38394
+ # This parameter is required.
38395
+ self.identity_provider_id = identity_provider_id
38396
+ # IDaaS EIAM实例的ID。
38397
+ #
38398
+ # This parameter is required.
38399
+ self.instance_id = instance_id
38400
+ # 外部关联ID
38401
+ #
38402
+ # This parameter is required.
38403
+ self.user_external_id = user_external_id
38404
+ # 用户ID
38405
+ #
38406
+ # This parameter is required.
38407
+ self.user_id = user_id
38408
+
38409
+ def validate(self):
38410
+ pass
38411
+
38412
+ def to_map(self):
38413
+ _map = super().to_map()
38414
+ if _map is not None:
38415
+ return _map
38416
+
38417
+ result = dict()
38418
+ if self.identity_provider_id is not None:
38419
+ result['IdentityProviderId'] = self.identity_provider_id
38420
+ if self.instance_id is not None:
38421
+ result['InstanceId'] = self.instance_id
38422
+ if self.user_external_id is not None:
38423
+ result['UserExternalId'] = self.user_external_id
38424
+ if self.user_id is not None:
38425
+ result['UserId'] = self.user_id
38426
+ return result
38427
+
38428
+ def from_map(self, m: dict = None):
38429
+ m = m or dict()
38430
+ if m.get('IdentityProviderId') is not None:
38431
+ self.identity_provider_id = m.get('IdentityProviderId')
38432
+ if m.get('InstanceId') is not None:
38433
+ self.instance_id = m.get('InstanceId')
38434
+ if m.get('UserExternalId') is not None:
38435
+ self.user_external_id = m.get('UserExternalId')
38436
+ if m.get('UserId') is not None:
38437
+ self.user_id = m.get('UserId')
38438
+ return self
38439
+
38440
+
38441
+ class UnbindUserAuthnSourceMappingResponseBody(TeaModel):
38442
+ def __init__(
38443
+ self,
38444
+ request_id: str = None,
38445
+ ):
38446
+ self.request_id = request_id
38447
+
38448
+ def validate(self):
38449
+ pass
38450
+
38451
+ def to_map(self):
38452
+ _map = super().to_map()
38453
+ if _map is not None:
38454
+ return _map
38455
+
38456
+ result = dict()
38457
+ if self.request_id is not None:
38458
+ result['RequestId'] = self.request_id
38459
+ return result
38460
+
38461
+ def from_map(self, m: dict = None):
38462
+ m = m or dict()
38463
+ if m.get('RequestId') is not None:
38464
+ self.request_id = m.get('RequestId')
38465
+ return self
38466
+
38467
+
38468
+ class UnbindUserAuthnSourceMappingResponse(TeaModel):
38469
+ def __init__(
38470
+ self,
38471
+ headers: Dict[str, str] = None,
38472
+ status_code: int = None,
38473
+ body: UnbindUserAuthnSourceMappingResponseBody = None,
38474
+ ):
38475
+ self.headers = headers
38476
+ self.status_code = status_code
38477
+ self.body = body
38478
+
38479
+ def validate(self):
38480
+ if self.body:
38481
+ self.body.validate()
38482
+
38483
+ def to_map(self):
38484
+ _map = super().to_map()
38485
+ if _map is not None:
38486
+ return _map
38487
+
38488
+ result = dict()
38489
+ if self.headers is not None:
38490
+ result['headers'] = self.headers
38491
+ if self.status_code is not None:
38492
+ result['statusCode'] = self.status_code
38493
+ if self.body is not None:
38494
+ result['body'] = self.body.to_map()
38495
+ return result
38496
+
38497
+ def from_map(self, m: dict = None):
38498
+ m = m or dict()
38499
+ if m.get('headers') is not None:
38500
+ self.headers = m.get('headers')
38501
+ if m.get('statusCode') is not None:
38502
+ self.status_code = m.get('statusCode')
38503
+ if m.get('body') is not None:
38504
+ temp_model = UnbindUserAuthnSourceMappingResponseBody()
38505
+ self.body = temp_model.from_map(m['body'])
38506
+ return self
38507
+
38508
+
37934
38509
  class UnlockUserRequest(TeaModel):
37935
38510
  def __init__(
37936
38511
  self,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: alibabacloud-eiam20211201
3
- Version: 2.4.0
3
+ Version: 2.5.1
4
4
  Summary: Alibaba Cloud Eiam (20211201) SDK Library for Python
5
5
  Home-page: https://github.com/aliyun/alibabacloud-python-sdk
6
6
  Author: Alibaba Cloud SDK
@@ -24,7 +24,7 @@ from setuptools import setup, find_packages
24
24
  """
25
25
  setup module for alibabacloud_eiam20211201.
26
26
 
27
- Created on 30/10/2025
27
+ Created on 13/11/2025
28
28
 
29
29
  @author: Alibaba Cloud SDK
30
30
  """
@@ -1 +0,0 @@
1
- __version__ = '2.4.0'