strongdm 6.2.0__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.0 → strongdm-6.3.0}/PKG-INFO +2 -2
  2. {strongdm-6.2.0 → strongdm-6.3.0}/setup.py +2 -2
  3. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/client.py +7 -35
  4. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/models.py +157 -0
  5. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/options_pb2.py +22 -22
  6. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/peering_group_nodes_pb2.py +3 -3
  7. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/peering_group_peers_pb2.py +3 -3
  8. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/peering_group_resources_pb2.py +3 -3
  9. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/peering_groups_pb2.py +3 -3
  10. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/plumbing.py +125 -0
  11. strongdm-6.3.0/strongdm/secret_store_healths_pb2.py +167 -0
  12. strongdm-6.3.0/strongdm/secret_store_healths_pb2_grpc.py +155 -0
  13. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/svc.py +81 -86
  14. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm.egg-info/PKG-INFO +2 -2
  15. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm.egg-info/SOURCES.txt +2 -0
  16. {strongdm-6.2.0 → strongdm-6.3.0}/LICENSE +0 -0
  17. {strongdm-6.2.0 → strongdm-6.3.0}/README.md +0 -0
  18. {strongdm-6.2.0 → strongdm-6.3.0}/setup.cfg +0 -0
  19. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/__init__.py +0 -0
  20. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/access_request_events_history_pb2.py +0 -0
  21. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/access_request_events_history_pb2_grpc.py +0 -0
  22. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/access_requests_history_pb2.py +0 -0
  23. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/access_requests_history_pb2_grpc.py +0 -0
  24. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/access_requests_pb2.py +0 -0
  25. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/access_requests_pb2_grpc.py +0 -0
  26. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/account_attachments_history_pb2.py +0 -0
  27. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/account_attachments_history_pb2_grpc.py +0 -0
  28. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/account_attachments_pb2.py +0 -0
  29. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/account_attachments_pb2_grpc.py +0 -0
  30. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/account_grants_history_pb2.py +0 -0
  31. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/account_grants_history_pb2_grpc.py +0 -0
  32. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/account_grants_pb2.py +0 -0
  33. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/account_grants_pb2_grpc.py +0 -0
  34. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/account_permissions_pb2.py +0 -0
  35. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/account_permissions_pb2_grpc.py +0 -0
  36. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/account_resources_history_pb2.py +0 -0
  37. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/account_resources_history_pb2_grpc.py +0 -0
  38. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/account_resources_pb2.py +0 -0
  39. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/account_resources_pb2_grpc.py +0 -0
  40. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/accounts_history_pb2.py +0 -0
  41. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/accounts_history_pb2_grpc.py +0 -0
  42. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/accounts_pb2.py +0 -0
  43. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/accounts_pb2_grpc.py +0 -0
  44. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/activities_pb2.py +0 -0
  45. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/activities_pb2_grpc.py +0 -0
  46. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/constants.py +0 -0
  47. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/control_panel_pb2.py +0 -0
  48. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/control_panel_pb2_grpc.py +0 -0
  49. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/drivers_pb2.py +0 -0
  50. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/drivers_pb2_grpc.py +0 -0
  51. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/errors.py +0 -0
  52. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/nodes_history_pb2.py +0 -0
  53. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/nodes_history_pb2_grpc.py +0 -0
  54. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/nodes_pb2.py +0 -0
  55. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/nodes_pb2_grpc.py +0 -0
  56. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/options_pb2_grpc.py +0 -0
  57. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/organization_history_pb2.py +0 -0
  58. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/organization_history_pb2_grpc.py +0 -0
  59. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/peering_group_nodes_pb2_grpc.py +0 -0
  60. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/peering_group_peers_pb2_grpc.py +0 -0
  61. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/peering_group_resources_pb2_grpc.py +0 -0
  62. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/peering_groups_pb2_grpc.py +0 -0
  63. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/queries_pb2.py +0 -0
  64. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/queries_pb2_grpc.py +0 -0
  65. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/remote_identities_history_pb2.py +0 -0
  66. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/remote_identities_history_pb2_grpc.py +0 -0
  67. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/remote_identities_pb2.py +0 -0
  68. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/remote_identities_pb2_grpc.py +0 -0
  69. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/remote_identity_groups_history_pb2.py +0 -0
  70. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/remote_identity_groups_history_pb2_grpc.py +0 -0
  71. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/remote_identity_groups_pb2.py +0 -0
  72. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/remote_identity_groups_pb2_grpc.py +0 -0
  73. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/replays_pb2.py +0 -0
  74. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/replays_pb2_grpc.py +0 -0
  75. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/resources_history_pb2.py +0 -0
  76. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/resources_history_pb2_grpc.py +0 -0
  77. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/resources_pb2.py +0 -0
  78. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/resources_pb2_grpc.py +0 -0
  79. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/role_resources_history_pb2.py +0 -0
  80. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/role_resources_history_pb2_grpc.py +0 -0
  81. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/role_resources_pb2.py +0 -0
  82. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/role_resources_pb2_grpc.py +0 -0
  83. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/roles_history_pb2.py +0 -0
  84. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/roles_history_pb2_grpc.py +0 -0
  85. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/roles_pb2.py +0 -0
  86. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/roles_pb2_grpc.py +0 -0
  87. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/secret_store_types_pb2.py +0 -0
  88. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/secret_store_types_pb2_grpc.py +0 -0
  89. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/secret_stores_history_pb2.py +0 -0
  90. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/secret_stores_history_pb2_grpc.py +0 -0
  91. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/secret_stores_pb2.py +0 -0
  92. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/secret_stores_pb2_grpc.py +0 -0
  93. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/spec_pb2.py +0 -0
  94. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/spec_pb2_grpc.py +0 -0
  95. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/tags_pb2.py +0 -0
  96. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/tags_pb2_grpc.py +0 -0
  97. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/workflow_approvers_history_pb2.py +0 -0
  98. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/workflow_approvers_history_pb2_grpc.py +0 -0
  99. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/workflow_approvers_pb2.py +0 -0
  100. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/workflow_approvers_pb2_grpc.py +0 -0
  101. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/workflow_assignments_history_pb2.py +0 -0
  102. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/workflow_assignments_history_pb2_grpc.py +0 -0
  103. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/workflow_assignments_pb2.py +0 -0
  104. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/workflow_assignments_pb2_grpc.py +0 -0
  105. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/workflow_roles_history_pb2.py +0 -0
  106. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/workflow_roles_history_pb2_grpc.py +0 -0
  107. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/workflow_roles_pb2.py +0 -0
  108. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/workflow_roles_pb2_grpc.py +0 -0
  109. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/workflows_history_pb2.py +0 -0
  110. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/workflows_history_pb2_grpc.py +0 -0
  111. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/workflows_pb2.py +0 -0
  112. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm/workflows_pb2_grpc.py +0 -0
  113. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm.egg-info/dependency_links.txt +0 -0
  114. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm.egg-info/requires.txt +0 -0
  115. {strongdm-6.2.0 → strongdm-6.3.0}/strongdm.egg-info/top_level.txt +0 -0
