alibabacloud-eiam20211201 2.0.0__tar.gz → 2.0.2__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.0.0 → alibabacloud_eiam20211201-2.0.2}/ChangeLog.md +23 -0
  2. {alibabacloud_eiam20211201-2.0.0 → alibabacloud_eiam20211201-2.0.2}/PKG-INFO +1 -1
  3. alibabacloud_eiam20211201-2.0.2/alibabacloud_eiam20211201/__init__.py +1 -0
  4. {alibabacloud_eiam20211201-2.0.0 → alibabacloud_eiam20211201-2.0.2}/alibabacloud_eiam20211201/client.py +8 -0
  5. {alibabacloud_eiam20211201-2.0.0 → alibabacloud_eiam20211201-2.0.2}/alibabacloud_eiam20211201/models.py +42 -0
  6. {alibabacloud_eiam20211201-2.0.0 → alibabacloud_eiam20211201-2.0.2}/alibabacloud_eiam20211201.egg-info/PKG-INFO +1 -1
  7. {alibabacloud_eiam20211201-2.0.0 → alibabacloud_eiam20211201-2.0.2}/alibabacloud_eiam20211201.egg-info/requires.txt +1 -1
  8. {alibabacloud_eiam20211201-2.0.0 → alibabacloud_eiam20211201-2.0.2}/setup.py +2 -2
  9. alibabacloud_eiam20211201-2.0.0/alibabacloud_eiam20211201/__init__.py +0 -1
  10. {alibabacloud_eiam20211201-2.0.0 → alibabacloud_eiam20211201-2.0.2}/LICENSE +0 -0
  11. {alibabacloud_eiam20211201-2.0.0 → alibabacloud_eiam20211201-2.0.2}/MANIFEST.in +0 -0
  12. {alibabacloud_eiam20211201-2.0.0 → alibabacloud_eiam20211201-2.0.2}/README-CN.md +0 -0
  13. {alibabacloud_eiam20211201-2.0.0 → alibabacloud_eiam20211201-2.0.2}/README.md +0 -0
  14. {alibabacloud_eiam20211201-2.0.0 → alibabacloud_eiam20211201-2.0.2}/alibabacloud_eiam20211201.egg-info/SOURCES.txt +0 -0
  15. {alibabacloud_eiam20211201-2.0.0 → alibabacloud_eiam20211201-2.0.2}/alibabacloud_eiam20211201.egg-info/dependency_links.txt +0 -0
  16. {alibabacloud_eiam20211201-2.0.0 → alibabacloud_eiam20211201-2.0.2}/alibabacloud_eiam20211201.egg-info/top_level.txt +0 -0
  17. {alibabacloud_eiam20211201-2.0.0 → alibabacloud_eiam20211201-2.0.2}/setup.cfg +0 -0
@@ -1,3 +1,26 @@
1
+ 2025-08-06 Version: 2.0.1
2
+ - Update API GetApplicationProvisioningConfig: add response parameters Body.ApplicationProvisioningConfig.NetworkAccessEndpointId.
3
+ - Update API SetApplicationProvisioningConfig: add request parameters NetworkAccessEndpointId.
4
+
5
+
6
+ 2025-07-30 Version: 2.0.0
7
+ - Update API CreateIdentityProvider: add request parameters ClientToken.
8
+ - Update API CreateIdentityProvider: add request parameters DingtalkAppConfig.EncryptKey.
9
+ - Update API CreateIdentityProvider: add request parameters DingtalkAppConfig.VerificationToken.
10
+ - Update API CreateUser: add request parameters ClientToken.
11
+ - Update API GetApplication: add response parameters Body.Application.CustomSubjectStatus.
12
+ - Update API GetIdentityProvider: add response parameters Body.IdentityProviderDetail.DingtalkAppConfig.EncryptKey.
13
+ - Update API GetIdentityProvider: add response parameters Body.IdentityProviderDetail.DingtalkAppConfig.VerificationToken.
14
+ - Update API ListApplications: delete response parameters Body.Applications.$.M2MClientStatus.
15
+ - Update API ListApplications: delete response parameters Body.Applications.$.ResourceServerIdentifier.
16
+ - Update API ListApplications: delete response parameters Body.Applications.$.ResourceServerStatus.
17
+ - Update API UpdateConditionalAccessPolicy: add request parameters ClientToken.
18
+ - Update API UpdateConditionalAccessPolicyDescription: add request parameters ClientToken.
19
+ - Update API UpdateIdentityProvider: add request parameters ClientToken.
20
+ - Update API UpdateIdentityProvider: add request parameters DingtalkAppConfig.EncryptKey.
21
+ - Update API UpdateIdentityProvider: add request parameters DingtalkAppConfig.VerificationToken.
22
+
23
+
1
24
  2025-03-21 Version: 1.9.2
