ark-sdk-python 1.1.2__py3-none-any.whl → 1.2.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.
- ark_sdk_python/ark.py +1 -1
- ark_sdk_python/ark_api.py +36 -0
- ark_sdk_python/auth/identity/ark_identity.py +7 -2
- ark_sdk_python/common/env/__init__.py +2 -0
- ark_sdk_python/common/env/ark_env_mapping.py +9 -0
- ark_sdk_python/examples/list_pcloud_accounts.py +20 -0
- ark_sdk_python/models/actions/services/__init__.py +3 -0
- ark_sdk_python/models/actions/services/ark_pcloud_exec_action_consts.py +131 -0
- ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_add_secret.py +4 -0
- ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_secret_type.py +1 -0
- ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_store_type.py +2 -0
- ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_update_secret.py +4 -0
- ark_sdk_python/models/services/dpa/secrets/db/secrets_data/__init__.py +8 -2
- ark_sdk_python/models/services/dpa/secrets/db/secrets_data/ark_dpa_db_atlas_access_keys_secret_data.py +16 -0
- ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_add_database.py +1 -0
- ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_auth_method.py +1 -0
- ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_database.py +1 -0
- ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_update_database.py +1 -0
- ark_sdk_python/models/services/pcloud/__init__.py +0 -0
- ark_sdk_python/models/services/pcloud/accounts/__init__.py +53 -0
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_account.py +53 -0
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_account_credentials.py +11 -0
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_account_secret_version.py +12 -0
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_accounts_filter.py +15 -0
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_accounts_stats.py +11 -0
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_add_account.py +10 -0
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_change_account_credentials.py +7 -0
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_delete_account.py +7 -0
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_generate_account_credentials.py +7 -0
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_get_account.py +7 -0
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_get_account_credentials.py +16 -0
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_link_account.py +11 -0
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_list_account_secret_versions.py +8 -0
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_reconcile_account_credentials.py +7 -0
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_set_account_next_credentials.py +8 -0
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_unlink_account.py +8 -0
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_update_account.py +27 -0
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_update_account_credentials_in_vault.py +8 -0
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_verify_account_credentias.py +7 -0
- ark_sdk_python/models/services/pcloud/platforms/__init__.py +69 -0
- ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_activate_target_platform.py +7 -0
- ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_deactivate_target_platform.py +7 -0
- ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_delete_target_platform.py +7 -0
- ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_duplicate_target_platform.py +11 -0
- ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_duplicated_target_platform_info.py +12 -0
- ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_export_platform.py +8 -0
- ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_export_target_platform.py +8 -0
- ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_get_platform.py +7 -0
- ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_get_target_platform.py +7 -0
- ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_import_platform.py +7 -0
- ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_import_target_platform.py +7 -0
- ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_platform.py +66 -0
- ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_platforms_filter.py +12 -0
- ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_platforms_stats.py +11 -0
- ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_target_platform.py +76 -0
- ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_target_platforms_filter.py +18 -0
- ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_target_platforms_stats.py +11 -0
- ark_sdk_python/models/services/pcloud/safes/__init__.py +46 -0
- ark_sdk_python/models/services/pcloud/safes/ark_pcloud_add_safe.py +5 -0
- ark_sdk_python/models/services/pcloud/safes/ark_pcloud_add_safe_member.py +23 -0
- ark_sdk_python/models/services/pcloud/safes/ark_pcloud_delete_safe.py +7 -0
- ark_sdk_python/models/services/pcloud/safes/ark_pcloud_delete_safe_member.py +8 -0
- ark_sdk_python/models/services/pcloud/safes/ark_pcloud_get_safe.py +7 -0
- ark_sdk_python/models/services/pcloud/safes/ark_pcloud_get_safe_member.py +8 -0
- ark_sdk_python/models/services/pcloud/safes/ark_pcloud_get_safe_members_stats.py +7 -0
- ark_sdk_python/models/services/pcloud/safes/ark_pcloud_list_safe_members.py +7 -0
- ark_sdk_python/models/services/pcloud/safes/ark_pcloud_safe.py +30 -0
- ark_sdk_python/models/services/pcloud/safes/ark_pcloud_safe_member.py +65 -0
- ark_sdk_python/models/services/pcloud/safes/ark_pcloud_safe_members_filter.py +15 -0
- ark_sdk_python/models/services/pcloud/safes/ark_pcloud_safes_filters.py +12 -0
- ark_sdk_python/models/services/pcloud/safes/ark_pcloud_safes_members_stats.py +17 -0
- ark_sdk_python/models/services/pcloud/safes/ark_pcloud_safes_stats.py +11 -0
- ark_sdk_python/models/services/pcloud/safes/ark_pcloud_update_safe.py +7 -0
- ark_sdk_python/models/services/pcloud/safes/ark_pcloud_update_safe_member.py +18 -0
- ark_sdk_python/services/dpa/secrets/db/ark_dpa_db_secrets_service.py +58 -18
- ark_sdk_python/services/dpa/workspaces/db/ark_dpa_db_workspace_service.py +8 -2
- ark_sdk_python/services/identity/common/ark_identity_base_service.py +18 -13
- ark_sdk_python/services/pcloud/__init__.py +0 -0
- ark_sdk_python/services/pcloud/accounts/__init__.py +3 -0
- ark_sdk_python/services/pcloud/accounts/ark_pcloud_accounts_service.py +465 -0
- ark_sdk_python/services/pcloud/ark_pcloud_api.py +41 -0
- ark_sdk_python/services/pcloud/common/__init__.py +3 -0
- ark_sdk_python/services/pcloud/common/ark_pcloud_base_service.py +27 -0
- ark_sdk_python/services/pcloud/platforms/__init__.py +3 -0
- ark_sdk_python/services/pcloud/platforms/ark_pcloud_platforms_service.py +462 -0
- ark_sdk_python/services/pcloud/safes/__init__.py +3 -0
- ark_sdk_python/services/pcloud/safes/ark_pcloud_safes_service.py +523 -0
- {ark_sdk_python-1.1.2.dist-info → ark_sdk_python-1.2.0.dist-info}/METADATA +23 -1
- {ark_sdk_python-1.1.2.dist-info → ark_sdk_python-1.2.0.dist-info}/RECORD +93 -24
- {ark_sdk_python-1.1.2.dist-info → ark_sdk_python-1.2.0.dist-info}/LICENSE.txt +0 -0
- {ark_sdk_python-1.1.2.dist-info → ark_sdk_python-1.2.0.dist-info}/NOTICES.md +0 -0
- {ark_sdk_python-1.1.2.dist-info → ark_sdk_python-1.2.0.dist-info}/WHEEL +0 -0
- {ark_sdk_python-1.1.2.dist-info → ark_sdk_python-1.2.0.dist-info}/entry_points.txt +0 -0
ark_sdk_python/ark.py
CHANGED
ark_sdk_python/ark_api.py
CHANGED
|
@@ -235,3 +235,39 @@ class ArkAPI:
|
|
|
235
235
|
from ark_sdk_python.services.sm import ArkSMService
|
|
236
236
|
|
|
237
237
|
return cast(ArkSMService, self.service(ArkSMService))
|
|
238
|
+
|
|
239
|
+
@property
|
|
240
|
+
def pcloud_accounts(self) -> "ArkPCloudAccountsService":
|
|
241
|
+
"""
|
|
242
|
+
Returns the PCloud Accounts service if the appropriate authenticators were given
|
|
243
|
+
|
|
244
|
+
Returns:
|
|
245
|
+
ArkPCloudAccountsService: _description_
|
|
246
|
+
"""
|
|
247
|
+
from ark_sdk_python.services.pcloud.accounts import ArkPCloudAccountsService
|
|
248
|
+
|
|
249
|
+
return cast(ArkPCloudAccountsService, self.service(ArkPCloudAccountsService))
|
|
250
|
+
|
|
251
|
+
@property
|
|
252
|
+
def pcloud_safes(self) -> "ArkPCloudSafesService":
|
|
253
|
+
"""
|
|
254
|
+
Returns the PCloud Safes service if the appropriate authenticators were given
|
|
255
|
+
|
|
256
|
+
Returns:
|
|
257
|
+
ArkPCloudSafesService: _description_
|
|
258
|
+
"""
|
|
259
|
+
from ark_sdk_python.services.pcloud.safes import ArkPCloudSafesService
|
|
260
|
+
|
|
261
|
+
return cast(ArkPCloudSafesService, self.service(ArkPCloudSafesService))
|
|
262
|
+
|
|
263
|
+
@property
|
|
264
|
+
def pcloud_platforms(self) -> "ArkPCloudPlatformsService":
|
|
265
|
+
"""
|
|
266
|
+
Returns the PCloud Platforms service if the appropriate authenticators were given
|
|
267
|
+
|
|
268
|
+
Returns:
|
|
269
|
+
ArkPCloudPlatformsService: _description_
|
|
270
|
+
"""
|
|
271
|
+
from ark_sdk_python.services.pcloud.platforms import ArkPCloudPlatformsService
|
|
272
|
+
|
|
273
|
+
return cast(ArkPCloudPlatformsService, self.service(ArkPCloudPlatformsService))
|
|
@@ -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
|
-
|
|
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=
|
|
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
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import pprint
|
|
2
|
+
|
|
3
|
+
from ark_sdk_python.auth import ArkISPAuth
|
|
4
|
+
from ark_sdk_python.models.auth import ArkAuthMethod, ArkAuthProfile, ArkSecret, IdentityArkAuthMethodSettings
|
|
5
|
+
from ark_sdk_python.services.pcloud.accounts import ArkPCloudAccountsService
|
|
6
|
+
|
|
7
|
+
if __name__ == '__main__':
|
|
8
|
+
isp_auth = ArkISPAuth(cache_authentication=False)
|
|
9
|
+
isp_auth.authenticate(
|
|
10
|
+
auth_profile=ArkAuthProfile(
|
|
11
|
+
username='user@cyberark.cloud.12345',
|
|
12
|
+
auth_method=ArkAuthMethod.Identity,
|
|
13
|
+
auth_method_settings=IdentityArkAuthMethodSettings(),
|
|
14
|
+
),
|
|
15
|
+
secret=ArkSecret(secret="CoolPassword"),
|
|
16
|
+
)
|
|
17
|
+
accounts_service = ArkPCloudAccountsService(isp_auth=isp_auth)
|
|
18
|
+
for page in accounts_service.list_accounts():
|
|
19
|
+
for item in page:
|
|
20
|
+
pprint.pprint(item.dict())
|
|
@@ -2,17 +2,20 @@ from typing import Any, List
|
|
|
2
2
|
|
|
3
3
|
from ark_sdk_python.models.actions.services.ark_dpa_exec_action_consts import DPA_ACTIONS
|
|
4
4
|
from ark_sdk_python.models.actions.services.ark_identity_exec_action_consts import IDENTITY_ACTIONS
|
|
5
|
+
from ark_sdk_python.models.actions.services.ark_pcloud_exec_action_consts import PCLOUD_ACTIONS
|
|
5
6
|
from ark_sdk_python.models.actions.services.ark_sm_exec_action_consts import SM_ACTIONS
|
|
6
7
|
|
|
7
8
|
SUPPORTED_SERVICE_ACTIONS: List[Any] = [
|
|
8
9
|
IDENTITY_ACTIONS,
|
|
9
10
|
DPA_ACTIONS,
|
|
10
11
|
SM_ACTIONS,
|
|
12
|
+
PCLOUD_ACTIONS,
|
|
11
13
|
]
|
|
12
14
|
|
|
13
15
|
__all__ = [
|
|
14
16
|
'IDENTITY_ACTIONS',
|
|
15
17
|
'DPA_ACTIONS',
|
|
16
18
|
'SM_ACTIONS',
|
|
19
|
+
'PCLOUD_ACTIONS',
|
|
17
20
|
'SUPPORTED_SERVICE_ACTIONS',
|
|
18
21
|
]
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
from typing import Dict, Final, Optional, Type
|
|
2
|
+
|
|
3
|
+
from ark_sdk_python.models import ArkModel
|
|
4
|
+
from ark_sdk_python.models.actions.ark_service_action_definition import ArkServiceActionDefinition
|
|
5
|
+
from ark_sdk_python.models.services.pcloud.accounts import (
|
|
6
|
+
ArkPCloudAccountsFilter,
|
|
7
|
+
ArkPCloudAddAccount,
|
|
8
|
+
ArkPCloudChangeAccountCredentials,
|
|
9
|
+
ArkPCloudDeleteAccount,
|
|
10
|
+
ArkPCloudGenerateAccountCredentials,
|
|
11
|
+
ArkPCloudGetAccount,
|
|
12
|
+
ArkPCloudGetAccountCredentials,
|
|
13
|
+
ArkPCloudLinkAccount,
|
|
14
|
+
ArkPCloudListAccountSecretVersions,
|
|
15
|
+
ArkPCloudReconcileAccountCredentials,
|
|
16
|
+
ArkPCloudSetAccountNextCredentials,
|
|
17
|
+
ArkPCloudUnlinkAccount,
|
|
18
|
+
ArkPCloudUpdateAccount,
|
|
19
|
+
ArkPCloudUpdateAccountCredentialsInVault,
|
|
20
|
+
ArkPCloudVerifyAccountCredentials,
|
|
21
|
+
)
|
|
22
|
+
from ark_sdk_python.models.services.pcloud.platforms import (
|
|
23
|
+
ArkPCloudActivateTargetPlatform,
|
|
24
|
+
ArkPCloudDeactivateTargetPlatform,
|
|
25
|
+
ArkPCloudDeleteTargetPlatform,
|
|
26
|
+
ArkPCloudDuplicateTargetPlatform,
|
|
27
|
+
ArkPCloudExportPlatform,
|
|
28
|
+
ArkPCloudExportTargetPlatform,
|
|
29
|
+
ArkPCloudGetPlatform,
|
|
30
|
+
ArkPCloudGetTargetPlatform,
|
|
31
|
+
ArkPCloudImportPlatform,
|
|
32
|
+
ArkPCloudImportTargetPlatform,
|
|
33
|
+
ArkPCloudPlatformsFilter,
|
|
34
|
+
ArkPCloudTargetPlatformsFilter,
|
|
35
|
+
)
|
|
36
|
+
from ark_sdk_python.models.services.pcloud.safes import (
|
|
37
|
+
ArkPCloudAddSafe,
|
|
38
|
+
ArkPCloudAddSafeMember,
|
|
39
|
+
ArkPCloudDeleteSafe,
|
|
40
|
+
ArkPCloudDeleteSafeMember,
|
|
41
|
+
ArkPCloudGetSafe,
|
|
42
|
+
ArkPCloudGetSafeMember,
|
|
43
|
+
ArkPCloudGetSafeMembersStats,
|
|
44
|
+
ArkPCloudListSafeMembers,
|
|
45
|
+
ArkPCloudSafeMembersFilters,
|
|
46
|
+
ArkPCloudSafesFilters,
|
|
47
|
+
ArkPCloudUpdateSafe,
|
|
48
|
+
ArkPCloudUpdateSafeMember,
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
# PCloud Accounts Definitions
|
|
52
|
+
PCLOUD_ACCOUNTS_ACTION_TO_SCHEMA_MAP: Final[Dict[str, Optional[Type[ArkModel]]]] = {
|
|
53
|
+
'add-account': ArkPCloudAddAccount,
|
|
54
|
+
'update-account': ArkPCloudUpdateAccount,
|
|
55
|
+
'delete-account': ArkPCloudDeleteAccount,
|
|
56
|
+
'account': ArkPCloudGetAccount,
|
|
57
|
+
'account-credentials': ArkPCloudGetAccountCredentials,
|
|
58
|
+
'list-accounts': None,
|
|
59
|
+
'list-accounts-by': ArkPCloudAccountsFilter,
|
|
60
|
+
'list-account-secret-versions': ArkPCloudListAccountSecretVersions,
|
|
61
|
+
'generate-account-credentials': ArkPCloudGenerateAccountCredentials,
|
|
62
|
+
'verify-account-credentials': ArkPCloudVerifyAccountCredentials,
|
|
63
|
+
'change-account-credentials': ArkPCloudChangeAccountCredentials,
|
|
64
|
+
'set-account-next-credentials': ArkPCloudSetAccountNextCredentials,
|
|
65
|
+
'update-account-credentials-in-vault': ArkPCloudUpdateAccountCredentialsInVault,
|
|
66
|
+
'reconcile-account-credentials': ArkPCloudReconcileAccountCredentials,
|
|
67
|
+
'accounts-stats': None,
|
|
68
|
+
'link-account': ArkPCloudLinkAccount,
|
|
69
|
+
'unlink-account': ArkPCloudUnlinkAccount,
|
|
70
|
+
}
|
|
71
|
+
PCLOUD_ACCOUNTS_ACTION: Final[ArkServiceActionDefinition] = ArkServiceActionDefinition(
|
|
72
|
+
action_name='accounts',
|
|
73
|
+
schemas=PCLOUD_ACCOUNTS_ACTION_TO_SCHEMA_MAP,
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
# PCloud Safes Definitions
|
|
77
|
+
PCLOUD_SAFES_ACTION_TO_SCHEMA_MAP: Final[Dict[str, Optional[Type[ArkModel]]]] = {
|
|
78
|
+
'add-safe': ArkPCloudAddSafe,
|
|
79
|
+
'update-safe': ArkPCloudUpdateSafe,
|
|
80
|
+
'delete-safe': ArkPCloudDeleteSafe,
|
|
81
|
+
'safe': ArkPCloudGetSafe,
|
|
82
|
+
'list-safes': None,
|
|
83
|
+
'list-safes-by': ArkPCloudSafesFilters,
|
|
84
|
+
'safes-stats': None,
|
|
85
|
+
'add-safe-member': ArkPCloudAddSafeMember,
|
|
86
|
+
'update-safe-member': ArkPCloudUpdateSafeMember,
|
|
87
|
+
'delete-safe-member': ArkPCloudDeleteSafeMember,
|
|
88
|
+
'safe-member': ArkPCloudGetSafeMember,
|
|
89
|
+
'list-safe-members': ArkPCloudListSafeMembers,
|
|
90
|
+
'list-safe-members-by': ArkPCloudSafeMembersFilters,
|
|
91
|
+
'safe-members-stats': ArkPCloudGetSafeMembersStats,
|
|
92
|
+
'safes-members-stats': None,
|
|
93
|
+
}
|
|
94
|
+
PCLOUD_SAFES_ACTION: Final[ArkServiceActionDefinition] = ArkServiceActionDefinition(
|
|
95
|
+
action_name='safes',
|
|
96
|
+
schemas=PCLOUD_SAFES_ACTION_TO_SCHEMA_MAP,
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
# PCloud Platforms Definitions
|
|
100
|
+
PCLOUD_PLATFORMS_ACTION_TO_SCHEMA_MAP: Final[Dict[str, Optional[Type[ArkModel]]]] = {
|
|
101
|
+
'list-platforms': None,
|
|
102
|
+
'list-platforms-by': ArkPCloudPlatformsFilter,
|
|
103
|
+
'import-platform': ArkPCloudImportPlatform,
|
|
104
|
+
'import-target-platform': ArkPCloudImportTargetPlatform,
|
|
105
|
+
'export-platform': ArkPCloudExportPlatform,
|
|
106
|
+
'export-target-platform': ArkPCloudExportTargetPlatform,
|
|
107
|
+
'platform': ArkPCloudGetPlatform,
|
|
108
|
+
'platforms-stats': None,
|
|
109
|
+
'activate-target-platform': ArkPCloudActivateTargetPlatform,
|
|
110
|
+
'deactivate-target-platform': ArkPCloudDeactivateTargetPlatform,
|
|
111
|
+
'list-target-platforms': None,
|
|
112
|
+
'list-target-platforms-by': ArkPCloudTargetPlatformsFilter,
|
|
113
|
+
'target-platform': ArkPCloudGetTargetPlatform,
|
|
114
|
+
'delete-target-platform': ArkPCloudDeleteTargetPlatform,
|
|
115
|
+
'duplicate-target-platform': ArkPCloudDuplicateTargetPlatform,
|
|
116
|
+
'target-platforms-stats': None,
|
|
117
|
+
}
|
|
118
|
+
PCLOUD_PLATFORMS_ACTION: Final[ArkServiceActionDefinition] = ArkServiceActionDefinition(
|
|
119
|
+
action_name='platforms',
|
|
120
|
+
schemas=PCLOUD_PLATFORMS_ACTION_TO_SCHEMA_MAP,
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
# Service Actions Definition
|
|
124
|
+
PCLOUD_ACTIONS: Final[ArkServiceActionDefinition] = ArkServiceActionDefinition(
|
|
125
|
+
action_name='pcloud',
|
|
126
|
+
subactions=[
|
|
127
|
+
PCLOUD_ACCOUNTS_ACTION,
|
|
128
|
+
PCLOUD_PLATFORMS_ACTION,
|
|
129
|
+
PCLOUD_SAFES_ACTION,
|
|
130
|
+
],
|
|
131
|
+
)
|
|
@@ -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}
|
|
@@ -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[
|
|
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
|
)
|
|
@@ -13,6 +13,7 @@ class ArkDPADBAuthMethodType(str, Enum):
|
|
|
13
13
|
ADEphemeralUser = 'ad_ephemeral_user'
|
|
14
14
|
LocalEphemeralUser = 'local_ephemeral_user'
|
|
15
15
|
RDSIAMAuthentication = 'rds_iam_authentication'
|
|
16
|
+
AtlasEphemeralUser = 'atlas_ephemeral_user'
|
|
16
17
|
|
|
17
18
|
|
|
18
19
|
class ArkDPADBAuthMethod(ArkCamelizedModel):
|
|
@@ -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
|
)
|
|
File without changes
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
from ark_sdk_python.models.services.pcloud.accounts.ark_pcloud_account import (
|
|
2
|
+
ArkPCloudAccount,
|
|
3
|
+
ArkPCloudAccountRemoteMachinesAccess,
|
|
4
|
+
ArkPCloudAccountSecretManagement,
|
|
5
|
+
ArkPCloudAccountSecretType,
|
|
6
|
+
ArkPCloudBaseAccount,
|
|
7
|
+
)
|
|
8
|
+
from ark_sdk_python.models.services.pcloud.accounts.ark_pcloud_account_credentials import ArkPCloudAccountCredentials
|
|
9
|
+
from ark_sdk_python.models.services.pcloud.accounts.ark_pcloud_account_secret_version import ArkPCloudAccountSecretVersion
|
|
10
|
+
from ark_sdk_python.models.services.pcloud.accounts.ark_pcloud_accounts_filter import ArkPCloudAccountsFilter
|
|
11
|
+
from ark_sdk_python.models.services.pcloud.accounts.ark_pcloud_accounts_stats import ArkPCloudAccountsStats
|
|
12
|
+
from ark_sdk_python.models.services.pcloud.accounts.ark_pcloud_add_account import ArkPCloudAddAccount
|
|
13
|
+
from ark_sdk_python.models.services.pcloud.accounts.ark_pcloud_change_account_credentials import ArkPCloudChangeAccountCredentials
|
|
14
|
+
from ark_sdk_python.models.services.pcloud.accounts.ark_pcloud_delete_account import ArkPCloudDeleteAccount
|
|
15
|
+
from ark_sdk_python.models.services.pcloud.accounts.ark_pcloud_generate_account_credentials import ArkPCloudGenerateAccountCredentials
|
|
16
|
+
from ark_sdk_python.models.services.pcloud.accounts.ark_pcloud_get_account import ArkPCloudGetAccount
|
|
17
|
+
from ark_sdk_python.models.services.pcloud.accounts.ark_pcloud_get_account_credentials import ArkPCloudGetAccountCredentials
|
|
18
|
+
from ark_sdk_python.models.services.pcloud.accounts.ark_pcloud_link_account import ArkPCloudLinkAccount
|
|
19
|
+
from ark_sdk_python.models.services.pcloud.accounts.ark_pcloud_list_account_secret_versions import ArkPCloudListAccountSecretVersions
|
|
20
|
+
from ark_sdk_python.models.services.pcloud.accounts.ark_pcloud_reconcile_account_credentials import ArkPCloudReconcileAccountCredentials
|
|
21
|
+
from ark_sdk_python.models.services.pcloud.accounts.ark_pcloud_set_account_next_credentials import ArkPCloudSetAccountNextCredentials
|
|
22
|
+
from ark_sdk_python.models.services.pcloud.accounts.ark_pcloud_unlink_account import ArkPCloudUnlinkAccount
|
|
23
|
+
from ark_sdk_python.models.services.pcloud.accounts.ark_pcloud_update_account import ArkPCloudUpdateAccount
|
|
24
|
+
from ark_sdk_python.models.services.pcloud.accounts.ark_pcloud_update_account_credentials_in_vault import (
|
|
25
|
+
ArkPCloudUpdateAccountCredentialsInVault,
|
|
26
|
+
)
|
|
27
|
+
from ark_sdk_python.models.services.pcloud.accounts.ark_pcloud_verify_account_credentias import ArkPCloudVerifyAccountCredentials
|
|
28
|
+
|
|
29
|
+
__all__ = [
|
|
30
|
+
'ArkPCloudBaseAccount',
|
|
31
|
+
'ArkPCloudAccount',
|
|
32
|
+
'ArkPCloudAccountRemoteMachinesAccess',
|
|
33
|
+
'ArkPCloudAccountSecretManagement',
|
|
34
|
+
'ArkPCloudAccountSecretType',
|
|
35
|
+
'ArkPCloudAccountsFilter',
|
|
36
|
+
'ArkPCloudAccountsStats',
|
|
37
|
+
'ArkPCloudAddAccount',
|
|
38
|
+
'ArkPCloudDeleteAccount',
|
|
39
|
+
'ArkPCloudGetAccount',
|
|
40
|
+
'ArkPCloudUpdateAccount',
|
|
41
|
+
'ArkPCloudAccountSecretVersion',
|
|
42
|
+
'ArkPCloudListAccountSecretVersions',
|
|
43
|
+
'ArkPCloudAccountCredentials',
|
|
44
|
+
'ArkPCloudGenerateAccountCredentials',
|
|
45
|
+
'ArkPCloudVerifyAccountCredentials',
|
|
46
|
+
'ArkPCloudChangeAccountCredentials',
|
|
47
|
+
'ArkPCloudSetAccountNextCredentials',
|
|
48
|
+
'ArkPCloudUpdateAccountCredentialsInVault',
|
|
49
|
+
'ArkPCloudReconcileAccountCredentials',
|
|
50
|
+
'ArkPCloudGetAccountCredentials',
|
|
51
|
+
'ArkPCloudLinkAccount',
|
|
52
|
+
'ArkPCloudUnlinkAccount',
|
|
53
|
+
]
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
from typing import Any, Dict, List, Optional, Union
|
|
3
|
+
|
|
4
|
+
from pydantic import Field, validator
|
|
5
|
+
|
|
6
|
+
from ark_sdk_python.models import ArkCamelizedModel
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ArkPCloudAccountSecretType(str, Enum):
|
|
10
|
+
Password = "password"
|
|
11
|
+
Key = "key"
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class ArkPCloudAccountSecretManagement(ArkCamelizedModel):
|
|
15
|
+
automatic_management_enabled: Optional[bool] = Field(description='Whether automatic management of the account is enabled or not')
|
|
16
|
+
manual_management_reason: Optional[str] = Field(description='The reason for disabling automatic management')
|
|
17
|
+
last_modified_time: Optional[int] = Field(description='Last time the management properties were modified')
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class ArkPCloudAccountRemoteMachinesAccess(ArkCamelizedModel):
|
|
21
|
+
remote_machines: Optional[Union[List[str], str]] = Field(description='Remote machines the access of this account is allowed')
|
|
22
|
+
access_restricted_to_remote_machines: Optional[bool] = Field(
|
|
23
|
+
description='Whether the access is only restricted to those remote machines'
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
# pylint: disable=no-self-use,no-self-argument
|
|
27
|
+
@validator('remote_machines')
|
|
28
|
+
def _validate_remote_machines(remote_machines):
|
|
29
|
+
# backward compatibility for when remote_machines was a comma separated string
|
|
30
|
+
if isinstance(remote_machines, str):
|
|
31
|
+
return remote_machines.split(',')
|
|
32
|
+
return remote_machines
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class ArkPCloudBaseAccount(ArkCamelizedModel):
|
|
36
|
+
name: str = Field(description='Name of the account')
|
|
37
|
+
safe_name: str = Field(description='Safe name to store the account in')
|
|
38
|
+
platform_id: Optional[str] = Field(description='Platform id to relate the account to')
|
|
39
|
+
user_name: Optional[str] = Field(description='Username of the account')
|
|
40
|
+
address: Optional[str] = Field(description='Address of the account')
|
|
41
|
+
secret_type: Optional[ArkPCloudAccountSecretType] = Field(description='Type of the secret of the account')
|
|
42
|
+
platform_account_properties: Optional[Dict[str, Any]] = Field(
|
|
43
|
+
description='Different properties related to the platform the account is related to'
|
|
44
|
+
)
|
|
45
|
+
secret_management: Optional[ArkPCloudAccountSecretManagement] = Field(description='Secret mgmt related properties')
|
|
46
|
+
remote_machines_access: Optional[ArkPCloudAccountRemoteMachinesAccess] = Field(description='Remote machines access related properties')
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
class ArkPCloudAccount(ArkPCloudBaseAccount):
|
|
50
|
+
id: str = Field(description='ID of the account')
|
|
51
|
+
status: Optional[str] = Field(description='Status of the account')
|
|
52
|
+
created_time: Optional[int] = Field(description='Creation time of the account')
|
|
53
|
+
category_modification_time: Optional[int] = Field(description='Category modification time of the account')
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from pydantic import Field, SecretStr
|
|
2
|
+
|
|
3
|
+
from ark_sdk_python.models import ArkModel
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class ArkPCloudAccountCredentials(ArkModel):
|
|
7
|
+
account_id: str = Field(description='The id of the account')
|
|
8
|
+
password: SecretStr = Field(description='The credentials')
|
|
9
|
+
|
|
10
|
+
class Config:
|
|
11
|
+
json_encoders = {SecretStr: lambda v: v.get_secret_value()}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from datetime import datetime
|
|
2
|
+
|
|
3
|
+
from pydantic import Field
|
|
4
|
+
|
|
5
|
+
from ark_sdk_python.models import ArkCamelizedModel
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class ArkPCloudAccountSecretVersion(ArkCamelizedModel):
|
|
9
|
+
is_temporary: bool = Field(description='Whether the secret is permenant or temporary')
|
|
10
|
+
modification_date: datetime = Field(description='Modification time of the secret')
|
|
11
|
+
modified_by: str = Field(description='Username who modified the secret')
|
|
12
|
+
version_id: int = Field(description='Version id of the secret')
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
from pydantic import Field
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
from ark_sdk_python.models import ArkModel
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ArkPCloudAccountsFilter(ArkModel):
|
|
10
|
+
search: Optional[str] = Field(description='Search by string')
|
|
11
|
+
search_type: Optional[Literal['contains', 'startswith']] = Field(description='Search type to filter with')
|
|
12
|
+
sort: Optional[str] = Field(description='Sort results by given key')
|
|
13
|
+
safe_name: Optional[str] = Field(description='Safe name to filter by')
|
|
14
|
+
offset: Optional[int] = Field(description='Offset to the accounts list')
|
|
15
|
+
limit: Optional[int] = Field(description='Limit of results')
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from typing import Dict
|
|
2
|
+
|
|
3
|
+
from pydantic import Field
|
|
4
|
+
|
|
5
|
+
from ark_sdk_python.models import ArkModel
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class ArkPCloudAccountsStats(ArkModel):
|
|
9
|
+
accounts_count: int = Field(description='Overall accounts count')
|
|
10
|
+
accounts_count_by_platform_id: Dict[str, int] = Field(description='Accounts count by platform id')
|
|
11
|
+
accounts_count_by_safe_name: Dict[str, int] = Field(description='Accounts count by safe name')
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
from pydantic import Field, SecretStr
|
|
2
|
+
|
|
3
|
+
from ark_sdk_python.models.services.pcloud.accounts.ark_pcloud_account import ArkPCloudBaseAccount
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class ArkPCloudAddAccount(ArkPCloudBaseAccount):
|
|
7
|
+
secret: SecretStr = Field(description='The secret of the account')
|
|
8
|
+
|
|
9
|
+
class Config:
|
|
10
|
+
json_encoders = {SecretStr: lambda v: v.get_secret_value()}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
from pydantic import Field
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
from ark_sdk_python.models import ArkModel
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ArkPCloudGetAccountCredentials(ArkModel):
|
|
10
|
+
account_id: str = Field(description='The id of the account to retrieve the credentials for')
|
|
11
|
+
reason: Optional[str] = Field(description='Reason for retrieving the credentials')
|
|
12
|
+
ticketing_system_name: Optional[str] = Field(description='Ticketing system name to use for retrieval of the credentials')
|
|
13
|
+
ticket_id: Optional[str] = Field(description='Ticket id allowing retrieval of the credentials')
|
|
14
|
+
version: Optional[str] = Field(description='Version of the credentials to retrieve')
|
|
15
|
+
action_type: Optional[Literal['show', 'copy', 'connect']] = Field(description='Action type of the retrieval', default='show')
|
|
16
|
+
machine: Optional[str] = Field(description='The address of the remote machine to connect to with the credentials')
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from pydantic import Field
|
|
2
|
+
|
|
3
|
+
from ark_sdk_python.models import ArkCamelizedModel
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class ArkPCloudLinkAccount(ArkCamelizedModel):
|
|
7
|
+
account_id: str = Field(description='The id of the account to link')
|
|
8
|
+
safe: str = Field(description='The safe in which the linked account is stored')
|
|
9
|
+
extra_password_index: int = Field(description='The linked account extra password index')
|
|
10
|
+
folder: str = Field(description='Folder of the linked account')
|
|
11
|
+
name: str = Field(description='The linked account name')
|