@@ -61,6 +61,7 @@ from .role_resources_pb2 import *
61
61
  from .role_resources_history_pb2 import *
62
62
  from .roles_pb2 import *
63
63
  from .roles_history_pb2 import *
64
+ from .secret_store_healths_pb2 import *
64
65
  from .secret_store_types_pb2 import *
65
66
  from .secret_stores_pb2 import *
66
67
  from .secret_stores_history_pb2 import *
@@ -8914,6 +8915,130 @@ def convert_repeated_secret_store_get_response_to_porcelain(plumbings):
8914
8915
  ]
8915
8916
 
8916
8917
 
8918
+ def convert_secret_store_health_to_porcelain(plumbing):
8919
+ if plumbing is None:
8920
+ return None
8921
+ porcelain = models.SecretStoreHealth()
8922
+ porcelain.changed_at = convert_timestamp_to_porcelain(plumbing.changed_at)
8923
+ porcelain.checked_at = convert_timestamp_to_porcelain(plumbing.checked_at)
8924
+ porcelain.error = (plumbing.error)
8925
+ porcelain.flags = (plumbing.flags)
8926
+ porcelain.node_id = (plumbing.node_id)
8927
+ porcelain.reachability = (plumbing.reachability)
8928
+ porcelain.secret_store_id = (plumbing.secret_store_id)
8929
+ porcelain.status = (plumbing.status)
8930
+ return porcelain
8931
+
8932
+
8933
+ def convert_secret_store_health_to_plumbing(porcelain):
8934
+ plumbing = SecretStoreHealth()
8935
+ if porcelain is None:
8936
+ return plumbing
8937
+ plumbing.changed_at.CopyFrom(
8938
+ convert_timestamp_to_plumbing(porcelain.changed_at))
8939
+ plumbing.checked_at.CopyFrom(
8940
+ convert_timestamp_to_plumbing(porcelain.checked_at))
8941
+ plumbing.error = (porcelain.error)
8942
+ del plumbing.flags[:]
8943
+ plumbing.flags.extend((porcelain.flags))
8944
+ plumbing.node_id = (porcelain.node_id)
8945
+ plumbing.reachability = (porcelain.reachability)
8946
+ plumbing.secret_store_id = (porcelain.secret_store_id)
8947
+ plumbing.status = (porcelain.status)
8948
+ return plumbing
8949
+
8950
+
8951
+ def convert_repeated_secret_store_health_to_plumbing(porcelains):
8952
+ return [
8953
+ convert_secret_store_health_to_plumbing(porcelain)
8954
+ for porcelain in porcelains
8955
+ ]
8956
+
8957
+
8958
+ def convert_repeated_secret_store_health_to_porcelain(plumbings):
8959
+ return [
8960
+ convert_secret_store_health_to_porcelain(plumbing)
8961
+ for plumbing in plumbings
8962
+ ]
8963
+
8964
+
8965
+ def convert_secret_store_health_list_response_to_porcelain(plumbing):
8966
+ if plumbing is None:
8967
+ return None
8968
+ porcelain = models.SecretStoreHealthListResponse()
8969
+ porcelain.meta = convert_list_response_metadata_to_porcelain(plumbing.meta)
8970
+ porcelain.rate_limit = convert_rate_limit_metadata_to_porcelain(
8971
+ plumbing.rate_limit)
8972
+ porcelain.secret_store_healths = convert_repeated_secret_store_health_to_porcelain(
8973
+ plumbing.secret_store_healths)
8974
+ return porcelain
8975
+
8976
+
8977
+ def convert_secret_store_health_list_response_to_plumbing(porcelain):
8978
+ plumbing = SecretStoreHealthListResponse()
8979
+ if porcelain is None:
8980
+ return plumbing
8981
+ plumbing.meta.CopyFrom(
8982
+ convert_list_response_metadata_to_plumbing(porcelain.meta))
8983
+ plumbing.rate_limit.CopyFrom(
8984
+ convert_rate_limit_metadata_to_plumbing(porcelain.rate_limit))
8985
+ del plumbing.secret_store_healths[:]
8986
+ plumbing.secret_store_healths.extend(
8987
+ convert_repeated_secret_store_health_to_plumbing(
8988
+ porcelain.secret_store_healths))
8989
+ return plumbing
8990
+
8991
+
8992
+ def convert_repeated_secret_store_health_list_response_to_plumbing(porcelains):
8993
+ return [
8994
+ convert_secret_store_health_list_response_to_plumbing(porcelain)
8995
+ for porcelain in porcelains
8996
+ ]
8997
+
8998
+
8999
+ def convert_repeated_secret_store_health_list_response_to_porcelain(plumbings):
9000
+ return [
9001
+ convert_secret_store_health_list_response_to_porcelain(plumbing)
9002
+ for plumbing in plumbings
9003
+ ]
9004
+
9005
+
9006
+ def convert_secret_store_healthcheck_response_to_porcelain(plumbing):
9007
+ if plumbing is None:
9008
+ return None
9009
+ porcelain = models.SecretStoreHealthcheckResponse()
9010
+ porcelain.meta = convert_create_response_metadata_to_porcelain(
9011
+ plumbing.meta)
9012
+ porcelain.rate_limit = convert_rate_limit_metadata_to_porcelain(
9013
+ plumbing.rate_limit)
9014
+ return porcelain
9015
+
9016
+
9017
+ def convert_secret_store_healthcheck_response_to_plumbing(porcelain):
9018
+ plumbing = SecretStoreHealthcheckResponse()
9019
+ if porcelain is None:
9020
+ return plumbing
9021
+ plumbing.meta.CopyFrom(
9022
+ convert_create_response_metadata_to_plumbing(porcelain.meta))
9023
+ plumbing.rate_limit.CopyFrom(
9024
+ convert_rate_limit_metadata_to_plumbing(porcelain.rate_limit))
9025
+ return plumbing
9026
+
9027
+
9028
+ def convert_repeated_secret_store_healthcheck_response_to_plumbing(porcelains):
9029
+ return [
9030
+ convert_secret_store_healthcheck_response_to_plumbing(porcelain)
9031
+ for porcelain in porcelains
9032
+ ]
9033
+
9034
+
9035
+ def convert_repeated_secret_store_healthcheck_response_to_porcelain(plumbings):
9036
+ return [
9037
+ convert_secret_store_healthcheck_response_to_porcelain(plumbing)
9038
+ for plumbing in plumbings
9039
+ ]
9040
+
9041
+
8917
9042
  def convert_secret_store_history_to_porcelain(plumbing):
