strongdm 8.1.0__zip → 8.4.0__zip

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 (127) hide show
  1. {strongdm-8.1.0 → strongdm-8.4.0}/PKG-INFO +2 -2
  2. {strongdm-8.1.0 → strongdm-8.4.0}/setup.py +2 -2
  3. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/client.py +1 -1
  4. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/constants.py +1 -0
  5. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/models.py +283 -8
  6. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/plumbing.py +151 -2
  7. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/secret_store_types_pb2.py +128 -44
  8. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/svc.py +3 -0
  9. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm.egg-info/PKG-INFO +2 -2
  10. {strongdm-8.1.0 → strongdm-8.4.0}/LICENSE +0 -0
  11. {strongdm-8.1.0 → strongdm-8.4.0}/README.md +0 -0
  12. {strongdm-8.1.0 → strongdm-8.4.0}/setup.cfg +0 -0
  13. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/__init__.py +0 -0
  14. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/access_request_events_history_pb2.py +0 -0
  15. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/access_request_events_history_pb2_grpc.py +0 -0
  16. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/access_requests_history_pb2.py +0 -0
  17. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/access_requests_history_pb2_grpc.py +0 -0
  18. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/access_requests_pb2.py +0 -0
  19. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/access_requests_pb2_grpc.py +0 -0
  20. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/account_attachments_history_pb2.py +0 -0
  21. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/account_attachments_history_pb2_grpc.py +0 -0
  22. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/account_attachments_pb2.py +0 -0
  23. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/account_attachments_pb2_grpc.py +0 -0
  24. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/account_grants_history_pb2.py +0 -0
  25. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/account_grants_history_pb2_grpc.py +0 -0
  26. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/account_grants_pb2.py +0 -0
  27. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/account_grants_pb2_grpc.py +0 -0
  28. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/account_permissions_pb2.py +0 -0
  29. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/account_permissions_pb2_grpc.py +0 -0
  30. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/account_resources_history_pb2.py +0 -0
  31. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/account_resources_history_pb2_grpc.py +0 -0
  32. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/account_resources_pb2.py +0 -0
  33. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/account_resources_pb2_grpc.py +0 -0
  34. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/accounts_history_pb2.py +0 -0
  35. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/accounts_history_pb2_grpc.py +0 -0
  36. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/accounts_pb2.py +0 -0
  37. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/accounts_pb2_grpc.py +0 -0
  38. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/activities_pb2.py +0 -0
  39. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/activities_pb2_grpc.py +0 -0
  40. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/approval_workflow_approvers_history_pb2.py +0 -0
  41. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/approval_workflow_approvers_history_pb2_grpc.py +0 -0
  42. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/approval_workflow_approvers_pb2.py +0 -0
  43. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/approval_workflow_approvers_pb2_grpc.py +0 -0
  44. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/approval_workflow_steps_history_pb2.py +0 -0
  45. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/approval_workflow_steps_history_pb2_grpc.py +0 -0
  46. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/approval_workflow_steps_pb2.py +0 -0
  47. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/approval_workflow_steps_pb2_grpc.py +0 -0
  48. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/approval_workflows_history_pb2.py +0 -0
  49. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/approval_workflows_history_pb2_grpc.py +0 -0
  50. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/approval_workflows_pb2.py +0 -0
  51. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/approval_workflows_pb2_grpc.py +0 -0
  52. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/control_panel_pb2.py +0 -0
  53. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/control_panel_pb2_grpc.py +0 -0
  54. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/drivers_pb2.py +0 -0
  55. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/drivers_pb2_grpc.py +0 -0
  56. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/errors.py +0 -0
  57. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/nodes_history_pb2.py +0 -0
  58. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/nodes_history_pb2_grpc.py +0 -0
  59. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/nodes_pb2.py +0 -0
  60. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/nodes_pb2_grpc.py +0 -0
  61. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/options_pb2.py +0 -0
  62. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/options_pb2_grpc.py +0 -0
  63. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/organization_history_pb2.py +0 -0
  64. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/organization_history_pb2_grpc.py +0 -0
  65. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/peering_group_nodes_pb2.py +0 -0
  66. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/peering_group_nodes_pb2_grpc.py +0 -0
  67. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/peering_group_peers_pb2.py +0 -0
  68. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/peering_group_peers_pb2_grpc.py +0 -0
  69. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/peering_group_resources_pb2.py +0 -0
  70. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/peering_group_resources_pb2_grpc.py +0 -0
  71. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/peering_groups_pb2.py +0 -0
  72. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/peering_groups_pb2_grpc.py +0 -0
  73. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/queries_pb2.py +0 -0
  74. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/queries_pb2_grpc.py +0 -0
  75. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/remote_identities_history_pb2.py +0 -0
  76. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/remote_identities_history_pb2_grpc.py +0 -0
  77. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/remote_identities_pb2.py +0 -0
  78. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/remote_identities_pb2_grpc.py +0 -0
  79. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/remote_identity_groups_history_pb2.py +0 -0
  80. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/remote_identity_groups_history_pb2_grpc.py +0 -0
  81. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/remote_identity_groups_pb2.py +0 -0
  82. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/remote_identity_groups_pb2_grpc.py +0 -0
  83. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/replays_pb2.py +0 -0
  84. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/replays_pb2_grpc.py +0 -0
  85. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/resources_history_pb2.py +0 -0
  86. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/resources_history_pb2_grpc.py +0 -0
  87. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/resources_pb2.py +0 -0
  88. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/resources_pb2_grpc.py +0 -0
  89. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/role_resources_history_pb2.py +0 -0
  90. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/role_resources_history_pb2_grpc.py +0 -0
  91. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/role_resources_pb2.py +0 -0
  92. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/role_resources_pb2_grpc.py +0 -0
  93. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/roles_history_pb2.py +0 -0
  94. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/roles_history_pb2_grpc.py +0 -0
  95. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/roles_pb2.py +0 -0
  96. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/roles_pb2_grpc.py +0 -0
  97. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/secret_store_healths_pb2.py +0 -0
  98. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/secret_store_healths_pb2_grpc.py +0 -0
  99. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/secret_store_types_pb2_grpc.py +0 -0
  100. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/secret_stores_history_pb2.py +0 -0
  101. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/secret_stores_history_pb2_grpc.py +0 -0
  102. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/secret_stores_pb2.py +0 -0
  103. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/secret_stores_pb2_grpc.py +0 -0
  104. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/spec_pb2.py +0 -0
  105. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/spec_pb2_grpc.py +0 -0
  106. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/tags_pb2.py +0 -0
  107. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/tags_pb2_grpc.py +0 -0
  108. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/workflow_approvers_history_pb2.py +0 -0
  109. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/workflow_approvers_history_pb2_grpc.py +0 -0
  110. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/workflow_approvers_pb2.py +0 -0
  111. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/workflow_approvers_pb2_grpc.py +0 -0
  112. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/workflow_assignments_history_pb2.py +0 -0
  113. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/workflow_assignments_history_pb2_grpc.py +0 -0
  114. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/workflow_assignments_pb2.py +0 -0
  115. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/workflow_assignments_pb2_grpc.py +0 -0
  116. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/workflow_roles_history_pb2.py +0 -0
  117. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/workflow_roles_history_pb2_grpc.py +0 -0
  118. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/workflow_roles_pb2.py +0 -0
  119. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/workflow_roles_pb2_grpc.py +0 -0
  120. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/workflows_history_pb2.py +0 -0
  121. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/workflows_history_pb2_grpc.py +0 -0
  122. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/workflows_pb2.py +0 -0
  123. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm/workflows_pb2_grpc.py +0 -0
  124. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm.egg-info/SOURCES.txt +0 -0
  125. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm.egg-info/dependency_links.txt +0 -0
  126. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm.egg-info/requires.txt +0 -0
  127. {strongdm-8.1.0 → strongdm-8.4.0}/strongdm.egg-info/top_level.txt +0 -0
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: strongdm
3
- Version: 8.1.0
3
+ Version: 8.4.0
4
4
  Summary: strongDM SDK for the Python programming language.