2
25
  - Generated python 2021-12-01 for Eiam.
3
26
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: alibabacloud_eiam20211201
3
- Version: 2.0.0
3
+ Version: 2.0.2
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.0.2'
@@ -705,6 +705,8 @@ class Client(OpenApiClient):
705
705
  query = {}
706
706
  if not UtilClient.is_unset(request.application_id):
707
707
  query['ApplicationId'] = request.application_id
708
+ if not UtilClient.is_unset(request.expiration_time):
709
+ query['ExpirationTime'] = request.expiration_time
708
710
  if not UtilClient.is_unset(request.instance_id):
709
711
  query['InstanceId'] = request.instance_id
710
712
  req = open_api_models.OpenApiRequest(
@@ -742,6 +744,8 @@ class Client(OpenApiClient):
742
744
  query = {}
743
745
  if not UtilClient.is_unset(request.application_id):
744
746
  query['ApplicationId'] = request.application_id
747
+ if not UtilClient.is_unset(request.expiration_time):
748
+ query['ExpirationTime'] = request.expiration_time
745
749
  if not UtilClient.is_unset(request.instance_id):
746
750
  query['InstanceId'] = request.instance_id
747
751
  req = open_api_models.OpenApiRequest(
@@ -11319,6 +11323,8 @@ class Client(OpenApiClient):
11319
11323
  query['CallbackProvisioningConfig'] = request.callback_provisioning_config
11320
11324
  if not UtilClient.is_unset(request.instance_id):
11321
11325
  query['InstanceId'] = request.instance_id
11326
+ if not UtilClient.is_unset(request.network_access_endpoint_id):
11327
+ query['NetworkAccessEndpointId'] = request.network_access_endpoint_id
11322
11328
  if not UtilClient.is_unset(request.provision_password):
11323
11329
  query['ProvisionPassword'] = request.provision_password
11324
11330
  if not UtilClient.is_unset(request.provision_protocol_type):
@@ -11364,6 +11370,8 @@ class Client(OpenApiClient):
11364
11370
  query['CallbackProvisioningConfig'] = request.callback_provisioning_config
11365
11371
  if not UtilClient.is_unset(request.instance_id):
11366
11372
  query['InstanceId'] = request.instance_id
11373
+ if not UtilClient.is_unset(request.network_access_endpoint_id):
11374
+ query['NetworkAccessEndpointId'] = request.network_access_endpoint_id
11367
11375
  if not UtilClient.is_unset(request.provision_password):
11368
11376
  query['ProvisionPassword'] = request.provision_password
11369
11377
  if not UtilClient.is_unset(request.provision_protocol_type):
@@ -753,12 +753,14 @@ class CreateApplicationClientSecretRequest(TeaModel):
753
753
  def __init__(
754
754
  self,
755
755
  application_id: str = None,
756
+ expiration_time: int = None,
756
757
  instance_id: str = None,
757
758
  ):
758
759
  # The ID of the application for which you want to create a client key.
759
760
  #
760
761
  # This parameter is required.
761
762
  self.application_id = application_id
763
+ self.expiration_time = expiration_time
762
764
  # The ID of the instance.
763
765
  #
764
766
  # This parameter is required.
@@ -775,6 +777,8 @@ class CreateApplicationClientSecretRequest(TeaModel):
775
777
  result = dict()
776
778
  if self.application_id is not None:
777
779
  result['ApplicationId'] = self.application_id
780
+ if self.expiration_time is not None:
781
+ result['ExpirationTime'] = self.expiration_time
778
782
  if self.instance_id is not None:
779
783
  result['InstanceId'] = self.instance_id
780
784
  return result
@@ -783,6 +787,8 @@ class CreateApplicationClientSecretRequest(TeaModel):
783
787
  m = m or dict()
784
788
  if m.get('ApplicationId') is not None:
785
789
  self.application_id = m.get('ApplicationId')
790
+ if m.get('ExpirationTime') is not None:
791
+ self.expiration_time = m.get('ExpirationTime')
786
792
  if m.get('InstanceId') is not None:
787
793
  self.instance_id = m.get('InstanceId')
788
794
  return self
@@ -7866,6 +7872,7 @@ class GetApplicationProvisioningConfigResponseBodyApplicationProvisioningConfig(
7866
7872
  callback_provisioning_config: GetApplicationProvisioningConfigResponseBodyApplicationProvisioningConfigCallbackProvisioningConfig = None,
7867
7873
  config_operate_mode: str = None,
7868
7874
  instance_id: str = None,
7875
+ network_access_endpoint_id: str = None,
7869
7876
  provision_jwks_endpoint: str = None,
7870
7877
  provision_password: bool = None,
7871
7878
  provision_protocol_type: str = None,
@@ -7883,6 +7890,7 @@ class GetApplicationProvisioningConfigResponseBodyApplicationProvisioningConfig(
7883
7890
  self.config_operate_mode = config_operate_mode
7884
7891
  # The ID of the instance.
7885
7892
  self.instance_id = instance_id
7893
+ self.network_access_endpoint_id = network_access_endpoint_id
7886
7894
  # The public key endpoint for signature verification of the synchronization callback information.
7887
7895
  self.provision_jwks_endpoint = provision_jwks_endpoint
7888
7896
  # Indicates whether the password is synchronized in IDaaS user event callbacks. Valid values:
@@ -7923,6 +7931,8 @@ class GetApplicationProvisioningConfigResponseBodyApplicationProvisioningConfig(
7923
7931
  result['ConfigOperateMode'] = self.config_operate_mode
7924
7932
  if self.instance_id is not None:
7925
7933
  result['InstanceId'] = self.instance_id
7934
+ if self.network_access_endpoint_id is not None:
7935
+ result['NetworkAccessEndpointId'] = self.network_access_endpoint_id
7926
7936
  if self.provision_jwks_endpoint is not None:
7927
7937
  result['ProvisionJwksEndpoint'] = self.provision_jwks_endpoint
7928
7938
  if self.provision_password is not None:
@@ -7946,6 +7956,8 @@ class GetApplicationProvisioningConfigResponseBodyApplicationProvisioningConfig(
7946
7956
  self.config_operate_mode = m.get('ConfigOperateMode')
7947
7957
  if m.get('InstanceId') is not None:
7948
7958
  self.instance_id = m.get('InstanceId')
7959
+ if m.get('NetworkAccessEndpointId') is not None:
7960
+ self.network_access_endpoint_id = m.get('NetworkAccessEndpointId')
7949
7961
  if m.get('ProvisionJwksEndpoint') is not None:
7950
7962
  self.provision_jwks_endpoint = m.get('ProvisionJwksEndpoint')
7951
7963
  if m.get('ProvisionPassword') is not None:
@@ -8282,6 +8294,7 @@ class GetApplicationSsoConfigResponseBodyApplicationSsoConfigOidcSsoConfig(TeaMo
8282
8294
  def __init__(
8283
8295
  self,
8284
8296
  access_token_effective_time: int = None,
8297
+ allowed_public_client: str = None,
8285
8298
  code_effective_time: int = None,
8286
8299
  custom_claims: List[GetApplicationSsoConfigResponseBodyApplicationSsoConfigOidcSsoConfigCustomClaims] = None,
8287
8300
  grant_scopes: List[str] = None,
@@ -8299,6 +8312,7 @@ class GetApplicationSsoConfigResponseBodyApplicationSsoConfigOidcSsoConfig(TeaMo
8299
8312
  ):
8300
8313
  # The validity period of the issued access token. Unit: seconds. Default value: 1200.
8301
8314
  self.access_token_effective_time = access_token_effective_time
8315
+ self.allowed_public_client = allowed_public_client
8302
8316
  # The validity period of the issued code. Unit: seconds. Default value: 60.
8303
8317
  self.code_effective_time = code_effective_time
8304
8318
  # The custom claims that are returned for the ID token.
@@ -8342,6 +8356,8 @@ class GetApplicationSsoConfigResponseBodyApplicationSsoConfigOidcSsoConfig(TeaMo
8342
8356
  result = dict()
8343
8357
  if self.access_token_effective_time is not None:
8344
8358
  result['AccessTokenEffectiveTime'] = self.access_token_effective_time
8359
+ if self.allowed_public_client is not None:
8360
+ result['AllowedPublicClient'] = self.allowed_public_client
8345
8361
  if self.code_effective_time is not None:
8346
8362
  result['CodeEffectiveTime'] = self.code_effective_time
8347
8363
  result['CustomClaims'] = []
@@ -8378,6 +8394,8 @@ class GetApplicationSsoConfigResponseBodyApplicationSsoConfigOidcSsoConfig(TeaMo
8378
8394
  m = m or dict()
8379
8395
  if m.get('AccessTokenEffectiveTime') is not None:
8380
8396
  self.access_token_effective_time = m.get('AccessTokenEffectiveTime')
8397
+ if m.get('AllowedPublicClient') is not None:
8398
+ self.allowed_public_client = m.get('AllowedPublicClient')
8381
8399
  if m.get('CodeEffectiveTime') is not None:
8382
8400
  self.code_effective_time = m.get('CodeEffectiveTime')
8383
8401
  self.custom_claims = []
@@ -15714,6 +15732,7 @@ class ListApplicationClientSecretsResponseBodyApplicationClientSecrets(TeaModel)
15714
15732
  application_id: str = None,
15715
15733
  client_id: str = None,
15716
15734
  client_secret: str = None,
15735
+ expiration_time: int = None,
15717
15736
  instance_id: str = None,
15718
15737
  last_used_time: int = None,
15719
15738
  secret_id: str = None,
@@ -15725,6 +15744,7 @@ class ListApplicationClientSecretsResponseBodyApplicationClientSecrets(TeaModel)
15725
15744
  self.client_id = client_id
15726
15745
  # The client key secret of the application. The value is not masked.
15727
15746
  self.client_secret = client_secret
15747
+ self.expiration_time = expiration_time
15728
15748
  # The ID of the instance.
15729
15749
  self.instance_id = instance_id
15730
15750
  # The time when the client key was last used. The value is a UNIX timestamp. Unit: milliseconds.
@@ -15752,6 +15772,8 @@ class ListApplicationClientSecretsResponseBodyApplicationClientSecrets(TeaModel)
15752
15772
  result['ClientId'] = self.client_id
15753
15773
  if self.client_secret is not None:
15754
15774
  result['ClientSecret'] = self.client_secret
15775
+ if self.expiration_time is not None:
15776
+ result['ExpirationTime'] = self.expiration_time
15755
15777
  if self.instance_id is not None:
15756
15778
  result['InstanceId'] = self.instance_id
15757
15779
  if self.last_used_time is not None:
@@ -15770,6 +15792,8 @@ class ListApplicationClientSecretsResponseBodyApplicationClientSecrets(TeaModel)
15770
15792
  self.client_id = m.get('ClientId')
15771
15793
  if m.get('ClientSecret') is not None:
15772
15794
  self.client_secret = m.get('ClientSecret')
15795
+ if m.get('ExpirationTime') is not None:
15796
+ self.expiration_time = m.get('ExpirationTime')
15773
15797
  if m.get('InstanceId') is not None:
15774
15798
  self.instance_id = m.get('InstanceId')
15775
15799
  if m.get('LastUsedTime') is not None:
@@ -23802,6 +23826,7 @@ class ObtainApplicationClientSecretResponseBodyApplicationClientSecret(TeaModel)
23802
23826
  application_id: str = None,
23803
23827
  client_id: str = None,
23804
23828
  client_secret: str = None,
23829
+ expiration_time: int = None,
23805
23830
  instance_id: str = None,
23806
23831
  last_used_time: int = None,
23807
23832
  secret_id: str = None,
@@ -23813,6 +23838,7 @@ class ObtainApplicationClientSecretResponseBodyApplicationClientSecret(TeaModel)
23813
23838
  self.client_id = client_id
23814
23839
  # The client key secret of the application.
23815
23840
  self.client_secret = client_secret
23841
+ self.expiration_time = expiration_time
23816
23842
  # The ID of the instance.
23817
23843
  self.instance_id = instance_id
23818
23844
  # The time when the client key was last used. The value is a UNIX timestamp. Unit: milliseconds.
@@ -23840,6 +23866,8 @@ class ObtainApplicationClientSecretResponseBodyApplicationClientSecret(TeaModel)
23840
23866
  result['ClientId'] = self.client_id
23841
23867
  if self.client_secret is not None:
23842
23868
  result['ClientSecret'] = self.client_secret
23869
+ if self.expiration_time is not None:
23870
+ result['ExpirationTime'] = self.expiration_time
23843
23871
  if self.instance_id is not None:
23844
23872
  result['InstanceId'] = self.instance_id
23845
23873
  if self.last_used_time is not None:
@@ -23858,6 +23886,8 @@ class ObtainApplicationClientSecretResponseBodyApplicationClientSecret(TeaModel)
23858
23886
  self.client_id = m.get('ClientId')
23859
23887
  if m.get('ClientSecret') is not None:
23860
23888
  self.client_secret = m.get('ClientSecret')
23889
+ if m.get('ExpirationTime') is not None:
23890
+ self.expiration_time = m.get('ExpirationTime')
23861
23891
  if m.get('InstanceId') is not None:
23862
23892
  self.instance_id = m.get('InstanceId')
23863
23893
  if m.get('LastUsedTime') is not None:
@@ -25278,6 +25308,7 @@ class SetApplicationProvisioningConfigRequest(TeaModel):
25278
25308
  application_id: str = None,
25279
25309
  callback_provisioning_config: SetApplicationProvisioningConfigRequestCallbackProvisioningConfig = None,
25280
25310
  instance_id: str = None,
25311
+ network_access_endpoint_id: str = None,
25281
25312
  provision_password: bool = None,
25282
25313
  provision_protocol_type: str = None,
25283
25314
  scim_provisioning_config: SetApplicationProvisioningConfigRequestScimProvisioningConfig = None,
@@ -25292,6 +25323,7 @@ class SetApplicationProvisioningConfigRequest(TeaModel):
25292
25323
  #
25293
25324
  # This parameter is required.
25294
25325
  self.instance_id = instance_id
25326
+ self.network_access_endpoint_id = network_access_endpoint_id
25295
25327
  # Specifies whether to synchronize the password in IDaaS user event callbacks. Valid values:
25296
25328
  #
25297
25329
  # * true: synchronize the password.
@@ -25325,6 +25357,8 @@ class SetApplicationProvisioningConfigRequest(TeaModel):
25325
25357
  result['CallbackProvisioningConfig'] = self.callback_provisioning_config.to_map()
25326
25358
  if self.instance_id is not None:
25327
25359
  result['InstanceId'] = self.instance_id
25360
+ if self.network_access_endpoint_id is not None:
25361
+ result['NetworkAccessEndpointId'] = self.network_access_endpoint_id
25328
25362
  if self.provision_password is not None:
25329
25363
  result['ProvisionPassword'] = self.provision_password
25330
25364
  if self.provision_protocol_type is not None:
@@ -25342,6 +25376,8 @@ class SetApplicationProvisioningConfigRequest(TeaModel):
25342
25376
  self.callback_provisioning_config = temp_model.from_map(m['CallbackProvisioningConfig'])
25343
25377
  if m.get('InstanceId') is not None:
25344
25378
  self.instance_id = m.get('InstanceId')
25379
+ if m.get('NetworkAccessEndpointId') is not None:
25380
+ self.network_access_endpoint_id = m.get('NetworkAccessEndpointId')
25345
25381
  if m.get('ProvisionPassword') is not None:
25346
25382
  self.provision_password = m.get('ProvisionPassword')
25347
25383
  if m.get('ProvisionProtocolType') is not None:
@@ -25582,6 +25618,7 @@ class SetApplicationSsoConfigRequestOidcSsoConfig(TeaModel):
25582
25618
  def __init__(
25583
25619
  self,
25584
25620
  access_token_effective_time: int = None,
25621
+ allowed_public_client: bool = None,
25585
25622
  code_effective_time: int = None,
25586
25623
  custom_claims: List[SetApplicationSsoConfigRequestOidcSsoConfigCustomClaims] = None,
25587
25624
  grant_scopes: List[str] = None,
@@ -25599,6 +25636,7 @@ class SetApplicationSsoConfigRequestOidcSsoConfig(TeaModel):
25599
25636
  ):
25600
25637
  # The validity period of the issued access token. Unit: seconds. Default value: 1200.
25601
25638
  self.access_token_effective_time = access_token_effective_time
25639
+ self.allowed_public_client = allowed_public_client
25602
25640
  # The validity period of the issued code. Unit: seconds. Default value: 60.
25603
25641
  self.code_effective_time = code_effective_time
25604
25642
  # The custom claims that are returned for the ID token.
@@ -25642,6 +25680,8 @@ class SetApplicationSsoConfigRequestOidcSsoConfig(TeaModel):
25642
25680
  result = dict()
25643
25681
  if self.access_token_effective_time is not None:
25644
25682
  result['AccessTokenEffectiveTime'] = self.access_token_effective_time
25683
+ if self.allowed_public_client is not None:
25684
+ result['AllowedPublicClient'] = self.allowed_public_client
25645
25685
  if self.code_effective_time is not None:
25646
25686
  result['CodeEffectiveTime'] = self.code_effective_time
25647
25687
  result['CustomClaims'] = []
@@ -25678,6 +25718,8 @@ class SetApplicationSsoConfigRequestOidcSsoConfig(TeaModel):
25678
25718
  m = m or dict()
25679
25719
  if m.get('AccessTokenEffectiveTime') is not None:
25680
25720
  self.access_token_effective_time = m.get('AccessTokenEffectiveTime')
25721
+ if m.get('AllowedPublicClient') is not None:
25722
+ self.allowed_public_client = m.get('AllowedPublicClient')
25681
25723
  if m.get('CodeEffectiveTime') is not None:
25682
25724
  self.code_effective_time = m.get('CodeEffectiveTime')
25683
25725
  self.custom_claims = []
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: alibabacloud-eiam20211201
3
- Version: 2.0.0
3
+ Version: 2.0.2
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
@@ -1,4 +1,4 @@
1
1
  alibabacloud_endpoint_util<1.0.0,>=0.0.4
2
2
  alibabacloud_openapi_util<1.0.0,>=0.2.2
3
- alibabacloud_tea_openapi<1.0.0,>=0.3.15
3
+ alibabacloud_tea_openapi<1.0.0,>=0.3.16
4
4
  alibabacloud_tea_util<1.0.0,>=0.3.13
@@ -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/07/2025
27
+ Created on 12/08/2025
28
28
 
29
29
  @author: Alibaba Cloud SDK
30
30
  """
@@ -38,7 +38,7 @@ URL = "https://github.com/aliyun/alibabacloud-python-sdk"
38
38
  VERSION = __import__(PACKAGE).__version__
39
39
  REQUIRES = [
40
40
  "alibabacloud_tea_util>=0.3.13, <1.0.0",
41
- "alibabacloud_tea_openapi>=0.3.15, <1.0.0",
41
+ "alibabacloud_tea_openapi>=0.3.16, <1.0.0",
42
42
  "alibabacloud_openapi_util>=0.2.2, <1.0.0",
43
43
  "alibabacloud_endpoint_util>=0.0.4, <1.0.0"
44
44
  ]
@@ -1 +0,0 @@
1
- __version__ = '2.0.0'