ibm-platform-services 0.72.0__py3-none-any.whl → 0.73.0__py3-none-any.whl

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.
@@ -1,6 +1,6 @@
1
1
  # coding: utf-8
2
2
 
3
- # (C) Copyright IBM Corp. 2025.
3
+ # (C) Copyright IBM Corp. 2026.
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -919,6 +919,7 @@ class IamIdentityV1(BaseService):
919
919
  store_value: Optional[bool] = None,
920
920
  support_sessions: Optional[bool] = None,
921
921
  action_when_leaked: Optional[str] = None,
922
+ expires_at: Optional[str] = None,
922
923
  entity_lock: Optional[str] = None,
923
924
  entity_disable: Optional[str] = None,
924
925
  **kwargs,
@@ -954,6 +955,8 @@ class IamIdentityV1(BaseService):
954
955
  access, delete or rotate the API key. Available only for user API keys.
955
956
  :param str action_when_leaked: (optional) Defines the action to take when
956
957
  API key is leaked, valid values are 'none', 'disable' and 'delete'.
958
+ :param str expires_at: (optional) Date and time when the API key becomes
959
+ invalid, ISO 8601 datetime in the format 'yyyy-MM-ddTHH:mm+0000'.
957
960
  :param str entity_lock: (optional) Indicates if the API key is locked for
958
961
  further write operations. False by default.
959
962
  :param str entity_disable: (optional) Indicates if the API key is disabled.
@@ -987,6 +990,7 @@ class IamIdentityV1(BaseService):
987
990
  'store_value': store_value,
988
991
  'support_sessions': support_sessions,
989
992
  'action_when_leaked': action_when_leaked,
993
+ 'expires_at': expires_at,
990
994
  }
991
995
  data = {k: v for (k, v) in data.items() if v is not None}
992
996
  data = json.dumps(data)
@@ -1127,6 +1131,7 @@ class IamIdentityV1(BaseService):
1127
1131
  description: Optional[str] = None,
1128
1132
  support_sessions: Optional[bool] = None,
1129
1133
  action_when_leaked: Optional[str] = None,
1134
+ expires_at: Optional[str] = None,
1130
1135
  **kwargs,
1131
1136
  ) -> DetailedResponse:
