ark-sdk-python 1.1.2__py3-none-any.whl → 1.1.3__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.
Files changed (22) hide show
  1. ark_sdk_python/ark.py +1 -1
  2. ark_sdk_python/auth/identity/ark_identity.py +7 -2
  3. ark_sdk_python/common/env/__init__.py +2 -0
  4. ark_sdk_python/common/env/ark_env_mapping.py +9 -0
  5. ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_add_secret.py +4 -0
  6. ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_secret_type.py +1 -0
  7. ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_store_type.py +2 -0
  8. ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_update_secret.py +4 -0
  9. ark_sdk_python/models/services/dpa/secrets/db/secrets_data/__init__.py +8 -2
  10. ark_sdk_python/models/services/dpa/secrets/db/secrets_data/ark_dpa_db_atlas_access_keys_secret_data.py +16 -0
  11. ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_add_database.py +1 -0
  12. ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_database.py +1 -0
  13. ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_update_database.py +1 -0
  14. ark_sdk_python/services/dpa/secrets/db/ark_dpa_db_secrets_service.py +58 -18
  15. ark_sdk_python/services/dpa/workspaces/db/ark_dpa_db_workspace_service.py +8 -2
  16. ark_sdk_python/services/identity/common/ark_identity_base_service.py +18 -13
  17. {ark_sdk_python-1.1.2.dist-info → ark_sdk_python-1.1.3.dist-info}/METADATA +1 -1
  18. {ark_sdk_python-1.1.2.dist-info → ark_sdk_python-1.1.3.dist-info}/RECORD +22 -21
  19. {ark_sdk_python-1.1.2.dist-info → ark_sdk_python-1.1.3.dist-info}/LICENSE.txt +0 -0
  20. {ark_sdk_python-1.1.2.dist-info → ark_sdk_python-1.1.3.dist-info}/NOTICES.md +0 -0
  21. {ark_sdk_python-1.1.2.dist-info → ark_sdk_python-1.1.3.dist-info}/WHEEL +0 -0
  22. {ark_sdk_python-1.1.2.dist-info → ark_sdk_python-1.1.3.dist-info}/entry_points.txt +0 -0
ark_sdk_python/ark.py CHANGED
@@ -17,7 +17,7 @@ from ark_sdk_python.actions import ArkAction, ArkCacheAction, ArkConfigureAction
17
17
 
18
18
  urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
19
19
 
20
- __version__ = '1.1.2'
20
+ __version__ = '1.1.3'
21
21
 
22
22
 
23
23
  def main():
@@ -539,18 +539,21 @@ class ArkIdentity:
539
539
  return self.auth_identity(profile, interactive, force)
540
540
 
541
541
  self.__logger.debug('Attempting to refresh authenticate to Identity')
542
+ saved_cookies = None
543
+ if self.__session:
544
+ saved_cookies = self.__session.cookies.copy()
542
545
  self.__session = Session()
543
546
  self.__session.verify = self.__verify
544
547
  self.__session.headers.update(ArkIdentityFQDNResolver.default_headers())
545
548
  decoded_token = get_unverified_claims(self.__session_details.token)
546
549
  platform_tenant_id = decoded_token['tenant_id']
