strongdm 15.29.0__tar.gz → 15.31.0__tar.gz

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 (159) hide show
  1. {strongdm-15.29.0 → strongdm-15.31.0}/PKG-INFO +2 -2
  2. {strongdm-15.29.0 → strongdm-15.31.0}/setup.py +2 -2
  3. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/accounts_pb2.py +17 -11
  4. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/client.py +1 -1
  5. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/models.py +206 -0
  6. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/plumbing.py +79 -0
  7. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/secret_engine_types_pb2.py +58 -8
  8. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/svc.py +1 -0
  9. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm.egg-info/PKG-INFO +2 -2
  10. {strongdm-15.29.0 → strongdm-15.31.0}/LICENSE +0 -0
  11. {strongdm-15.29.0 → strongdm-15.31.0}/README.md +0 -0
  12. {strongdm-15.29.0 → strongdm-15.31.0}/setup.cfg +0 -0
  13. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/__init__.py +0 -0
  14. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/access_request_events_history_pb2.py +0 -0
  15. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/access_request_events_history_pb2_grpc.py +0 -0
  16. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/access_requests_history_pb2.py +0 -0
  17. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/access_requests_history_pb2_grpc.py +0 -0
  18. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/access_requests_pb2.py +0 -0
  19. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/access_requests_pb2_grpc.py +0 -0
  20. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/account_attachments_history_pb2.py +0 -0
  21. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/account_attachments_history_pb2_grpc.py +0 -0
  22. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/account_attachments_pb2.py +0 -0
  23. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/account_attachments_pb2_grpc.py +0 -0
  24. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/account_grants_history_pb2.py +0 -0
  25. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/account_grants_history_pb2_grpc.py +0 -0
  26. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/account_grants_pb2.py +0 -0
  27. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/account_grants_pb2_grpc.py +0 -0
  28. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/account_permissions_pb2.py +0 -0
  29. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/account_permissions_pb2_grpc.py +0 -0
  30. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/account_resources_history_pb2.py +0 -0
  31. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/account_resources_history_pb2_grpc.py +0 -0
  32. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/account_resources_pb2.py +0 -0
  33. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/account_resources_pb2_grpc.py +0 -0
  34. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/accounts_groups_history_pb2.py +0 -0
  35. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/accounts_groups_history_pb2_grpc.py +0 -0
  36. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/accounts_groups_pb2.py +0 -0
  37. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/accounts_groups_pb2_grpc.py +0 -0
  38. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/accounts_history_pb2.py +0 -0
  39. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/accounts_history_pb2_grpc.py +0 -0
  40. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/accounts_pb2_grpc.py +0 -0
  41. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/activities_pb2.py +0 -0
  42. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/activities_pb2_grpc.py +0 -0
  43. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/approval_workflow_approvers_history_pb2.py +0 -0
  44. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/approval_workflow_approvers_history_pb2_grpc.py +0 -0
  45. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/approval_workflow_approvers_pb2.py +0 -0
  46. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/approval_workflow_approvers_pb2_grpc.py +0 -0
  47. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/approval_workflow_steps_history_pb2.py +0 -0
  48. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/approval_workflow_steps_history_pb2_grpc.py +0 -0
  49. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/approval_workflow_steps_pb2.py +0 -0
  50. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/approval_workflow_steps_pb2_grpc.py +0 -0
  51. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/approval_workflows_history_pb2.py +0 -0
  52. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/approval_workflows_history_pb2_grpc.py +0 -0
  53. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/approval_workflows_pb2.py +0 -0
  54. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/approval_workflows_pb2_grpc.py +0 -0
  55. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/constants.py +0 -0
  56. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/control_panel_pb2.py +0 -0
  57. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/control_panel_pb2_grpc.py +0 -0
  58. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/drivers_pb2.py +0 -0
  59. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/drivers_pb2_grpc.py +0 -0
  60. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/errors.py +0 -0
  61. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/groups_history_pb2.py +0 -0
  62. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/groups_history_pb2_grpc.py +0 -0
  63. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/groups_pb2.py +0 -0
  64. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/groups_pb2_grpc.py +0 -0
  65. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/groups_roles_history_pb2.py +0 -0
  66. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/groups_roles_history_pb2_grpc.py +0 -0
  67. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/groups_roles_pb2.py +0 -0
  68. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/groups_roles_pb2_grpc.py +0 -0
  69. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/health_checks_pb2.py +0 -0
  70. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/health_checks_pb2_grpc.py +0 -0
  71. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/identity_aliases_history_pb2.py +0 -0
  72. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/identity_aliases_history_pb2_grpc.py +0 -0
  73. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/identity_aliases_pb2.py +0 -0
  74. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/identity_aliases_pb2_grpc.py +0 -0
  75. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/identity_sets_history_pb2.py +0 -0
  76. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/identity_sets_history_pb2_grpc.py +0 -0
  77. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/identity_sets_pb2.py +0 -0
  78. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/identity_sets_pb2_grpc.py +0 -0
  79. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/managed_secrets_pb2.py +0 -0
  80. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/managed_secrets_pb2_grpc.py +0 -0
  81. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/nodes_history_pb2.py +0 -0
  82. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/nodes_history_pb2_grpc.py +0 -0
  83. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/nodes_pb2.py +0 -0
  84. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/nodes_pb2_grpc.py +0 -0
  85. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/options_pb2.py +0 -0
  86. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/options_pb2_grpc.py +0 -0
  87. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/organization_history_pb2.py +0 -0
  88. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/organization_history_pb2_grpc.py +0 -0
  89. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/peering_group_nodes_pb2.py +0 -0
  90. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/peering_group_nodes_pb2_grpc.py +0 -0
  91. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/peering_group_peers_pb2.py +0 -0
  92. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/peering_group_peers_pb2_grpc.py +0 -0
  93. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/peering_group_resources_pb2.py +0 -0
  94. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/peering_group_resources_pb2_grpc.py +0 -0
  95. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/peering_groups_pb2.py +0 -0
  96. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/peering_groups_pb2_grpc.py +0 -0
  97. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/policies_history_pb2.py +0 -0
  98. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/policies_history_pb2_grpc.py +0 -0
  99. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/policies_pb2.py +0 -0
  100. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/policies_pb2_grpc.py +0 -0
  101. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/proxy_cluster_keys_pb2.py +0 -0
  102. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/proxy_cluster_keys_pb2_grpc.py +0 -0
  103. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/queries_pb2.py +0 -0
  104. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/queries_pb2_grpc.py +0 -0
  105. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/remote_identities_history_pb2.py +0 -0
  106. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/remote_identities_history_pb2_grpc.py +0 -0
  107. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/remote_identities_pb2.py +0 -0
  108. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/remote_identities_pb2_grpc.py +0 -0
  109. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/remote_identity_groups_history_pb2.py +0 -0
  110. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/remote_identity_groups_history_pb2_grpc.py +0 -0
  111. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/remote_identity_groups_pb2.py +0 -0
  112. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/remote_identity_groups_pb2_grpc.py +0 -0
  113. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/replays_pb2.py +0 -0
  114. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/replays_pb2_grpc.py +0 -0
  115. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/resources_history_pb2.py +0 -0
  116. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/resources_history_pb2_grpc.py +0 -0
  117. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/resources_pb2.py +0 -0
  118. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/resources_pb2_grpc.py +0 -0
  119. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/role_resources_history_pb2.py +0 -0
  120. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/role_resources_history_pb2_grpc.py +0 -0
  121. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/role_resources_pb2.py +0 -0
  122. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/role_resources_pb2_grpc.py +0 -0
  123. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/roles_history_pb2.py +0 -0
  124. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/roles_history_pb2_grpc.py +0 -0
  125. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/roles_pb2.py +0 -0
  126. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/roles_pb2_grpc.py +0 -0
  127. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/secret_engine_policy_pb2.py +0 -0
  128. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/secret_engine_policy_pb2_grpc.py +0 -0
  129. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/secret_engine_types_pb2_grpc.py +0 -0
  130. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/secret_engines_pb2.py +0 -0
  131. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/secret_engines_pb2_grpc.py +0 -0
  132. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/secret_store_healths_pb2.py +0 -0
  133. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/secret_store_healths_pb2_grpc.py +0 -0
  134. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/secret_store_types_pb2.py +0 -0
  135. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/secret_store_types_pb2_grpc.py +0 -0
  136. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/secret_stores_history_pb2.py +0 -0
  137. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/secret_stores_history_pb2_grpc.py +0 -0
  138. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/secret_stores_pb2.py +0 -0
  139. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/secret_stores_pb2_grpc.py +0 -0
  140. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/spec_pb2.py +0 -0
  141. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/spec_pb2_grpc.py +0 -0
  142. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/tags_pb2.py +0 -0
  143. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/tags_pb2_grpc.py +0 -0
  144. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/workflow_approvers_history_pb2.py +0 -0
  145. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/workflow_approvers_history_pb2_grpc.py +0 -0
  146. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/workflow_approvers_pb2.py +0 -0
  147. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/workflow_approvers_pb2_grpc.py +0 -0
  148. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/workflow_roles_history_pb2.py +0 -0
  149. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/workflow_roles_history_pb2_grpc.py +0 -0
  150. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/workflow_roles_pb2.py +0 -0
  151. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/workflow_roles_pb2_grpc.py +0 -0
  152. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/workflows_history_pb2.py +0 -0
  153. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/workflows_history_pb2_grpc.py +0 -0
  154. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/workflows_pb2.py +0 -0
  155. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm/workflows_pb2_grpc.py +0 -0
  156. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm.egg-info/SOURCES.txt +0 -0
  157. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm.egg-info/dependency_links.txt +0 -0
  158. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm.egg-info/requires.txt +0 -0
  159. {strongdm-15.29.0 → strongdm-15.31.0}/strongdm.egg-info/top_level.txt +0 -0
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: strongdm
3
- Version: 15.29.0
3
+ Version: 15.31.0
4
4
  Summary: strongDM SDK for the Python programming language.