8918
9043
  if plumbing is None:
8919
9044
  return None
@@ -0,0 +1,167 @@
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
+ # -*- coding: utf-8 -*-
16
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
17
+ # source: secret_store_healths.proto
18
+ """Generated protocol buffer code."""
19
+ from google.protobuf import descriptor as _descriptor
20
+ from google.protobuf import descriptor_pool as _descriptor_pool
21
+ from google.protobuf import message as _message
22
+ from google.protobuf import reflection as _reflection
23
+ from google.protobuf import symbol_database as _symbol_database
24
+ # @@protoc_insertion_point(imports)
25
+
26
+ _sym_db = _symbol_database.Default()
27
+
28
+
29
+ from . import options_pb2 as options__pb2
30
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
31
+ from . import spec_pb2 as spec__pb2
32
+
33
+
34
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1asecret_store_healths.proto\x12\x02v1\x1a\roptions.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\nspec.proto\"\x8b\x01\n\x1cSecretStoreHealthListRequest\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:(\xfa\xf8\xb3\x07\x06\xd2\xf3\xb3\x07\x01*\xfa\xf8\xb3\x07\x18\xd2\xf3\xb3\x07\x13!terraform-provider\"\x95\x02\n\x1dSecretStoreHealthListResponse\x12&\n\x04meta\x18\x01 \x01(\x0b\x32\x18.v1.ListResponseMetadata\x12?\n\x14secret_store_healths\x18\x02 \x03(\x0b\x32\x15.v1.SecretStoreHealthB\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:2\xfa\xf8\xb3\x07\x06\xd2\xf3\xb3\x07\x01*\xfa\xf8\xb3\x07\x18\xd2\xf3\xb3\x07\x13!terraform-provider\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\x83\x01\n\x1dSecretStoreHealthCheckRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.CreateRequestMetadata\x12#\n\x0fsecret_store_id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x14\xfa\xf8\xb3\x07\x0f\xd2\xf3\xb3\x07\ngo_private\"\x97\x01\n\x1dSecretStoreHealthcheckRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.CreateRequestMetadata\x12#\n\x0fsecret_store_id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:(\xfa\xf8\xb3\x07\x06\xd2\xf3\xb3\x07\x01*\xfa\xf8\xb3\x07\x18\xd2\xf3\xb3\x07\x13!terraform-provider\"\xc3\x01\n\x1eSecretStoreHealthCheckResponse\x12(\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.CreateResponseMetadata\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:\x1e\xfa\xf8\xb3\x07\x0f\xd2\xf3\xb3\x07\ngo_private\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xd7\x01\n\x1eSecretStoreHealthcheckResponse\x12(\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.CreateResponseMetadata\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:2\xfa\xf8\xb3\x07\x06\xd2\xf3\xb3\x07\x01*\xfa\xf8\xb3\x07\x18\xd2\xf3\xb3\x07\x13!terraform-provider\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xfb\x02\n\x11SecretStoreHealth\x12#\n\x0fsecret_store_id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1b\n\x07node_id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1a\n\x06status\x18\x04 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12:\n\nchanged_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12:\n\nchecked_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x19\n\x05\x65rror\x18\x08 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12 \n\x0creachability\x18\t \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x19\n\x05\x66lags\x18\n \x03(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:2\xfa\xf8\xb3\x07\x06\xd2\xf3\xb3\x07\x01*\xfa\xf8\xb3\x07\x18\xd2\xf3\xb3\x07\x13!terraform-provider\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01J\x04\x08\x03\x10\x04\x32\x8d\x04\n\x12SecretStoreHealths\x12|\n\x04List\x12 .v1.SecretStoreHealthListRequest\x1a!.v1.SecretStoreHealthListResponse\"/\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07\x1d\xaa\xf3\xb3\x07\x18/v1/secret-store-healths\x12\x94\x01\n\x05\x43heck\x12!.v1.SecretStoreHealthCheckRequest\x1a\".v1.SecretStoreHealthCheckResponse\"D\x82\xf9\xb3\x07\t\xa2\xf3\xb3\x07\x04post\x82\xf9\xb3\x07\x1d\xaa\xf3\xb3\x07\x18/v1/secret-store-healths\x82\xf9\xb3\x07\x0f\xca\xf9\xb3\x07\ngo_private\x12\x86\x01\n\x0bHealthcheck\x12!.v1.SecretStoreHealthcheckRequest\x1a\".v1.SecretStoreHealthcheckResponse\"0\x82\xf9\xb3\x07\t\xa2\xf3\xb3\x07\x04post\x82\xf9\xb3\x07\x1d\xaa\xf3\xb3\x07\x18/v1/secret-store-healths\x1aY\xca\xf9\xb3\x07\x16\xc2\xf9\xb3\x07\x11SecretStoreHealth\xca\xf9\xb3\x07\x07\xd2\xf9\xb3\x07\x02x-\xca\xf9\xb3\x07\x05\xd8\xf9\xb3\x07\x01\xca\xf9\xb3\x07\x06\xca\xf9\xb3\x07\x01*\xca\xf9\xb3\x07\x18\xca\xf9\xb3\x07\x13!terraform-providerB\x96\x01\n\x19\x63om.strongdm.api.plumbingB\x1aSecretStoreHealthsPlumbingZ5github.com/strongdm/strongdm-sdk-go/v3/internal/v1;v1\xc2\x92\xb4\x07\x06\xa2\x8c\xb4\x07\x01*\xc2\x92\xb4\x07\x18\xa2\x8c\xb4\x07\x13!terraform-providerb\x06proto3')
35
+
36
+
37
+
38
+ _SECRETSTOREHEALTHLISTREQUEST = DESCRIPTOR.message_types_by_name['SecretStoreHealthListRequest']
39
+ _SECRETSTOREHEALTHLISTRESPONSE = DESCRIPTOR.message_types_by_name['SecretStoreHealthListResponse']
40
+ _SECRETSTOREHEALTHCHECKREQUEST = DESCRIPTOR.message_types_by_name['SecretStoreHealthCheckRequest']
41
+ _SECRETSTOREHEALTHCHECKREQUEST = DESCRIPTOR.message_types_by_name['SecretStoreHealthcheckRequest']
42
+ _SECRETSTOREHEALTHCHECKRESPONSE = DESCRIPTOR.message_types_by_name['SecretStoreHealthCheckResponse']
43
+ _SECRETSTOREHEALTHCHECKRESPONSE = DESCRIPTOR.message_types_by_name['SecretStoreHealthcheckResponse']
44
+ _SECRETSTOREHEALTH = DESCRIPTOR.message_types_by_name['SecretStoreHealth']
45
+ SecretStoreHealthListRequest = _reflection.GeneratedProtocolMessageType('SecretStoreHealthListRequest', (_message.Message,), {
46
+ 'DESCRIPTOR' : _SECRETSTOREHEALTHLISTREQUEST,
47
+ '__module__' : 'secret_store_healths_pb2'
48
+ # @@protoc_insertion_point(class_scope:v1.SecretStoreHealthListRequest)
49
+ })
50
+ _sym_db.RegisterMessage(SecretStoreHealthListRequest)
51
+
52
+ SecretStoreHealthListResponse = _reflection.GeneratedProtocolMessageType('SecretStoreHealthListResponse', (_message.Message,), {
53
+ 'DESCRIPTOR' : _SECRETSTOREHEALTHLISTRESPONSE,
54
+ '__module__' : 'secret_store_healths_pb2'
55
+ # @@protoc_insertion_point(class_scope:v1.SecretStoreHealthListResponse)
56
+ })
57
+ _sym_db.RegisterMessage(SecretStoreHealthListResponse)
58
+
59
+ SecretStoreHealthCheckRequest = _reflection.GeneratedProtocolMessageType('SecretStoreHealthCheckRequest', (_message.Message,), {
60
+ 'DESCRIPTOR' : _SECRETSTOREHEALTHCHECKREQUEST,
61
+ '__module__' : 'secret_store_healths_pb2'
62
+ # @@protoc_insertion_point(class_scope:v1.SecretStoreHealthCheckRequest)
63
+ })
64
+ _sym_db.RegisterMessage(SecretStoreHealthCheckRequest)
65
+
66
+ SecretStoreHealthcheckRequest = _reflection.GeneratedProtocolMessageType('SecretStoreHealthcheckRequest', (_message.Message,), {
67
+ 'DESCRIPTOR' : _SECRETSTOREHEALTHCHECKREQUEST,
68
+ '__module__' : 'secret_store_healths_pb2'
69
+ # @@protoc_insertion_point(class_scope:v1.SecretStoreHealthcheckRequest)
70
+ })
71
+ _sym_db.RegisterMessage(SecretStoreHealthcheckRequest)
72
+
73
+ SecretStoreHealthCheckResponse = _reflection.GeneratedProtocolMessageType('SecretStoreHealthCheckResponse', (_message.Message,), {
74
+ 'DESCRIPTOR' : _SECRETSTOREHEALTHCHECKRESPONSE,
75
+ '__module__' : 'secret_store_healths_pb2'
76
+ # @@protoc_insertion_point(class_scope:v1.SecretStoreHealthCheckResponse)
77
+ })
78
+ _sym_db.RegisterMessage(SecretStoreHealthCheckResponse)
79
+
80
+ SecretStoreHealthcheckResponse = _reflection.GeneratedProtocolMessageType('SecretStoreHealthcheckResponse', (_message.Message,), {
81
+ 'DESCRIPTOR' : _SECRETSTOREHEALTHCHECKRESPONSE,
82
+ '__module__' : 'secret_store_healths_pb2'
83
+ # @@protoc_insertion_point(class_scope:v1.SecretStoreHealthcheckResponse)
84
+ })
85
+ _sym_db.RegisterMessage(SecretStoreHealthcheckResponse)
86
+
87
+ SecretStoreHealth = _reflection.GeneratedProtocolMessageType('SecretStoreHealth', (_message.Message,), {
88
+ 'DESCRIPTOR' : _SECRETSTOREHEALTH,
89
+ '__module__' : 'secret_store_healths_pb2'
90
+ # @@protoc_insertion_point(class_scope:v1.SecretStoreHealth)
91
+ })
92
+ _sym_db.RegisterMessage(SecretStoreHealth)
93
+
94
+ _SECRETSTOREHEALTHS = DESCRIPTOR.services_by_name['SecretStoreHealths']
95
+ if _descriptor._USE_C_DESCRIPTORS == False:
96
+
97
+ DESCRIPTOR._options = None
98
+ DESCRIPTOR._serialized_options = b'\n\031com.strongdm.api.plumbingB\032SecretStoreHealthsPlumbingZ5github.com/strongdm/strongdm-sdk-go/v3/internal/v1;v1\302\222\264\007\006\242\214\264\007\001*\302\222\264\007\030\242\214\264\007\023!terraform-provider'
99
+ _SECRETSTOREHEALTHLISTREQUEST.fields_by_name['filter']._options = None
100
+ _SECRETSTOREHEALTHLISTREQUEST.fields_by_name['filter']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
101
+ _SECRETSTOREHEALTHLISTREQUEST._options = None
102
+ _SECRETSTOREHEALTHLISTREQUEST._serialized_options = b'\372\370\263\007\006\322\363\263\007\001*\372\370\263\007\030\322\363\263\007\023!terraform-provider'
103
+ _SECRETSTOREHEALTHLISTRESPONSE.fields_by_name['secret_store_healths']._options = None
104
+ _SECRETSTOREHEALTHLISTRESPONSE.fields_by_name['secret_store_healths']._serialized_options = b'\362\370\263\007\005\270\363\263\007\001'
105
+ _SECRETSTOREHEALTHLISTRESPONSE.fields_by_name['rate_limit']._options = None
106
+ _SECRETSTOREHEALTHLISTRESPONSE.fields_by_name['rate_limit']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001\362\370\263\007\006\262\364\263\007\001*\362\370\263\007\022\262\364\263\007\r!json_gateway'
107
+ _SECRETSTOREHEALTHLISTRESPONSE._options = None
108
+ _SECRETSTOREHEALTHLISTRESPONSE._serialized_options = b'\372\370\263\007\006\322\363\263\007\001*\372\370\263\007\030\322\363\263\007\023!terraform-provider\372\370\263\007\005\250\363\263\007\001'
109
+ _SECRETSTOREHEALTHCHECKREQUEST.fields_by_name['secret_store_id']._options = None
110
+ _SECRETSTOREHEALTHCHECKREQUEST.fields_by_name['secret_store_id']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
111
+ _SECRETSTOREHEALTHCHECKREQUEST._options = None
112
+ _SECRETSTOREHEALTHCHECKREQUEST._serialized_options = b'\372\370\263\007\017\322\363\263\007\ngo_private'
113
+ _SECRETSTOREHEALTHCHECKREQUEST.fields_by_name['secret_store_id']._options = None
114
+ _SECRETSTOREHEALTHCHECKREQUEST.fields_by_name['secret_store_id']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
115
+ _SECRETSTOREHEALTHCHECKREQUEST._options = None
116
+ _SECRETSTOREHEALTHCHECKREQUEST._serialized_options = b'\372\370\263\007\006\322\363\263\007\001*\372\370\263\007\030\322\363\263\007\023!terraform-provider'
117
+ _SECRETSTOREHEALTHCHECKRESPONSE.fields_by_name['rate_limit']._options = None
118
+ _SECRETSTOREHEALTHCHECKRESPONSE.fields_by_name['rate_limit']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001\362\370\263\007\006\262\364\263\007\001*\362\370\263\007\022\262\364\263\007\r!json_gateway'
119
+ _SECRETSTOREHEALTHCHECKRESPONSE._options = None
120
+ _SECRETSTOREHEALTHCHECKRESPONSE._serialized_options = b'\372\370\263\007\017\322\363\263\007\ngo_private\372\370\263\007\005\250\363\263\007\001'
121
+ _SECRETSTOREHEALTHCHECKRESPONSE.fields_by_name['rate_limit']._options = None
122
+ _SECRETSTOREHEALTHCHECKRESPONSE.fields_by_name['rate_limit']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001\362\370\263\007\006\262\364\263\007\001*\362\370\263\007\022\262\364\263\007\r!json_gateway'
123
+ _SECRETSTOREHEALTHCHECKRESPONSE._options = None
124
+ _SECRETSTOREHEALTHCHECKRESPONSE._serialized_options = b'\372\370\263\007\006\322\363\263\007\001*\372\370\263\007\030\322\363\263\007\023!terraform-provider\372\370\263\007\005\250\363\263\007\001'
125
+ _SECRETSTOREHEALTH.fields_by_name['secret_store_id']._options = None
126
+ _SECRETSTOREHEALTH.fields_by_name['secret_store_id']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
127
+ _SECRETSTOREHEALTH.fields_by_name['node_id']._options = None
128
+ _SECRETSTOREHEALTH.fields_by_name['node_id']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
129
+ _SECRETSTOREHEALTH.fields_by_name['status']._options = None
130
+ _SECRETSTOREHEALTH.fields_by_name['status']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
131
+ _SECRETSTOREHEALTH.fields_by_name['changed_at']._options = None
132
+ _SECRETSTOREHEALTH.fields_by_name['changed_at']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
133
+ _SECRETSTOREHEALTH.fields_by_name['checked_at']._options = None
134
+ _SECRETSTOREHEALTH.fields_by_name['checked_at']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
135
+ _SECRETSTOREHEALTH.fields_by_name['error']._options = None
136
+ _SECRETSTOREHEALTH.fields_by_name['error']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
137
+ _SECRETSTOREHEALTH.fields_by_name['reachability']._options = None
138
+ _SECRETSTOREHEALTH.fields_by_name['reachability']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
139
+ _SECRETSTOREHEALTH.fields_by_name['flags']._options = None
140
+ _SECRETSTOREHEALTH.fields_by_name['flags']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
141
+ _SECRETSTOREHEALTH._options = None
142
+ _SECRETSTOREHEALTH._serialized_options = b'\372\370\263\007\006\322\363\263\007\001*\372\370\263\007\030\322\363\263\007\023!terraform-provider\372\370\263\007\005\250\363\263\007\001'
143
+ _SECRETSTOREHEALTHS._options = None
144
+ _SECRETSTOREHEALTHS._serialized_options = b'\312\371\263\007\026\302\371\263\007\021SecretStoreHealth\312\371\263\007\007\322\371\263\007\002x-\312\371\263\007\005\330\371\263\007\001\312\371\263\007\006\312\371\263\007\001*\312\371\263\007\030\312\371\263\007\023!terraform-provider'
145
+ _SECRETSTOREHEALTHS.methods_by_name['List']._options = None
146
+ _SECRETSTOREHEALTHS.methods_by_name['List']._serialized_options = b'\202\371\263\007\010\242\363\263\007\003get\202\371\263\007\035\252\363\263\007\030/v1/secret-store-healths'
147
+ _SECRETSTOREHEALTHS.methods_by_name['Check']._options = None
148
+ _SECRETSTOREHEALTHS.methods_by_name['Check']._serialized_options = b'\202\371\263\007\t\242\363\263\007\004post\202\371\263\007\035\252\363\263\007\030/v1/secret-store-healths\202\371\263\007\017\312\371\263\007\ngo_private'
149
+ _SECRETSTOREHEALTHS.methods_by_name['Healthcheck']._options = None
150
+ _SECRETSTOREHEALTHS.methods_by_name['Healthcheck']._serialized_options = b'\202\371\263\007\t\242\363\263\007\004post\202\371\263\007\035\252\363\263\007\030/v1/secret-store-healths'
151
+ _SECRETSTOREHEALTHLISTREQUEST._serialized_start=95
152
+ _SECRETSTOREHEALTHLISTREQUEST._serialized_end=234
153
+ _SECRETSTOREHEALTHLISTRESPONSE._serialized_start=237
154
+ _SECRETSTOREHEALTHLISTRESPONSE._serialized_end=514
155
+ _SECRETSTOREHEALTHCHECKREQUEST._serialized_start=517
156
+ _SECRETSTOREHEALTHCHECKREQUEST._serialized_end=648
157
+ _SECRETSTOREHEALTHCHECKREQUEST._serialized_start=651
158
+ _SECRETSTOREHEALTHCHECKREQUEST._serialized_end=802
159
+ _SECRETSTOREHEALTHCHECKRESPONSE._serialized_start=805
160
+ _SECRETSTOREHEALTHCHECKRESPONSE._serialized_end=1000
161
+ _SECRETSTOREHEALTHCHECKRESPONSE._serialized_start=1003
162
+ _SECRETSTOREHEALTHCHECKRESPONSE._serialized_end=1218
163
+ _SECRETSTOREHEALTH._serialized_start=1221
164
+ _SECRETSTOREHEALTH._serialized_end=1600
165
+ _SECRETSTOREHEALTHS._serialized_start=1603
166
+ _SECRETSTOREHEALTHS._serialized_end=2128
167
+ # @@protoc_insertion_point(module_scope)
@@ -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 *
@@ -1794,27 +1796,6 @@ class PeeringGroupNodes:
1794
1796
  return generator(self, req)