547
- cookies = {
550
+ refresh_cookies = {
548
551
  f'refreshToken-{platform_tenant_id}': self.__session_details.refresh_token,
549
552
  f'idToken-{platform_tenant_id}': self.__session_details.token,
550
553
  }
551
554
  response = self.__session.post(
552
555
  url=f'{self.__identity_url}/OAuth2/RefreshPlatformToken',
553
- cookies=cookies,
556
+ cookies=refresh_cookies,
554
557
  )
555
558
  if response.status_code != HTTPStatus.OK:
556
559
  raise ArkAuthException('Failed to refresh token')
@@ -558,6 +561,8 @@ class ArkIdentity:
558
561
  new_refresh_token = response.cookies.get(f'refreshToken-{platform_tenant_id}')
559
562
  if not new_token or not new_refresh_token:
560
563
  raise ArkAuthException('Failed to retrieve refresh tokens cookies')
564
+ if saved_cookies:
565
+ self.__session.cookies = saved_cookies
561
566
  self.__session_details.token = new_token
562
567
  self.__session_details.refresh_token = new_refresh_token
563
568
  self.__session_details.token_lifetime = (
@@ -9,6 +9,7 @@ from ark_sdk_python.common.env.ark_env_mapping import (
9
9
  AwsEnv,
10
10
  check_if_identity_generated_suffix,
11
11
  get_deploy_env,
12
+ is_gov_cloud,
12
13
  )
13
14
 
14
15
  __all__ = [
@@ -22,4 +23,5 @@ __all__ = [
22
23
  'IDENTITY_TENANT_NAME',
23
24
  'SHELL_DOMAIN',
24
25
  'ROOT_DOMAIN',
26
+ 'is_gov_cloud',
25
27
  ]
@@ -6,6 +6,7 @@ from typing import Dict, Final
6
6
 
7
7
  class AwsEnv(str, Enum):
8
8
  PROD = 'prod'
9
+ GOV_PROD = 'gov-prod'
9
10
 
10
11
 
11
12
  DEPLOY_ENV: Final[str] = 'DEPLOY_ENV'
@@ -44,3 +45,11 @@ def get_deploy_env() -> AwsEnv:
44
45
  def check_if_identity_generated_suffix(tenant_suffix, env: AwsEnv) -> bool:
45
46
  pattern = IDENTITY_GENERATED_SUFFIX_PATTERN.get(env)
46
47
  return re.match(pattern, tenant_suffix) is not None
48
+
49
+
50
+ def is_gov_cloud() -> bool:
51
+ try:
52
+ region_name = os.getenv('AWS_REGION') or os.getenv('AWS_DEFAULT_REGION')
53
+ return region_name.startswith('us-gov')
54
+ except Exception:
55
+ return False
@@ -32,5 +32,9 @@ class ArkDPADBAddSecret(ArkModel):
32
32
  iam_access_key_id: Optional[SecretStr] = Field(description='Access key id of the user')
33
33
  iam_secret_access_key: Optional[SecretStr] = Field(description='Secret access key of the user')
34
34
 
35
+ # Atlas Secret Type
36
+ atlas_public_key: Optional[str] = Field(description='Public part of mongo atlas access keys')
37
+ atlas_private_key: Optional[SecretStr] = Field(description='Private part of mongo atlas access keys')
38
+
35
39
  class Config:
36
40
  json_encoders = {SecretStr: lambda v: v.get_secret_value() if v else None}
@@ -6,3 +6,4 @@ class ArkDPADBSecretType(str, Enum):
6
6
  UsernamePassword = 'username_password'
7
7
  IAMUser = 'iam_user'
8
8
  CyberArkPAM = 'cyberark_pam'
9
+ AtlasAccessKeys = 'atlas_access_keys'
@@ -13,4 +13,6 @@ class ArkDPADBStoreType(str, Enum):
13
13
  SECRET_TYPE_TO_STORE_DICT: Final[Dict[ArkDPADBSecretType, ArkDPADBStoreType]] = {
14
14
  ArkDPADBSecretType.UsernamePassword: ArkDPADBStoreType.Managed,
15
15
  ArkDPADBSecretType.CyberArkPAM: ArkDPADBStoreType.PAM,
16
+ ArkDPADBSecretType.IAMUser: ArkDPADBStoreType.Managed,
17
+ ArkDPADBSecretType.AtlasAccessKeys: ArkDPADBStoreType.Managed,
16
18
  }
@@ -28,6 +28,10 @@ class ArkDPADBUpdateSecret(ArkModel):
28
28
  iam_access_key_id: Optional[SecretStr] = Field(description='Access key id of the user')
29
29
  iam_secret_access_key: Optional[SecretStr] = Field(description='Secret access key of the user')
30
30
 
31
+ # Atlas Secret Type
32
+ atlas_public_key: Optional[str] = Field(description='Public part of mongo atlas access keys')
33
+ atlas_private_key: Optional[SecretStr] = Field(description='Private part of mongo atlas access keys')
34
+
31
35
  class Config:
32
36
  json_encoders = {SecretStr: lambda v: v.get_secret_value() if v else None}
33
37
 
@@ -1,5 +1,9 @@
1
1
  from typing import Union
2
2
 
3
+ from ark_sdk_python.models.services.dpa.secrets.db.secrets_data.ark_dpa_db_atlas_access_keys_secret_data import (
4
+ ArkDPADBAtlasAccessKeysSecretData,
5
+ ArkDPADBExposedAtlasAccessKeysSecretData,
6
+ )
3
7
  from ark_sdk_python.models.services.dpa.secrets.db.secrets_data.ark_dpa_db_iam_user_secret_data import (
4
8
  ArkDPADBExposedIAMUserSecretData,
5
9
  ArkDPADBIAMUserSecretData,
@@ -9,5 +13,7 @@ from ark_sdk_python.models.services.dpa.secrets.db.secrets_data.ark_dpa_db_user_
9
13
  ArkDPADBUserPasswordSecretData,
10
14
  )
11
15
 
12
- ArkDPADBSecretDataTypes = Union[ArkDPADBUserPasswordSecretData, ArkDPADBIAMUserSecretData]
13
- ArkDPADBSecretExposedDataTypes = Union[ArkDPADBExposedUserPasswordSecretData, ArkDPADBExposedIAMUserSecretData]
16
+ ArkDPADBSecretDataTypes = Union[ArkDPADBUserPasswordSecretData, ArkDPADBIAMUserSecretData, ArkDPADBAtlasAccessKeysSecretData]
17
+ ArkDPADBSecretExposedDataTypes = Union[
18
+ ArkDPADBExposedUserPasswordSecretData, ArkDPADBExposedIAMUserSecretData, ArkDPADBExposedAtlasAccessKeysSecretData
19
+ ]
@@ -0,0 +1,16 @@
1
+ from typing import Any, Dict, Optional
2
+
3
+ from pydantic import BaseModel, Field, SecretStr
4
+
5
+
6
+ class ArkDPADBAtlasAccessKeysSecretData(BaseModel):
7
+ public_key: str = Field(description='Public part of mongo atlas access keys')
8
+ private_key: SecretStr = Field(description='Private part of mongo atlas access keys')
9
+ metadata: Optional[Dict[str, Any]] = Field(description='Extra secret details')
10
+
11
+ class Config:
12
+ json_encoders = {SecretStr: lambda v: v.get_secret_value() if v else None}
13
+
14
+
15
+ class ArkDPADBExposedAtlasAccessKeysSecretData(BaseModel):
16
+ public_key: str = Field(description='Public part of mongo atlas access keys')
@@ -25,6 +25,7 @@ class ArkDPADBAddDatabase(ArkCamelizedModel):
25
25
  description='Whether to enforce certificate validation on TLS comm to the DC', default=True
26
26
  )
27
27
  domain_controller_ldaps_certificate: Optional[str] = Field(description='Certificate id to use for the domain controller TLS comm')
28
+ account: Optional[str] = Field(description='Account to be used for provider based databases such as snowflake or atlas')
28
29
  provider_engine: ArkDPADBDatabaseEngineType = Field(
29
30
  description='Provider engine, will be later deduced to the identifer of the provider'
30
31
  )
@@ -24,6 +24,7 @@ class ArkDPADBDatabase(ArkCamelizedModel):
24
24
  description='Whether to enforce certificate validation on TLS comm to the DC', default=True
25
25
  )
26
26
  domain_controller_ldaps_certificate: Optional[str] = Field(description='Certificate id to use for the domain controller TLS comm')
27
+ account: Optional[str] = Field(description='Account to be used for provider based databases such as snowflake or atlas')
27
28
  provider_details: Optional[ArkDPADBDatabaseProvider] = Field(description='Provider details related to the database')
28
29
  enable_certificate_validation: bool = Field(description='Whether to enable and enforce certificate validation', default=True)
29
30
  certificate: Optional[str] = Field(description='Certificate id used for this database that resides in the certificates service')
@@ -25,6 +25,7 @@ class ArkDPADBUpdateDatabase(ArkCamelizedModel):
25
25
  description='Whether to enforce certificate validation on TLS comm to the DC', default=True
26
26
  )