5
5
  Home-page: https://github.com/strongdm/strongdm-sdk-python
6
6
  Author: strongDM Team
7
7
  Author-email: sdk-feedback@strongdm.com
8
8
  License: apache-2.0
9
- Download-URL: https://github.com/strongdm/strongdm-sdk-python/archive/v8.1.0.tar.gz
9
+ Download-URL: https://github.com/strongdm/strongdm-sdk-python/archive/v8.4.0.tar.gz
10
10
  Keywords: strongDM,sdm,api,automation,security,audit,database,server,ssh,rdp
11
11
  Platform: UNKNOWN
12
12
  Classifier: Development Status :: 4 - Beta
@@ -23,7 +23,7 @@ from setuptools import setup
23
23
  setup(
24
24
  name='strongdm',
25
25
  packages=['strongdm'],
26
- version='8.1.0',
26
+ version='8.4.0',
27
27
  license='apache-2.0',
28
28
  description='strongDM SDK for the Python programming language.',
29
29
  long_description=long_description,
@@ -32,7 +32,7 @@ setup(
32
32
  author_email='sdk-feedback@strongdm.com',
33
33
  url='https://github.com/strongdm/strongdm-sdk-python',
34
34
  download_url=
35
- 'https://github.com/strongdm/strongdm-sdk-python/archive/v8.1.0.tar.gz',
35
+ 'https://github.com/strongdm/strongdm-sdk-python/archive/v8.4.0.tar.gz',
36
36
  keywords=[
37
37
  'strongDM', 'sdm', 'api', 'automation', 'security', 'audit',
38
38
  'database', 'server', 'ssh', 'rdp'
@@ -33,7 +33,7 @@ DEFAULT_MAX_RETRIES = 3
33
33
  DEFAULT_BASE_RETRY_DELAY = 0.0030 # 30 ms
34
34
  DEFAULT_MAX_RETRY_DELAY = 300 # 300 seconds
35
35
  API_VERSION = '2024-03-28'
36
- USER_AGENT = 'strongdm-sdk-python/8.1.0'
36
+ USER_AGENT = 'strongdm-sdk-python/8.4.0'
37
37
 
38
38
 
39
39
  class Client:
@@ -92,6 +92,7 @@ class MFAProvider:
92
92
  NONE = ""
93
93
  DUO = "duo"
94
94
  TOTP = "totp"
95
+ OKTA = "okta"
95
96
 
96
97
 
97
98
  # Activity Entities, all entity types that can be part of an activity.
@@ -10493,7 +10493,7 @@ class HTTPNoAuth:
10493
10493
  )
10494
10494
 
10495
10495
 
10496
- class KeyfactorX509Store:
10496
+ class KeyfactorSSHStore:
10497
10497
  __slots__ = [
10498
10498
  'ca_file_path',
10499
10499
  'certificate_file_path',
@@ -10504,7 +10504,6 @@ class KeyfactorX509Store:
10504
10504
  'enrollment_username_env_var',
10505
10505
  'id',
10506
10506
  'key_file_path',
10507
- 'key_password_env_var',
10508
10507
  'name',
10509
10508
  'server_address',
10510
10509
  'tags',
@@ -10521,7 +10520,6 @@ class KeyfactorX509Store:
10521
10520
  enrollment_username_env_var=None,
10522
10521
  id=None,
10523
10522
  key_file_path=None,
10524
- key_password_env_var=None,
10525
10523
  name=None,
10526
10524
  server_address=None,
10527
10525
  tags=None,
@@ -10568,9 +10566,147 @@ class KeyfactorX509Store:
10568
10566
  Path to private key in PEM format. This file should contain the private key associated with the
10569
10567
  client certificate configured in CertificateFile.
10570
10568
  '''
10571
- self.key_password_env_var = key_password_env_var if key_password_env_var is not None else ''
10569
+ self.name = name if name is not None else ''
10570
+ '''
10571
+ Unique human-readable name of the SecretStore.
10572
+ '''
10573
+ self.server_address = server_address if server_address is not None else ''
10574
+ '''
10575
+ the host of the Key Factor CA
10576
+ '''
10577
+ self.tags = tags if tags is not None else _porcelain_zero_value_tags()
10578
+ '''
10579
+ Tags is a map of key, value pairs.
10580
+ '''
10581
+
10582
+ def __repr__(self):
10583
+ return '<sdm.KeyfactorSSHStore ' + \
10584
+ 'ca_file_path: ' + repr(self.ca_file_path) + ' ' +\
10585
+ 'certificate_file_path: ' + repr(self.certificate_file_path) + ' ' +\
10586
+ 'default_certificate_authority_name: ' + repr(self.default_certificate_authority_name) + ' ' +\
10587
+ 'default_certificate_profile_name: ' + repr(self.default_certificate_profile_name) + ' ' +\
10588
+ 'default_end_entity_profile_name: ' + repr(self.default_end_entity_profile_name) + ' ' +\
10589
+ 'enrollment_code_env_var: ' + repr(self.enrollment_code_env_var) + ' ' +\
10590
+ 'enrollment_username_env_var: ' + repr(self.enrollment_username_env_var) + ' ' +\
10591
+ 'id: ' + repr(self.id) + ' ' +\
10592
+ 'key_file_path: ' + repr(self.key_file_path) + ' ' +\
10593
+ 'name: ' + repr(self.name) + ' ' +\
10594
+ 'server_address: ' + repr(self.server_address) + ' ' +\
10595
+ 'tags: ' + repr(self.tags) + ' ' +\
10596
+ '>'
10597
+
10598
+ def to_dict(self):
10599
+ return {
10600
+ 'ca_file_path': self.ca_file_path,
10601
+ 'certificate_file_path': self.certificate_file_path,
10602
+ 'default_certificate_authority_name':
10603
+ self.default_certificate_authority_name,
10604
+ 'default_certificate_profile_name':
10605
+ self.default_certificate_profile_name,
10606
+ 'default_end_entity_profile_name':
10607
+ self.default_end_entity_profile_name,
10608
+ 'enrollment_code_env_var': self.enrollment_code_env_var,
10609
+ 'enrollment_username_env_var': self.enrollment_username_env_var,
10610
+ 'id': self.id,
10611
+ 'key_file_path': self.key_file_path,
10612
+ 'name': self.name,
10613
+ 'server_address': self.server_address,
10614
+ 'tags': self.tags,
10615
+ }
10616
+
10617
+ @classmethod
10618
+ def from_dict(cls, d):
10619
+ return cls(
10620
+ ca_file_path=d.get('ca_file_path'),
10621
+ certificate_file_path=d.get('certificate_file_path'),
10622
+ default_certificate_authority_name=d.get(
10623
+ 'default_certificate_authority_name'),
10624
+ default_certificate_profile_name=d.get(
10625
+ 'default_certificate_profile_name'),
10626
+ default_end_entity_profile_name=d.get(
10627
+ 'default_end_entity_profile_name'),
10628
+ enrollment_code_env_var=d.get('enrollment_code_env_var'),
10629
+ enrollment_username_env_var=d.get('enrollment_username_env_var'),
10630
+ id=d.get('id'),
10631
+ key_file_path=d.get('key_file_path'),
10632
+ name=d.get('name'),
10633
+ server_address=d.get('server_address'),
10634
+ tags=d.get('tags'),
10635
+ )
10636
+
10637
+
10638
+ class KeyfactorX509Store:
10639
+ __slots__ = [
10640
+ 'ca_file_path',
10641
+ 'certificate_file_path',
10642
+ 'default_certificate_authority_name',
10643
+ 'default_certificate_profile_name',
10644
+ 'default_end_entity_profile_name',
10645
+ 'enrollment_code_env_var',
10646
+ 'enrollment_username_env_var',
10647
+ 'id',
10648
+ 'key_file_path',
10649
+ 'name',
10650
+ 'server_address',
10651
+ 'tags',
10652
+ ]
10653
+
10654
+ def __init__(
10655
+ self,
10656
+ ca_file_path=None,
10657
+ certificate_file_path=None,
10658
+ default_certificate_authority_name=None,
10659
+ default_certificate_profile_name=None,
10660
+ default_end_entity_profile_name=None,
10661
+ enrollment_code_env_var=None,
10662
+ enrollment_username_env_var=None,
10663
+ id=None,
10664
+ key_file_path=None,
10665
+ name=None,
10666
+ server_address=None,
10667
+ tags=None,
10668
+ ):
10669
+ self.ca_file_path = ca_file_path if ca_file_path is not None else ''
10670
+ '''
10671
+ Path to the root CA that signed the certificate passed to the client for HTTPS connection.
10672
+ This is not required if the CA is trusted by the host operating system. This should be a PEM
10673
+ formatted certificate, and doesn't necessarily have to be the CA that signed CertificateFile.
10674
+ '''
10675
+ self.certificate_file_path = certificate_file_path if certificate_file_path is not None else ''
10676
+ '''
10677
+ Path to client certificate in PEM format. This certificate must contain a client certificate that
10678
+ is recognized by the EJBCA instance represented by Hostname. This PEM file may also contain the private
10679
+ key associated with the certificate, but KeyFile can also be set to configure the private key.
10680
+ '''
10681
+ self.default_certificate_authority_name = default_certificate_authority_name if default_certificate_authority_name is not None else ''
10682
+ '''
10683
+ Name of EJBCA certificate authority that will enroll CSR.
10684
+ '''
10685
+ self.default_certificate_profile_name = default_certificate_profile_name if default_certificate_profile_name is not None else ''
10686
+ '''
10687
+ Certificate profile name that EJBCA will enroll the CSR with.
10688
+ '''
10689
+ self.default_end_entity_profile_name = default_end_entity_profile_name if default_end_entity_profile_name is not None else ''
10690
+ '''
10691
+ End entity profile that EJBCA will enroll the CSR with.
10692
+ '''
10693
+ self.enrollment_code_env_var = enrollment_code_env_var if enrollment_code_env_var is not None else ''
10694
+ '''
10695
+ code used by EJBCA during enrollment. May be left blank if no code is required.
10696
+ '''
10697
+ self.enrollment_username_env_var = enrollment_username_env_var if enrollment_username_env_var is not None else ''
10698
+ '''
10699
+ username that used by the EJBCA during enrollment. This can be left out.
10700
+ If so, the username must be auto-generated on the Keyfactor side.
10701
+ '''
10702
+ self.id = id if id is not None else ''
10703
+ '''
10704
+ Unique identifier of the SecretStore.
10705
+ '''
10706
+ self.key_file_path = key_file_path if key_file_path is not None else ''
10572
10707
  '''
10573
- optional environment variable housing the password that is used to decrypt the key file.
10708
+ Path to private key in PEM format. This file should contain the private key associated with the
10709
+ client certificate configured in CertificateFile.
10574
10710
  '''
10575
10711
  self.name = name if name is not None else ''
10576
10712
  '''
@@ -10596,7 +10732,6 @@ class KeyfactorX509Store:
10596
10732
  'enrollment_username_env_var: ' + repr(self.enrollment_username_env_var) + ' ' +\
10597
10733
  'id: ' + repr(self.id) + ' ' +\
10598
10734
  'key_file_path: ' + repr(self.key_file_path) + ' ' +\
10599
- 'key_password_env_var: ' + repr(self.key_password_env_var) + ' ' +\
10600
10735
  'name: ' + repr(self.name) + ' ' +\
10601
10736
  'server_address: ' + repr(self.server_address) + ' ' +\
10602
10737
  'tags: ' + repr(self.tags) + ' ' +\
@@ -10616,7 +10751,6 @@ class KeyfactorX509Store:
10616
10751
  'enrollment_username_env_var': self.enrollment_username_env_var,
10617
10752
  'id': self.id,
10618
10753
  'key_file_path': self.key_file_path,
10619
- 'key_password_env_var': self.key_password_env_var,
10620
10754
  'name': self.name,
10621
10755
  'server_address': self.server_address,
10622
10756
  'tags': self.tags,
@@ -10637,7 +10771,6 @@ class KeyfactorX509Store:
10637
10771
  enrollment_username_env_var=d.get('enrollment_username_env_var'),
10638
10772
  id=d.get('id'),
10639
10773
  key_file_path=d.get('key_file_path'),
10640
- key_password_env_var=d.get('key_password_env_var'),
10641
10774
  name=d.get('name'),
10642
10775
  server_address=d.get('server_address'),
10643
10776
  tags=d.get('tags'),
@@ -21382,6 +21515,148 @@ class User:
21382
21515
  )
21383
21516
 
21384
21517
 
21518
+ class VaultAWSEC2Store:
21519
+ '''
21520
+ VaultAWSEC2Store is currently unstable, and its API may change, or it may be removed,
21521
+ without a major version bump.
21522
+ '''
21523
+ __slots__ = [
21524
+ 'id',
21525
+ 'name',
21526
+ 'namespace',
21527
+ 'server_address',
21528
+ 'tags',
21529
+ ]
21530
+
21531
+ def __init__(
21532
+ self,
21533
+ id=None,
21534
+ name=None,
21535
+ namespace=None,
21536
+ server_address=None,
21537
+ tags=None,
21538
+ ):
21539
+ self.id = id if id is not None else ''
21540
+ '''
21541
+ Unique identifier of the SecretStore.
21542
+ '''
21543
+ self.name = name if name is not None else ''
21544
+ '''
21545
+ Unique human-readable name of the SecretStore.
21546
+ '''
21547
+ self.namespace = namespace if namespace is not None else ''
21548
+ '''
21549
+ The namespace to make requests within
21550
+ '''
21551
+ self.server_address = server_address if server_address is not None else ''
21552
+ '''
21553
+ The URL of the Vault to target
21554
+ '''
21555
+ self.tags = tags if tags is not None else _porcelain_zero_value_tags()
21556
+ '''
21557
+ Tags is a map of key, value pairs.
21558
+ '''
21559
+
21560
+ def __repr__(self):
21561
+ return '<sdm.VaultAWSEC2Store ' + \
21562
+ 'id: ' + repr(self.id) + ' ' +\
21563
+ 'name: ' + repr(self.name) + ' ' +\
21564
+ 'namespace: ' + repr(self.namespace) + ' ' +\
21565
+ 'server_address: ' + repr(self.server_address) + ' ' +\
21566
+ 'tags: ' + repr(self.tags) + ' ' +\
21567
+ '>'
21568
+
21569
+ def to_dict(self):
21570
+ return {
21571
+ 'id': self.id,
21572
+ 'name': self.name,
21573
+ 'namespace': self.namespace,
21574
+ 'server_address': self.server_address,
21575
+ 'tags': self.tags,
21576
+ }
21577
+
21578
+ @classmethod
21579
+ def from_dict(cls, d):
21580
+ return cls(
21581
+ id=d.get('id'),
21582
+ name=d.get('name'),
21583
+ namespace=d.get('namespace'),
21584
+ server_address=d.get('server_address'),
21585
+ tags=d.get('tags'),
21586
+ )
21587
+
21588
+
21589
+ class VaultAWSIAMStore:
21590
+ '''
21591
+ VaultAWSIAMStore is currently unstable, and its API may change, or it may be removed,
21592
+ without a major version bump.
21593
+ '''
21594
+ __slots__ = [
21595
+ 'id',
21596
+ 'name',
21597
+ 'namespace',
21598
+ 'server_address',
21599
+ 'tags',
21600
+ ]
21601
+
21602
+ def __init__(
21603
+ self,
21604
+ id=None,
21605
+ name=None,
21606
+ namespace=None,
21607
+ server_address=None,
21608
+ tags=None,
21609
+ ):
21610
+ self.id = id if id is not None else ''
21611
+ '''
21612
+ Unique identifier of the SecretStore.
21613
+ '''
21614
+ self.name = name if name is not None else ''
21615
+ '''
21616
+ Unique human-readable name of the SecretStore.
21617
+ '''
21618
+ self.namespace = namespace if namespace is not None else ''
21619
+ '''
21620
+ The namespace to make requests within
21621
+ '''
21622
+ self.server_address = server_address if server_address is not None else ''
21623
+ '''
21624
+ The URL of the Vault to target
21625
+ '''
21626
+ self.tags = tags if tags is not None else _porcelain_zero_value_tags()
21627
+ '''
21628
+ Tags is a map of key, value pairs.
21629
+ '''
21630
+
21631
+ def __repr__(self):
21632
+ return '<sdm.VaultAWSIAMStore ' + \
21633
+ 'id: ' + repr(self.id) + ' ' +\
21634
+ 'name: ' + repr(self.name) + ' ' +\
21635
+ 'namespace: ' + repr(self.namespace) + ' ' +\
21636
+ 'server_address: ' + repr(self.server_address) + ' ' +\
21637
+ 'tags: ' + repr(self.tags) + ' ' +\
21638
+ '>'
21639
+
21640
+ def to_dict(self):
21641
+ return {
21642
+ 'id': self.id,
21643
+ 'name': self.name,
21644
+ 'namespace': self.namespace,
21645
+ 'server_address': self.server_address,
21646
+ 'tags': self.tags,
21647
+ }
21648
+
21649
+ @classmethod
21650
+ def from_dict(cls, d):
21651
+ return cls(
21652
+ id=d.get('id'),
21653
+ name=d.get('name'),
21654
+ namespace=d.get('namespace'),
21655
+ server_address=d.get('server_address'),
21656
+ tags=d.get('tags'),
21657
+ )
21658
+
21659
+
21385
21660
  class VaultAppRoleCertSSHStore:
21386
21661
  __slots__ = [
21387
21662
  'id',
@@ -5050,6 +5050,66 @@ def convert_repeated_http_no_auth_to_porcelain(plumbings):
5050
5050
  ]
5051
5051
 
5052
5052
 
5053
+ def convert_keyfactor_ssh_store_to_porcelain(plumbing):
5054
+ if plumbing is None:
5055
+ return None
5056
+ porcelain = models.KeyfactorSSHStore()
5057
+ porcelain.ca_file_path = (plumbing.ca_file_path)
5058
+ porcelain.certificate_file_path = (plumbing.certificate_file_path)
5059
+ porcelain.default_certificate_authority_name = (
5060
+ plumbing.default_certificate_authority_name)
5061
+ porcelain.default_certificate_profile_name = (
5062
+ plumbing.default_certificate_profile_name)
5063
+ porcelain.default_end_entity_profile_name = (
5064
+ plumbing.default_end_entity_profile_name)
5065
+ porcelain.enrollment_code_env_var = (plumbing.enrollment_code_env_var)
5066
+ porcelain.enrollment_username_env_var = (
5067
+ plumbing.enrollment_username_env_var)
5068
+ porcelain.id = (plumbing.id)
5069
+ porcelain.key_file_path = (plumbing.key_file_path)
5070
+ porcelain.name = (plumbing.name)
5071
+ porcelain.server_address = (plumbing.server_address)
5072
+ porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
5073
+ return porcelain
5074
+
5075
+
5076
+ def convert_keyfactor_ssh_store_to_plumbing(porcelain):
5077
+ plumbing = KeyfactorSSHStore()
5078
+ if porcelain is None:
5079
+ return plumbing
5080
+ plumbing.ca_file_path = (porcelain.ca_file_path)
5081
+ plumbing.certificate_file_path = (porcelain.certificate_file_path)
5082
+ plumbing.default_certificate_authority_name = (
5083
+ porcelain.default_certificate_authority_name)
5084
+ plumbing.default_certificate_profile_name = (
5085
+ porcelain.default_certificate_profile_name)
5086
+ plumbing.default_end_entity_profile_name = (
5087
+ porcelain.default_end_entity_profile_name)
5088
+ plumbing.enrollment_code_env_var = (porcelain.enrollment_code_env_var)
5089
+ plumbing.enrollment_username_env_var = (
5090
+ porcelain.enrollment_username_env_var)
5091
+ plumbing.id = (porcelain.id)
5092
+ plumbing.key_file_path = (porcelain.key_file_path)
5093
+ plumbing.name = (porcelain.name)
5094
+ plumbing.server_address = (porcelain.server_address)
5095
+ plumbing.tags.CopyFrom(convert_tags_to_plumbing(porcelain.tags))
5096
+ return plumbing
5097
+
5098
+
5099
+ def convert_repeated_keyfactor_ssh_store_to_plumbing(porcelains):
5100
+ return [
5101
+ convert_keyfactor_ssh_store_to_plumbing(porcelain)
5102
+ for porcelain in porcelains
5103
+ ]
5104
+
5105
+
5106
+ def convert_repeated_keyfactor_ssh_store_to_porcelain(plumbings):
5107
+ return [
5108
+ convert_keyfactor_ssh_store_to_porcelain(plumbing)
5109
+ for plumbing in plumbings
5110
+ ]
5111
+
5112
+
5053
5113
  def convert_keyfactor_x_509_store_to_porcelain(plumbing):
5054
5114
  if plumbing is None:
5055
5115
  return None
@@ -5067,7 +5127,6 @@ def convert_keyfactor_x_509_store_to_porcelain(plumbing):
5067
5127
  plumbing.enrollment_username_env_var)
5068
5128
  porcelain.id = (plumbing.id)
5069
5129
  porcelain.key_file_path = (plumbing.key_file_path)
5070
- porcelain.key_password_env_var = (plumbing.key_password_env_var)
5071
5130
  porcelain.name = (plumbing.name)
5072
5131
  porcelain.server_address = (plumbing.server_address)
5073
5132
  porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
@@ -5091,7 +5150,6 @@ def convert_keyfactor_x_509_store_to_plumbing(porcelain):
5091
5150
  porcelain.enrollment_username_env_var)