1132
1137
  """
@@ -1155,6 +1160,8 @@ class IamIdentityV1(BaseService):
1155
1160
  access, delete or rotate the API key. Available only for user API keys.
1156
1161
  :param str action_when_leaked: (optional) Defines the action to take when
1157
1162
  API key is leaked, valid values are 'none', 'disable' and 'delete'.
1163
+ :param str expires_at: (optional) Date and time when the API key becomes
1164
+ invalid, ISO 8601 datetime in the format 'yyyy-MM-ddTHH:mm+0000'.
1158
1165
  :param dict headers: A `dict` containing the request headers
1159
1166
  :return: A `DetailedResponse` containing the result, headers and HTTP status code.
1160
1167
  :rtype: DetailedResponse with `dict` result representing a `ApiKey` object
@@ -1179,6 +1186,7 @@ class IamIdentityV1(BaseService):
1179
1186
  'description': description,
1180
1187
  'support_sessions': support_sessions,
1181
1188
  'action_when_leaked': action_when_leaked,
1189
+ 'expires_at': expires_at,
1182
1190
  }
1183
1191
  data = {k: v for (k, v) in data.items() if v is not None}
1184
1192
  data = json.dumps(data)
@@ -7750,6 +7758,8 @@ class ApiKey:
7750
7758
  delete or rotate the API key. Available only for user API keys.
7751
7759
  :param str action_when_leaked: (optional) Defines the action to take when API
7752
7760
  key is leaked, valid values are 'none', 'disable' and 'delete'.
7761
+ :param str expires_at: (optional) Date and time when the API key becomes
7762
+ invalid, ISO 8601 datetime in the format 'yyyy-MM-ddTHH:mm+0000'.
7753
7763
  :param str description: (optional) The optional description of the API key. The
7754
7764
  'description' property is only available if a description was provided during a
7755
7765
  create of an API key.
@@ -7783,6 +7793,7 @@ class ApiKey:
7783
7793
  modified_at: Optional[datetime] = None,
7784
7794
  support_sessions: Optional[bool] = None,
7785
7795
  action_when_leaked: Optional[str] = None,
7796
+ expires_at: Optional[str] = None,
7786
7797
  description: Optional[str] = None,
7787
7798
  history: Optional[List['EnityHistoryRecord']] = None,
7788
7799
  activity: Optional['Activity'] = None,
@@ -7826,6 +7837,8 @@ class ApiKey:
7826
7837
  access, delete or rotate the API key. Available only for user API keys.
7827
7838
  :param str action_when_leaked: (optional) Defines the action to take when
7828
7839
  API key is leaked, valid values are 'none', 'disable' and 'delete'.
7840
+ :param str expires_at: (optional) Date and time when the API key becomes
7841
+ invalid, ISO 8601 datetime in the format 'yyyy-MM-ddTHH:mm+0000'.
7829
7842
  :param str description: (optional) The optional description of the API key.
7830
7843
  The 'description' property is only available if a description was provided
7831
7844
  during a create of an API key.
@@ -7844,6 +7857,7 @@ class ApiKey:
7844
7857
  self.name = name
7845
7858
  self.support_sessions = support_sessions
7846
7859
  self.action_when_leaked = action_when_leaked
7860
+ self.expires_at = expires_at
7847
7861
  self.description = description
7848
7862
  self.iam_id = iam_id
7849
7863
  self.account_id = account_id
@@ -7889,6 +7903,8 @@ class ApiKey:
7889
7903
  args['support_sessions'] = support_sessions
7890
7904
  if (action_when_leaked := _dict.get('action_when_leaked')) is not None:
7891
7905
  args['action_when_leaked'] = action_when_leaked
7906
+ if (expires_at := _dict.get('expires_at')) is not None:
7907
+ args['expires_at'] = expires_at
7892
7908
  if (description := _dict.get('description')) is not None:
7893
7909
  args['description'] = description
7894
7910
  if (iam_id := _dict.get('iam_id')) is not None:
@@ -7944,6 +7960,8 @@ class ApiKey:
7944
7960
  _dict['support_sessions'] = self.support_sessions
7945
7961
  if hasattr(self, 'action_when_leaked') and self.action_when_leaked is not None:
7946
7962
  _dict['action_when_leaked'] = self.action_when_leaked
7963
+ if hasattr(self, 'expires_at') and self.expires_at is not None:
7964
+ _dict['expires_at'] = self.expires_at
7947
7965
  if hasattr(self, 'description') and self.description is not None:
7948
7966
  _dict['description'] = self.description
7949
7967
  if hasattr(self, 'iam_id') and self.iam_id is not None:
@@ -8007,6 +8025,10 @@ class ApiKeyInsideCreateServiceIdRequest:
8007
8025
  key value is retrievable in the future by using the Get details of an API key
8008
8026
  request. If you create an API key for a user, you must specify `false` or omit
8009
8027
  the value. We don't allow storing of API keys for users.
8028
+ :param str action_when_leaked: (optional) Defines the action to take when API
8029
+ key is leaked, valid values are 'none', 'disable' and 'delete'.
8030
+ :param str expires_at: (optional) Date and time when the API key becomes
8031
+ invalid, ISO 8601 datetime in the format 'yyyy-MM-ddTHH:mm+0000'.
8010
8032
  """
8011
8033
 
8012
8034
  def __init__(
@@ -8016,6 +8038,8 @@ class ApiKeyInsideCreateServiceIdRequest:
8016
8038
  description: Optional[str] = None,
8017
8039
  apikey: Optional[str] = None,
8018
8040
  store_value: Optional[bool] = None,
8041
+ action_when_leaked: Optional[str] = None,
8042
+ expires_at: Optional[str] = None,
8019
8043
  ) -> None:
8020
8044
  """
8021
8045
  Initialize a ApiKeyInsideCreateServiceIdRequest object.
@@ -8037,11 +8061,17 @@ class ApiKeyInsideCreateServiceIdRequest:
8037
8061
  API key value is retrievable in the future by using the Get details of an
8038
8062
  API key request. If you create an API key for a user, you must specify
8039
8063
  `false` or omit the value. We don't allow storing of API keys for users.
8064
+ :param str action_when_leaked: (optional) Defines the action to take when
8065
+ API key is leaked, valid values are 'none', 'disable' and 'delete'.
8066
+ :param str expires_at: (optional) Date and time when the API key becomes
8067
+ invalid, ISO 8601 datetime in the format 'yyyy-MM-ddTHH:mm+0000'.
8040
8068
  """