27
27
  domain_controller_ldaps_certificate: Optional[str] = Field(description='Certificate id to use for the domain controller TLS comm')
28
+ account: Optional[str] = Field(description='Account to be used for provider based databases such as snowflake or atlas')
28
29
  provider_engine: Optional[ArkDPADBDatabaseEngineType] = Field(
29
30
  description='Provider engine, will be later deduced to the identifer of the provider'
30
31
  )
@@ -77,7 +77,22 @@ class ArkDPADBSecretsService(ArkService):
77
77
  ArkDPADBSecretMetadata: _description_
78
78
  """
79
79
  self._logger.info('Adding new db secret')
80
- add_secret_dict = add_secret.dict(exclude_none=True, exclude={'store_type', 'username', 'password', 'pam_safe', 'pam_account_name'})
80
+ add_secret_dict = add_secret.dict(
81
+ exclude_none=True,
82
+ exclude={
83
+ 'store_type',
84
+ 'username',
85
+ 'password',
86
+ 'pam_safe',
87
+ 'pam_account_name',
88
+ 'iam_username',
89
+ 'iam_account',
90
+ 'iam_access_key_id',
91
+ 'iam_secret_access_key',
92
+ 'atlas_public_key',
93
+ 'atlas_private_key',
94
+ },
95
+ )
81
96
  if not add_secret.store_type:
82
97
  add_secret.store_type = SECRET_TYPE_TO_STORE_DICT[add_secret.secret_type]
83
98
  add_secret_dict['secret_store'] = {
@@ -115,6 +130,15 @@ class ArkDPADBSecretsService(ArkService):
115
130
  'access_key_id': add_secret.iam_access_key_id.get_secret_value(),
116
131
  'secret_access_key': add_secret.iam_secret_access_key.get_secret_value(),
117
132
  }
133
+ elif add_secret.secret_type == ArkDPADBSecretType.AtlasAccessKeys:
134
+ if not add_secret.atlas_public_key or not add_secret.atlas_private_key:
135
+ raise ArkServiceException(
136
+ 'When specifying an atlas secret type, both private key and public key parameters must be supplied'
137
+ )
138
+ add_secret_dict['secret_data'] = {
139
+ 'public_key': add_secret.atlas_public_key,
140
+ 'private_key': add_secret.atlas_private_key.get_secret_value(),
141
+ }
118
142
  resp: Response = self.__client.post(
119
143
  SECRETS_ROUTE,
120
144
  json=add_secret_dict,
@@ -151,7 +175,21 @@ class ArkDPADBSecretsService(ArkService):
151
175
  self._logger.info(f'Updating existing db secret with id [{update_secret.secret_id}]')
152
176
  update_secret_dict = update_secret.dict(
153
177
  exclude_none=True,
154
- exclude={'secret_id', 'secret_name', 'new_secret_name', 'username', 'password', 'pam_safe', 'pam_account_name'},
178
+ exclude={
179
+ 'secret_id',
180
+ 'secret_name',
181
+ 'new_secret_name',
182
+ 'username',
183
+ 'password',
184
+ 'pam_safe',
185
+ 'pam_account_name',
186
+ 'iam_username',
187
+ 'iam_account',
188
+ 'iam_access_key_id',
189
+ 'iam_secret_access_key',
190
+ 'atlas_public_key',
191
+ 'atlas_private_key',
192
+ },
155
193
  )
156
194
  if update_secret.new_secret_name:
157
195
  update_secret_dict['secret_name'] = update_secret.new_secret_name
@@ -190,12 +228,24 @@ class ArkDPADBSecretsService(ArkService):
190
228
  'access_key_id': update_secret.iam_access_key_id.get_secret_value(),
191
229
  'secret_access_key': update_secret.iam_secret_access_key.get_secret_value(),
192
230
  }
193
- resp: Response = self.__client.post(
231
+ if update_secret.atlas_public_key or update_secret.atlas_private_key:
232
+ if not update_secret.atlas_public_key or not update_secret.atlas_private_key:
233
+ raise ArkServiceException('When specifying an atlas secret, both private key and public key parameters must be supplied')
234
+ update_secret_dict['secret_data'] = {
235
+ 'public_key': update_secret.atlas_public_key,
236
+ 'private_key': update_secret.atlas_private_key.get_secret_value(),
237
+ }
238
+
239
+ resp: Response = self.__client.patch(
194
240
  SECRET_ROUTE.format(secret_id=update_secret.secret_id),
195
241
  json=update_secret_dict,
196
242
  )
197
243
  if resp.status_code == HTTPStatus.OK:
198
- return self.secret(ArkDPADBSecretMetadata(secret_id=update_secret.secret_id))
244
+ try:
245
+ return ArkDPADBSecretMetadata.parse_obj(resp.json())
246
+ except (ValidationError, JSONDecodeError) as ex:
247
+ self._logger.exception(f'Failed to parse db secret response [{str(ex)}] - [{resp.text}]')
248
+ raise ArkServiceException(f'Failed to parse db secret response [{str(ex)}]') from ex
199
249
  raise ArkServiceException(f'Failed to update db secret [{resp.text}] - [{resp.status_code}]')
200
250
 
201
251
  def delete_secret(self, delete_secret: ArkDPADBDeleteSecret) -> None:
@@ -282,13 +332,8 @@ class ArkDPADBSecretsService(ArkService):
282
332
  )
283
333
  self._logger.info(f'Enabling db secret by id [{enable_secret.secret_id}]')
284
334
  resp: Response = self.__client.post(ENABLE_SECRET_ROUTE.format(secret_id=enable_secret.secret_id))
285
- if resp.status_code == HTTPStatus.OK:
286
- try:
287
- return ArkDPADBSecretMetadata.parse_obj(resp.json())
288
- except (ValidationError, JSONDecodeError) as ex:
289
- self._logger.exception(f'Failed to parse enable db secret response [{str(ex)}] - [{resp.text}]')
290
- raise ArkServiceException(f'Failed to parse enable db secret response [{str(ex)}]') from ex
291
- raise ArkServiceException(f'Failed to retrieve enable db secret [{resp.text}] - [{resp.status_code}]')
335
+ if resp.status_code != HTTPStatus.OK:
336
+ raise ArkServiceException(f'Failed to enable db secret [{resp.text}] - [{resp.status_code}]')
292
337
 
293
338
  def disable_secret(self, disable_secret: ArkDPADBDisableSecret) -> ArkDPADBSecretMetadata:
294
339
  """