5092
5151
  plumbing.id = (porcelain.id)
5093
5152
  plumbing.key_file_path = (porcelain.key_file_path)
5094
- plumbing.key_password_env_var = (porcelain.key_password_env_var)
5095
5153
  plumbing.name = (porcelain.name)
5096
5154
  plumbing.server_address = (porcelain.server_address)
5097
5155
  plumbing.tags.CopyFrom(convert_tags_to_plumbing(porcelain.tags))
@@ -9709,6 +9767,9 @@ def convert_secret_store_to_plumbing(porcelain):
9709
9767
  if isinstance(porcelain, models.GCPCertX509Store):
9710
9768
  plumbing.gcp_cert_x_509.CopyFrom(
9711
9769
  convert_gcp_cert_x_509_store_to_plumbing(porcelain))
9770
+ if isinstance(porcelain, models.KeyfactorSSHStore):
9771
+ plumbing.keyfactor_ssh.CopyFrom(
9772
+ convert_keyfactor_ssh_store_to_plumbing(porcelain))
9712
9773
  if isinstance(porcelain, models.KeyfactorX509Store):
9713
9774
  plumbing.keyfactor_x_509.CopyFrom(
9714
9775
  convert_keyfactor_x_509_store_to_plumbing(porcelain))
@@ -9721,6 +9782,12 @@ def convert_secret_store_to_plumbing(porcelain):
9721
9782
  if isinstance(porcelain, models.VaultAppRoleCertX509Store):