5
5
  Home-page: https://github.com/strongdm/strongdm-sdk-python
6
6
  Author: strongDM Team
7
7
  Author-email: sdk-feedback@strongdm.com
8
8
  License: apache-2.0
9
- Download-URL: https://github.com/strongdm/strongdm-sdk-python/archive/v15.29.0.tar.gz
9
+ Download-URL: https://github.com/strongdm/strongdm-sdk-python/archive/v15.31.0.tar.gz
10
10
  Keywords: strongDM,sdm,api,automation,security,audit,database,server,ssh,rdp
11
11
  Platform: UNKNOWN
12
12
  Classifier: Development Status :: 4 - Beta
@@ -23,7 +23,7 @@ from setuptools import setup
23
23
  setup(
24
24
  name='strongdm',
25
25
  packages=['strongdm'],
26
- version='15.29.0',
26
+ version='15.31.0',
27
27
  license='apache-2.0',
28
28
  description='strongDM SDK for the Python programming language.',
29
29
  long_description=long_description,
@@ -32,7 +32,7 @@ setup(
32
32
  author_email='sdk-feedback@strongdm.com',
33
33
  url='https://github.com/strongdm/strongdm-sdk-python',
34
34
  download_url=
35
- 'https://github.com/strongdm/strongdm-sdk-python/archive/v15.29.0.tar.gz',
35
+ 'https://github.com/strongdm/strongdm-sdk-python/archive/v15.31.0.tar.gz',
36
36
  keywords=[
37
37
  'strongDM', 'sdm', 'api', 'automation', 'security', 'audit',
38
38
  'database', 'server', 'ssh', 'rdp'
@@ -33,7 +33,7 @@ from . import spec_pb2 as spec__pb2
33
33
  from . import tags_pb2 as tags__pb2
34
34
 
35
35
 
36
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0e\x61\x63\x63ounts.proto\x12\x02v1\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\roptions.proto\x1a\nspec.proto\x1a\ntags.proto\"i\n\x14\x41\x63\x63ountCreateRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.CreateRequestMetadata\x12(\n\x07\x61\x63\x63ount\x18\x02 \x01(\x0b\x32\x0b.v1.AccountB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\"\xf8\x02\n\x15\x41\x63\x63ountCreateResponse\x12\x34\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.CreateResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12(\n\x07\x61\x63\x63ount\x18\x02 \x01(\x0b\x32\x0b.v1.AccountB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1e\n\x05token\x18\x03 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xf0\xf3\xb3\x07\x01\x12W\n\nrate_limit\x18\x04 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway\x12<\n\naccess_key\x18\x05 \x01(\tB(\xf2\xf8\xb3\x07#\xb0\xf3\xb3\x07\x01\xb2\xf4\xb3\x07\x01*\xb2\xf4\xb3\x07\x13!terraform-provider\x12<\n\nsecret_key\x18\x06 \x01(\tB(\xf2\xf8\xb3\x07#\xb0\xf3\xb3\x07\x01\xb2\xf4\xb3\x07\x01*\xb2\xf4\xb3\x07\x13!terraform-provider:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"Q\n\x11\x41\x63\x63ountGetRequest\x12$\n\x04meta\x18\x01 \x01(\x0b\x32\x16.v1.GetRequestMetadata\x12\x16\n\x02id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\"\xd6\x01\n\x12\x41\x63\x63ountGetResponse\x12\x31\n\x04meta\x18\x01 \x01(\x0b\x32\x17.v1.GetResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12(\n\x07\x61\x63\x63ount\x18\x02 \x01(\x0b\x32\x0b.v1.AccountB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12W\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"u\n\x14\x41\x63\x63ountUpdateRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.UpdateRequestMetadata\x12\n\n\x02id\x18\x02 \x01(\t\x12(\n\x07\x61\x63\x63ount\x18\x03 \x01(\x0b\x32\x0b.v1.AccountB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\"\xdc\x01\n\x15\x41\x63\x63ountUpdateResponse\x12\x34\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.UpdateResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12(\n\x07\x61\x63\x63ount\x18\x02 \x01(\x0b\x32\x0b.v1.AccountB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12W\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"W\n\x14\x41\x63\x63ountDeleteRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.DeleteRequestMetadata\x12\x16\n\x02id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\"\xb2\x01\n\x15\x41\x63\x63ountDeleteResponse\x12\x34\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.DeleteResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12W\n\nrate_limit\x18\x02 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"W\n\x12\x41\x63\x63ountListRequest\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\"\xc1\x01\n\x13\x41\x63\x63ountListResponse\x12&\n\x04meta\x18\x01 \x01(\x0b\x32\x18.v1.ListResponseMetadata\x12)\n\x08\x61\x63\x63ounts\x18\x02 \x03(\x0b\x32\x0b.v1.AccountB\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\"\x94\x02\n\x07\x41\x63\x63ount\x12$\n\x04user\x18\x01 \x01(\x0b\x32\x08.v1.UserB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01H\x00\x12*\n\x07service\x18\x02 \x01(\x0b\x32\x0b.v1.ServiceB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01H\x00\x12&\n\x05token\x18\x03 \x01(\x0b\x32\t.v1.TokenB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01H\x00:a\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\xfa\xf8\xb3\x07R\xc2\xf3\xb3\x07M\xa2\xf3\xb3\x07 tf_examples/account_resource.txt\xaa\xf3\xb3\x07#tf_examples/account_data_source.txtB,\n\x07\x61\x63\x63ount\x12!\xaa\xf8\xb3\x07\x0e\xaa\xf8\xb3\x07\tsuspended\xaa\xf8\xb3\x07\t\xaa\xf8\xb3\x07\x04tags\"\x92\x08\n\x04User\x12\x16\n\x02id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1e\n\x05\x65mail\x18\x02 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12#\n\nfirst_name\x18\x03 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\"\n\tlast_name\x18\x04 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12*\n\tsuspended\x18\x05 \x01(\x08\x42\x17\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway\x12\"\n\x04tags\x18\x06 \x01(\x0b\x32\x08.v1.TagsB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x36\n\x10permission_level\x18\x07 \x01(\tB\x1c\xf2\xf8\xb3\x07\x17\x98\xf4\xb3\x07\x01\xb2\xf4\xb3\x07\r!json_gateway\x12#\n\nmanaged_by\x18\x08 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\x98\xf4\xb3\x07\x01\x12\x1f\n\x0b\x65xternal_id\x18\t \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\xdb\x01\n\x0bsuspendedRO\x18\n \x01(\x08\x42\xc5\x01\xf2\xf8\xb3\x07\xbf\x01\xb0\xf3\xb3\x07\x01\xca\xf3\xb3\x07\xaf\x01\xc2\xf4\xb3\x07\x0f\n\x02go\x12\tSuspended\xc2\xf4\xb3\x07\x10\n\x03\x63li\x12\tsuspended\xc2\xf4\xb3\x07\x11\n\x04ruby\x12\tsuspended\xc2\xf4\xb3\x07\x13\n\x06python\x12\tsuspended\xc2\xf4\xb3\x07\x11\n\x04java\x12\tSuspended\xc2\xf4\xb3\x07\x1f\n\x12terraform-provider\x12\tsuspended\xc2\xf4\xb3\x07\x19\n\x0cjson_gateway\x12\tsuspended\x98\xf4\xb3\x07\x01\x12\x90\x02\n\x12permission_levelRW\x18\x0b \x01(\tB\xf3\x01\xf2\xf8\xb3\x07\xed\x01\xb0\xf3\xb3\x07\x01\xca\xf3\xb3\x07\xdd\x01\xc2\xf4\xb3\x07\x15\n\x02go\x12\x0fPermissionLevel\xc2\xf4\xb3\x07\x17\n\x03\x63li\x12\x10permission-level\xc2\xf4\xb3\x07\x18\n\x04ruby\x12\x10permission_level\xc2\xf4\xb3\x07\x1a\n\x06python\x12\x10permission_level\xc2\xf4\xb3\x07\x17\n\x04java\x12\x0fPermissionLevel\xc2\xf4\xb3\x07&\n\x12terraform-provider\x12\x10permission_level\xc2\xf4\xb3\x07\x1f\n\x0cjson_gateway\x12\x0fpermissionLevel\xd0\xf4\xb3\x07\x01\x12?\n\x08password\x18\x0c \x01(\tB-\xf2\xf8\xb3\x07(\xb0\xf3\xb3\x07\x01\xe8\xf3\xb3\x07\x01\xb2\xf4\xb3\x07\x01*\xb2\xf4\xb3\x07\x13!terraform-provider\x12#\n\x04SCIM\x18\r \x01(\tB\x15\xf2\xf8\xb3\x07\x10\xb0\xf3\xb3\x07\x01\x98\xf4\xb3\x07\x01\xb2\xf4\xb3\x07\x01*\x12$\n\nmanager_id\x18\x0e \x01(\tB\x10\xf2\xf8\xb3\x07\x0b\xb0\xf3\xb3\x07\x01\xb2\xf4\xb3\x07\x01*\x12\x32\n\x13resolved_manager_id\x18\x0f \x01(\tB\x15\xf2\xf8\xb3\x07\x10\xb0\xf3\xb3\x07\x01\x98\xf4\xb3\x07\x01\xb2\xf4\xb3\x07\x01*:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\x8f\x01\n\x07Service\x12\x16\n\x02id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1d\n\x04name\x18\x02 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\x1d\n\tsuspended\x18\x03 \x01(\x08\x42\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\"\n\x04tags\x18\x04 \x01(\x0b\x32\x08.v1.TagsB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\x81\x03\n\x05Token\x12\x16\n\x02id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1d\n\x04name\x18\x02 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\x1d\n\tsuspended\x18\x03 \x01(\x08\x42\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\"\n\x04tags\x18\x04 \x01(\x0b\x32\x08.v1.TagsB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x37\n\x07rekeyed\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x38\n\x08\x64\x65\x61\x64line\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12 \n\x0c\x61\x63\x63ount_type\x18\x07 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1f\n\x0bpermissions\x18\x08 \x03(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x37\n\x08\x64uration\x18\t \x01(\x0b\x32\x19.google.protobuf.DurationB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x0f\xfa\xf8\xb3\x07\n\xa8\xf3\xb3\x07\x01\xd8\xf3\xb3\x07\x01\x32\xba\x04\n\x08\x41\x63\x63ounts\x12\x63\n\x06\x43reate\x12\x18.v1.AccountCreateRequest\x1a\x19.v1.AccountCreateResponse\"$\x82\xf9\xb3\x07\t\xa2\xf3\xb3\x07\x04post\x82\xf9\xb3\x07\x11\xaa\xf3\xb3\x07\x0c/v1/accounts\x12^\n\x03Get\x12\x15.v1.AccountGetRequest\x1a\x16.v1.AccountGetResponse\"(\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07\x16\xaa\xf3\xb3\x07\x11/v1/accounts/{id}\x12g\n\x06Update\x12\x18.v1.AccountUpdateRequest\x1a\x19.v1.AccountUpdateResponse\"(\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03put\x82\xf9\xb3\x07\x16\xaa\xf3\xb3\x07\x11/v1/accounts/{id}\x12j\n\x06\x44\x65lete\x12\x18.v1.AccountDeleteRequest\x1a\x19.v1.AccountDeleteResponse\"+\x82\xf9\xb3\x07\x0b\xa2\xf3\xb3\x07\x06\x64\x65lete\x82\xf9\xb3\x07\x16\xaa\xf3\xb3\x07\x11/v1/accounts/{id}\x12\\\n\x04List\x12\x16.v1.AccountListRequest\x1a\x17.v1.AccountListResponse\"#\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07\x11\xaa\xf3\xb3\x07\x0c/v1/accounts\x1a\x36\xca\xf9\xb3\x07\x0c\xc2\xf9\xb3\x07\x07\x41\x63\x63ount\xca\xf9\xb3\x07\x07\xd2\xf9\xb3\x07\x02\x61-\xca\xf9\xb3\x07\x06\xca\xf9\xb3\x07\x01*\xca\xf9\xb3\x07\t\xca\xf9\xb3\x07\x04!cliBd\n\x19\x63om.strongdm.api.plumbingB\x10\x41\x63\x63ountsPlumbingZ5github.com/strongdm/strongdm-sdk-go/v3/internal/v1;v1b\x06proto3')
36
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0e\x61\x63\x63ounts.proto\x12\x02v1\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\roptions.proto\x1a\nspec.proto\x1a\ntags.proto\"i\n\x14\x41\x63\x63ountCreateRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.CreateRequestMetadata\x12(\n\x07\x61\x63\x63ount\x18\x02 \x01(\x0b\x32\x0b.v1.AccountB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\"\xf8\x02\n\x15\x41\x63\x63ountCreateResponse\x12\x34\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.CreateResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12(\n\x07\x61\x63\x63ount\x18\x02 \x01(\x0b\x32\x0b.v1.AccountB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1e\n\x05token\x18\x03 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xf0\xf3\xb3\x07\x01\x12W\n\nrate_limit\x18\x04 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway\x12<\n\naccess_key\x18\x05 \x01(\tB(\xf2\xf8\xb3\x07#\xb0\xf3\xb3\x07\x01\xb2\xf4\xb3\x07\x01*\xb2\xf4\xb3\x07\x13!terraform-provider\x12<\n\nsecret_key\x18\x06 \x01(\tB(\xf2\xf8\xb3\x07#\xb0\xf3\xb3\x07\x01\xb2\xf4\xb3\x07\x01*\xb2\xf4\xb3\x07\x13!terraform-provider:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"Q\n\x11\x41\x63\x63ountGetRequest\x12$\n\x04meta\x18\x01 \x01(\x0b\x32\x16.v1.GetRequestMetadata\x12\x16\n\x02id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\"\xd6\x01\n\x12\x41\x63\x63ountGetResponse\x12\x31\n\x04meta\x18\x01 \x01(\x0b\x32\x17.v1.GetResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12(\n\x07\x61\x63\x63ount\x18\x02 \x01(\x0b\x32\x0b.v1.AccountB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12W\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"u\n\x14\x41\x63\x63ountUpdateRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.UpdateRequestMetadata\x12\n\n\x02id\x18\x02 \x01(\t\x12(\n\x07\x61\x63\x63ount\x18\x03 \x01(\x0b\x32\x0b.v1.AccountB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\"\xdc\x01\n\x15\x41\x63\x63ountUpdateResponse\x12\x34\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.UpdateResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12(\n\x07\x61\x63\x63ount\x18\x02 \x01(\x0b\x32\x0b.v1.AccountB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12W\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"W\n\x14\x41\x63\x63ountDeleteRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.DeleteRequestMetadata\x12\x16\n\x02id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\"\xb2\x01\n\x15\x41\x63\x63ountDeleteResponse\x12\x34\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.DeleteResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12W\n\nrate_limit\x18\x02 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"W\n\x12\x41\x63\x63ountListRequest\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\"\xc1\x01\n\x13\x41\x63\x63ountListResponse\x12&\n\x04meta\x18\x01 \x01(\x0b\x32\x18.v1.ListResponseMetadata\x12)\n\x08\x61\x63\x63ounts\x18\x02 \x03(\x0b\x32\x0b.v1.AccountB\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\"\xa8\x02\n\x07\x41\x63\x63ount\x12$\n\x04user\x18\x01 \x01(\x0b\x32\x08.v1.UserB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01H\x00\x12*\n\x07service\x18\x02 \x01(\x0b\x32\x0b.v1.ServiceB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01H\x00\x12&\n\x05token\x18\x03 \x01(\x0b\x32\t.v1.TokenB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01H\x00:a\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\xfa\xf8\xb3\x07R\xc2\xf3\xb3\x07M\xa2\xf3\xb3\x07 tf_examples/account_resource.txt\xaa\xf3\xb3\x07#tf_examples/account_data_source.txtB@\n\x07\x61\x63\x63ount\x12\x35\xaa\xf8\xb3\x07\x0e\xaa\xf8\xb3\x07\tsuspended\xaa\xf8\xb3\x07\t\xaa\xf8\xb3\x07\x04tags\xaa\xf8\xb3\x07\x0f\xaa\xf8\xb3\x07\ncreated_at\"\xd9\x08\n\x04User\x12\x16\n\x02id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1e\n\x05\x65mail\x18\x02 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12#\n\nfirst_name\x18\x03 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\"\n\tlast_name\x18\x04 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12*\n\tsuspended\x18\x05 \x01(\x08\x42\x17\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway\x12\"\n\x04tags\x18\x06 \x01(\x0b\x32\x08.v1.TagsB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x36\n\x10permission_level\x18\x07 \x01(\tB\x1c\xf2\xf8\xb3\x07\x17\x98\xf4\xb3\x07\x01\xb2\xf4\xb3\x07\r!json_gateway\x12#\n\nmanaged_by\x18\x08 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\x98\xf4\xb3\x07\x01\x12\x1f\n\x0b\x65xternal_id\x18\t \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\xdb\x01\n\x0bsuspendedRO\x18\n \x01(\x08\x42\xc5\x01\xf2\xf8\xb3\x07\xbf\x01\xb0\xf3\xb3\x07\x01\xca\xf3\xb3\x07\xaf\x01\xc2\xf4\xb3\x07\x0f\n\x02go\x12\tSuspended\xc2\xf4\xb3\x07\x10\n\x03\x63li\x12\tsuspended\xc2\xf4\xb3\x07\x11\n\x04ruby\x12\tsuspended\xc2\xf4\xb3\x07\x13\n\x06python\x12\tsuspended\xc2\xf4\xb3\x07\x11\n\x04java\x12\tSuspended\xc2\xf4\xb3\x07\x1f\n\x12terraform-provider\x12\tsuspended\xc2\xf4\xb3\x07\x19\n\x0cjson_gateway\x12\tsuspended\x98\xf4\xb3\x07\x01\x12\x90\x02\n\x12permission_levelRW\x18\x0b \x01(\tB\xf3\x01\xf2\xf8\xb3\x07\xed\x01\xb0\xf3\xb3\x07\x01\xca\xf3\xb3\x07\xdd\x01\xc2\xf4\xb3\x07\x15\n\x02go\x12\x0fPermissionLevel\xc2\xf4\xb3\x07\x17\n\x03\x63li\x12\x10permission-level\xc2\xf4\xb3\x07\x18\n\x04ruby\x12\x10permission_level\xc2\xf4\xb3\x07\x1a\n\x06python\x12\x10permission_level\xc2\xf4\xb3\x07\x17\n\x04java\x12\x0fPermissionLevel\xc2\xf4\xb3\x07&\n\x12terraform-provider\x12\x10permission_level\xc2\xf4\xb3\x07\x1f\n\x0cjson_gateway\x12\x0fpermissionLevel\xd0\xf4\xb3\x07\x01\x12?\n\x08password\x18\x0c \x01(\tB-\xf2\xf8\xb3\x07(\xb0\xf3\xb3\x07\x01\xe8\xf3\xb3\x07\x01\xb2\xf4\xb3\x07\x01*\xb2\xf4\xb3\x07\x13!terraform-provider\x12#\n\x04SCIM\x18\r \x01(\tB\x15\xf2\xf8\xb3\x07\x10\xb0\xf3\xb3\x07\x01\x98\xf4\xb3\x07\x01\xb2\xf4\xb3\x07\x01*\x12$\n\nmanager_id\x18\x0e \x01(\tB\x10\xf2\xf8\xb3\x07\x0b\xb0\xf3\xb3\x07\x01\xb2\xf4\xb3\x07\x01*\x12\x32\n\x13resolved_manager_id\x18\x0f \x01(\tB\x15\xf2\xf8\xb3\x07\x10\xb0\xf3\xb3\x07\x01\x98\xf4\xb3\x07\x01\xb2\xf4\xb3\x07\x01*\x12\x45\n\ncreated_at\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x15\xf2\xf8\xb3\x07\x10\xb0\xf3\xb3\x07\x01\x98\xf4\xb3\x07\x01\xb2\xf4\xb3\x07\x01*:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xd0\x01\n\x07Service\x12\x16\n\x02id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1d\n\x04name\x18\x02 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\x1d\n\tsuspended\x18\x03 \x01(\x08\x42\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\"\n\x04tags\x18\x04 \x01(\x0b\x32\x08.v1.TagsB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12?\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\x98\xf4\xb3\x07\x01:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xc2\x03\n\x05Token\x12\x16\n\x02id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1d\n\x04name\x18\x02 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\x1d\n\tsuspended\x18\x03 \x01(\x08\x42\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\"\n\x04tags\x18\x04 \x01(\x0b\x32\x08.v1.TagsB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x37\n\x07rekeyed\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x38\n\x08\x64\x65\x61\x64line\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12 \n\x0c\x61\x63\x63ount_type\x18\x07 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1f\n\x0bpermissions\x18\x08 \x03(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x37\n\x08\x64uration\x18\t \x01(\x0b\x32\x19.google.protobuf.DurationB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12?\n\ncreated_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\x98\xf4\xb3\x07\x01:\x0f\xfa\xf8\xb3\x07\n\xa8\xf3\xb3\x07\x01\xd8\xf3\xb3\x07\x01\x32\xba\x04\n\x08\x41\x63\x63ounts\x12\x63\n\x06\x43reate\x12\x18.v1.AccountCreateRequest\x1a\x19.v1.AccountCreateResponse\"$\x82\xf9\xb3\x07\t\xa2\xf3\xb3\x07\x04post\x82\xf9\xb3\x07\x11\xaa\xf3\xb3\x07\x0c/v1/accounts\x12^\n\x03Get\x12\x15.v1.AccountGetRequest\x1a\x16.v1.AccountGetResponse\"(\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07\x16\xaa\xf3\xb3\x07\x11/v1/accounts/{id}\x12g\n\x06Update\x12\x18.v1.AccountUpdateRequest\x1a\x19.v1.AccountUpdateResponse\"(\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03put\x82\xf9\xb3\x07\x16\xaa\xf3\xb3\x07\x11/v1/accounts/{id}\x12j\n\x06\x44\x65lete\x12\x18.v1.AccountDeleteRequest\x1a\x19.v1.AccountDeleteResponse\"+\x82\xf9\xb3\x07\x0b\xa2\xf3\xb3\x07\x06\x64\x65lete\x82\xf9\xb3\x07\x16\xaa\xf3\xb3\x07\x11/v1/accounts/{id}\x12\\\n\x04List\x12\x16.v1.AccountListRequest\x1a\x17.v1.AccountListResponse\"#\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07\x11\xaa\xf3\xb3\x07\x0c/v1/accounts\x1a\x36\xca\xf9\xb3\x07\x0c\xc2\xf9\xb3\x07\x07\x41\x63\x63ount\xca\xf9\xb3\x07\x07\xd2\xf9\xb3\x07\x02\x61-\xca\xf9\xb3\x07\x06\xca\xf9\xb3\x07\x01*\xca\xf9\xb3\x07\t\xca\xf9\xb3\x07\x04!cliBd\n\x19\x63om.strongdm.api.plumbingB\x10\x41\x63\x63ountsPlumbingZ5github.com/strongdm/strongdm-sdk-go/v3/internal/v1;v1b\x06proto3')
37
37
 
38
38
 
39
39
 
@@ -205,7 +205,7 @@ if _descriptor._USE_C_DESCRIPTORS == False:
205
205
  _ACCOUNTLISTRESPONSE.fields_by_name['rate_limit']._options = None
206
206
  _ACCOUNTLISTRESPONSE.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'
207
207
  _ACCOUNT.oneofs_by_name['account']._options = None
208
- _ACCOUNT.oneofs_by_name['account']._serialized_options = b'\252\370\263\007\016\252\370\263\007\tsuspended\252\370\263\007\t\252\370\263\007\004tags'
208
+ _ACCOUNT.oneofs_by_name['account']._serialized_options = b'\252\370\263\007\016\252\370\263\007\tsuspended\252\370\263\007\t\252\370\263\007\004tags\252\370\263\007\017\252\370\263\007\ncreated_at'
209
209
  _ACCOUNT.fields_by_name['user']._options = None
210
210
  _ACCOUNT.fields_by_name['user']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
211
211
  _ACCOUNT.fields_by_name['service']._options = None
@@ -244,6 +244,8 @@ if _descriptor._USE_C_DESCRIPTORS == False:
244
244
  _USER.fields_by_name['manager_id']._serialized_options = b'\362\370\263\007\013\260\363\263\007\001\262\364\263\007\001*'
245
245
  _USER.fields_by_name['resolved_manager_id']._options = None
246
246
  _USER.fields_by_name['resolved_manager_id']._serialized_options = b'\362\370\263\007\020\260\363\263\007\001\230\364\263\007\001\262\364\263\007\001*'
247
+ _USER.fields_by_name['created_at']._options = None
248
+ _USER.fields_by_name['created_at']._serialized_options = b'\362\370\263\007\020\260\363\263\007\001\230\364\263\007\001\262\364\263\007\001*'
247
249
  _USER._options = None
248
250
  _USER._serialized_options = b'\372\370\263\007\005\250\363\263\007\001'
249
251
  _SERVICE.fields_by_name['id']._options = None
@@ -254,6 +256,8 @@ if _descriptor._USE_C_DESCRIPTORS == False:
254
256
  _SERVICE.fields_by_name['suspended']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
255
257
  _SERVICE.fields_by_name['tags']._options = None
256
258
  _SERVICE.fields_by_name['tags']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
259
+ _SERVICE.fields_by_name['created_at']._options = None
260
+ _SERVICE.fields_by_name['created_at']._serialized_options = b'\362\370\263\007\n\260\363\263\007\001\230\364\263\007\001'
257
261
  _SERVICE._options = None
258
262
  _SERVICE._serialized_options = b'\372\370\263\007\005\250\363\263\007\001'
259
263
  _TOKEN.fields_by_name['id']._options = None
@@ -274,6 +278,8 @@ if _descriptor._USE_C_DESCRIPTORS == False:
274
278
  _TOKEN.fields_by_name['permissions']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
275
279
  _TOKEN.fields_by_name['duration']._options = None
276
280
  _TOKEN.fields_by_name['duration']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
281
+ _TOKEN.fields_by_name['created_at']._options = None
282
+ _TOKEN.fields_by_name['created_at']._serialized_options = b'\362\370\263\007\n\260\363\263\007\001\230\364\263\007\001'
277
283
  _TOKEN._options = None
278
284
  _TOKEN._serialized_options = b'\372\370\263\007\n\250\363\263\007\001\330\363\263\007\001'
279
285
  _ACCOUNTS._options = None
@@ -309,13 +315,13 @@ if _descriptor._USE_C_DESCRIPTORS == False:
309
315
  _ACCOUNTLISTRESPONSE._serialized_start=1614
310
316
  _ACCOUNTLISTRESPONSE._serialized_end=1807
311
317
  _ACCOUNT._serialized_start=1810
312
- _ACCOUNT._serialized_end=2086
313
- _USER._serialized_start=2089
314
- _USER._serialized_end=3131
315
- _SERVICE._serialized_start=3134
316
- _SERVICE._serialized_end=3277
317
- _TOKEN._serialized_start=3280
318
- _TOKEN._serialized_end=3665
319
- _ACCOUNTS._serialized_start=3668
320
- _ACCOUNTS._serialized_end=4238
318
+ _ACCOUNT._serialized_end=2106
319
+ _USER._serialized_start=2109
320
+ _USER._serialized_end=3222
321
+ _SERVICE._serialized_start=3225
322
+ _SERVICE._serialized_end=3433
323
+ _TOKEN._serialized_start=3436
324
+ _TOKEN._serialized_end=3886
325
+ _ACCOUNTS._serialized_start=3889
326
+ _ACCOUNTS._serialized_end=4459
321
327
  # @@protoc_insertion_point(module_scope)
@@ -34,7 +34,7 @@ DEFAULT_MAX_RETRY_DELAY = 120 # 120 seconds
34
34
  DEFAULT_RETRY_FACTOR = 1.6
35
35
  DEFAULT_RETRY_JITTER = 0.2
36
36
  API_VERSION = '2025-04-14'
37
- USER_AGENT = 'strongdm-sdk-python/15.29.0'
37
+ USER_AGENT = 'strongdm-sdk-python/15.31.0'
38
38
 
39
39
 
40
40
  class Client:
@@ -21659,6 +21659,185 @@ class Mysql:
21659
21659
  )
21660
21660
 
21661
21661
 
21662
+ class MysqlEngine:
21663
+ '''
21664
+ MysqlEngine is currently unstable, and its API may change, or it may be removed,
21665
+ without a major version bump.
21666
+ '''
21667
+ __slots__ = [
21668
+ 'after_read_ttl',
21669
+ 'database',
21670
+ 'hostname',
21671
+ 'id',
21672
+ 'key_rotation_interval_days',
21673
+ 'name',
21674
+ 'password',
21675
+ 'policy',
21676
+ 'port',
21677
+ 'public_key',
21678
+ 'secret_store_id',
21679
+ 'secret_store_root_path',
21680
+ 'tags',
21681
+ 'tls',
21682
+ 'tls_skip_verify',
21683
+ 'ttl',
21684
+ 'username',
21685
+ ]
21686
+
21687
+ def __init__(
21688
+ self,
21689
+ after_read_ttl=None,
21690
+ database=None,
21691
+ hostname=None,
21692
+ id=None,
21693
+ key_rotation_interval_days=None,
21694
+ name=None,
21695
+ password=None,
21696
+ policy=None,
21697
+ port=None,
21698
+ public_key=None,
21699
+ secret_store_id=None,
21700
+ secret_store_root_path=None,
21701
+ tags=None,
21702
+ tls=None,
21703
+ tls_skip_verify=None,
21704
+ ttl=None,
21705
+ username=None,
21706
+ ):
21707
+ self.after_read_ttl = after_read_ttl if after_read_ttl is not None else None
21708
+ '''
21709
+ The default time-to-live duration of the password after it's read. Once the ttl has passed, a password will be rotated.
21710
+ '''
21711
+ self.database = database if database is not None else ''
21712
+ '''
21713
+ Database is the database to verify credential against.
21714
+ '''
21715
+ self.hostname = hostname if hostname is not None else ''
21716
+ '''
21717
+ Hostname is the hostname or IP address of the MySQL server.
21718
+ '''
21719
+ self.id = id if id is not None else ''
21720
+ '''
21721
+ Unique identifier of the Secret Engine.
21722
+ '''
21723
+ self.key_rotation_interval_days = key_rotation_interval_days if key_rotation_interval_days is not None else 0
21724
+ '''
21725
+ An interval of public/private key rotation for secret engine in days
21726
+ '''
21727
+ self.name = name if name is not None else ''
21728
+ '''
21729
+ Unique human-readable name of the Secret Engine.
21730
+ '''
21731
+ self.password = password if password is not None else ''
21732
+ '''
21733
+ Password is the password to connect to the MySQL server.
21734
+ '''
21735
+ self.policy = policy if policy is not None else None
21736
+ '''
21737
+ Policy for password creation
21738
+ '''
21739
+ self.port = port if port is not None else 0
21740
+ '''
21741
+ Port is the port number of the MySQL server.
21742
+ '''
21743
+ self.public_key = public_key if public_key is not None else b''
21744
+ '''
21745
+ Public key linked with a secret engine
21746
+ '''
21747
+ self.secret_store_id = secret_store_id if secret_store_id is not None else ''
21748
+ '''
21749
+ Backing secret store identifier
21750
+ '''
21751
+ self.secret_store_root_path = secret_store_root_path if secret_store_root_path is not None else ''
21752
+ '''
21753
+ Backing Secret Store root path where managed secrets are going to be stored
21754
+ '''
21755
+ self.tags = tags if tags is not None else _porcelain_zero_value_tags()
21756
+ '''
21757
+ Tags is a map of key, value pairs.
21758
+ '''
21759
+ self.tls = tls if tls is not None else False
21760
+ '''
21761
+ TLS enables TLS/SSL when connecting to the MySQL server.
21762
+ '''
21763
+ self.tls_skip_verify = tls_skip_verify if tls_skip_verify is not None else False
21764
+ '''
21765
+ TLS disable certificate verification
21766
+ '''
21767
+ self.ttl = ttl if ttl is not None else None
21768
+ '''
21769
+ The default password time-to-live duration. Once the ttl has passed, a password will be rotated the next time it's requested.
21770
+ '''
21771
+ self.username = username if username is not None else ''
21772
+ '''
21773
+ Username is the username to connect to the MySQL server.
21774
+ '''
21775
+
21776
+ def __repr__(self):
21777
+ return '<sdm.MysqlEngine ' + \
21778
+ 'after_read_ttl: ' + repr(self.after_read_ttl) + ' ' +\
21779
+ 'database: ' + repr(self.database) + ' ' +\
21780
+ 'hostname: ' + repr(self.hostname) + ' ' +\
21781
+ 'id: ' + repr(self.id) + ' ' +\
21782
+ 'key_rotation_interval_days: ' + repr(self.key_rotation_interval_days) + ' ' +\
21783
+ 'name: ' + repr(self.name) + ' ' +\
21784
+ 'password: ' + repr(self.password) + ' ' +\
21785
+ 'policy: ' + repr(self.policy) + ' ' +\
21786
+ 'port: ' + repr(self.port) + ' ' +\
21787
+ 'public_key: ' + repr(self.public_key) + ' ' +\
21788
+ 'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
21789
+ 'secret_store_root_path: ' + repr(self.secret_store_root_path) + ' ' +\
21790
+ 'tags: ' + repr(self.tags) + ' ' +\
21791
+ 'tls: ' + repr(self.tls) + ' ' +\
21792
+ 'tls_skip_verify: ' + repr(self.tls_skip_verify) + ' ' +\
21793
+ 'ttl: ' + repr(self.ttl) + ' ' +\
21794
+ 'username: ' + repr(self.username) + ' ' +\
21795
+ '>'
21796
+
21797
+ def to_dict(self):
21798
+ return {
21799
+ 'after_read_ttl': self.after_read_ttl,
21800
+ 'database': self.database,
21801
+ 'hostname': self.hostname,
21802
+ 'id': self.id,
21803
+ 'key_rotation_interval_days': self.key_rotation_interval_days,
21804
+ 'name': self.name,
21805
+ 'password': self.password,
21806
+ 'policy': self.policy,
21807
+ 'port': self.port,
21808
+ 'public_key': self.public_key,
21809
+ 'secret_store_id': self.secret_store_id,
21810
+ 'secret_store_root_path': self.secret_store_root_path,
21811
+ 'tags': self.tags,
21812
+ 'tls': self.tls,
21813
+ 'tls_skip_verify': self.tls_skip_verify,
21814
+ 'ttl': self.ttl,
21815
+ 'username': self.username,
21816
+ }
21817
+
21818
+ @classmethod
21819
+ def from_dict(cls, d):
21820
+ return cls(
21821
+ after_read_ttl=d.get('after_read_ttl'),
21822
+ database=d.get('database'),
21823
+ hostname=d.get('hostname'),
21824
+ id=d.get('id'),
21825
+ key_rotation_interval_days=d.get('key_rotation_interval_days'),
21826
+ name=d.get('name'),
21827
+ password=d.get('password'),
21828
+ policy=d.get('policy'),
21829
+ port=d.get('port'),
21830
+ public_key=d.get('public_key'),
21831
+ secret_store_id=d.get('secret_store_id'),
21832
+ secret_store_root_path=d.get('secret_store_root_path'),
21833
+ tags=d.get('tags'),
21834
+ tls=d.get('tls'),
21835
+ tls_skip_verify=d.get('tls_skip_verify'),
21836
+ ttl=d.get('ttl'),
21837
+ username=d.get('username'),
21838
+ )
21839
+
21840
+
21662
21841
  class Neptune:
21663
21842
  __slots__ = [
21664
21843
  'bind_interface',
@@ -31052,6 +31231,7 @@ class Service:
31052
31231
  directly, or granted via roles. Services are typically automated jobs.
31053
31232
  '''
31054
31233
  __slots__ = [
31234
+ 'created_at',
31055
31235
  'id',
31056
31236
  'name',
31057
31237
  'suspended',
@@ -31060,11 +31240,16 @@ class Service:
31060
31240
 
31061
31241
  def __init__(
31062
31242
  self,
31243
+ created_at=None,
31063
31244
  id=None,
31064
31245
  name=None,
31065
31246
  suspended=None,
31066
31247
  tags=None,
31067
31248
  ):
31249
+ self.created_at = created_at if created_at is not None else None
31250
+ '''
31251
+ CreatedAt is the timestamp when the service was created
31252
+ '''
31068
31253
  self.id = id if id is not None else ''
31069
31254
  '''
31070
31255
  Unique identifier of the Service.
@@ -31084,6 +31269,7 @@ class Service:
31084
31269
 
31085
31270
  def __repr__(self):
31086
31271
  return '<sdm.Service ' + \
31272
+ 'created_at: ' + repr(self.created_at) + ' ' +\
31087
31273
  'id: ' + repr(self.id) + ' ' +\
31088
31274
  'name: ' + repr(self.name) + ' ' +\
31089
31275
  'suspended: ' + repr(self.suspended) + ' ' +\
@@ -31092,6 +31278,7 @@ class Service:
31092
31278
 
31093
31279
  def to_dict(self):
31094
31280
  return {
31281
+ 'created_at': self.created_at,
31095
31282
  'id': self.id,
31096
31283
  'name': self.name,
31097
31284
  'suspended': self.suspended,
@@ -31101,6 +31288,7 @@ class Service:
31101
31288
  @classmethod
31102
31289
  def from_dict(cls, d):
31103
31290
  return cls(
31291
+ created_at=d.get('created_at'),
31104
31292
  id=d.get('id'),
31105
31293
  name=d.get('name'),
31106
31294
  suspended=d.get('suspended'),
@@ -32134,6 +32322,7 @@ class Token:
32134
32322
  '''
32135
32323
  __slots__ = [
32136
32324
  'account_type',
32325
+ 'created_at',
32137
32326
  'deadline',
32138
32327
  'duration',
32139
32328
  'id',
@@ -32147,6 +32336,7 @@ class Token:
32147
32336
  def __init__(
32148
32337
  self,
32149
32338
  account_type=None,
32339
+ created_at=None,
32150
32340
  deadline=None,
32151
32341
  duration=None,
32152
32342
  id=None,
@@ -32160,6 +32350,10 @@ class Token:
32160
32350
  '''
32161
32351
  Corresponds to the type of token, e.g. api or admin-token.
32162
32352
  '''
32353
+ self.created_at = created_at if created_at is not None else None
32354
+ '''
32355
+ CreatedAt is the timestamp when the token was created
32356
+ '''
32163
32357
  self.deadline = deadline if deadline is not None else None
32164
32358
  '''
32165
32359
  The timestamp when the Token will expire.
@@ -32196,6 +32390,7 @@ class Token:
32196
32390
  def __repr__(self):
32197
32391
  return '<sdm.Token ' + \
32198
32392
  'account_type: ' + repr(self.account_type) + ' ' +\
32393
+ 'created_at: ' + repr(self.created_at) + ' ' +\
32199
32394
  'deadline: ' + repr(self.deadline) + ' ' +\
32200
32395
  'duration: ' + repr(self.duration) + ' ' +\
32201
32396
  'id: ' + repr(self.id) + ' ' +\
@@ -32209,6 +32404,7 @@ class Token:
32209
32404
  def to_dict(self):
32210
32405
  return {
32211
32406
  'account_type': self.account_type,
32407
+ 'created_at': self.created_at,
32212
32408
  'deadline': self.deadline,
32213
32409
  'duration': self.duration,
32214
32410
  'id': self.id,
@@ -32223,6 +32419,7 @@ class Token:
32223
32419
  def from_dict(cls, d):
32224
32420
  return cls(
32225
32421
  account_type=d.get('account_type'),
32422
+ created_at=d.get('created_at'),
32226
32423
  deadline=d.get('deadline'),
32227
32424
  duration=d.get('duration'),
32228
32425
  id=d.get('id'),
@@ -32419,6 +32616,7 @@ class User:
32419
32616
  '''
32420
32617
  __slots__ = [
32421
32618
  'scim',
32619
+ 'created_at',
32422
32620
  'email',
32423
32621
  'external_id',
32424
32622
  'first_name',
@@ -32436,6 +32634,7 @@ class User:
32436
32634
  def __init__(
32437
32635
  self,
32438
32636
  scim=None,
32637
+ created_at=None,
32439
32638
  email=None,
32440
32639
  external_id=None,
32441
32640
  first_name=None,
@@ -32453,6 +32652,10 @@ class User:
32453
32652
  '''
32454
32653
  SCIM contains the raw SCIM metadata for the user. This is a read-only field.
32455
32654
  '''
32655
+ self.created_at = created_at if created_at is not None else None
32656
+ '''
32657
+ CreatedAt is the timestamp when the user was created
32658
+ '''
32456
32659
  self.email = email if email is not None else ''
32457
32660
  '''
32458
32661
  The User's email address. Must be unique.
@@ -32508,6 +32711,7 @@ class User:
32508
32711
  def __repr__(self):
32509
32712
  return '<sdm.User ' + \
32510
32713
  'scim: ' + repr(self.scim) + ' ' +\
32714
+ 'created_at: ' + repr(self.created_at) + ' ' +\
32511
32715
  'email: ' + repr(self.email) + ' ' +\
32512
32716
  'external_id: ' + repr(self.external_id) + ' ' +\
32513
32717
  'first_name: ' + repr(self.first_name) + ' ' +\
@@ -32525,6 +32729,7 @@ class User:
32525
32729
  def to_dict(self):
32526
32730
  return {
32527
32731
  'scim': self.scim,
32732
+ 'created_at': self.created_at,
32528
32733
  'email': self.email,
32529
32734
  'external_id': self.external_id,
32530
32735
  'first_name': self.first_name,
@@ -32543,6 +32748,7 @@ class User:
32543
32748
  def from_dict(cls, d):
32544
32749
  return cls(
32545
32750
  scim=d.get('scim'),
32751
+ created_at=d.get('created_at'),
32546
32752
  email=d.get('email'),
32547
32753
  external_id=d.get('external_id'),
32548
32754
  first_name=d.get('first_name'),
@@ -10537,6 +10537,72 @@ def convert_repeated_mysql_to_porcelain(plumbings):
10537
10537
  return [convert_mysql_to_porcelain(plumbing) for plumbing in plumbings]
10538
10538
 
10539
10539
 
10540
+ def convert_mysql_engine_to_porcelain(plumbing):
10541
+ if plumbing is None:
10542
+ return None
10543
+ porcelain = models.MysqlEngine()
10544
+ porcelain.after_read_ttl = convert_duration_to_porcelain(
10545
+ plumbing.after_read_ttl)
10546
+ porcelain.database = (plumbing.database)
10547
+ porcelain.hostname = (plumbing.hostname)
10548
+ porcelain.id = (plumbing.id)
10549
+ porcelain.key_rotation_interval_days = (
10550
+ plumbing.key_rotation_interval_days)
10551
+ porcelain.name = (plumbing.name)
10552
+ porcelain.password = (plumbing.password)
10553
+ porcelain.policy = convert_secret_engine_policy_to_porcelain(
10554
+ plumbing.policy)
10555
+ porcelain.port = (plumbing.port)
10556
+ porcelain.public_key = (plumbing.public_key)
10557
+ porcelain.secret_store_id = (plumbing.secret_store_id)
10558
+ porcelain.secret_store_root_path = (plumbing.secret_store_root_path)
10559
+ porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
10560
+ porcelain.tls = (plumbing.tls)
10561
+ porcelain.tls_skip_verify = (plumbing.tls_skip_verify)
10562
+ porcelain.ttl = convert_duration_to_porcelain(plumbing.ttl)
10563
+ porcelain.username = (plumbing.username)
10564
+ return porcelain
10565
+
10566
+
10567
+ def convert_mysql_engine_to_plumbing(porcelain):
10568
+ plumbing = MysqlEngine()
10569
+ if porcelain is None:
10570
+ return plumbing
10571
+ plumbing.after_read_ttl.CopyFrom(
10572
+ convert_duration_to_plumbing(porcelain.after_read_ttl))
10573
+ plumbing.database = (porcelain.database)
10574
+ plumbing.hostname = (porcelain.hostname)
10575
+ plumbing.id = (porcelain.id)
10576
+ plumbing.key_rotation_interval_days = (
10577
+ porcelain.key_rotation_interval_days)
10578
+ plumbing.name = (porcelain.name)
10579
+ plumbing.password = (porcelain.password)
10580
+ plumbing.policy.CopyFrom(
10581
+ convert_secret_engine_policy_to_plumbing(porcelain.policy))
10582
+ plumbing.port = (porcelain.port)
10583
+ plumbing.public_key = (porcelain.public_key)
10584
+ plumbing.secret_store_id = (porcelain.secret_store_id)
10585
+ plumbing.secret_store_root_path = (porcelain.secret_store_root_path)
10586
+ plumbing.tags.CopyFrom(convert_tags_to_plumbing(porcelain.tags))
10587
+ plumbing.tls = (porcelain.tls)
10588
+ plumbing.tls_skip_verify = (porcelain.tls_skip_verify)
10589
+ plumbing.ttl.CopyFrom(convert_duration_to_plumbing(porcelain.ttl))
10590
+ plumbing.username = (porcelain.username)
10591
+ return plumbing
10592
+
10593
+
10594
+ def convert_repeated_mysql_engine_to_plumbing(porcelains):
10595
+ return [
10596
+ convert_mysql_engine_to_plumbing(porcelain) for porcelain in porcelains
10597
+ ]
10598
+
10599
+
10600
+ def convert_repeated_mysql_engine_to_porcelain(plumbings):
10601
+ return [
10602
+ convert_mysql_engine_to_porcelain(plumbing) for plumbing in plumbings
10603
+ ]
10604
+
10605
+
10540
10606
  def convert_neptune_to_porcelain(plumbing):
10541
10607
  if plumbing is None:
10542
10608
  return None
@@ -15241,6 +15307,8 @@ def convert_secret_engine_to_plumbing(porcelain):
15241
15307
  if isinstance(porcelain, models.KeyValueEngine):
15242
15308
  plumbing.key_value.CopyFrom(
15243
15309
  convert_key_value_engine_to_plumbing(porcelain))
15310
+ if isinstance(porcelain, models.MysqlEngine):
15311
+ plumbing.mysql.CopyFrom(convert_mysql_engine_to_plumbing(porcelain))
15244
15312
  if isinstance(porcelain, models.PostgresEngine):
15245
15313
  plumbing.postgres.CopyFrom(
15246
15314
  convert_postgres_engine_to_plumbing(porcelain))
@@ -15255,6 +15323,8 @@ def convert_secret_engine_to_porcelain(plumbing):
15255
15323
  plumbing.active_directory)
15256
15324
  if plumbing.HasField('key_value'):
15257
15325
  return convert_key_value_engine_to_porcelain(plumbing.key_value)
15326
+ if plumbing.HasField('mysql'):
15327
+ return convert_mysql_engine_to_porcelain(plumbing.mysql)
15258
15328
  if plumbing.HasField('postgres'):
15259
15329
  return convert_postgres_engine_to_porcelain(plumbing.postgres)
15260
15330
  raise errors.UnknownError(
@@ -16240,6 +16310,7 @@ def convert_service_to_porcelain(plumbing):
16240
16310
  if plumbing is None:
16241
16311
  return None
16242
16312
  porcelain = models.Service()
16313
+ porcelain.created_at = convert_timestamp_to_porcelain(plumbing.created_at)
16243
16314
  porcelain.id = (plumbing.id)
16244
16315
  porcelain.name = (plumbing.name)
16245
16316
  porcelain.suspended = (plumbing.suspended)
@@ -16251,6 +16322,8 @@ def convert_service_to_plumbing(porcelain):
16251
16322
  plumbing = Service()
16252
16323
  if porcelain is None:
16253
16324
  return plumbing
16325
+ plumbing.created_at.CopyFrom(
16326
+ convert_timestamp_to_plumbing(porcelain.created_at))
16254
16327
  plumbing.id = (porcelain.id)
16255
16328
  plumbing.name = (porcelain.name)
16256
16329
  plumbing.suspended = (porcelain.suspended)
@@ -16653,6 +16726,7 @@ def convert_token_to_porcelain(plumbing):
16653
16726
  return None
16654
16727
  porcelain = models.Token()
16655
16728
  porcelain.account_type = (plumbing.account_type)
16729
+ porcelain.created_at = convert_timestamp_to_porcelain(plumbing.created_at)
16656
16730
  porcelain.deadline = convert_timestamp_to_porcelain(plumbing.deadline)
16657
16731
  porcelain.duration = convert_duration_to_porcelain(plumbing.duration)
16658
16732
  porcelain.id = (plumbing.id)
@@ -16669,6 +16743,8 @@ def convert_token_to_plumbing(porcelain):
16669
16743
  if porcelain is None:
16670
16744
  return plumbing
16671
16745
  plumbing.account_type = (porcelain.account_type)
16746
+ plumbing.created_at.CopyFrom(
16747
+ convert_timestamp_to_plumbing(porcelain.created_at))
16672
16748
  plumbing.deadline.CopyFrom(
16673
16749
  convert_timestamp_to_plumbing(porcelain.deadline))
16674
16750
  plumbing.duration.CopyFrom(convert_duration_to_plumbing(
@@ -16776,6 +16852,7 @@ def convert_user_to_porcelain(plumbing):
16776
16852
  return None
16777
16853
  porcelain = models.User()
16778
16854
  porcelain.scim = (plumbing.SCIM)
16855
+ porcelain.created_at = convert_timestamp_to_porcelain(plumbing.created_at)
16779
16856
  porcelain.email = (plumbing.email)
16780
16857
  porcelain.external_id = (plumbing.external_id)
16781
16858
  porcelain.first_name = (plumbing.first_name)
@@ -16796,6 +16873,8 @@ def convert_user_to_plumbing(porcelain):
16796
16873
  if porcelain is None:
16797
16874
  return plumbing
16798
16875
  plumbing.SCIM = (porcelain.scim)
16876
+ plumbing.created_at.CopyFrom(
16877
+ convert_timestamp_to_plumbing(porcelain.created_at))
16799
16878
  plumbing.email = (porcelain.email)
16800
16879
  plumbing.external_id = (porcelain.external_id)
16801
16880
  plumbing.first_name = (porcelain.first_name)