@@ -313,13 +358,8 @@ class ArkDPADBSecretsService(ArkService):
313
358
  )
314
359
  self._logger.info(f'Disabling db secret by id [{disable_secret.secret_id}]')
315
360
  resp: Response = self.__client.post(DISABLE_SECRET_ROUTE.format(secret_id=disable_secret.secret_id))
316
- if resp.status_code == HTTPStatus.OK:
317
- try:
318
- return ArkDPADBSecretMetadata.parse_obj(resp.json())
319
- except (ValidationError, JSONDecodeError) as ex:
320
- self._logger.exception(f'Failed to parse disable db secret response [{str(ex)}] - [{resp.text}]')
321
- raise ArkServiceException(f'Failed to parse disable db secret response [{str(ex)}]') from ex
322
- raise ArkServiceException(f'Failed to retrieve disable db secret [{resp.text}] - [{resp.status_code}]')
361
+ if resp.status_code != HTTPStatus.OK:
362
+ raise ArkServiceException(f'Failed to disable db secret [{resp.text}] - [{resp.status_code}]')
323
363
 
324
364
  def secret(self, get_secret: ArkDPADBGetSecret) -> ArkDPADBSecretMetadata:
325
365
  """
@@ -122,7 +122,10 @@ class ArkDPADBWorkspaceService(ArkService):
122
122
  ArkDPADBDatabase: _description_
123
123
  """
124
124
  if update_database.name and not update_database.id:
125
- update_database.id = self.list_databases_by(ArkDPADBDatabasesFilter(name=update_database.name))
125
+ databases = self.list_databases_by(ArkDPADBDatabasesFilter(name=update_database.name))
126
+ if not databases.items or len(databases.items) != 1:
127
+ raise ArkServiceException(f'Failed to update database - name [{update_database.name}] not found')
128
+ update_database.id = self.list_databases_by(ArkDPADBDatabasesFilter(name=update_database.name)).items[0].id
126
129
  self._logger.info(f'Updating database [{update_database.id}]')
127
130
  update_database_dict = update_database.dict(exclude={'name', 'new_name'}, exclude_none=True)
128
131
  if update_database.new_name:
@@ -197,7 +200,10 @@ class ArkDPADBWorkspaceService(ArkService):
197
200
  ArkDPADBDatabase: _description_
