strongdm 15.4.0__zip → 15.5.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 (147) hide show
  1. {strongdm-15.4.0 → strongdm-15.5.0}/PKG-INFO +2 -2
  2. {strongdm-15.4.0 → strongdm-15.5.0}/setup.py +2 -2
  3. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/client.py +1 -1
  4. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/managed_secrets_pb2.py +4 -2
  5. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/managed_secrets_pb2_grpc.py +34 -0
  6. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/svc.py +31 -0
  7. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm.egg-info/PKG-INFO +2 -2
  8. {strongdm-15.4.0 → strongdm-15.5.0}/LICENSE +0 -0
  9. {strongdm-15.4.0 → strongdm-15.5.0}/README.md +0 -0
  10. {strongdm-15.4.0 → strongdm-15.5.0}/setup.cfg +0 -0
  11. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/__init__.py +0 -0
  12. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/access_request_events_history_pb2.py +0 -0
  13. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/access_request_events_history_pb2_grpc.py +0 -0
  14. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/access_requests_history_pb2.py +0 -0
  15. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/access_requests_history_pb2_grpc.py +0 -0
  16. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/access_requests_pb2.py +0 -0
  17. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/access_requests_pb2_grpc.py +0 -0
  18. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/account_attachments_history_pb2.py +0 -0
  19. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/account_attachments_history_pb2_grpc.py +0 -0
  20. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/account_attachments_pb2.py +0 -0
  21. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/account_attachments_pb2_grpc.py +0 -0
  22. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/account_grants_history_pb2.py +0 -0
  23. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/account_grants_history_pb2_grpc.py +0 -0
  24. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/account_grants_pb2.py +0 -0
  25. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/account_grants_pb2_grpc.py +0 -0
  26. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/account_permissions_pb2.py +0 -0
  27. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/account_permissions_pb2_grpc.py +0 -0
  28. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/account_resources_history_pb2.py +0 -0
  29. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/account_resources_history_pb2_grpc.py +0 -0
  30. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/account_resources_pb2.py +0 -0
  31. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/account_resources_pb2_grpc.py +0 -0
  32. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/accounts_history_pb2.py +0 -0
  33. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/accounts_history_pb2_grpc.py +0 -0
  34. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/accounts_pb2.py +0 -0
  35. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/accounts_pb2_grpc.py +0 -0
  36. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/activities_pb2.py +0 -0
  37. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/activities_pb2_grpc.py +0 -0
  38. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/approval_workflow_approvers_history_pb2.py +0 -0
  39. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/approval_workflow_approvers_history_pb2_grpc.py +0 -0
  40. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/approval_workflow_approvers_pb2.py +0 -0
  41. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/approval_workflow_approvers_pb2_grpc.py +0 -0
  42. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/approval_workflow_steps_history_pb2.py +0 -0
  43. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/approval_workflow_steps_history_pb2_grpc.py +0 -0
  44. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/approval_workflow_steps_pb2.py +0 -0
  45. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/approval_workflow_steps_pb2_grpc.py +0 -0
  46. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/approval_workflows_history_pb2.py +0 -0
  47. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/approval_workflows_history_pb2_grpc.py +0 -0
  48. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/approval_workflows_pb2.py +0 -0
  49. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/approval_workflows_pb2_grpc.py +0 -0
  50. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/constants.py +0 -0
  51. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/control_panel_pb2.py +0 -0
  52. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/control_panel_pb2_grpc.py +0 -0
  53. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/drivers_pb2.py +0 -0
  54. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/drivers_pb2_grpc.py +0 -0
  55. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/errors.py +0 -0
  56. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/health_checks_pb2.py +0 -0
  57. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/health_checks_pb2_grpc.py +0 -0
  58. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/identity_aliases_history_pb2.py +0 -0
  59. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/identity_aliases_history_pb2_grpc.py +0 -0
  60. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/identity_aliases_pb2.py +0 -0
  61. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/identity_aliases_pb2_grpc.py +0 -0
  62. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/identity_sets_history_pb2.py +0 -0
  63. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/identity_sets_history_pb2_grpc.py +0 -0
  64. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/identity_sets_pb2.py +0 -0
  65. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/identity_sets_pb2_grpc.py +0 -0
  66. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/models.py +0 -0
  67. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/nodes_history_pb2.py +0 -0
  68. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/nodes_history_pb2_grpc.py +0 -0
  69. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/nodes_pb2.py +0 -0
  70. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/nodes_pb2_grpc.py +0 -0
  71. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/options_pb2.py +0 -0
  72. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/options_pb2_grpc.py +0 -0
  73. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/organization_history_pb2.py +0 -0
  74. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/organization_history_pb2_grpc.py +0 -0
  75. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/peering_group_nodes_pb2.py +0 -0
  76. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/peering_group_nodes_pb2_grpc.py +0 -0
  77. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/peering_group_peers_pb2.py +0 -0
  78. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/peering_group_peers_pb2_grpc.py +0 -0
  79. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/peering_group_resources_pb2.py +0 -0
  80. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/peering_group_resources_pb2_grpc.py +0 -0
  81. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/peering_groups_pb2.py +0 -0
  82. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/peering_groups_pb2_grpc.py +0 -0
  83. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/plumbing.py +0 -0
  84. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/policies_history_pb2.py +0 -0
  85. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/policies_history_pb2_grpc.py +0 -0
  86. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/policies_pb2.py +0 -0
  87. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/policies_pb2_grpc.py +0 -0
  88. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/proxy_cluster_keys_pb2.py +0 -0
  89. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/proxy_cluster_keys_pb2_grpc.py +0 -0
  90. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/queries_pb2.py +0 -0
  91. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/queries_pb2_grpc.py +0 -0
  92. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/remote_identities_history_pb2.py +0 -0
  93. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/remote_identities_history_pb2_grpc.py +0 -0
  94. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/remote_identities_pb2.py +0 -0
  95. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/remote_identities_pb2_grpc.py +0 -0
  96. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/remote_identity_groups_history_pb2.py +0 -0
  97. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/remote_identity_groups_history_pb2_grpc.py +0 -0
  98. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/remote_identity_groups_pb2.py +0 -0
  99. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/remote_identity_groups_pb2_grpc.py +0 -0
  100. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/replays_pb2.py +0 -0
  101. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/replays_pb2_grpc.py +0 -0
  102. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/resources_history_pb2.py +0 -0
  103. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/resources_history_pb2_grpc.py +0 -0
  104. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/resources_pb2.py +0 -0
  105. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/resources_pb2_grpc.py +0 -0
  106. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/role_resources_history_pb2.py +0 -0
  107. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/role_resources_history_pb2_grpc.py +0 -0
  108. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/role_resources_pb2.py +0 -0
  109. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/role_resources_pb2_grpc.py +0 -0
  110. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/roles_history_pb2.py +0 -0
  111. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/roles_history_pb2_grpc.py +0 -0
  112. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/roles_pb2.py +0 -0
  113. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/roles_pb2_grpc.py +0 -0
  114. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/secret_engine_policy_pb2.py +0 -0
  115. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/secret_engine_policy_pb2_grpc.py +0 -0
  116. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/secret_engine_types_pb2.py +0 -0
  117. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/secret_engine_types_pb2_grpc.py +0 -0
  118. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/secret_engines_pb2.py +0 -0
  119. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/secret_engines_pb2_grpc.py +0 -0
  120. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/secret_store_healths_pb2.py +0 -0
  121. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/secret_store_healths_pb2_grpc.py +0 -0
  122. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/secret_store_types_pb2.py +0 -0
  123. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/secret_store_types_pb2_grpc.py +0 -0
  124. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/secret_stores_history_pb2.py +0 -0
  125. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/secret_stores_history_pb2_grpc.py +0 -0
  126. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/secret_stores_pb2.py +0 -0
  127. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/secret_stores_pb2_grpc.py +0 -0
  128. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/spec_pb2.py +0 -0
  129. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/spec_pb2_grpc.py +0 -0
  130. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/tags_pb2.py +0 -0
  131. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/tags_pb2_grpc.py +0 -0
  132. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/workflow_approvers_history_pb2.py +0 -0
  133. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/workflow_approvers_history_pb2_grpc.py +0 -0
  134. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/workflow_approvers_pb2.py +0 -0
  135. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/workflow_approvers_pb2_grpc.py +0 -0
  136. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/workflow_roles_history_pb2.py +0 -0
  137. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/workflow_roles_history_pb2_grpc.py +0 -0
  138. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/workflow_roles_pb2.py +0 -0
  139. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/workflow_roles_pb2_grpc.py +0 -0
  140. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/workflows_history_pb2.py +0 -0
  141. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/workflows_history_pb2_grpc.py +0 -0
  142. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/workflows_pb2.py +0 -0
  143. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm/workflows_pb2_grpc.py +0 -0
  144. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm.egg-info/SOURCES.txt +0 -0
  145. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm.egg-info/dependency_links.txt +0 -0
  146. {strongdm-15.4.0 → strongdm-15.5.0}/strongdm.egg-info/requires.txt +0 -0
  147. {strongdm-15.4.0 → strongdm-15.5.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: 15.4.0
3
+ Version: 15.5.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/v15.4.0.tar.gz
9
+ Download-URL: https://github.com/strongdm/strongdm-sdk-python/archive/v15.5.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='15.4.0',
26
+ version='15.5.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/v15.4.0.tar.gz',
35
+ 'https://github.com/strongdm/strongdm-sdk-python/archive/v15.5.0.tar.gz',
36
36
  keywords=[
37
37
  'strongDM', 'sdm', 'api', 'automation', 'security', 'audit',
38
38
  'database', 'server', 'ssh', 'rdp'
@@ -34,7 +34,7 @@ DEFAULT_MAX_RETRY_DELAY = 120 # 120 seconds
34
34
  DEFAULT_RETRY_FACTOR = 1.6
35
35
  DEFAULT_RETRY_JITTER = 0.2
36
36
  API_VERSION = '2025-04-14'
37
- USER_AGENT = 'strongdm-sdk-python/15.4.0'
37
+ USER_AGENT = 'strongdm-sdk-python/15.5.0'
38
38
 
39
39
 
40
40
  class Client:
@@ -32,7 +32,7 @@ from . import tags_pb2 as tags__pb2
32
32
  from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
33
33
 
34
34
 
35
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15managed_secrets.proto\x12\x02v1\x1a\roptions.proto\x1a\nspec.proto\x1a\ntags.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"i\n\x18ManagedSecretLogsRequest\x12%\n\x04meta\x18\x01 \x01(\x0b\x32\x17.v1.ListRequestMetadata\x12\x1a\n\x06\x66ilter\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xe7\x01\n\x19ManagedSecretLogsResponse\x12&\n\x04meta\x18\x01 \x01(\x0b\x32\x18.v1.ListResponseMetadata\x12=\n\x13managed_secret_logs\x18\x02 \x03(\x0b\x32\x14.v1.ManagedSecretLogB\n\xf2\xf8\xb3\x07\x05\xb8\xf3\xb3\x07\x01\x12W\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"i\n\x18ManagedSecretListRequest\x12%\n\x04meta\x18\x01 \x01(\x0b\x32\x17.v1.ListRequestMetadata\x12\x1a\n\x06\x66ilter\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xbe\x01\n\x19ManagedSecretListResponse\x12&\n\x04meta\x18\x01 \x01(\x0b\x32\x18.v1.ListResponseMetadata\x12\x36\n\x0fmanaged_secrets\x18\x02 \x03(\x0b\x32\x11.v1.ManagedSecretB\n\xf2\xf8\xb3\x07\x05\xb8\xf3\xb3\x07\x01\x12\x35\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\x88\x01\n\x1cManagedSecretRetrieveRequest\x12$\n\x04meta\x18\x01 \x01(\x0b\x32\x16.v1.GetRequestMetadata\x12\x16\n\x02id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1e\n\npublic_key\x18\x03 \x01(\x0c\x42\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xee\x01\n\x1dManagedSecretRetrieveResponse\x12\x31\n\x04meta\x18\x01 \x01(\x0b\x32\x17.v1.GetResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x35\n\x0emanaged_secret\x18\x02 \x01(\x0b\x32\x11.v1.ManagedSecretB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12W\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"h\n\x1cManagedSecretValidateRequest\x12$\n\x04meta\x18\x01 \x01(\x0b\x32\x16.v1.GetRequestMetadata\x12\x16\n\x02id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xf4\x01\n\x1dManagedSecretValidateResponse\x12\x31\n\x04meta\x18\x01 \x01(\x0b\x32\x17.v1.GetResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x19\n\x05valid\x18\x02 \x01(\x08\x42\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12W\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway\x12 \n\x0cinvalid_info\x18\x04 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"c\n\x17ManagedSecretGetRequest\x12$\n\x04meta\x18\x01 \x01(\x0b\x32\x16.v1.GetRequestMetadata\x12\x16\n\x02id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xe9\x01\n\x18ManagedSecretGetResponse\x12\x31\n\x04meta\x18\x01 \x01(\x0b\x32\x17.v1.GetResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x35\n\x0emanaged_secret\x18\x02 \x01(\x0b\x32\x11.v1.ManagedSecretB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12W\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\x88\x01\n\x1aManagedSecretCreateRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.CreateRequestMetadata\x12\x35\n\x0emanaged_secret\x18\x02 \x01(\x0b\x32\x11.v1.ManagedSecretB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xef\x01\n\x1bManagedSecretCreateResponse\x12\x34\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.CreateResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x35\n\x0emanaged_secret\x18\x02 \x01(\x0b\x32\x11.v1.ManagedSecretB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12W\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\x94\x01\n\x1aManagedSecretUpdateRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.UpdateRequestMetadata\x12\n\n\x02id\x18\x02 \x01(\t\x12\x35\n\x0emanaged_secret\x18\x03 \x01(\x0b\x32\x11.v1.ManagedSecretB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xef\x01\n\x1bManagedSecretUpdateResponse\x12\x34\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.UpdateResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x35\n\x0emanaged_secret\x18\x02 \x01(\x0b\x32\x11.v1.ManagedSecretB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12W\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"j\n\x1aManagedSecretRotateRequest\x12(\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.GenericRequestMetadata\x12\x16\n\x02id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xb9\x01\n\x1bManagedSecretRotateResponse\x12\x35\n\x04meta\x18\x01 \x01(\x0b\x32\x1b.v1.GenericResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12W\n\nrate_limit\x18\x02 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"i\n\x1aManagedSecretDeleteRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.UpdateRequestMetadata\x12\x16\n\x02id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xac\x01\n\x1bManagedSecretDeleteResponse\x12(\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.DeleteResponseMetadata\x12W\n\nrate_limit\x18\x02 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xaf\x02\n\x10ManagedSecretLog\x12\x16\n\x02id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12:\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12)\n\x10secret_engine_id\x18\x03 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12*\n\x11managed_secret_id\x18\x04 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12#\n\naccount_id\x18\x05 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\x1f\n\x06\x61\x63tion\x18\x06 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\x1e\n\x05\x64\x65\x62ug\x18\x07 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xcf\x03\n\rManagedSecret\x12\x16\n\x02id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1d\n\x04name\x18\x02 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12)\n\x10secret_engine_id\x18\x03 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\x1e\n\x05value\x18\x04 \x01(\x0c\x42\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xf0\xf3\xb3\x07\x01\x12*\n\x11secret_store_path\x18\x05 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\x98\xf4\xb3\x07\x01\x12\x38\n\x06policy\x18\x06 \x01(\x0b\x32\x17.v1.ManagedSecretPolicyB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\"\n\x04tags\x18\x07 \x01(\x0b\x32\x08.v1.TagsB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x44\n\x0flast_rotated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\x98\xf4\xb3\x07\x01\x12?\n\nexpires_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\x98\xf4\xb3\x07\x01\x12\x1f\n\x06\x63onfig\x18\n \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\x98\xf4\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xad\x01\n\x13ManagedSecretPolicy\x12\x44\n\x0frotation_policy\x18\x01 \x01(\x0b\x32\x1f.v1.ManagedSecretRotationPolicyB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x44\n\x0fpassword_policy\x18\x02 \x01(\x0b\x32\x1f.v1.ManagedSecretPasswordPolicyB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xf8\x01\n\x1bManagedSecretPasswordPolicy\x12\x1a\n\x06length\x18\x01 \x01(\rB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12&\n\x12\x65xclude_upper_case\x18\x02 \x01(\x08\x42\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1e\n\nnum_digits\x18\x03 \x01(\rB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1f\n\x0bnum_symbols\x18\x04 \x01(\rB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12 \n\x0c\x61llow_repeat\x18\x05 \x01(\x08\x42\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12&\n\x12\x65xclude_characters\x18\x06 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\")\n\x1bManagedSecretRotationPolicy:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\x32\xc1\n\n\x0eManagedSecrets\x12o\n\x04List\x12\x1c.v1.ManagedSecretListRequest\x1a\x1d.v1.ManagedSecretListResponse\"*\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07\x18\xaa\xf3\xb3\x07\x13/v1/managed-secrets\x12|\n\x0bListByActor\x12\x1c.v1.ManagedSecretListRequest\x1a\x1d.v1.ManagedSecretListResponse\"0\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07\x1e\xaa\xf3\xb3\x07\x19/v1/managed-secrets/actor\x12v\n\x06\x43reate\x12\x1e.v1.ManagedSecretCreateRequest\x1a\x1f.v1.ManagedSecretCreateResponse\"+\x82\xf9\xb3\x07\t\xa2\xf3\xb3\x07\x04post\x82\xf9\xb3\x07\x18\xaa\xf3\xb3\x07\x13/v1/managed-secrets\x12z\n\x06Update\x12\x1e.v1.ManagedSecretUpdateRequest\x1a\x1f.v1.ManagedSecretUpdateResponse\"/\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03put\x82\xf9\xb3\x07\x1d\xaa\xf3\xb3\x07\x18/v1/managed-secrets/{id}\x12\x81\x01\n\x06Rotate\x12\x1e.v1.ManagedSecretRotateRequest\x1a\x1f.v1.ManagedSecretRotateResponse\"6\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03put\x82\xf9\xb3\x07$\xaa\xf3\xb3\x07\x1f/v1/managed-secrets/{id}/rotate\x12}\n\x06\x44\x65lete\x12\x1e.v1.ManagedSecretDeleteRequest\x1a\x1f.v1.ManagedSecretDeleteResponse\"2\x82\xf9\xb3\x07\x0b\xa2\xf3\xb3\x07\x06\x64\x65lete\x82\xf9\xb3\x07\x1d\xaa\xf3\xb3\x07\x18/v1/managed-secrets/{id}\x12q\n\x03Get\x12\x1b.v1.ManagedSecretGetRequest\x1a\x1c.v1.ManagedSecretGetResponse\"/\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07\x1d\xaa\xf3\xb3\x07\x18/v1/managed-secrets/{id}\x12\x8a\x01\n\x08Retrieve\x12 .v1.ManagedSecretRetrieveRequest\x1a!.v1.ManagedSecretRetrieveResponse\"9\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07\'\xaa\xf3\xb3\x07\"/v1/managed-secrets/{id}/sensitive\x12\x89\x01\n\x08Validate\x12 .v1.ManagedSecretValidateRequest\x1a!.v1.ManagedSecretValidateResponse\"8\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07&\xaa\xf3\xb3\x07!/v1/managed-secrets/{id}/validate\x12t\n\x04Logs\x12\x1c.v1.ManagedSecretLogsRequest\x1a\x1d.v1.ManagedSecretLogsResponse\"/\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07\x1d\xaa\xf3\xb3\x07\x18/v1/managed-secrets-logs\x1aG\xca\xf9\xb3\x07\x12\xc2\xf9\xb3\x07\rManagedSecret\xca\xf9\xb3\x07\x08\xd2\xf9\xb3\x07\x03ms-\xca\xf9\xb3\x07\x05\xd8\xf9\xb3\x07\x01\xca\xf9\xb3\x07\x06\xca\xf9\xb3\x07\x01*\xca\xf9\xb3\x07\t\xca\xf9\xb3\x07\x04!cliBj\n\x19\x63om.strongdm.api.plumbingB\x16ManagedSecretsPlumbingZ5github.com/strongdm/strongdm-sdk-go/v3/internal/v1;v1b\x06proto3')
35
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15managed_secrets.proto\x12\x02v1\x1a\roptions.proto\x1a\nspec.proto\x1a\ntags.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"i\n\x18ManagedSecretLogsRequest\x12%\n\x04meta\x18\x01 \x01(\x0b\x32\x17.v1.ListRequestMetadata\x12\x1a\n\x06\x66ilter\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xe7\x01\n\x19ManagedSecretLogsResponse\x12&\n\x04meta\x18\x01 \x01(\x0b\x32\x18.v1.ListResponseMetadata\x12=\n\x13managed_secret_logs\x18\x02 \x03(\x0b\x32\x14.v1.ManagedSecretLogB\n\xf2\xf8\xb3\x07\x05\xb8\xf3\xb3\x07\x01\x12W\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"i\n\x18ManagedSecretListRequest\x12%\n\x04meta\x18\x01 \x01(\x0b\x32\x17.v1.ListRequestMetadata\x12\x1a\n\x06\x66ilter\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xbe\x01\n\x19ManagedSecretListResponse\x12&\n\x04meta\x18\x01 \x01(\x0b\x32\x18.v1.ListResponseMetadata\x12\x36\n\x0fmanaged_secrets\x18\x02 \x03(\x0b\x32\x11.v1.ManagedSecretB\n\xf2\xf8\xb3\x07\x05\xb8\xf3\xb3\x07\x01\x12\x35\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\x88\x01\n\x1cManagedSecretRetrieveRequest\x12$\n\x04meta\x18\x01 \x01(\x0b\x32\x16.v1.GetRequestMetadata\x12\x16\n\x02id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1e\n\npublic_key\x18\x03 \x01(\x0c\x42\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xee\x01\n\x1dManagedSecretRetrieveResponse\x12\x31\n\x04meta\x18\x01 \x01(\x0b\x32\x17.v1.GetResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x35\n\x0emanaged_secret\x18\x02 \x01(\x0b\x32\x11.v1.ManagedSecretB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12W\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"h\n\x1cManagedSecretValidateRequest\x12$\n\x04meta\x18\x01 \x01(\x0b\x32\x16.v1.GetRequestMetadata\x12\x16\n\x02id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xf4\x01\n\x1dManagedSecretValidateResponse\x12\x31\n\x04meta\x18\x01 \x01(\x0b\x32\x17.v1.GetResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x19\n\x05valid\x18\x02 \x01(\x08\x42\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12W\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway\x12 \n\x0cinvalid_info\x18\x04 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"c\n\x17ManagedSecretGetRequest\x12$\n\x04meta\x18\x01 \x01(\x0b\x32\x16.v1.GetRequestMetadata\x12\x16\n\x02id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xe9\x01\n\x18ManagedSecretGetResponse\x12\x31\n\x04meta\x18\x01 \x01(\x0b\x32\x17.v1.GetResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x35\n\x0emanaged_secret\x18\x02 \x01(\x0b\x32\x11.v1.ManagedSecretB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12W\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\x88\x01\n\x1aManagedSecretCreateRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.CreateRequestMetadata\x12\x35\n\x0emanaged_secret\x18\x02 \x01(\x0b\x32\x11.v1.ManagedSecretB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xef\x01\n\x1bManagedSecretCreateResponse\x12\x34\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.CreateResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x35\n\x0emanaged_secret\x18\x02 \x01(\x0b\x32\x11.v1.ManagedSecretB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12W\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\x94\x01\n\x1aManagedSecretUpdateRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.UpdateRequestMetadata\x12\n\n\x02id\x18\x02 \x01(\t\x12\x35\n\x0emanaged_secret\x18\x03 \x01(\x0b\x32\x11.v1.ManagedSecretB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xef\x01\n\x1bManagedSecretUpdateResponse\x12\x34\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.UpdateResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x35\n\x0emanaged_secret\x18\x02 \x01(\x0b\x32\x11.v1.ManagedSecretB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12W\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"j\n\x1aManagedSecretRotateRequest\x12(\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.GenericRequestMetadata\x12\x16\n\x02id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xb9\x01\n\x1bManagedSecretRotateResponse\x12\x35\n\x04meta\x18\x01 \x01(\x0b\x32\x1b.v1.GenericResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12W\n\nrate_limit\x18\x02 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"i\n\x1aManagedSecretDeleteRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.UpdateRequestMetadata\x12\x16\n\x02id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xac\x01\n\x1bManagedSecretDeleteResponse\x12(\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.DeleteResponseMetadata\x12W\n\nrate_limit\x18\x02 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xaf\x02\n\x10ManagedSecretLog\x12\x16\n\x02id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12:\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12)\n\x10secret_engine_id\x18\x03 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12*\n\x11managed_secret_id\x18\x04 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12#\n\naccount_id\x18\x05 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\x1f\n\x06\x61\x63tion\x18\x06 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\x1e\n\x05\x64\x65\x62ug\x18\x07 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xcf\x03\n\rManagedSecret\x12\x16\n\x02id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1d\n\x04name\x18\x02 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12)\n\x10secret_engine_id\x18\x03 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\x1e\n\x05value\x18\x04 \x01(\x0c\x42\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xf0\xf3\xb3\x07\x01\x12*\n\x11secret_store_path\x18\x05 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\x98\xf4\xb3\x07\x01\x12\x38\n\x06policy\x18\x06 \x01(\x0b\x32\x17.v1.ManagedSecretPolicyB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\"\n\x04tags\x18\x07 \x01(\x0b\x32\x08.v1.TagsB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x44\n\x0flast_rotated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\x98\xf4\xb3\x07\x01\x12?\n\nexpires_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\x98\xf4\xb3\x07\x01\x12\x1f\n\x06\x63onfig\x18\n \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\x98\xf4\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xad\x01\n\x13ManagedSecretPolicy\x12\x44\n\x0frotation_policy\x18\x01 \x01(\x0b\x32\x1f.v1.ManagedSecretRotationPolicyB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x44\n\x0fpassword_policy\x18\x02 \x01(\x0b\x32\x1f.v1.ManagedSecretPasswordPolicyB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xf8\x01\n\x1bManagedSecretPasswordPolicy\x12\x1a\n\x06length\x18\x01 \x01(\rB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12&\n\x12\x65xclude_upper_case\x18\x02 \x01(\x08\x42\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1e\n\nnum_digits\x18\x03 \x01(\rB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1f\n\x0bnum_symbols\x18\x04 \x01(\rB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12 \n\x0c\x61llow_repeat\x18\x05 \x01(\x08\x42\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12&\n\x12\x65xclude_characters\x18\x06 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\")\n\x1bManagedSecretRotationPolicy:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\x32\xcc\x0b\n\x0eManagedSecrets\x12o\n\x04List\x12\x1c.v1.ManagedSecretListRequest\x1a\x1d.v1.ManagedSecretListResponse\"*\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07\x18\xaa\xf3\xb3\x07\x13/v1/managed-secrets\x12|\n\x0bListByActor\x12\x1c.v1.ManagedSecretListRequest\x1a\x1d.v1.ManagedSecretListResponse\"0\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07\x1e\xaa\xf3\xb3\x07\x19/v1/managed-secrets/actor\x12v\n\x06\x43reate\x12\x1e.v1.ManagedSecretCreateRequest\x1a\x1f.v1.ManagedSecretCreateResponse\"+\x82\xf9\xb3\x07\t\xa2\xf3\xb3\x07\x04post\x82\xf9\xb3\x07\x18\xaa\xf3\xb3\x07\x13/v1/managed-secrets\x12z\n\x06Update\x12\x1e.v1.ManagedSecretUpdateRequest\x1a\x1f.v1.ManagedSecretUpdateResponse\"/\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03put\x82\xf9\xb3\x07\x1d\xaa\xf3\xb3\x07\x18/v1/managed-secrets/{id}\x12\x81\x01\n\x06Rotate\x12\x1e.v1.ManagedSecretRotateRequest\x1a\x1f.v1.ManagedSecretRotateResponse\"6\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03put\x82\xf9\xb3\x07$\xaa\xf3\xb3\x07\x1f/v1/managed-secrets/{id}/rotate\x12}\n\x06\x44\x65lete\x12\x1e.v1.ManagedSecretDeleteRequest\x1a\x1f.v1.ManagedSecretDeleteResponse\"2\x82\xf9\xb3\x07\x0b\xa2\xf3\xb3\x07\x06\x64\x65lete\x82\xf9\xb3\x07\x1d\xaa\xf3\xb3\x07\x18/v1/managed-secrets/{id}\x12\x88\x01\n\x0b\x46orceDelete\x12\x1e.v1.ManagedSecretDeleteRequest\x1a\x1f.v1.ManagedSecretDeleteResponse\"8\x82\xf9\xb3\x07\x0b\xa2\xf3\xb3\x07\x06\x64\x65lete\x82\xf9\xb3\x07#\xaa\xf3\xb3\x07\x1e/v1/managed-secrets/{id}/force\x12q\n\x03Get\x12\x1b.v1.ManagedSecretGetRequest\x1a\x1c.v1.ManagedSecretGetResponse\"/\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07\x1d\xaa\xf3\xb3\x07\x18/v1/managed-secrets/{id}\x12\x8a\x01\n\x08Retrieve\x12 .v1.ManagedSecretRetrieveRequest\x1a!.v1.ManagedSecretRetrieveResponse\"9\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07\'\xaa\xf3\xb3\x07\"/v1/managed-secrets/{id}/sensitive\x12\x89\x01\n\x08Validate\x12 .v1.ManagedSecretValidateRequest\x1a!.v1.ManagedSecretValidateResponse\"8\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07&\xaa\xf3\xb3\x07!/v1/managed-secrets/{id}/validate\x12t\n\x04Logs\x12\x1c.v1.ManagedSecretLogsRequest\x1a\x1d.v1.ManagedSecretLogsResponse\"/\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07\x1d\xaa\xf3\xb3\x07\x18/v1/managed-secrets-logs\x1aG\xca\xf9\xb3\x07\x12\xc2\xf9\xb3\x07\rManagedSecret\xca\xf9\xb3\x07\x08\xd2\xf9\xb3\x07\x03ms-\xca\xf9\xb3\x07\x05\xd8\xf9\xb3\x07\x01\xca\xf9\xb3\x07\x06\xca\xf9\xb3\x07\x01*\xca\xf9\xb3\x07\t\xca\xf9\xb3\x07\x04!cliBj\n\x19\x63om.strongdm.api.plumbingB\x16ManagedSecretsPlumbingZ5github.com/strongdm/strongdm-sdk-go/v3/internal/v1;v1b\x06proto3')
36
36
 
37
37
 
38
38
 
@@ -401,6 +401,8 @@ if _descriptor._USE_C_DESCRIPTORS == False:
401
401
  _MANAGEDSECRETS.methods_by_name['Rotate']._serialized_options = b'\202\371\263\007\010\242\363\263\007\003put\202\371\263\007$\252\363\263\007\037/v1/managed-secrets/{id}/rotate'
402
402
  _MANAGEDSECRETS.methods_by_name['Delete']._options = None
403
403
  _MANAGEDSECRETS.methods_by_name['Delete']._serialized_options = b'\202\371\263\007\013\242\363\263\007\006delete\202\371\263\007\035\252\363\263\007\030/v1/managed-secrets/{id}'
404
+ _MANAGEDSECRETS.methods_by_name['ForceDelete']._options = None
405
+ _MANAGEDSECRETS.methods_by_name['ForceDelete']._serialized_options = b'\202\371\263\007\013\242\363\263\007\006delete\202\371\263\007#\252\363\263\007\036/v1/managed-secrets/{id}/force'
404
406
  _MANAGEDSECRETS.methods_by_name['Get']._options = None
405
407
  _MANAGEDSECRETS.methods_by_name['Get']._serialized_options = b'\202\371\263\007\010\242\363\263\007\003get\202\371\263\007\035\252\363\263\007\030/v1/managed-secrets/{id}'
406
408
  _MANAGEDSECRETS.methods_by_name['Retrieve']._options = None
@@ -456,5 +458,5 @@ if _descriptor._USE_C_DESCRIPTORS == False:
456
458
  _MANAGEDSECRETROTATIONPOLICY._serialized_start=4363
457
459
  _MANAGEDSECRETROTATIONPOLICY._serialized_end=4404
458
460
  _MANAGEDSECRETS._serialized_start=4407
459
- _MANAGEDSECRETS._serialized_end=5752
461
+ _MANAGEDSECRETS._serialized_end=5891
460
462
  # @@protoc_insertion_point(module_scope)
@@ -61,6 +61,11 @@ class ManagedSecretsStub(object):
61
61
  request_serializer=managed__secrets__pb2.ManagedSecretDeleteRequest.SerializeToString,
62
62
  response_deserializer=managed__secrets__pb2.ManagedSecretDeleteResponse.FromString,
63
63
  )
64
+ self.ForceDelete = channel.unary_unary(
65
+ '/v1.ManagedSecrets/ForceDelete',
66
+ request_serializer=managed__secrets__pb2.ManagedSecretDeleteRequest.SerializeToString,
67
+ response_deserializer=managed__secrets__pb2.ManagedSecretDeleteResponse.FromString,
68
+ )
64
69
  self.Get = channel.unary_unary(
65
70
  '/v1.ManagedSecrets/Get',
66
71
  request_serializer=managed__secrets__pb2.ManagedSecretGetRequest.SerializeToString,
@@ -131,6 +136,13 @@ class ManagedSecretsServicer(object):
131
136
  context.set_details('Method not implemented!')
132
137
  raise NotImplementedError('Method not implemented!')
133
138
 
139
+ def ForceDelete(self, request, context):
140
+ """ForceDelete deletes a Managed Secret regardless of errors on external system
141
+ """
142
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
143
+ context.set_details('Method not implemented!')
144
+ raise NotImplementedError('Method not implemented!')
145
+
134
146
  def Get(self, request, context):
135
147
  """Get gets details of a Managed Secret without sensitive data
136
148
  """
@@ -194,6 +206,11 @@ def add_ManagedSecretsServicer_to_server(servicer, server):
194
206
  request_deserializer=managed__secrets__pb2.ManagedSecretDeleteRequest.FromString,
195
207
  response_serializer=managed__secrets__pb2.ManagedSecretDeleteResponse.SerializeToString,
196
208
  ),
209
+ 'ForceDelete': grpc.unary_unary_rpc_method_handler(
210
+ servicer.ForceDelete,
211
+ request_deserializer=managed__secrets__pb2.ManagedSecretDeleteRequest.FromString,
212
+ response_serializer=managed__secrets__pb2.ManagedSecretDeleteResponse.SerializeToString,
213
+ ),
197
214
  'Get': grpc.unary_unary_rpc_method_handler(
198
215
  servicer.Get,
199
216
  request_deserializer=managed__secrets__pb2.ManagedSecretGetRequest.FromString,
@@ -329,6 +346,23 @@ class ManagedSecrets(object):
329
346
  options, channel_credentials,
330
347
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
331
348
 
349
+ @staticmethod
350
+ def ForceDelete(request,
351
+ target,
352
+ options=(),
353
+ channel_credentials=None,
354
+ call_credentials=None,
355
+ insecure=False,
356
+ compression=None,
357
+ wait_for_ready=None,
358
+ timeout=None,
359
+ metadata=None):
360
+ return grpc.experimental.unary_unary(request, target, '/v1.ManagedSecrets/ForceDelete',
361
+ managed__secrets__pb2.ManagedSecretDeleteRequest.SerializeToString,
362
+ managed__secrets__pb2.ManagedSecretDeleteResponse.FromString,
363
+ options, channel_credentials,
364
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
365
+
332
366
  @staticmethod
333
367
  def Get(request,
334
368
  target,
@@ -3209,6 +3209,37 @@ class ManagedSecrets:
3209
3209
  plumbing_response.rate_limit)
3210
3210
  return resp
3211
3211
 
3212
+ def force_delete(self, id, timeout=None):
3213
+ '''
3214
+ ForceDelete deletes a Managed Secret regardless of errors on external system
3215
+ '''
3216
+ deadline = None if timeout is None else time.time() + timeout
3217
+ req = ManagedSecretDeleteRequest()
3218
+
3219
+ req.id = (id)
3220
+ tries = 0
3221
+ plumbing_response = None
3222
+ while True:
3223
+ t = None if deadline is None else deadline - time.time()
3224
+ try:
3225
+ plumbing_response = self.stub.ForceDelete(
3226
+ req,
3227
+ metadata=self.parent.get_metadata(
3228
+ 'ManagedSecrets.ForceDelete', req),
3229
+ timeout=t)
3230
+ except Exception as e:
3231
+ if self.parent.shouldRetry(tries, e, deadline):
3232
+ tries += 1
3233
+ time.sleep(self.parent.exponentialBackoff(tries, deadline))
3234
+ continue
3235
+ raise plumbing.convert_error_to_porcelain(e) from e
3236
+ break
3237
+
3238
+ resp = models.ManagedSecretDeleteResponse()
3239
+ resp.rate_limit = plumbing.convert_rate_limit_metadata_to_porcelain(
3240
+ plumbing_response.rate_limit)
3241
+ return resp
3242
+
3212
3243
  def get(self, id, timeout=None):
3213
3244
  '''
3214
3245
  Get gets details of a Managed Secret without sensitive data
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: strongdm
3
- Version: 15.4.0
3
+ Version: 15.5.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/v15.4.0.tar.gz
9
+ Download-URL: https://github.com/strongdm/strongdm-sdk-python/archive/v15.5.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
File without changes
File without changes
File without changes
File without changes
File without changes