8041
8069
  self.name = name
8042
8070
  self.description = description
8043
8071
  self.apikey = apikey
8044
8072
  self.store_value = store_value
8073
+ self.action_when_leaked = action_when_leaked
8074
+ self.expires_at = expires_at
8045
8075
 
8046
8076
  @classmethod
8047
8077
  def from_dict(cls, _dict: Dict) -> 'ApiKeyInsideCreateServiceIdRequest':
@@ -8057,6 +8087,10 @@ class ApiKeyInsideCreateServiceIdRequest:
8057
8087
  args['apikey'] = apikey
8058
8088
  if (store_value := _dict.get('store_value')) is not None:
8059
8089
  args['store_value'] = store_value
8090
+ if (action_when_leaked := _dict.get('action_when_leaked')) is not None:
8091
+ args['action_when_leaked'] = action_when_leaked
8092
+ if (expires_at := _dict.get('expires_at')) is not None:
8093
+ args['expires_at'] = expires_at
8060
8094
  return cls(**args)
8061
8095
 
8062
8096
  @classmethod
@@ -8075,6 +8109,10 @@ class ApiKeyInsideCreateServiceIdRequest:
8075
8109
  _dict['apikey'] = self.apikey
8076
8110
  if hasattr(self, 'store_value') and self.store_value is not None:
8077
8111
  _dict['store_value'] = self.store_value
8112
+ if hasattr(self, 'action_when_leaked') and self.action_when_leaked is not None:
8113
+ _dict['action_when_leaked'] = self.action_when_leaked
8114
+ if hasattr(self, 'expires_at') and self.expires_at is not None:
8115
+ _dict['expires_at'] = self.expires_at
8078
8116
  return _dict
8079
8117
 
8080
8118
  def _to_dict(self):
@@ -9634,90 +9672,6 @@ class MfaEnrollmentTypeStatus:
9634
9672
  return not self == other
9635
9673
 
9636
9674
 
