strongdm 6.2.1__zip → 6.3.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 (115) hide show
  1. {strongdm-6.2.1 → strongdm-6.3.0}/PKG-INFO +2 -2
  2. {strongdm-6.2.1 → strongdm-6.3.0}/setup.py +2 -2
  3. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/client.py +7 -1
  4. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/models.py +157 -0
  5. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/options_pb2.py +22 -22
  6. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/plumbing.py +125 -0
  7. strongdm-6.3.0/strongdm/secret_store_healths_pb2.py +167 -0
  8. strongdm-6.3.0/strongdm/secret_store_healths_pb2_grpc.py +155 -0
  9. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/svc.py +81 -0
  10. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm.egg-info/PKG-INFO +2 -2
  11. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm.egg-info/SOURCES.txt +2 -0
  12. {strongdm-6.2.1 → strongdm-6.3.0}/LICENSE +0 -0
  13. {strongdm-6.2.1 → strongdm-6.3.0}/README.md +0 -0
  14. {strongdm-6.2.1 → strongdm-6.3.0}/setup.cfg +0 -0
  15. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/__init__.py +0 -0
  16. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/access_request_events_history_pb2.py +0 -0
  17. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/access_request_events_history_pb2_grpc.py +0 -0
  18. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/access_requests_history_pb2.py +0 -0
  19. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/access_requests_history_pb2_grpc.py +0 -0
  20. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/access_requests_pb2.py +0 -0
  21. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/access_requests_pb2_grpc.py +0 -0
  22. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_attachments_history_pb2.py +0 -0
  23. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_attachments_history_pb2_grpc.py +0 -0
  24. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_attachments_pb2.py +0 -0
  25. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_attachments_pb2_grpc.py +0 -0
  26. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_grants_history_pb2.py +0 -0
  27. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_grants_history_pb2_grpc.py +0 -0
  28. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_grants_pb2.py +0 -0
  29. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_grants_pb2_grpc.py +0 -0
  30. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_permissions_pb2.py +0 -0
  31. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_permissions_pb2_grpc.py +0 -0
  32. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_resources_history_pb2.py +0 -0
  33. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_resources_history_pb2_grpc.py +0 -0
  34. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_resources_pb2.py +0 -0
  35. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_resources_pb2_grpc.py +0 -0
  36. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/accounts_history_pb2.py +0 -0
  37. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/accounts_history_pb2_grpc.py +0 -0
  38. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/accounts_pb2.py +0 -0
  39. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/accounts_pb2_grpc.py +0 -0
  40. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/activities_pb2.py +0 -0
  41. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/activities_pb2_grpc.py +0 -0
  42. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/constants.py +0 -0
  43. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/control_panel_pb2.py +0 -0
  44. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/control_panel_pb2_grpc.py +0 -0
  45. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/drivers_pb2.py +0 -0
  46. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/drivers_pb2_grpc.py +0 -0
  47. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/errors.py +0 -0
  48. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/nodes_history_pb2.py +0 -0
  49. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/nodes_history_pb2_grpc.py +0 -0
  50. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/nodes_pb2.py +0 -0
  51. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/nodes_pb2_grpc.py +0 -0
  52. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/options_pb2_grpc.py +0 -0
  53. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/organization_history_pb2.py +0 -0
  54. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/organization_history_pb2_grpc.py +0 -0
  55. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/peering_group_nodes_pb2.py +0 -0
  56. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/peering_group_nodes_pb2_grpc.py +0 -0
  57. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/peering_group_peers_pb2.py +0 -0
  58. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/peering_group_peers_pb2_grpc.py +0 -0
  59. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/peering_group_resources_pb2.py +0 -0
  60. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/peering_group_resources_pb2_grpc.py +0 -0
  61. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/peering_groups_pb2.py +0 -0
  62. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/peering_groups_pb2_grpc.py +0 -0
  63. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/queries_pb2.py +0 -0
  64. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/queries_pb2_grpc.py +0 -0
  65. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/remote_identities_history_pb2.py +0 -0
  66. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/remote_identities_history_pb2_grpc.py +0 -0
  67. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/remote_identities_pb2.py +0 -0
  68. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/remote_identities_pb2_grpc.py +0 -0
  69. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/remote_identity_groups_history_pb2.py +0 -0
  70. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/remote_identity_groups_history_pb2_grpc.py +0 -0
  71. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/remote_identity_groups_pb2.py +0 -0
  72. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/remote_identity_groups_pb2_grpc.py +0 -0
  73. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/replays_pb2.py +0 -0
  74. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/replays_pb2_grpc.py +0 -0
  75. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/resources_history_pb2.py +0 -0
  76. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/resources_history_pb2_grpc.py +0 -0
  77. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/resources_pb2.py +0 -0
  78. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/resources_pb2_grpc.py +0 -0
  79. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/role_resources_history_pb2.py +0 -0
  80. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/role_resources_history_pb2_grpc.py +0 -0
  81. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/role_resources_pb2.py +0 -0
  82. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/role_resources_pb2_grpc.py +0 -0
  83. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/roles_history_pb2.py +0 -0
  84. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/roles_history_pb2_grpc.py +0 -0
  85. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/roles_pb2.py +0 -0
  86. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/roles_pb2_grpc.py +0 -0
  87. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/secret_store_types_pb2.py +0 -0
  88. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/secret_store_types_pb2_grpc.py +0 -0
  89. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/secret_stores_history_pb2.py +0 -0
  90. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/secret_stores_history_pb2_grpc.py +0 -0
  91. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/secret_stores_pb2.py +0 -0
  92. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/secret_stores_pb2_grpc.py +0 -0
  93. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/spec_pb2.py +0 -0
  94. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/spec_pb2_grpc.py +0 -0
  95. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/tags_pb2.py +0 -0
  96. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/tags_pb2_grpc.py +0 -0
  97. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflow_approvers_history_pb2.py +0 -0
  98. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflow_approvers_history_pb2_grpc.py +0 -0
  99. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflow_approvers_pb2.py +0 -0
  100. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflow_approvers_pb2_grpc.py +0 -0
  101. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflow_assignments_history_pb2.py +0 -0
  102. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflow_assignments_history_pb2_grpc.py +0 -0
  103. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflow_assignments_pb2.py +0 -0
  104. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflow_assignments_pb2_grpc.py +0 -0
  105. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflow_roles_history_pb2.py +0 -0
  106. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflow_roles_history_pb2_grpc.py +0 -0
  107. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflow_roles_pb2.py +0 -0
  108. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflow_roles_pb2_grpc.py +0 -0
  109. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflows_history_pb2.py +0 -0
  110. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflows_history_pb2_grpc.py +0 -0
  111. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflows_pb2.py +0 -0
  112. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflows_pb2_grpc.py +0 -0
  113. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm.egg-info/dependency_links.txt +0 -0
  114. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm.egg-info/requires.txt +0 -0
  115. {strongdm-6.2.1 → strongdm-6.3.0}/strongdm.egg-info/top_level.txt +0 -0