198
201
  """
199
202
  if get_database.name and not get_database.id:
200
- get_database.id = self.list_databases_by(ArkDPADBDatabasesFilter(name=get_database.name))
203
+ databases = self.list_databases_by(ArkDPADBDatabasesFilter(name=get_database.name))
204
+ if not databases.items or len(databases.items) != 1:
205
+ raise ArkServiceException(f'Failed to get database - name [{get_database.name}] not found')
206
+ get_database.id = self.list_databases_by(ArkDPADBDatabasesFilter(name=get_database.name)).items[0].id
201
207
  self._logger.info(f'Getting database [{get_database.id}]')
202
208
  resp: Response = self.__client.get(RESOURCE_API.format(resource_id=get_database.id))
203
209
  if resp.status_code == HTTPStatus.OK:
@@ -2,7 +2,7 @@ import os
2
2
 
3
3
  from ark_sdk_python.auth.ark_isp_auth import ArkISPAuth
4
4
  from ark_sdk_python.common.ark_client import ArkClient
5
- from ark_sdk_python.common.env import ROOT_DOMAIN, AwsEnv
5
+ from ark_sdk_python.common.env import ROOT_DOMAIN, AwsEnv, is_gov_cloud
6
6
  from ark_sdk_python.common.isp import ArkISPServiceClient
7
7
  from ark_sdk_python.services.ark_service import ArkService
8
8
 
@@ -22,17 +22,22 @@ class ArkIdentityBaseService(ArkService):
22
22
  'Authorization': f'Bearer {isp_auth.token.token.get_secret_value()}',
23
23
  }
24
24
  )
25
- self._client = None
26
- self._url_prefix = 'api/idadmin/'
27
- self._env = None
28
- if 'env' in isp_auth.token.metadata.keys():
29
- self._env = AwsEnv(isp_auth.token.metadata['env'])
25
+ if not is_gov_cloud():
26
+ self._client = None
27
+ self._url_prefix = 'api/idadmin/'
28
+ self._env = None
29
+ if 'env' in isp_auth.token.metadata.keys():
30
+ self._env = AwsEnv(isp_auth.token.metadata['env'])
31
+ else:
32
+ self._env = AwsEnv(os.environ.get('DEPLOY_ENV', AwsEnv.PROD.value))
33
+ try:
34
+ self._client: ArkISPServiceClient = ArkISPServiceClient.from_isp_auth(self._isp_auth)
35
+ self._env = self._client.tenant_env
36
+ except Exception:
37
+ self._client = self._idp_client
38
+ if any(f'id.{d}' in self._idp_client.base_url for d in ROOT_DOMAIN.values()):
39
+ self._url_prefix = ''
30
40
  else:
31
- self._env = AwsEnv(os.environ.get('DEPLOY_ENV', AwsEnv.PROD.value))
32
- try:
33
- self._client: ArkISPServiceClient = ArkISPServiceClient.from_isp_auth(self._isp_auth)
34
- self._env = self._client.tenant_env
35
- except Exception:
36
41
  self._client = self._idp_client
37
- if any(f'id.{d}' in self._idp_client.base_url for d in ROOT_DOMAIN.values()):
38
- self._url_prefix = ''
42
+ self._url_prefix = ''
43
+ self._env = AwsEnv(os.environ.get('DEPLOY_ENV', AwsEnv.GOV_PROD.value))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ark-sdk-python
3
- Version: 1.1.2
3
+ Version: 1.1.3
4
4
  Summary: Official Ark SDK / CLI for CyberArk Identity Security Platform
5
5
  Home-page: https://github.com/cyberark/ark-sdk-python
6
6
  License: Apache-2.0
@@ -10,13 +10,13 @@ ark_sdk_python/actions/ark_service_exec_action.py,sha256=O9rU9KuRYHaxrk4Diollot4
10
10
  ark_sdk_python/args/__init__.py,sha256=mCb4UrIRL4u58QyUbqqH2xAU0VN91pxjK5sa_UwCM_k,279
11
11
  ark_sdk_python/args/ark_args_formatter.py,sha256=-Rs_rGMIr1bprD1SfYlMsLoSOFgr_RFrRdREvbmPU6k,9204
12
12
  ark_sdk_python/args/ark_pydantic_argparse.py,sha256=AzwkdhUoxHd9Hreki_iWCdT8lY-1um8OOfbvOedduBE,33777
13
- ark_sdk_python/ark.py,sha256=lPv1u9nGlXXT8OC2wmmRrEBOT8MAGoNatIy6RPD7itI,1280
13
+ ark_sdk_python/ark.py,sha256=eXBz823l8aF9Ar6aJG87SeJLqIQlzF7Z5kgKH06vfv0,1280
14
14
  ark_sdk_python/ark_api.py,sha256=COY0c3Yh6E1hox5f2Dw3sBWpiPDv-R5w8S0blrAFsMc,8600
15
15
  ark_sdk_python/auth/__init__.py,sha256=1l29Rf3VhwmV8z3YROiQVcgrZYSeeCqVN4zna77tnlk,620
16
16
  ark_sdk_python/auth/ark_auth.py,sha256=eycipVTr2uNHZ4XdqCyXN7Cwx4g_wmoj71OkIVzjSTQ,12947
17
17
  ark_sdk_python/auth/ark_isp_auth.py,sha256=Xuf8J7-VgN6a6oJOem5Rf8LzOI5NCNqUeT5Snb4VNK4,9572
18
18
  ark_sdk_python/auth/identity/__init__.py,sha256=2Yyc_Rrx-D4PsSdg-ESl5pFFTpqu6LUPSc4ZW59oOP8,328
19
- ark_sdk_python/auth/identity/ark_identity.py,sha256=mFK4DoWd1E9PMHaV3DV-2mIO3B8V_8MZ0xBK1M9F1RU,28247
19
+ ark_sdk_python/auth/identity/ark_identity.py,sha256=Z_QRCVFM4X3JoiDPjy8hbMlZ7jGY88IvXI8Sv2WdedM,28454
20
20
  ark_sdk_python/auth/identity/ark_identity_fqdn_resolver.py,sha256=_WKm31eVlT-vLRTmp-tTswpXgdl9_Iqqvp5ZPKRvDwg,4777
21
21
  ark_sdk_python/auth/identity/ark_identity_service_user.py,sha256=QlqUHGUh4iqmfqmV_YlXs6xNM_U-xz6VqW5hHZoxwSQ,7495
22
22
  ark_sdk_python/cli_services/__init__.py,sha256=e9vdwqNiYqhZmK05Wgpz-Hf9SycK_3X-RS3CK9n2lIs,87
@@ -38,8 +38,8 @@ ark_sdk_python/common/ark_page.py,sha256=4_kycDX8vLloyZOlbM8N9XYXiF2cb5O-l4FbZ5h
38
38
  ark_sdk_python/common/ark_pollers.py,sha256=PnKprub0A-S4DhGPGIreKI5pwqXSqIcE1DgxxiX7Kmw,3987
39
39
  ark_sdk_python/common/ark_random_utils.py,sha256=dmPsvF9lTg90SdrYENmVD6giQdZlb5yjmKkMk9NeMzA,671
40
40
  ark_sdk_python/common/ark_system_config.py,sha256=cl44cYSgXZEnoRYu048aBeJwWRPdCT_flC3hTWyytX4,2436
41
- ark_sdk_python/common/env/__init__.py,sha256=GHVTOcwmbUzelsAHJDIIWNirMDRXxNwdnZLS8wRN7nU,583
42
- ark_sdk_python/common/env/ark_env_mapping.py,sha256=08Kodwm9433je4xdFKT3pwUVg_kvCDee0LOpaeAk3wA,1132
41
+ ark_sdk_python/common/env/__init__.py,sha256=bClLAUl9fS1QT_AYQ5vpKBplZ_Pjr8b3XwjKh6klbFE,621
42
+ ark_sdk_python/common/env/ark_env_mapping.py,sha256=D_WKns4yyEtCFtC9OCMLFD-K8gGjhxLwcCej9YJyHZU,1369
43
43
  ark_sdk_python/common/isp/__init__.py,sha256=363fvrATSpmR4hCxhh_lmYA6_qcVWCmHTTINrn8-Z8Y,116
44
44
  ark_sdk_python/common/isp/ark_isp_service_client.py,sha256=CCNqumpUXZj5Evk1Xj0YpRHob3-0MjfLYDbP7M3M2Vs,6261
45
45
  ark_sdk_python/examples/create_dpa_db_environment.py,sha256=E_gI-Ct7P1xQtMQGBeiN9FG_kuCg5X-Q8tfRSJx0wI4,3744
@@ -175,21 +175,22 @@ ark_sdk_python/models/services/dpa/policies/vm/ark_dpa_vm_providers.py,sha256=EV
175
175
  ark_sdk_python/models/services/dpa/policies/vm/ark_dpa_vm_update_policy.py,sha256=EbLzk6eCnyOOdyvC_eGPZ6bUBQyi0pdr_if2E1L9mA0,1603
176
176
  ark_sdk_python/models/services/dpa/secrets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
177
177
  ark_sdk_python/models/services/dpa/secrets/db/__init__.py,sha256=MQolHX2anpBEIE-UETBiY88DsaYZdXbhNtXclaPONDg,1709
178
- ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_add_secret.py,sha256=ZNWUcyKywcSAQV9RKLXu5bF-ZEFikJWXUugkigWRsos,1971
178
+ ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_add_secret.py,sha256=Ok61iP6MfoGw_VnoT6_VXPdAD3LNwvAgt4nDfsk1Fu8,2200
179
179
  ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_delete_secret.py,sha256=XPez7ztN1mAk3iI6V-L12joY6h6PE1bHWEnD_HTKMvs,615
180
180
  ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_disable_secret.py,sha256=uAHWE-4Chh2h-8ocg5KWiusOAEPRWDcngj2-7K11RME,618
181
181
  ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_enable_secret.py,sha256=c8-DZhDcuA5IdtvINgxvi3VcO9dkOaxWK7AMqGErsVQ,615
182
182
  ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_get_secret.py,sha256=O53oRodRr4D-nmhE25J-JDAj_ZSoYgUJFphVLqSewXo,606
183
183
  ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_secret_metadata.py,sha256=MMpFPMg1zcEwmLTkr0v18K3tGB69w1RXzJk6PyNhN-M,2091
184
- ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_secret_type.py,sha256=rmqiMN8yPor-bx9fmkP_Rt8gLfb5KTqMKCTWTzF7HpY,193
184
+ ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_secret_type.py,sha256=Fpz0gVCskjtUwVv9WhKKVUb9dMBd7jTrYIjDkVyGPg8,235
185
185
  ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_secrets_filter.py,sha256=7ZzshJr2F_jAZCwFXgt3VhAWbJMcP92kthRqK6ioYGU,850
186
186
  ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_secrets_stats.py,sha256=wArdZYJVENL7ELcrjFdEzi_L3YaEWAhzXLGz2mhk-vs,799
187
187
  ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_store_descriptor.py,sha256=Fr_P8pMnGpFFAdXToZidmmw9Hgt5maKSQkuUK7ycWKY,403
188
- ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_store_type.py,sha256=RJATAc1KQL1Cp4TUV2rKmvKYPrswJ9K2VemaYNkODlU,476
189
- ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_update_secret.py,sha256=pI0U12CcScsHYmr5TJC_ErtgyZdpwwFwkT4HP8gtdYI,2028
188
+ ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_store_type.py,sha256=QL8h8dUMpMgYhPtoByQG4MAYGumrTqKCnKSxSm_uv3c,602
189
+ ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_update_secret.py,sha256=l67PNkVLQapH4JcWvU-wVbIgLDW0fHD-gZgohXCbfBc,2257
190
190
  ark_sdk_python/models/services/dpa/secrets/db/secret_links/__init__.py,sha256=DtuPJbMMqSDIHzanJ9-LqnK2Yn2BYyHBAZkrFSzIYsA,220
191
191
  ark_sdk_python/models/services/dpa/secrets/db/secret_links/ark_dpa_db_pam_account_secret_link.py,sha256=ctGsvrfO-uEueGY4OuIobP_aVH03nKKhihhqcuKfsGU,293
192
- ark_sdk_python/models/services/dpa/secrets/db/secrets_data/__init__.py,sha256=QWivUjaJqCXTA8SMOYF8OD_q_keJ0majbZ-Q7T0lPew,597
192
+ ark_sdk_python/models/services/dpa/secrets/db/secrets_data/__init__.py,sha256=dN-qERq1RX6DL5PBqEMAoOuVf6sH25hWpfgC_bpvL-g,881
193
+ ark_sdk_python/models/services/dpa/secrets/db/secrets_data/ark_dpa_db_atlas_access_keys_secret_data.py,sha256=YBWb_o8HjyRHLe6Vv2KiL5wh4Zwp0JvnQhIkBG_-0pQ,643
193
194
  ark_sdk_python/models/services/dpa/secrets/db/secrets_data/ark_dpa_db_iam_user_secret_data.py,sha256=nupq0swDDcVEITsQJc4T_XrhlLWe6JGNJeEu43iOaxo,934
194
195
  ark_sdk_python/models/services/dpa/secrets/db/secrets_data/ark_dpa_db_user_password_secret_data.py,sha256=d-BYEzQsqd8XNi7GrkxYyZ2jNQJZVnhMKU7NLFoNBtw,650
195
196
  ark_sdk_python/models/services/dpa/sso/__init__.py,sha256=idXyQsCwN1tqNZDEbWBJTWF7SmmmScBtweVEqgOrVdU,1033
@@ -200,9 +201,9 @@ ark_sdk_python/models/services/dpa/sso/ark_dpa_sso_get_short_lived_password.py,s
200
201
  ark_sdk_python/models/services/dpa/sso/ark_dpa_sso_get_short_lived_rdp_file.py,sha256=nmWVpq5WfHUPDZmUTxgcN7QLiLqIC81fbeQI0fGT0-E,703
201
202
  ark_sdk_python/models/services/dpa/workspaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
202
203
  ark_sdk_python/models/services/dpa/workspaces/db/__init__.py,sha256=RSRVsg3N20ROmdulkqJAPlPeF8c2wNwwMUK77JacfgY,2440
203
- ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_add_database.py,sha256=ZSIwuqjk2flxcI2A-5M7-rLQZPQIHiHDzXdfORbC_kU,3442
204
+ ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_add_database.py,sha256=8V40a4ojTTwUxLByMhz99liF9vd1FjbgdVxaV_g_wMo,3567
204
205
  ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_auth_method.py,sha256=TAVTiMXqRJAOmyvYokL4NkrduwG4NszlBbkTMiFRNTg,2555
205
- ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_database.py,sha256=CyaByJPX4coSNvaOMbMg7ypsARzfFCo-JWD4SJCXZDI,3458
206
+ ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_database.py,sha256=NrGnklJpslKmFzs8pNkY00-_A9bu0OATUuAu2NvWV0U,3583
206
207
  ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_database_info.py,sha256=gF9A3y99d9d5kYV97fzBEF9Nqca2ypezxNy4-u9puHc,2070
207
208
  ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_databases_filter.py,sha256=MP72GdHU4UNl-Ix4VoAz6UdgAWvgYf2CMvKzJ_A2xYs,1353
208
209
  ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_databases_stats.py,sha256=SuWdUFmQQtgzp2GBtFPSmIqK19cB8QAO8HLAavY6WYE,1476
@@ -211,7 +212,7 @@ ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_get_database.py,sha2
211
212
  ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_platform_type_serializer.py,sha256=7Lzyqu89mzIVgakpzP3-kGvunAojoaEP8I7vzhc3Ryk,558
212
213
  ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_provider.py,sha256=JnsJvXO9p24BMKZld_tP2D5t9Uonu9jkYo6QN6UcvKY,4041
213
214
  ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_tag.py,sha256=qgpffuMUvC6qCZoT3Xo3-LLPbbBRwPPd4GpLYzM4OqY,490
214
- ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_update_database.py,sha256=3F4Bod-lxpgmbX-RG-LdP0hnDjT_hvH4HocFIiyBP0k,3773
215
+ ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_update_database.py,sha256=J6DoP3hTD7hmzcaPKW6IttJdIOu_D_0wh-c3mD_6ThA,3898
215
216
  ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_warning.py,sha256=bJ3-WkMTqNBIP92t8nA28oLUZkq70Lmit4gaoYSg8yg,153
216
217
  ark_sdk_python/models/services/identity/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
217
218
  ark_sdk_python/models/services/identity/directories/__init__.py,sha256=ZjQUgqJh3jZeT2_uTJAyWMFY7iLzAr0Kdsttgg1PqZU,848
@@ -285,16 +286,16 @@ ark_sdk_python/services/dpa/policies/vm/__init__.py,sha256=9nCR_0LNVcpVQJkyZpkhQ
285
286
  ark_sdk_python/services/dpa/policies/vm/ark_dpa_vm_policies_service.py,sha256=ba2m2s_UyFeg2mJf1Qh592j43bvM3EFWs4G1o2RVWh0,12681
286
287
  ark_sdk_python/services/dpa/secrets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
287
288
  ark_sdk_python/services/dpa/secrets/db/__init__.py,sha256=Dc0ZoMsNZzVN_nOqdxUg__X8tLoz4Znu4DzJriegDOM,139
288
- ark_sdk_python/services/dpa/secrets/db/ark_dpa_db_secrets_service.py,sha256=sxO4M_jS4x72Rx8alGGOOwIeifyLTs3us6Q98ch4ydE,17279
289
+ ark_sdk_python/services/dpa/secrets/db/ark_dpa_db_secrets_service.py,sha256=O9JPIo3h7CvZ4BlJlDa15ZwY0j6SuozLZVCZOKIoDIU,18537
289
290
  ark_sdk_python/services/dpa/sso/__init__.py,sha256=cHLin78PGJOQjhvESsycXZlcMvnMM00GGDHbeI8awww,120
290
291
  ark_sdk_python/services/dpa/sso/ark_dpa_sso_service.py,sha256=9kmW-fPZp4svOMsrPHiwV6JME_jNC8LLRsV2214e6Vc,16029
291
292
  ark_sdk_python/services/dpa/workspaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
292
293
  ark_sdk_python/services/dpa/workspaces/db/__init__.py,sha256=KsaQ50bkHsBx0QLUCr6qiQVb9CohGvSeL9Y4-DReWrc,148
293
- ark_sdk_python/services/dpa/workspaces/db/ark_dpa_db_workspace_service.py,sha256=72RAcS70C3LlWXETrgATeFT6c2FJGOYxGrUjd24jAsw,11728
294
+ ark_sdk_python/services/dpa/workspaces/db/ark_dpa_db_workspace_service.py,sha256=dyYZz1YtE3B9L-YnoEmR80TqpBFyfFpZWgCgCDhA5O0,12299
294
295
  ark_sdk_python/services/identity/__init__.py,sha256=k7e_E7UHgk89BRPKlTUVdx858c0dg--D8XFxiLabQOg,107
295
296
  ark_sdk_python/services/identity/ark_identity_api.py,sha256=1kRp7EUJ7MTXLnbWpSRH4BF9tOwWIpv7QLua8Yb3ClE,1758
296
297
  ark_sdk_python/services/identity/common/__init__.py,sha256=JdGK4IC8Ggn_2Iomk55k7yigKKn7gASNjmfHbNW3bVk,139
297
- ark_sdk_python/services/identity/common/ark_identity_base_service.py,sha256=PIEbPSWQm9Y6WP02coeVtBmrwihMeutQIaTcMftlB9w,1525
298
+ ark_sdk_python/services/identity/common/ark_identity_base_service.py,sha256=Umu5PVJeLs1592_iE9SDe6sHXe3IGC2nHX6V1yIDPWw,1802
298
299
  ark_sdk_python/services/identity/directories/__init__.py,sha256=eWpJ-UALipsUq0CK9jRc3owZvCdJ91-UqADZgHPftfs,165
299
300
  ark_sdk_python/services/identity/directories/ark_identity_directories_service.py,sha256=G3f9gspbMB_h4YxrX57YnoGl80FIJIA3Ml9s4UpDMGU,10540
300
301
  ark_sdk_python/services/identity/policies/__init__.py,sha256=aZ7Ublu_rdaWVFqZ7y4ab3A3XH08v3kM0gQYIJ1va-E,153
@@ -305,9 +306,9 @@ ark_sdk_python/services/identity/users/__init__.py,sha256=NcBHmvUNVESleiuGz2s65R
305
306
  ark_sdk_python/services/identity/users/ark_identity_users_service.py,sha256=GXh6lU_JjrnF6ORksttC_WTUdtrdHnglepFf7SpsLUc,12725
306
307
  ark_sdk_python/services/sm/__init__.py,sha256=jzKxEkZYOCW9y_byLfd_odae9m2sh1UfjaaKBVySWY0,95
307
308
  ark_sdk_python/services/sm/ark_sm_service.py,sha256=8OYHHrIKVDcpcSOomXQBRW2ReNDn7Bd1FY1N_rNsEKA,11400
308
- ark_sdk_python-1.1.2.dist-info/LICENSE.txt,sha256=tog-p2RGDyKF8f75MfD9FcNnzH4nXVVQpYMrKq8-CTI,11358
309
- ark_sdk_python-1.1.2.dist-info/METADATA,sha256=VBldpYtsbvjEz7s7vw0p8IXmTMyFpv_e_s0bgbTaAuI,18150
310
- ark_sdk_python-1.1.2.dist-info/NOTICES.md,sha256=5W8-D3unkf27Oz4j86dawLYLkg72KX_R-q4IrHJozbQ,95918
311
- ark_sdk_python-1.1.2.dist-info/WHEEL,sha256=M4g2KOPqPuBDzs4fXhen7cAP8dzQGHxeSKE5kd7ZmZE,108
312
- ark_sdk_python-1.1.2.dist-info/entry_points.txt,sha256=v5bcuRn8w42ZKQspfvX3AliKmLVO6f7Zb_bma77p3vQ,47
313
- ark_sdk_python-1.1.2.dist-info/RECORD,,
309
+ ark_sdk_python-1.1.3.dist-info/LICENSE.txt,sha256=tog-p2RGDyKF8f75MfD9FcNnzH4nXVVQpYMrKq8-CTI,11358
310
+ ark_sdk_python-1.1.3.dist-info/METADATA,sha256=iIXHXIGbyT54Y0vDUZlGOjQ3lhF7o6WeHlxAbGvf8U4,18150
311
+ ark_sdk_python-1.1.3.dist-info/NOTICES.md,sha256=5W8-D3unkf27Oz4j86dawLYLkg72KX_R-q4IrHJozbQ,95918
312
+ ark_sdk_python-1.1.3.dist-info/WHEEL,sha256=M4g2KOPqPuBDzs4fXhen7cAP8dzQGHxeSKE5kd7ZmZE,108
313
+ ark_sdk_python-1.1.3.dist-info/entry_points.txt,sha256=v5bcuRn8w42ZKQspfvX3AliKmLVO6f7Zb_bma77p3vQ,47
314
+ ark_sdk_python-1.1.3.dist-info/RECORD,,