9722
9783
  plumbing.vault_app_role_cert_x_509.CopyFrom(
9723
9784
  convert_vault_app_role_cert_x_509_store_to_plumbing(porcelain))
9785
+ if isinstance(porcelain, models.VaultAWSEC2Store):
9786
+ plumbing.vault_awsec_2.CopyFrom(
9787
+ convert_vault_awsec_2_store_to_plumbing(porcelain))
9788
+ if isinstance(porcelain, models.VaultAWSIAMStore):
9789
+ plumbing.vault_awsiam.CopyFrom(
9790
+ convert_vault_awsiam_store_to_plumbing(porcelain))
9724
9791
  if isinstance(porcelain, models.VaultTLSStore):
9725
9792
  plumbing.vault_tls.CopyFrom(
9726
9793
  convert_vault_tls_store_to_plumbing(porcelain))
@@ -9770,6 +9837,8 @@ def convert_secret_store_to_porcelain(plumbing):
9770
9837
  if plumbing.HasField('gcp_cert_x_509'):
9771
9838
  return convert_gcp_cert_x_509_store_to_porcelain(
9772
9839
  plumbing.gcp_cert_x_509)
9840
+ if plumbing.HasField('keyfactor_ssh'):
9841
+ return convert_keyfactor_ssh_store_to_porcelain(plumbing.keyfactor_ssh)
9773
9842
  if plumbing.HasField('keyfactor_x_509'):