9637
- class MfaEnrollments:
9638
- """
9639
- MfaEnrollments.
9640
-
9641
- :param str effective_mfa_type: currently effective mfa type i.e. id_based_mfa or
9642
- account_based_mfa.
9643
- :param IdBasedMfaEnrollment id_based_mfa: (optional)
9644
- :param AccountBasedMfaEnrollment account_based_mfa: (optional)
9645
- """
9646
-
9647
- def __init__(
9648
- self,
9649
- effective_mfa_type: str,
9650
- *,
9651
- id_based_mfa: Optional['IdBasedMfaEnrollment'] = None,
9652
- account_based_mfa: Optional['AccountBasedMfaEnrollment'] = None,
9653
- ) -> None:
9654
- """
9655
- Initialize a MfaEnrollments object.
9656
-
9657
- :param str effective_mfa_type: currently effective mfa type i.e.
9658
- id_based_mfa or account_based_mfa.
9659
- :param IdBasedMfaEnrollment id_based_mfa: (optional)
9660
- :param AccountBasedMfaEnrollment account_based_mfa: (optional)
9661
- """
9662
- self.effective_mfa_type = effective_mfa_type
9663
- self.id_based_mfa = id_based_mfa
9664
- self.account_based_mfa = account_based_mfa
9665
-
9666
- @classmethod
9667
- def from_dict(cls, _dict: Dict) -> 'MfaEnrollments':
9668
- """Initialize a MfaEnrollments object from a json dictionary."""
9669
- args = {}
9670
- if (effective_mfa_type := _dict.get('effective_mfa_type')) is not None:
9671
- args['effective_mfa_type'] = effective_mfa_type
9672
- else:
9673
- raise ValueError('Required property \'effective_mfa_type\' not present in MfaEnrollments JSON')
9674
- if (id_based_mfa := _dict.get('id_based_mfa')) is not None:
9675
- args['id_based_mfa'] = IdBasedMfaEnrollment.from_dict(id_based_mfa)
9676
- if (account_based_mfa := _dict.get('account_based_mfa')) is not None:
9677
- args['account_based_mfa'] = AccountBasedMfaEnrollment.from_dict(account_based_mfa)
9678
- return cls(**args)
9679
-
9680
- @classmethod
9681
- def _from_dict(cls, _dict):
9682
- """Initialize a MfaEnrollments object from a json dictionary."""
9683
- return cls.from_dict(_dict)
9684
-
9685
- def to_dict(self) -> Dict:
9686
- """Return a json dictionary representing this model."""
9687
- _dict = {}
9688
- if hasattr(self, 'effective_mfa_type') and self.effective_mfa_type is not None:
9689
- _dict['effective_mfa_type'] = self.effective_mfa_type
9690
- if hasattr(self, 'id_based_mfa') and self.id_based_mfa is not None:
9691
- if isinstance(self.id_based_mfa, dict):
9692
- _dict['id_based_mfa'] = self.id_based_mfa
9693
- else:
9694
- _dict['id_based_mfa'] = self.id_based_mfa.to_dict()
9695
- if hasattr(self, 'account_based_mfa') and self.account_based_mfa is not None:
9696
- if isinstance(self.account_based_mfa, dict):
9697
- _dict['account_based_mfa'] = self.account_based_mfa
9698
- else:
9699
- _dict['account_based_mfa'] = self.account_based_mfa.to_dict()
9700
- return _dict
9701
-
9702
- def _to_dict(self):
9703
- """Return a json dictionary representing this model."""
9704
- return self.to_dict()
9705
-
9706
- def __str__(self) -> str:
9707
- """Return a `str` version of this MfaEnrollments object."""
9708
- return json.dumps(self.to_dict(), indent=2)
9709
-
9710
- def __eq__(self, other: 'MfaEnrollments') -> bool:
9711
- """Return `true` when self and other are equal, false otherwise."""
9712
- if not isinstance(other, self.__class__):
9713
- return False
9714
- return self.__dict__ == other.__dict__
9715
-
9716
- def __ne__(self, other: 'MfaEnrollments') -> bool:
9717
- """Return `true` when self and other are not equal, false otherwise."""
9718
- return not self == other
9719
-
9720
-
9721
9675
  class PolicyTemplateReference:
9722
9676
  """
9723
9677
  Metadata for external access policy.
@@ -14267,14 +14221,19 @@ class UserReportMfaEnrollmentStatus:
14267
14221
  :param str name: (optional) Name of the user.
14268
14222
  :param str username: Username of the user.
14269
14223
  :param str email: (optional) Email of the user.
14270
- :param MfaEnrollments enrollments:
14224
+ :param str effective_mfa_type: currently effective mfa type i.e. id_based_mfa or
14225
+ account_based_mfa.
14226
+ :param IdBasedMfaEnrollment id_based_mfa:
14227
+ :param AccountBasedMfaEnrollment account_based_mfa:
14271
14228
  """
14272
14229
 