1795
1797
 
1796
1798
 
1797
- class SnapshotPeeringGroupNodes:
1798
- '''
1799
- SnapshotPeeringGroupNodes exposes the read only methods of the PeeringGroupNodes
1800
- service for historical queries.
1801
- '''
1802
- def __init__(self, peering_group_nodes):
1803
- self.peering_group_nodes = peering_group_nodes
1804
-
1805
- def get(self, id, timeout=None):
1806
- '''
1807
- Get reads the information of one peering group to node attachment.
1808
- '''
1809
- return self.peering_group_nodes.get(id, timeout=timeout)
1810
-
1811
- def list(self, filter, *args, timeout=None):
1812
- '''
1813
- List gets a list of peering group node attachments.
1814
- '''
1815
- return self.peering_group_nodes.list(filter, *args, timeout=timeout)
1816
-
1817
-
1818
1799
  class PeeringGroupPeers:
1819
1800
  '''
1820
1801
  PeeringGroupPeers provides the building blocks necessary to link two peering groups.
@@ -1966,27 +1947,6 @@ class PeeringGroupPeers:
1966
1947
  return generator(self, req)
1967
1948
 
1968
1949
 
1969
- class SnapshotPeeringGroupPeers:
1970
- '''
1971
- SnapshotPeeringGroupPeers exposes the read only methods of the PeeringGroupPeers
1972
- service for historical queries.
1973
- '''
1974
- def __init__(self, peering_group_peers):
1975
- self.peering_group_peers = peering_group_peers
1976
-
1977
- def get(self, id, timeout=None):
1978
- '''
1979
- Get reads the information of one peering group link.
1980
- '''
1981
- return self.peering_group_peers.get(id, timeout=timeout)
1982
-
1983
- def list(self, filter, *args, timeout=None):
1984
- '''
1985
- List gets a list of peering group links.
1986
- '''
1987
- return self.peering_group_peers.list(filter, *args, timeout=timeout)
1988
-
1989
-
1990
1950
  class PeeringGroupResources:
1991
1951
  '''
1992
1952
  PeeringGroupResources provides the building blocks necessary to obtain attach a resource to a peering group.
@@ -2138,29 +2098,6 @@ class PeeringGroupResources:
2138
2098
  return generator(self, req)
2139
2099
 
2140
2100
 
2141
- class SnapshotPeeringGroupResources:
2142
- '''
2143
- SnapshotPeeringGroupResources exposes the read only methods of the PeeringGroupResources
2144
- service for historical queries.
2145
- '''
2146
- def __init__(self, peering_group_resources):
2147
- self.peering_group_resources = peering_group_resources
2148
-
2149
- def get(self, id, timeout=None):
2150
- '''
2151
- Get reads the information of one peering group to resource attachment.
2152
- '''
2153
- return self.peering_group_resources.get(id, timeout=timeout)
2154
-
2155
- def list(self, filter, *args, timeout=None):
2156
- '''
2157
- List gets a list of peering group resource attachments.
2158
- '''
2159
- return self.peering_group_resources.list(filter,
2160
- *args,
2161
- timeout=timeout)
2162
-
2163
-
2164
2101
  class PeeringGroups:
2165
2102
  '''
2166
2103
  PeeringGroups provides the building blocks necessary to obtain explicit network topology and routing.
@@ -2311,27 +2248,6 @@ class PeeringGroups:
2311
2248
  return generator(self, req)
2312
2249
 
2313
2250
 
2314
- class SnapshotPeeringGroups:
2315
- '''
2316
- SnapshotPeeringGroups exposes the read only methods of the PeeringGroups
2317
- service for historical queries.
2318
- '''
2319
- def __init__(self, peering_groups):
2320
- self.peering_groups = peering_groups
2321
-
2322
- def get(self, id, timeout=None):
2323
- '''
2324
- Get reads one PeeringGroup by ID. It will load all its dependencies.
2325
- '''
2326
- return self.peering_groups.get(id, timeout=timeout)
2327
-
2328
- def list(self, filter, *args, timeout=None):
2329
- '''
2330
- List gets a list of Peering Groups.
2331
- '''
2332
- return self.peering_groups.list(filter, *args, timeout=timeout)
2333
-
2334
-
2335
2251
  class Queries:
2336
2252
  '''
2337
2253
  A Query is a record of a single client request to a resource, such as a SQL query.
@@ -3596,6 +3512,85 @@ class RolesHistory:
3596
3512
  return generator(self, req)
3597
3513
 
3598
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
+
3599
3594
  class SecretStores:
3600
3595
  '''
3601
3596
  SecretStores are servers where resource secrets (passwords, keys) are stored.