9774
9843
  return convert_keyfactor_x_509_store_to_porcelain(
9775
9844
  plumbing.keyfactor_x_509)
@@ -9782,6 +9851,10 @@ def convert_secret_store_to_porcelain(plumbing):
9782
9851
  if plumbing.HasField('vault_app_role_cert_x_509'):
9783
9852
  return convert_vault_app_role_cert_x_509_store_to_porcelain(
9784
9853
  plumbing.vault_app_role_cert_x_509)
9854
+ if plumbing.HasField('vault_awsec_2'):
9855
+ return convert_vault_awsec_2_store_to_porcelain(plumbing.vault_awsec_2)
9856
+ if plumbing.HasField('vault_awsiam'):
9857
+ return convert_vault_awsiam_store_to_porcelain(plumbing.vault_awsiam)
9785
9858
  if plumbing.HasField('vault_tls'):
9786
9859
  return convert_vault_tls_store_to_porcelain(plumbing.vault_tls)
9787
9860
  if plumbing.HasField('vault_tls_cert_ssh'):
@@ -10643,6 +10716,82 @@ def convert_repeated_user_to_porcelain(plumbings):
10643
10716
  return [convert_user_to_porcelain(plumbing) for plumbing in plumbings]
10644
10717
 
10645
10718
 