@@ -0,0 +1,155 @@
1
+ # Copyright 2020 StrongDM Inc
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
16
+ """Client and server classes corresponding to protobuf-defined services."""
17
+ import grpc
18
+
19
+ from . import secret_store_healths_pb2 as secret__store__healths__pb2
20
+
21
+
22
+ class SecretStoreHealthsStub(object):
23
+ """SecretStoreHealths exposes health states for secret stores.
24
+ """
25
+
26
+ def __init__(self, channel):
27
+ """Constructor.
28
+
29
+ Args:
30
+ channel: A grpc.Channel.
31
+ """
32
+ self.List = channel.unary_unary(
33
+ '/v1.SecretStoreHealths/List',
34
+ request_serializer=secret__store__healths__pb2.SecretStoreHealthListRequest.SerializeToString,
35
+ response_deserializer=secret__store__healths__pb2.SecretStoreHealthListResponse.FromString,
36
+ )
37
+ self.Check = channel.unary_unary(
38
+ '/v1.SecretStoreHealths/Check',
39
+ request_serializer=secret__store__healths__pb2.SecretStoreHealthCheckRequest.SerializeToString,
40
+ response_deserializer=secret__store__healths__pb2.SecretStoreHealthCheckResponse.FromString,
41
+ )
42
+ self.Healthcheck = channel.unary_unary(
43
+ '/v1.SecretStoreHealths/Healthcheck',
44
+ request_serializer=secret__store__healths__pb2.SecretStoreHealthcheckRequest.SerializeToString,
45
+ response_deserializer=secret__store__healths__pb2.SecretStoreHealthcheckResponse.FromString,
46
+ )
47
+
48
+
49
+ class SecretStoreHealthsServicer(object):
50
+ """SecretStoreHealths exposes health states for secret stores.
51
+ """
52
+
53
+ def List(self, request, context):
54
+ """List reports the health status of node to secret store pairs.
55
+ """
56
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
57
+ context.set_details('Method not implemented!')
58
+ raise NotImplementedError('Method not implemented!')
59
+
60
+ def Check(self, request, context):
61
+ """Check pushes a healthcheck request for a secret store
62
+ Deprecated: use Healthcheck instead
63
+ """
64
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
65
+ context.set_details('Method not implemented!')
66
+ raise NotImplementedError('Method not implemented!')
67
+
68
+ def Healthcheck(self, request, context):
69
+ """Healthcheck triggers a remote healthcheck request for a secret store. It may take minutes
70
+ to propagate across a large network of Nodes. The call will return immediately, and the
71
+ updated health of the Secret Store can be retrieved via List.
72
+ """
73
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
74
+ context.set_details('Method not implemented!')
75
+ raise NotImplementedError('Method not implemented!')
76
+
77
+
78
+ def add_SecretStoreHealthsServicer_to_server(servicer, server):
79
+ rpc_method_handlers = {
80
+ 'List': grpc.unary_unary_rpc_method_handler(
81
+ servicer.List,
82
+ request_deserializer=secret__store__healths__pb2.SecretStoreHealthListRequest.FromString,
83
+ response_serializer=secret__store__healths__pb2.SecretStoreHealthListResponse.SerializeToString,
84
+ ),
85
+ 'Check': grpc.unary_unary_rpc_method_handler(
86
+ servicer.Check,
87
+ request_deserializer=secret__store__healths__pb2.SecretStoreHealthCheckRequest.FromString,
88
+ response_serializer=secret__store__healths__pb2.SecretStoreHealthCheckResponse.SerializeToString,
89
+ ),
90
+ 'Healthcheck': grpc.unary_unary_rpc_method_handler(
91
+ servicer.Healthcheck,
92
+ request_deserializer=secret__store__healths__pb2.SecretStoreHealthcheckRequest.FromString,
93
+ response_serializer=secret__store__healths__pb2.SecretStoreHealthcheckResponse.SerializeToString,
94
+ ),
95
+ }
96
+ generic_handler = grpc.method_handlers_generic_handler(
97
+ 'v1.SecretStoreHealths', rpc_method_handlers)
98
+ server.add_generic_rpc_handlers((generic_handler,))
99
+
100
+
101
+ # This class is part of an EXPERIMENTAL API.
102
+ class SecretStoreHealths(object):
103
+ """SecretStoreHealths exposes health states for secret stores.
104
+ """
105
+
106
+ @staticmethod
107
+ def List(request,
108
+ target,
109
+ options=(),
110
+ channel_credentials=None,
111
+ call_credentials=None,
112
+ insecure=False,
113
+ compression=None,
114
+ wait_for_ready=None,
115
+ timeout=None,
116
+ metadata=None):
117
+ return grpc.experimental.unary_unary(request, target, '/v1.SecretStoreHealths/List',
118
+ secret__store__healths__pb2.SecretStoreHealthListRequest.SerializeToString,
119
+ secret__store__healths__pb2.SecretStoreHealthListResponse.FromString,
120
+ options, channel_credentials,
121
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
122
+
123
+ @staticmethod
124
+ def Check(request,
125
+ target,
126
+ options=(),
127
+ channel_credentials=None,
128
+ call_credentials=None,
129
+ insecure=False,
130
+ compression=None,
131
+ wait_for_ready=None,
132
+ timeout=None,
133
+ metadata=None):
134
+ return grpc.experimental.unary_unary(request, target, '/v1.SecretStoreHealths/Check',
135
+ secret__store__healths__pb2.SecretStoreHealthCheckRequest.SerializeToString,
136
+ secret__store__healths__pb2.SecretStoreHealthCheckResponse.FromString,
137
+ options, channel_credentials,
138
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
139
+
140
+ @staticmethod
141
+ def Healthcheck(request,
142
+ target,
143
+ options=(),
144
+ channel_credentials=None,
145
+ call_credentials=None,
146
+ insecure=False,
147
+ compression=None,
148
+ wait_for_ready=None,
149
+ timeout=None,
150
+ metadata=None):
151
+ return grpc.experimental.unary_unary(request, target, '/v1.SecretStoreHealths/Healthcheck',
152
+ secret__store__healths__pb2.SecretStoreHealthcheckRequest.SerializeToString,
153
+ secret__store__healths__pb2.SecretStoreHealthcheckResponse.FromString,
154
+ options, channel_credentials,
155
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
@@ -92,6 +92,8 @@ from .roles_pb2 import *
92
92
  from .roles_pb2_grpc import *
93
93
  from .roles_history_pb2 import *
94
94
  from .roles_history_pb2_grpc import *
95
+ from .secret_store_healths_pb2 import *
96
+ from .secret_store_healths_pb2_grpc import *
95
97
  from .secret_store_types_pb2 import *
96
98
  from .secret_store_types_pb2_grpc import *
97
99
  from .secret_stores_pb2 import *
@@ -3510,6 +3512,85 @@ class RolesHistory:
3510
3512
  return generator(self, req)
3511
3513
 
3512
3514
 
3515
+ class SecretStoreHealths:
3516
+ '''
3517
+ SecretStoreHealths exposes health states for secret stores.
3518
+ See `strongdm.models.SecretStoreHealth`.
3519
+ '''
3520
+ def __init__(self, channel, client):
3521
+ self.parent = client
3522
+ self.stub = SecretStoreHealthsStub(channel)
3523
+
3524
+ def list(self, filter, *args, timeout=None):
3525
+ '''
3526
+ List reports the health status of node to secret store pairs.
3527
+ '''
3528
+ req = SecretStoreHealthListRequest()
3529
+ req.meta.CopyFrom(ListRequestMetadata())
3530
+ if self.parent.page_limit > 0:
3531
+ req.meta.limit = self.parent.page_limit
3532
+ if self.parent.snapshot_datetime is not None:
3533
+ req.meta.snapshot_at.FromDatetime(self.parent.snapshot_datetime)
3534
+
3535
+ req.filter = plumbing.quote_filter_args(filter, *args)
3536
+
3537
+ def generator(svc, req):
3538
+ tries = 0
3539
+ while True:
3540
+ try:
3541
+ plumbing_response = svc.stub.List(
3542
+ req,
3543
+ metadata=svc.parent.get_metadata(
3544
+ 'SecretStoreHealths.List', req),
3545
+ timeout=timeout)
3546
+ except Exception as e:
3547
+ if self.parent.shouldRetry(tries, e):
3548
+ tries += 1
3549
+ self.parent.jitterSleep(tries)
3550
+ continue
3551
+ raise plumbing.convert_error_to_porcelain(e) from e
3552
+ tries = 0
3553
+ for plumbing_item in plumbing_response.secret_store_healths:
3554
+ yield plumbing.convert_secret_store_health_to_porcelain(
3555
+ plumbing_item)
3556
+ if plumbing_response.meta.next_cursor == '':
3557
+ break
3558
+ req.meta.cursor = plumbing_response.meta.next_cursor
3559
+
3560
+ return generator(self, req)
3561
+
3562
+ def healthcheck(self, secret_store_id, timeout=None):
3563
+ '''
3564
+ Healthcheck triggers a remote healthcheck request for a secret store. It may take minutes
3565
+ to propagate across a large network of Nodes. The call will return immediately, and the
3566
+ updated health of the Secret Store can be retrieved via List.
3567
+ '''
3568
+ req = SecretStoreHealthcheckRequest()
3569
+
3570
+ req.secret_store_id = (secret_store_id)
3571
+ tries = 0
3572
+ plumbing_response = None
3573
+ while True:
3574
+ try:
3575
+ plumbing_response = self.stub.Healthcheck(
3576
+ req,
3577
+ metadata=self.parent.get_metadata(
3578
+ 'SecretStoreHealths.Healthcheck', req),
3579
+ timeout=timeout)
3580
+ except Exception as e:
3581
+ if self.parent.shouldRetry(tries, e):
3582
+ tries += 1
3583
+ self.parent.jitterSleep(tries)
3584
+ continue
3585
+ raise plumbing.convert_error_to_porcelain(e) from e
3586
+ break
3587
+
3588
+ resp = models.SecretStoreHealthcheckResponse()
3589
+ resp.rate_limit = plumbing.convert_rate_limit_metadata_to_porcelain(
3590
+ plumbing_response.rate_limit)
3591
+ return resp
3592
+
3593
+
3513
3594
  class SecretStores:
3514
3595
  '''
3515
3596
  SecretStores are servers where resource secrets (passwords, keys) are stored.
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: strongdm
3
- Version: 6.2.1
3
+ Version: 6.3.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/v6.2.1.tar.gz
9
+ Download-URL: https://github.com/strongdm/strongdm-sdk-python/archive/v6.3.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
@@ -77,6 +77,8 @@ strongdm/roles_history_pb2.py
77
77
  strongdm/roles_history_pb2_grpc.py
78
78
  strongdm/roles_pb2.py
79
79
  strongdm/roles_pb2_grpc.py
80
+ strongdm/secret_store_healths_pb2.py
81
+ strongdm/secret_store_healths_pb2_grpc.py
80
82
  strongdm/secret_store_types_pb2.py
81
83
  strongdm/secret_store_types_pb2_grpc.py
82
84
  strongdm/secret_stores_history_pb2.py
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes