strongdm 11.8.0__zip → 11.10.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 (141) hide show
  1. {strongdm-11.8.0 → strongdm-11.10.0}/PKG-INFO +2 -2
  2. {strongdm-11.8.0 → strongdm-11.10.0}/setup.py +2 -2
  3. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/accounts_pb2.py +10 -8
  4. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/client.py +7 -7
  5. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/constants.py +22 -0
  6. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/drivers_pb2.py +428 -172
  7. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/models.py +319 -0
  8. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/plumbing.py +152 -1
  9. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/spec_pb2.py +4 -2
  10. strongdm-11.10.0/strongdm/spec_pb2_grpc.py +18 -0
  11. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/svc.py +83 -81
  12. strongdm-11.10.0/strongdm/tags_pb2_grpc.py +18 -0
  13. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm.egg-info/PKG-INFO +2 -2
  14. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm.egg-info/SOURCES.txt +2 -0
  15. {strongdm-11.8.0 → strongdm-11.10.0}/LICENSE +0 -0
  16. {strongdm-11.8.0 → strongdm-11.10.0}/README.md +0 -0
  17. {strongdm-11.8.0 → strongdm-11.10.0}/setup.cfg +0 -0
  18. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/__init__.py +0 -0
  19. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/access_request_events_history_pb2.py +0 -0
  20. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/access_request_events_history_pb2_grpc.py +0 -0
  21. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/access_requests_history_pb2.py +0 -0
  22. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/access_requests_history_pb2_grpc.py +0 -0
  23. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/access_requests_pb2.py +0 -0
  24. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/access_requests_pb2_grpc.py +0 -0
  25. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/account_attachments_history_pb2.py +0 -0
  26. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/account_attachments_history_pb2_grpc.py +0 -0
  27. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/account_attachments_pb2.py +0 -0
  28. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/account_attachments_pb2_grpc.py +0 -0
  29. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/account_grants_history_pb2.py +0 -0
  30. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/account_grants_history_pb2_grpc.py +0 -0
  31. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/account_grants_pb2.py +0 -0
  32. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/account_grants_pb2_grpc.py +0 -0
  33. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/account_permissions_pb2.py +0 -0
  34. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/account_permissions_pb2_grpc.py +0 -0
  35. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/account_resources_history_pb2.py +0 -0
  36. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/account_resources_history_pb2_grpc.py +0 -0
  37. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/account_resources_pb2.py +0 -0
  38. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/account_resources_pb2_grpc.py +0 -0
  39. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/accounts_history_pb2.py +0 -0
  40. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/accounts_history_pb2_grpc.py +0 -0
  41. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/accounts_pb2_grpc.py +0 -0
  42. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/activities_pb2.py +0 -0
  43. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/activities_pb2_grpc.py +0 -0
  44. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/approval_workflow_approvers_history_pb2.py +0 -0
  45. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/approval_workflow_approvers_history_pb2_grpc.py +0 -0
  46. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/approval_workflow_approvers_pb2.py +0 -0
  47. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/approval_workflow_approvers_pb2_grpc.py +0 -0
  48. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/approval_workflow_steps_history_pb2.py +0 -0
  49. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/approval_workflow_steps_history_pb2_grpc.py +0 -0
  50. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/approval_workflow_steps_pb2.py +0 -0
  51. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/approval_workflow_steps_pb2_grpc.py +0 -0
  52. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/approval_workflows_history_pb2.py +0 -0
  53. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/approval_workflows_history_pb2_grpc.py +0 -0
  54. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/approval_workflows_pb2.py +0 -0
  55. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/approval_workflows_pb2_grpc.py +0 -0
  56. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/control_panel_pb2.py +0 -0
  57. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/control_panel_pb2_grpc.py +0 -0
  58. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/drivers_pb2_grpc.py +0 -0
  59. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/errors.py +0 -0
  60. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/identity_aliases_history_pb2.py +0 -0
  61. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/identity_aliases_history_pb2_grpc.py +0 -0
  62. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/identity_aliases_pb2.py +0 -0
  63. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/identity_aliases_pb2_grpc.py +0 -0
  64. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/identity_sets_history_pb2.py +0 -0
  65. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/identity_sets_history_pb2_grpc.py +0 -0
  66. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/identity_sets_pb2.py +0 -0
  67. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/identity_sets_pb2_grpc.py +0 -0
  68. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/nodes_history_pb2.py +0 -0
  69. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/nodes_history_pb2_grpc.py +0 -0
  70. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/nodes_pb2.py +0 -0
  71. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/nodes_pb2_grpc.py +0 -0
  72. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/options_pb2.py +0 -0
  73. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/options_pb2_grpc.py +0 -0
  74. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/organization_history_pb2.py +0 -0
  75. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/organization_history_pb2_grpc.py +0 -0
  76. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/peering_group_nodes_pb2.py +0 -0
  77. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/peering_group_nodes_pb2_grpc.py +0 -0
  78. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/peering_group_peers_pb2.py +0 -0
  79. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/peering_group_peers_pb2_grpc.py +0 -0
  80. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/peering_group_resources_pb2.py +0 -0
  81. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/peering_group_resources_pb2_grpc.py +0 -0
  82. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/peering_groups_pb2.py +0 -0
  83. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/peering_groups_pb2_grpc.py +0 -0
  84. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/policies_history_pb2.py +0 -0
  85. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/policies_history_pb2_grpc.py +0 -0
  86. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/policies_pb2.py +0 -0
  87. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/policies_pb2_grpc.py +0 -0
  88. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/queries_pb2.py +0 -0
  89. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/queries_pb2_grpc.py +0 -0
  90. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/remote_identities_history_pb2.py +0 -0
  91. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/remote_identities_history_pb2_grpc.py +0 -0
  92. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/remote_identities_pb2.py +0 -0
  93. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/remote_identities_pb2_grpc.py +0 -0
  94. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/remote_identity_groups_history_pb2.py +0 -0
  95. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/remote_identity_groups_history_pb2_grpc.py +0 -0
  96. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/remote_identity_groups_pb2.py +0 -0
  97. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/remote_identity_groups_pb2_grpc.py +0 -0
  98. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/replays_pb2.py +0 -0
  99. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/replays_pb2_grpc.py +0 -0
  100. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/resources_history_pb2.py +0 -0
  101. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/resources_history_pb2_grpc.py +0 -0
  102. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/resources_pb2.py +0 -0
  103. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/resources_pb2_grpc.py +0 -0
  104. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/role_resources_history_pb2.py +0 -0
  105. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/role_resources_history_pb2_grpc.py +0 -0
  106. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/role_resources_pb2.py +0 -0
  107. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/role_resources_pb2_grpc.py +0 -0
  108. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/roles_history_pb2.py +0 -0
  109. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/roles_history_pb2_grpc.py +0 -0
  110. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/roles_pb2.py +0 -0
  111. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/roles_pb2_grpc.py +0 -0
  112. /strongdm-11.8.0/strongdm/secret_store_types_pb2_grpc.py → /strongdm-11.10.0/strongdm/secret_engine_policy_pb2_grpc.py +0 -0
  113. /strongdm-11.8.0/strongdm/spec_pb2_grpc.py → /strongdm-11.10.0/strongdm/secret_engine_types_pb2_grpc.py +0 -0
  114. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/secret_store_healths_pb2.py +0 -0
  115. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/secret_store_healths_pb2_grpc.py +0 -0
  116. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/secret_store_types_pb2.py +0 -0
  117. /strongdm-11.8.0/strongdm/tags_pb2_grpc.py → /strongdm-11.10.0/strongdm/secret_store_types_pb2_grpc.py +0 -0
  118. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/secret_stores_history_pb2.py +0 -0
  119. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/secret_stores_history_pb2_grpc.py +0 -0
  120. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/secret_stores_pb2.py +0 -0
  121. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/secret_stores_pb2_grpc.py +0 -0
  122. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/tags_pb2.py +0 -0
  123. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/workflow_approvers_history_pb2.py +0 -0
  124. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/workflow_approvers_history_pb2_grpc.py +0 -0
  125. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/workflow_approvers_pb2.py +0 -0
  126. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/workflow_approvers_pb2_grpc.py +0 -0
  127. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/workflow_assignments_history_pb2.py +0 -0
  128. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/workflow_assignments_history_pb2_grpc.py +0 -0
  129. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/workflow_assignments_pb2.py +0 -0
  130. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/workflow_assignments_pb2_grpc.py +0 -0
  131. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/workflow_roles_history_pb2.py +0 -0
  132. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/workflow_roles_history_pb2_grpc.py +0 -0
  133. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/workflow_roles_pb2.py +0 -0
  134. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/workflow_roles_pb2_grpc.py +0 -0
  135. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/workflows_history_pb2.py +0 -0
  136. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/workflows_history_pb2_grpc.py +0 -0
  137. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/workflows_pb2.py +0 -0
  138. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm/workflows_pb2_grpc.py +0 -0
  139. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm.egg-info/dependency_links.txt +0 -0
  140. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm.egg-info/requires.txt +0 -0
  141. {strongdm-11.8.0 → strongdm-11.10.0}/strongdm.egg-info/top_level.txt +0 -0
@@ -7787,6 +7787,293 @@ class ControlPanelVerifyJWTResponse:
7787
7787
  )
7788
7788
 
7789
7789
 
7790
+ class CouchbaseDatabase:
7791
+ __slots__ = [
7792
+ 'bind_interface',
7793
+ 'egress_filter',
7794
+ 'healthy',
7795
+ 'hostname',
7796
+ 'id',
7797
+ 'n1ql_port',
7798
+ 'name',
7799
+ 'password',
7800
+ 'port',
7801
+ 'port_override',
7802
+ 'secret_store_id',
7803
+ 'subdomain',
7804
+ 'tags',
7805
+ 'tls_required',
7806
+ 'username',
7807
+ ]
7808
+
7809
+ def __init__(
7810
+ self,
7811
+ bind_interface=None,
7812
+ egress_filter=None,
7813
+ healthy=None,
7814
+ hostname=None,
7815
+ id=None,
7816
+ n1ql_port=None,
7817
+ name=None,
7818
+ password=None,
7819
+ port=None,
7820
+ port_override=None,
7821
+ secret_store_id=None,
7822
+ subdomain=None,
7823
+ tags=None,
7824
+ tls_required=None,
7825
+ username=None,
7826
+ ):
7827
+ self.bind_interface = bind_interface if bind_interface is not None else ''
7828
+ '''
7829
+ The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided.
7830
+ '''
7831
+ self.egress_filter = egress_filter if egress_filter is not None else ''
7832
+ '''
7833
+ A filter applied to the routing logic to pin datasource to nodes.
7834
+ '''
7835
+ self.healthy = healthy if healthy is not None else False
7836
+ '''
7837
+ True if the datasource is reachable and the credentials are valid.
7838
+ '''
7839
+ self.hostname = hostname if hostname is not None else ''
7840
+ '''
7841
+ The host to dial to initiate a connection from the egress node to this resource.
7842
+ '''
7843
+ self.id = id if id is not None else ''
7844
+ '''
7845
+ Unique identifier of the Resource.
7846
+ '''
7847
+ self.n1ql_port = n1ql_port if n1ql_port is not None else 0
7848
+ '''
7849
+ The port number for N1QL queries. Default HTTP is 8093. Default HTTPS is 18093.
7850
+ '''
7851
+ self.name = name if name is not None else ''
7852
+ '''
7853
+ Unique human-readable name of the Resource.
7854
+ '''
7855
+ self.password = password if password is not None else ''
7856
+ '''
7857
+ The password to authenticate with.
7858
+ '''
7859
+ self.port = port if port is not None else 0
7860
+ '''
7861
+ The port to dial to initiate a connection from the egress node to this resource.
7862
+ '''
7863
+ self.port_override = port_override if port_override is not None else 0
7864
+ '''
7865
+ The local port used by clients to connect to this resource.
7866
+ '''
7867
+ self.secret_store_id = secret_store_id if secret_store_id is not None else ''
7868
+ '''
7869
+ ID of the secret store containing credentials for this resource, if any.
7870
+ '''
7871
+ self.subdomain = subdomain if subdomain is not None else ''
7872
+ '''
7873
+ Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
7874
+ '''
7875
+ self.tags = tags if tags is not None else _porcelain_zero_value_tags()
7876
+ '''
7877
+ Tags is a map of key, value pairs.
7878
+ '''
7879
+ self.tls_required = tls_required if tls_required is not None else False
7880
+ '''
7881
+ If set, TLS must be used to connect to this resource.
7882
+ '''
7883
+ self.username = username if username is not None else ''
7884
+ '''
7885
+ The username to authenticate with.
7886
+ '''
7887
+
7888
+ def __repr__(self):
7889
+ return '<sdm.CouchbaseDatabase ' + \
7890
+ 'bind_interface: ' + repr(self.bind_interface) + ' ' +\
7891
+ 'egress_filter: ' + repr(self.egress_filter) + ' ' +\
7892
+ 'healthy: ' + repr(self.healthy) + ' ' +\
7893
+ 'hostname: ' + repr(self.hostname) + ' ' +\
7894
+ 'id: ' + repr(self.id) + ' ' +\
7895
+ 'n1ql_port: ' + repr(self.n1ql_port) + ' ' +\
7896
+ 'name: ' + repr(self.name) + ' ' +\
7897
+ 'password: ' + repr(self.password) + ' ' +\
7898
+ 'port: ' + repr(self.port) + ' ' +\
7899
+ 'port_override: ' + repr(self.port_override) + ' ' +\
7900
+ 'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
7901
+ 'subdomain: ' + repr(self.subdomain) + ' ' +\
7902
+ 'tags: ' + repr(self.tags) + ' ' +\
7903
+ 'tls_required: ' + repr(self.tls_required) + ' ' +\
7904
+ 'username: ' + repr(self.username) + ' ' +\
7905
+ '>'
7906
+
7907
+ def to_dict(self):
7908
+ return {
7909
+ 'bind_interface': self.bind_interface,
7910
+ 'egress_filter': self.egress_filter,
7911
+ 'healthy': self.healthy,
7912
+ 'hostname': self.hostname,
7913
+ 'id': self.id,
7914
+ 'n1ql_port': self.n1ql_port,
7915
+ 'name': self.name,
7916
+ 'password': self.password,
7917
+ 'port': self.port,
7918
+ 'port_override': self.port_override,
7919
+ 'secret_store_id': self.secret_store_id,
7920
+ 'subdomain': self.subdomain,
7921
+ 'tags': self.tags,
7922
+ 'tls_required': self.tls_required,
7923
+ 'username': self.username,
7924
+ }
7925
+
7926
+ @classmethod
7927
+ def from_dict(cls, d):
7928
+ return cls(
7929
+ bind_interface=d.get('bind_interface'),
7930
+ egress_filter=d.get('egress_filter'),
7931
+ healthy=d.get('healthy'),
7932
+ hostname=d.get('hostname'),
7933
+ id=d.get('id'),
7934
+ n1ql_port=d.get('n1ql_port'),
7935
+ name=d.get('name'),
7936
+ password=d.get('password'),
7937
+ port=d.get('port'),
7938
+ port_override=d.get('port_override'),
7939
+ secret_store_id=d.get('secret_store_id'),
7940
+ subdomain=d.get('subdomain'),
7941
+ tags=d.get('tags'),
7942
+ tls_required=d.get('tls_required'),
7943
+ username=d.get('username'),
7944
+ )
7945
+
7946
+
7947
+ class CouchbaseWebUI:
7948
+ __slots__ = [
7949
+ 'bind_interface',
7950
+ 'egress_filter',
7951
+ 'healthy',
7952
+ 'id',
7953
+ 'name',
7954
+ 'password',
7955
+ 'port_override',
7956
+ 'secret_store_id',
7957
+ 'subdomain',
7958
+ 'tags',
7959
+ 'url',
7960
+ 'username',
7961
+ ]
7962
+
7963
+ def __init__(
7964
+ self,
7965
+ bind_interface=None,
7966
+ egress_filter=None,
7967
+ healthy=None,
7968
+ id=None,
7969
+ name=None,
7970
+ password=None,
7971
+ port_override=None,
7972
+ secret_store_id=None,
7973
+ subdomain=None,
7974
+ tags=None,
7975
+ url=None,
7976
+ username=None,
7977
+ ):
7978
+ self.bind_interface = bind_interface if bind_interface is not None else ''
7979
+ '''
7980
+ The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided.
7981
+ '''
7982
+ self.egress_filter = egress_filter if egress_filter is not None else ''
7983
+ '''
7984
+ A filter applied to the routing logic to pin datasource to nodes.
7985
+ '''
7986
+ self.healthy = healthy if healthy is not None else False
7987
+ '''
7988
+ True if the datasource is reachable and the credentials are valid.
7989
+ '''
7990
+ self.id = id if id is not None else ''
7991
+ '''
7992
+ Unique identifier of the Resource.
7993
+ '''
7994
+ self.name = name if name is not None else ''
7995
+ '''
7996
+ Unique human-readable name of the Resource.
7997
+ '''
7998
+ self.password = password if password is not None else ''
7999
+ '''
8000
+ The password to authenticate with.
8001
+ '''
8002
+ self.port_override = port_override if port_override is not None else 0
8003
+ '''
8004
+ The local port used by clients to connect to this resource.
8005
+ '''
8006
+ self.secret_store_id = secret_store_id if secret_store_id is not None else ''
8007
+ '''
8008
+ ID of the secret store containing credentials for this resource, if any.
8009
+ '''
8010
+ self.subdomain = subdomain if subdomain is not None else ''
8011
+ '''
8012
+ Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
8013
+ '''
8014
+ self.tags = tags if tags is not None else _porcelain_zero_value_tags()
8015
+ '''
8016
+ Tags is a map of key, value pairs.
8017
+ '''
8018
+ self.url = url if url is not None else ''
8019
+ '''
8020
+ The base address of your website without the path.
8021
+ '''
8022
+ self.username = username if username is not None else ''
8023
+ '''
8024
+ The username to authenticate with.
8025
+ '''
8026
+
8027
+ def __repr__(self):
8028
+ return '<sdm.CouchbaseWebUI ' + \
8029
+ 'bind_interface: ' + repr(self.bind_interface) + ' ' +\
8030
+ 'egress_filter: ' + repr(self.egress_filter) + ' ' +\
8031
+ 'healthy: ' + repr(self.healthy) + ' ' +\
8032
+ 'id: ' + repr(self.id) + ' ' +\
8033
+ 'name: ' + repr(self.name) + ' ' +\
8034
+ 'password: ' + repr(self.password) + ' ' +\
8035
+ 'port_override: ' + repr(self.port_override) + ' ' +\
8036
+ 'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
8037
+ 'subdomain: ' + repr(self.subdomain) + ' ' +\
8038
+ 'tags: ' + repr(self.tags) + ' ' +\
8039
+ 'url: ' + repr(self.url) + ' ' +\
8040
+ 'username: ' + repr(self.username) + ' ' +\
8041
+ '>'
8042
+
8043
+ def to_dict(self):
8044
+ return {
8045
+ 'bind_interface': self.bind_interface,
8046
+ 'egress_filter': self.egress_filter,
8047
+ 'healthy': self.healthy,
8048
+ 'id': self.id,
8049
+ 'name': self.name,
8050
+ 'password': self.password,
8051
+ 'port_override': self.port_override,
8052
+ 'secret_store_id': self.secret_store_id,
8053
+ 'subdomain': self.subdomain,
8054
+ 'tags': self.tags,
8055
+ 'url': self.url,
8056
+ 'username': self.username,
8057
+ }
8058
+
8059
+ @classmethod
8060
+ def from_dict(cls, d):
8061
+ return cls(
8062
+ bind_interface=d.get('bind_interface'),
8063
+ egress_filter=d.get('egress_filter'),
8064
+ healthy=d.get('healthy'),
8065
+ id=d.get('id'),
8066
+ name=d.get('name'),
8067
+ password=d.get('password'),
8068
+ port_override=d.get('port_override'),
8069
+ secret_store_id=d.get('secret_store_id'),
8070
+ subdomain=d.get('subdomain'),
8071
+ tags=d.get('tags'),
8072
+ url=d.get('url'),
8073
+ username=d.get('username'),
8074
+ )
8075
+
8076
+
7790
8077
  class CreateResponseMetadata:
7791
8078
  '''
7792
8079
  CreateResponseMetadata is reserved for future use.
@@ -9681,6 +9968,28 @@ class Gateway:
9681
9968
  )
9682
9969
 
9683
9970
 
9971
+ class GenericResponseMetadata:
9972
+ '''
9973
+ GenericResponseMetadata contains common headers for generic request
9974
+ responses.
9975
+ '''
9976
+ __slots__ = []
9977
+
9978
+ def __init__(self, ):
9979
+ pass
9980
+
9981
+ def __repr__(self):
9982
+ return '<sdm.GenericResponseMetadata ' + \
9983
+ '>'
9984
+
9985
+ def to_dict(self):
9986
+ return {}
9987
+
9988
+ @classmethod
9989
+ def from_dict(cls, d):
9990
+ return cls()
9991
+
9992
+
9684
9993
  class GetResponseMetadata:
9685
9994
  '''
9686
9995
  GetResponseMetadata is reserved for future use.
@@ -22785,6 +23094,7 @@ class User:
22785
23094
  'id',
22786
23095
  'last_name',
22787
23096
  'managed_by',
23097
+ 'password',
22788
23098
  'permission_level',
22789
23099
  'suspended',
22790
23100
  'tags',
@@ -22798,6 +23108,7 @@ class User:
22798
23108
  id=None,
22799
23109
  last_name=None,
22800
23110
  managed_by=None,
23111
+ password=None,
22801
23112
  permission_level=None,
22802
23113
  suspended=None,
22803
23114
  tags=None,
@@ -22826,6 +23137,11 @@ class User:
22826
23137
  '''
22827
23138
  Managed By is a read only field for what service manages this user, e.g. StrongDM, Okta, Azure.
22828
23139
  '''
23140
+ self.password = password if password is not None else ''
23141
+ '''
23142
+ Password is a write-only field that can be used to set the user's password.
23143
+ Currently only supported for update.
23144
+ '''
22829
23145
  self.permission_level = permission_level if permission_level is not None else ''
22830
23146
  '''
22831
23147
  PermissionLevel is the user's permission level e.g. admin, DBA, user.
@@ -22847,6 +23163,7 @@ class User:
22847
23163
  'id: ' + repr(self.id) + ' ' +\
22848
23164
  'last_name: ' + repr(self.last_name) + ' ' +\
22849
23165
  'managed_by: ' + repr(self.managed_by) + ' ' +\
23166
+ 'password: ' + repr(self.password) + ' ' +\
22850
23167
  'permission_level: ' + repr(self.permission_level) + ' ' +\
22851
23168
  'suspended: ' + repr(self.suspended) + ' ' +\
22852
23169
  'tags: ' + repr(self.tags) + ' ' +\
@@ -22860,6 +23177,7 @@ class User:
22860
23177
  'id': self.id,
22861
23178
  'last_name': self.last_name,
22862
23179
  'managed_by': self.managed_by,
23180
+ 'password': self.password,
22863
23181
  'permission_level': self.permission_level,
22864
23182
  'suspended': self.suspended,
22865
23183
  'tags': self.tags,
@@ -22874,6 +23192,7 @@ class User:
22874
23192
  id=d.get('id'),
22875
23193
  last_name=d.get('last_name'),
22876
23194
  managed_by=d.get('managed_by'),
23195
+ password=d.get('password'),
22877
23196
  permission_level=d.get('permission_level'),
22878
23197
  suspended=d.get('suspended'),
22879
23198
  tags=d.get('tags'),
@@ -73,9 +73,9 @@ from .role_resources_pb2 import *
73
73
  from .role_resources_history_pb2 import *
74
74
  from .roles_pb2 import *
75
75
  from .roles_history_pb2 import *
76
- from .secret_store_healths_pb2 import *
77
76
  from .secret_store_types_pb2 import *
78
77
  from .secret_stores_pb2 import *
78
+ from .secret_store_healths_pb2 import *
79
79
  from .secret_stores_history_pb2 import *
80
80
  from .workflow_approvers_pb2 import *
81
81
  from .workflow_approvers_history_pb2 import *
@@ -3935,6 +3935,116 @@ def convert_repeated_control_panel_verify_jwt_response_to_porcelain(plumbings):
3935
3935
  ]
3936
3936
 
3937
3937
 
3938
+ def convert_couchbase_database_to_porcelain(plumbing):
3939
+ if plumbing is None:
3940
+ return None
3941
+ porcelain = models.CouchbaseDatabase()
3942
+ porcelain.bind_interface = (plumbing.bind_interface)
3943
+ porcelain.egress_filter = (plumbing.egress_filter)
3944
+ porcelain.healthy = (plumbing.healthy)
3945
+ porcelain.hostname = (plumbing.hostname)
3946
+ porcelain.id = (plumbing.id)
3947
+ porcelain.n1ql_port = (plumbing.n1ql_port)
3948
+ porcelain.name = (plumbing.name)
3949
+ porcelain.password = (plumbing.password)
3950
+ porcelain.port = (plumbing.port)
3951
+ porcelain.port_override = (plumbing.port_override)
3952
+ porcelain.secret_store_id = (plumbing.secret_store_id)
3953
+ porcelain.subdomain = (plumbing.subdomain)
3954
+ porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
3955
+ porcelain.tls_required = (plumbing.tls_required)
3956
+ porcelain.username = (plumbing.username)
3957
+ return porcelain
3958
+
3959
+
3960
+ def convert_couchbase_database_to_plumbing(porcelain):
3961
+ plumbing = CouchbaseDatabase()
3962
+ if porcelain is None:
3963
+ return plumbing
3964
+ plumbing.bind_interface = (porcelain.bind_interface)
3965
+ plumbing.egress_filter = (porcelain.egress_filter)
3966
+ plumbing.healthy = (porcelain.healthy)
3967
+ plumbing.hostname = (porcelain.hostname)
3968
+ plumbing.id = (porcelain.id)
3969
+ plumbing.n1ql_port = (porcelain.n1ql_port)
3970
+ plumbing.name = (porcelain.name)
3971
+ plumbing.password = (porcelain.password)
3972
+ plumbing.port = (porcelain.port)
3973
+ plumbing.port_override = (porcelain.port_override)
3974
+ plumbing.secret_store_id = (porcelain.secret_store_id)
3975
+ plumbing.subdomain = (porcelain.subdomain)
3976
+ plumbing.tags.CopyFrom(convert_tags_to_plumbing(porcelain.tags))
3977
+ plumbing.tls_required = (porcelain.tls_required)
3978
+ plumbing.username = (porcelain.username)
3979
+ return plumbing
3980
+
3981
+
3982
+ def convert_repeated_couchbase_database_to_plumbing(porcelains):
3983
+ return [
3984
+ convert_couchbase_database_to_plumbing(porcelain)
3985
+ for porcelain in porcelains
3986
+ ]
3987
+
3988
+
3989
+ def convert_repeated_couchbase_database_to_porcelain(plumbings):
3990
+ return [
3991
+ convert_couchbase_database_to_porcelain(plumbing)
3992
+ for plumbing in plumbings
3993
+ ]
3994
+
3995
+
3996
+ def convert_couchbase_web_ui_to_porcelain(plumbing):
3997
+ if plumbing is None:
3998
+ return None
3999
+ porcelain = models.CouchbaseWebUI()
4000
+ porcelain.bind_interface = (plumbing.bind_interface)
4001
+ porcelain.egress_filter = (plumbing.egress_filter)
4002
+ porcelain.healthy = (plumbing.healthy)
4003
+ porcelain.id = (plumbing.id)
4004
+ porcelain.name = (plumbing.name)
4005
+ porcelain.password = (plumbing.password)
4006
+ porcelain.port_override = (plumbing.port_override)
4007
+ porcelain.secret_store_id = (plumbing.secret_store_id)
4008
+ porcelain.subdomain = (plumbing.subdomain)
4009
+ porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
4010
+ porcelain.url = (plumbing.url)
4011
+ porcelain.username = (plumbing.username)
4012
+ return porcelain
4013
+
4014
+
4015
+ def convert_couchbase_web_ui_to_plumbing(porcelain):
4016
+ plumbing = CouchbaseWebUI()
4017
+ if porcelain is None:
4018
+ return plumbing
4019
+ plumbing.bind_interface = (porcelain.bind_interface)
4020
+ plumbing.egress_filter = (porcelain.egress_filter)
4021
+ plumbing.healthy = (porcelain.healthy)
4022
+ plumbing.id = (porcelain.id)
4023
+ plumbing.name = (porcelain.name)
4024
+ plumbing.password = (porcelain.password)
4025
+ plumbing.port_override = (porcelain.port_override)
4026
+ plumbing.secret_store_id = (porcelain.secret_store_id)
4027
+ plumbing.subdomain = (porcelain.subdomain)
4028
+ plumbing.tags.CopyFrom(convert_tags_to_plumbing(porcelain.tags))
4029
+ plumbing.url = (porcelain.url)
4030
+ plumbing.username = (porcelain.username)
4031
+ return plumbing
4032
+
4033
+
4034
+ def convert_repeated_couchbase_web_ui_to_plumbing(porcelains):
4035
+ return [
4036
+ convert_couchbase_web_ui_to_plumbing(porcelain)
4037
+ for porcelain in porcelains
4038
+ ]
4039
+
4040
+
4041
+ def convert_repeated_couchbase_web_ui_to_porcelain(plumbings):
4042
+ return [
4043
+ convert_couchbase_web_ui_to_porcelain(plumbing)
4044
+ for plumbing in plumbings
4045
+ ]
4046
+
4047
+
3938
4048
  def convert_create_response_metadata_to_porcelain(plumbing):
3939
4049
  if plumbing is None:
3940
4050
  return None
@@ -4728,6 +4838,34 @@ def convert_repeated_gateway_to_porcelain(plumbings):
4728
4838
  return [convert_gateway_to_porcelain(plumbing) for plumbing in plumbings]
4729
4839
 
4730
4840
 
4841
+ def convert_generic_response_metadata_to_porcelain(plumbing):
4842
+ if plumbing is None:
4843
+ return None
4844
+ porcelain = models.GenericResponseMetadata()
4845
+ return porcelain
4846
+
4847
+
4848
+ def convert_generic_response_metadata_to_plumbing(porcelain):
4849
+ plumbing = GenericResponseMetadata()
4850
+ if porcelain is None:
4851
+ return plumbing
4852
+ return plumbing
4853
+
4854
+
4855
+ def convert_repeated_generic_response_metadata_to_plumbing(porcelains):
4856
+ return [
4857
+ convert_generic_response_metadata_to_plumbing(porcelain)
4858
+ for porcelain in porcelains
4859
+ ]
4860
+
4861
+
4862
+ def convert_repeated_generic_response_metadata_to_porcelain(plumbings):
4863
+ return [
4864
+ convert_generic_response_metadata_to_porcelain(plumbing)
4865
+ for plumbing in plumbings
4866
+ ]
4867
+
4868
+
4731
4869
  def convert_get_response_metadata_to_porcelain(plumbing):
4732
4870
  if plumbing is None:
4733
4871
  return None
@@ -9222,6 +9360,12 @@ def convert_resource_to_plumbing(porcelain):
9222
9360
  plumbing.clustrix.CopyFrom(convert_clustrix_to_plumbing(porcelain))
9223
9361
  if isinstance(porcelain, models.Cockroach):
9224
9362
  plumbing.cockroach.CopyFrom(convert_cockroach_to_plumbing(porcelain))
9363
+ if isinstance(porcelain, models.CouchbaseDatabase):
9364
+ plumbing.couchbase_database.CopyFrom(
9365
+ convert_couchbase_database_to_plumbing(porcelain))
9366
+ if isinstance(porcelain, models.CouchbaseWebUI):
9367
+ plumbing.couchbase_web_ui.CopyFrom(
9368
+ convert_couchbase_web_ui_to_plumbing(porcelain))
9225
9369
  if isinstance(porcelain, models.DB2I):
9226
9370
  plumbing.db_2_i.CopyFrom(convert_db_2_i_to_plumbing(porcelain))
9227
9371
  if isinstance(porcelain, models.DB2LUW):
@@ -9433,6 +9577,11 @@ def convert_resource_to_porcelain(plumbing):
9433
9577
  return convert_clustrix_to_porcelain(plumbing.clustrix)
9434
9578
  if plumbing.HasField('cockroach'):
9435
9579
  return convert_cockroach_to_porcelain(plumbing.cockroach)
9580
+ if plumbing.HasField('couchbase_database'):
9581
+ return convert_couchbase_database_to_porcelain(
9582
+ plumbing.couchbase_database)
9583
+ if plumbing.HasField('couchbase_web_ui'):
9584
+ return convert_couchbase_web_ui_to_porcelain(plumbing.couchbase_web_ui)
9436
9585
  if plumbing.HasField('db_2_i'):
9437
9586
  return convert_db_2_i_to_porcelain(plumbing.db_2_i)
9438
9587
  if plumbing.HasField('db_2_luw'):
@@ -11508,6 +11657,7 @@ def convert_user_to_porcelain(plumbing):
11508
11657
  porcelain.id = (plumbing.id)
11509
11658
  porcelain.last_name = (plumbing.last_name)
11510
11659
  porcelain.managed_by = (plumbing.managed_by)
11660
+ porcelain.password = (plumbing.password)
11511
11661
  porcelain.permission_level = (plumbing.permission_levelRW)
11512
11662
  porcelain.suspended = (plumbing.suspendedRO)
11513
11663
  porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
@@ -11524,6 +11674,7 @@ def convert_user_to_plumbing(porcelain):
11524
11674
  plumbing.id = (porcelain.id)
11525
11675
  plumbing.last_name = (porcelain.last_name)
11526
11676
  plumbing.managed_by = (porcelain.managed_by)
11677
+ plumbing.password = (porcelain.password)
11527
11678
  plumbing.permission_levelRW = (porcelain.permission_level)
11528
11679
  plumbing.suspendedRO = (porcelain.suspended)
11529
11680
  plumbing.tags.CopyFrom(convert_tags_to_plumbing(porcelain.tags))
@@ -30,7 +30,7 @@ from . import options_pb2 as options__pb2
30
30
  from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
31
31
 
32
32
 
33
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nspec.proto\x12\x02v1\x1a\roptions.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"<\n\x12\x41lreadyExistsError\x12\x1a\n\x06\x65ntity\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x06\"7\n\rNotFoundError\x12\x1a\n\x06\x65ntity\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x05\"\x1d\n\x0f\x42\x61\x64RequestError:\n\xfa\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x03\"!\n\x13\x41uthenticationError:\n\xfa\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x10\"\x1d\n\x0fPermissionError:\n\xfa\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x07\"\x1b\n\rInternalError:\n\xfa\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\r\"u\n\x0eRateLimitError\x12W\n\nrate_limit\x18\x01 \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\xb0\xf3\xb3\x07\x08\"\x17\n\x15\x43reateRequestMetadata\"$\n\x16\x43reateResponseMetadata:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"E\n\x12GetRequestMetadata\x12/\n\x0bsnapshot_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"!\n\x13GetResponseMetadata:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\x17\n\x15UpdateRequestMetadata\"$\n\x16UpdateResponseMetadata:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\x17\n\x15\x44\x65leteRequestMetadata\"$\n\x16\x44\x65leteResponseMetadata:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\x85\x01\n\x13ListRequestMetadata\x12\x0e\n\x06\x63ursor\x18\x01 \x01(\t\x12\x0c\n\x04page\x18\x02 \x01(\x05\x12\r\n\x05limit\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t\x12/\n\x0bsnapshot_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\">\n\x14ListResponseMetadata\x12\x13\n\x0bnext_cursor\x18\x01 \x01(\t\x12\x11\n\x05total\x18\x02 \x01(\x05\x42\x02\x18\x01\"\xaf\x01\n\x11RateLimitMetadata\x12\x19\n\x05limit\x18\x01 \x01(\x03\x42\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1d\n\tremaining\x18\x02 \x01(\x03\x42\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x38\n\x08reset_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1a\n\x06\x62ucket\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\"\x18\n\x16GenericRequestMetadata\"\x19\n\x17GenericResponseMetadataBR\n\x19\x63om.strongdm.api.plumbingZ5github.com/strongdm/strongdm-sdk-go/v3/internal/v1;v1b\x06proto3')
33
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nspec.proto\x12\x02v1\x1a\roptions.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"<\n\x12\x41lreadyExistsError\x12\x1a\n\x06\x65ntity\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x06\"7\n\rNotFoundError\x12\x1a\n\x06\x65ntity\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x05\"\x1d\n\x0f\x42\x61\x64RequestError:\n\xfa\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x03\"!\n\x13\x41uthenticationError:\n\xfa\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x10\"\x1d\n\x0fPermissionError:\n\xfa\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x07\"\x1b\n\rInternalError:\n\xfa\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\r\"u\n\x0eRateLimitError\x12W\n\nrate_limit\x18\x01 \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\xb0\xf3\xb3\x07\x08\"\x17\n\x15\x43reateRequestMetadata\"$\n\x16\x43reateResponseMetadata:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"E\n\x12GetRequestMetadata\x12/\n\x0bsnapshot_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"!\n\x13GetResponseMetadata:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\x17\n\x15UpdateRequestMetadata\"$\n\x16UpdateResponseMetadata:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\x17\n\x15\x44\x65leteRequestMetadata\"$\n\x16\x44\x65leteResponseMetadata:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\x85\x01\n\x13ListRequestMetadata\x12\x0e\n\x06\x63ursor\x18\x01 \x01(\t\x12\x0c\n\x04page\x18\x02 \x01(\x05\x12\r\n\x05limit\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t\x12/\n\x0bsnapshot_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\">\n\x14ListResponseMetadata\x12\x13\n\x0bnext_cursor\x18\x01 \x01(\t\x12\x11\n\x05total\x18\x02 \x01(\x05\x42\x02\x18\x01\"\xaf\x01\n\x11RateLimitMetadata\x12\x19\n\x05limit\x18\x01 \x01(\x03\x42\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1d\n\tremaining\x18\x02 \x01(\x03\x42\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x38\n\x08reset_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1a\n\x06\x62ucket\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\"\x18\n\x16GenericRequestMetadata\"%\n\x17GenericResponseMetadata:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\x42R\n\x19\x63om.strongdm.api.plumbingZ5github.com/strongdm/strongdm-sdk-go/v3/internal/v1;v1b\x06proto3')
34
34
 
35
35
 
36
36
 
@@ -238,6 +238,8 @@ if _descriptor._USE_C_DESCRIPTORS == False:
238
238
  _RATELIMITMETADATA.fields_by_name['bucket']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
239
239
  _RATELIMITMETADATA._options = None
240
240
  _RATELIMITMETADATA._serialized_options = b'\372\370\263\007\005\250\363\263\007\001'
241
+ _GENERICRESPONSEMETADATA._options = None
242
+ _GENERICRESPONSEMETADATA._serialized_options = b'\372\370\263\007\005\250\363\263\007\001'
241
243
  _ALREADYEXISTSERROR._serialized_start=66
242
244
  _ALREADYEXISTSERROR._serialized_end=126
243
245
  _NOTFOUNDERROR._serialized_start=128
@@ -277,5 +279,5 @@ if _descriptor._USE_C_DESCRIPTORS == False:
277
279
  _GENERICREQUESTMETADATA._serialized_start=1103
278
280
  _GENERICREQUESTMETADATA._serialized_end=1127
279
281
  _GENERICRESPONSEMETADATA._serialized_start=1129
280
- _GENERICRESPONSEMETADATA._serialized_end=1154
282
+ _GENERICRESPONSEMETADATA._serialized_end=1166
281
283
  # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,18 @@
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
+