14273
14230
  def __init__(
14274
14231
  self,
14275
14232
  iam_id: str,
14276
14233
  username: str,
14277
- enrollments: 'MfaEnrollments',
14234
+ effective_mfa_type: str,
14235
+ id_based_mfa: 'IdBasedMfaEnrollment',
14236
+ account_based_mfa: 'AccountBasedMfaEnrollment',
14278
14237
  *,
14279
14238
  name: Optional[str] = None,
14280
14239
  email: Optional[str] = None,
@@ -14284,7 +14243,10 @@ class UserReportMfaEnrollmentStatus:
14284
14243
 
14285
14244
  :param str iam_id: IAMid of the user.
14286
14245
  :param str username: Username of the user.
14287
- :param MfaEnrollments enrollments:
14246
+ :param str effective_mfa_type: currently effective mfa type i.e.
14247
+ id_based_mfa or account_based_mfa.
14248
+ :param IdBasedMfaEnrollment id_based_mfa:
14249
+ :param AccountBasedMfaEnrollment account_based_mfa:
14288
14250
  :param str name: (optional) Name of the user.
14289
14251
  :param str email: (optional) Email of the user.
14290
14252
  """
@@ -14292,7 +14254,9 @@ class UserReportMfaEnrollmentStatus:
14292
14254
  self.name = name
14293
14255
  self.username = username
14294
14256
  self.email = email
14295
- self.enrollments = enrollments
14257
+ self.effective_mfa_type = effective_mfa_type
14258
+ self.id_based_mfa = id_based_mfa
14259
+ self.account_based_mfa = account_based_mfa
14296
14260
 
14297
14261
  @classmethod
14298
14262
  def from_dict(cls, _dict: Dict) -> 'UserReportMfaEnrollmentStatus':
@@ -14310,10 +14274,22 @@ class UserReportMfaEnrollmentStatus:
14310
14274
  raise ValueError('Required property \'username\' not present in UserReportMfaEnrollmentStatus JSON')
14311
14275
  if (email := _dict.get('email')) is not None:
14312
14276
  args['email'] = email
14313
- if (enrollments := _dict.get('enrollments')) is not None:
14314
- args['enrollments'] = MfaEnrollments.from_dict(enrollments)
14277
+ if (effective_mfa_type := _dict.get('effective_mfa_type')) is not None:
14278
+ args['effective_mfa_type'] = effective_mfa_type
14279
+ else:
14280
+ raise ValueError(
14281
+ 'Required property \'effective_mfa_type\' not present in UserReportMfaEnrollmentStatus JSON'
14282
+ )
14283
+ if (id_based_mfa := _dict.get('id_based_mfa')) is not None:
14284
+ args['id_based_mfa'] = IdBasedMfaEnrollment.from_dict(id_based_mfa)
14285
+ else:
14286
+ raise ValueError('Required property \'id_based_mfa\' not present in UserReportMfaEnrollmentStatus JSON')
14287
+ if (account_based_mfa := _dict.get('account_based_mfa')) is not None:
14288
+ args['account_based_mfa'] = AccountBasedMfaEnrollment.from_dict(account_based_mfa)
14315
14289
  else:
14316
- raise ValueError('Required property \'enrollments\' not present in UserReportMfaEnrollmentStatus JSON')
14290
+ raise ValueError(
14291
+ 'Required property \'account_based_mfa\' not present in UserReportMfaEnrollmentStatus JSON'
14292
+ )
14317
14293
  return cls(**args)
14318
14294
 
14319
14295
  @classmethod
@@ -14332,11 +14308,18 @@ class UserReportMfaEnrollmentStatus:
14332
14308
  _dict['username'] = self.username
14333
14309
  if hasattr(self, 'email') and self.email is not None:
14334
14310
  _dict['email'] = self.email
14335
- if hasattr(self, 'enrollments') and self.enrollments is not None:
14336
- if isinstance(self.enrollments, dict):
14337
- _dict['enrollments'] = self.enrollments
14311
+ if hasattr(self, 'effective_mfa_type') and self.effective_mfa_type is not None:
14312
+ _dict['effective_mfa_type'] = self.effective_mfa_type
14313
+ if hasattr(self, 'id_based_mfa') and self.id_based_mfa is not None:
14314
+ if isinstance(self.id_based_mfa, dict):
14315
+ _dict['id_based_mfa'] = self.id_based_mfa
14338
14316
  else:
14339
- _dict['enrollments'] = self.enrollments.to_dict()
14317
+ _dict['id_based_mfa'] = self.id_based_mfa.to_dict()
14318
+ if hasattr(self, 'account_based_mfa') and self.account_based_mfa is not None:
14319
+ if isinstance(self.account_based_mfa, dict):
14320
+ _dict['account_based_mfa'] = self.account_based_mfa
14321
+ else:
14322
+ _dict['account_based_mfa'] = self.account_based_mfa.to_dict()
14340
14323
  return _dict
14341
14324
 
14342
14325
  def _to_dict(self):
@@ -2,4 +2,4 @@
2
2
  Version of platform_services
3
3
  """
4
4
 
5
- __version__ = '0.72.0'
5
+ __version__ = '0.73.0'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ibm-platform-services
3
- Version: 0.72.0
3
+ Version: 0.73.0
4
4
  Summary: Python client library for IBM Cloud Platform Services
5
5
  Author-email: IBM <devxsdk@us.ibm.com>
6
6
  Project-URL: Repository, https://github.com/IBM/platform-services-python-sdk
@@ -51,7 +51,7 @@ Dynamic: license-file
51
51
  [![CLA assistant](https://cla-assistant.io/readme/badge/IBM/platform-services-python-sdk)](https://cla-assistant.io/IBM/platform-services-python-sdk)
52
52
 
53
53
 
54
- # IBM Cloud Platform Services Python SDK Version 0.72.0
54
+ # IBM Cloud Platform Services Python SDK Version 0.73.0
55
55
 
56
56
  Python client library to interact with various
57
57
  [IBM Cloud Platform Service APIs](https://cloud.ibm.com/docs?tab=api-docs&category=platform_services).
@@ -10,7 +10,7 @@ ibm_platform_services/global_catalog_v1.py,sha256=j-B3d-4LIL_ktuphGo8YBbJLSoFG5c
10
10
  ibm_platform_services/global_search_v2.py,sha256=ZiZu-5XDqbywE7yKhohL8nbbL8PAmQLU3d6AMb6IrMg,21532
11
11
  ibm_platform_services/global_tagging_v1.py,sha256=VqaXwyWSN6jKEaR5uu7bq-AGJrsJ_GDEmde7mR7TjKI,65663
12
12
  ibm_platform_services/iam_access_groups_v2.py,sha256=E9ope8EFmlt_oxEZqUruAimbN6uXQ8rhBIij706Q6is,320399
13
- ibm_platform_services/iam_identity_v1.py,sha256=Z9no_ZFTs_UMLuEWr4XbMFybjdK7dp-1MRDg_oeAlqs,605837
13
+ ibm_platform_services/iam_identity_v1.py,sha256=Me3TKetsKg6qJKgolI_M6Dy3BNLengS5Iu5Kh9gkC7E,606488
14
14
  ibm_platform_services/iam_policy_management_v1.py,sha256=GVyJc4L27htHqCfMLO37MSrZgO5S8tjGHJdej1gZcWM,615568
15
15
  ibm_platform_services/ibm_cloud_shell_v1.py,sha256=T996gx6pgDkT_kVIp79ApFj77hb_ddYwHLcjtAVlJ3Y,20063
16
16
  ibm_platform_services/open_service_broker_v1.py,sha256=MCoRClB3CvpMJgklfZ2OFuzX9Hn2l9eiVTd7yBQABCE,83453
@@ -20,9 +20,9 @@ ibm_platform_services/resource_manager_v2.py,sha256=Jw6VwK0EGb0Rixa0r63dQSR3NTLK
20
20
  ibm_platform_services/usage_metering_v4.py,sha256=3a8OPVs-v6nW391uz4mjl4k1j8S1fy2c7ulx0Sj6tI0,19366
21
21
  ibm_platform_services/usage_reports_v4.py,sha256=WvKUbWkp1BAvCGm1_9Hqb6_FOdwZMTfFju1jE3DfcrI,218767
22
22
  ibm_platform_services/user_management_v1.py,sha256=r8cQn9Op1EE521dTqxh8TeXekBacKxe5Ka-ikGZ6A-g,61887
23
- ibm_platform_services/version.py,sha256=UiaSKvtgz1cX99Y1oR2wyurMJu7gu91WJhrxaA-86CA,61
24
- ibm_platform_services-0.72.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
25
- ibm_platform_services-0.72.0.dist-info/METADATA,sha256=NVrJXuCN0Ykp-V7wrqHw_b26M8UAmlz11-wE09M4ZJQ,9029
26
- ibm_platform_services-0.72.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
27
- ibm_platform_services-0.72.0.dist-info/top_level.txt,sha256=S7qPS0hODAYsGpClGheV5YKaJTTt9RNC6dwEx1qZhUc,22
28
- ibm_platform_services-0.72.0.dist-info/RECORD,,
23
+ ibm_platform_services/version.py,sha256=FfWx4R9XyCz30laikE78E44YoTZ-LEbTxyySWAJDt6g,61
24
+ ibm_platform_services-0.73.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
25
+ ibm_platform_services-0.73.0.dist-info/METADATA,sha256=PlnSPytvhH85skNMcF_UjKvGSelMH-C0d86EO8AUI2g,9029
26
+ ibm_platform_services-0.73.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
27
+ ibm_platform_services-0.73.0.dist-info/top_level.txt,sha256=S7qPS0hODAYsGpClGheV5YKaJTTt9RNC6dwEx1qZhUc,22
28
+ ibm_platform_services-0.73.0.dist-info/RECORD,,