10719
+ def convert_vault_awsec_2_store_to_porcelain(plumbing):
10720
+ if plumbing is None:
10721
+ return None
10722
+ porcelain = models.VaultAWSEC2Store()
10723
+ porcelain.id = (plumbing.id)
10724
+ porcelain.name = (plumbing.name)
10725
+ porcelain.namespace = (plumbing.namespace)
10726
+ porcelain.server_address = (plumbing.server_address)
10727
+ porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
10728
+ return porcelain
10729
+
10730
+
10731
+ def convert_vault_awsec_2_store_to_plumbing(porcelain):
10732
+ plumbing = VaultAWSEC2Store()
10733
+ if porcelain is None:
10734
+ return plumbing
10735
+ plumbing.id = (porcelain.id)
10736
+ plumbing.name = (porcelain.name)
10737
+ plumbing.namespace = (porcelain.namespace)
10738
+ plumbing.server_address = (porcelain.server_address)
10739
+ plumbing.tags.CopyFrom(convert_tags_to_plumbing(porcelain.tags))
10740
+ return plumbing
10741
+
10742
+
10743
+ def convert_repeated_vault_awsec_2_store_to_plumbing(porcelains):
10744
+ return [
10745
+ convert_vault_awsec_2_store_to_plumbing(porcelain)
10746
+ for porcelain in porcelains
10747
+ ]
10748
+
10749
+
10750
+ def convert_repeated_vault_awsec_2_store_to_porcelain(plumbings):
10751
+ return [
10752
+ convert_vault_awsec_2_store_to_porcelain(plumbing)
10753
+ for plumbing in plumbings
10754
+ ]
10755
+
10756
+
10757
+ def convert_vault_awsiam_store_to_porcelain(plumbing):
10758
+ if plumbing is None:
10759
+ return None
10760
+ porcelain = models.VaultAWSIAMStore()
10761
+ porcelain.id = (plumbing.id)
10762
+ porcelain.name = (plumbing.name)
10763
+ porcelain.namespace = (plumbing.namespace)
10764
+ porcelain.server_address = (plumbing.server_address)
10765
+ porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
10766
+ return porcelain
10767
+
10768
+
10769
+ def convert_vault_awsiam_store_to_plumbing(porcelain):
10770
+ plumbing = VaultAWSIAMStore()
10771
+ if porcelain is None:
10772
+ return plumbing
10773
+ plumbing.id = (porcelain.id)
10774
+ plumbing.name = (porcelain.name)
10775
+ plumbing.namespace = (porcelain.namespace)
10776
+ plumbing.server_address = (porcelain.server_address)
10777
+ plumbing.tags.CopyFrom(convert_tags_to_plumbing(porcelain.tags))
10778
+ return plumbing
10779
+
10780
+
10781
+ def convert_repeated_vault_awsiam_store_to_plumbing(porcelains):
10782
+ return [
10783
+ convert_vault_awsiam_store_to_plumbing(porcelain)
10784
+ for porcelain in porcelains
10785
+ ]
10786
+
10787
+
10788
+ def convert_repeated_vault_awsiam_store_to_porcelain(plumbings):
10789
+ return [
10790
+ convert_vault_awsiam_store_to_porcelain(plumbing)
10791
+ for plumbing in plumbings
10792
+ ]
10793
+
10794
+
10646
10795
  def convert_vault_app_role_cert_ssh_store_to_porcelain(plumbing):
10647
10796
  if plumbing is None:
10648
10797
  return None