strongdm 7.1.1__zip → 8.0.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 (127) hide show
  1. {strongdm-7.1.1 → strongdm-8.0.0}/PKG-INFO +2 -2
  2. {strongdm-7.1.1 → strongdm-8.0.0}/setup.py +2 -2
  3. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/accounts_pb2.py +45 -34
  4. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/accounts_pb2_grpc.py +3 -0
  5. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/client.py +6 -3
  6. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/models.py +125 -0
  7. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/plumbing.py +51 -0
  8. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/svc.py +4 -0
  9. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm.egg-info/PKG-INFO +2 -2
  10. {strongdm-7.1.1 → strongdm-8.0.0}/LICENSE +0 -0
  11. {strongdm-7.1.1 → strongdm-8.0.0}/README.md +0 -0
  12. {strongdm-7.1.1 → strongdm-8.0.0}/setup.cfg +0 -0
  13. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/__init__.py +0 -0
  14. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/access_request_events_history_pb2.py +0 -0
  15. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/access_request_events_history_pb2_grpc.py +0 -0
  16. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/access_requests_history_pb2.py +0 -0
  17. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/access_requests_history_pb2_grpc.py +0 -0
  18. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/access_requests_pb2.py +0 -0
  19. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/access_requests_pb2_grpc.py +0 -0
  20. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/account_attachments_history_pb2.py +0 -0
  21. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/account_attachments_history_pb2_grpc.py +0 -0
  22. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/account_attachments_pb2.py +0 -0
  23. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/account_attachments_pb2_grpc.py +0 -0
  24. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/account_grants_history_pb2.py +0 -0
  25. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/account_grants_history_pb2_grpc.py +0 -0
  26. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/account_grants_pb2.py +0 -0
  27. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/account_grants_pb2_grpc.py +0 -0
  28. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/account_permissions_pb2.py +0 -0
  29. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/account_permissions_pb2_grpc.py +0 -0
  30. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/account_resources_history_pb2.py +0 -0
  31. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/account_resources_history_pb2_grpc.py +0 -0
  32. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/account_resources_pb2.py +0 -0
  33. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/account_resources_pb2_grpc.py +0 -0
  34. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/accounts_history_pb2.py +0 -0
  35. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/accounts_history_pb2_grpc.py +0 -0
  36. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/activities_pb2.py +0 -0
  37. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/activities_pb2_grpc.py +0 -0
  38. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/approval_workflow_approvers_history_pb2.py +0 -0
  39. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/approval_workflow_approvers_history_pb2_grpc.py +0 -0
  40. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/approval_workflow_approvers_pb2.py +0 -0
  41. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/approval_workflow_approvers_pb2_grpc.py +0 -0
  42. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/approval_workflow_steps_history_pb2.py +0 -0
  43. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/approval_workflow_steps_history_pb2_grpc.py +0 -0
  44. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/approval_workflow_steps_pb2.py +0 -0
  45. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/approval_workflow_steps_pb2_grpc.py +0 -0
  46. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/approval_workflows_history_pb2.py +0 -0
  47. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/approval_workflows_history_pb2_grpc.py +0 -0
  48. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/approval_workflows_pb2.py +0 -0
  49. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/approval_workflows_pb2_grpc.py +0 -0
  50. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/constants.py +0 -0
  51. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/control_panel_pb2.py +0 -0
  52. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/control_panel_pb2_grpc.py +0 -0
  53. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/drivers_pb2.py +0 -0
  54. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/drivers_pb2_grpc.py +0 -0
  55. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/errors.py +0 -0
  56. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/nodes_history_pb2.py +0 -0
  57. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/nodes_history_pb2_grpc.py +0 -0
  58. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/nodes_pb2.py +0 -0
  59. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/nodes_pb2_grpc.py +0 -0
  60. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/options_pb2.py +0 -0
  61. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/options_pb2_grpc.py +0 -0
  62. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/organization_history_pb2.py +0 -0
  63. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/organization_history_pb2_grpc.py +0 -0
  64. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/peering_group_nodes_pb2.py +0 -0
  65. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/peering_group_nodes_pb2_grpc.py +0 -0
  66. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/peering_group_peers_pb2.py +0 -0
  67. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/peering_group_peers_pb2_grpc.py +0 -0
  68. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/peering_group_resources_pb2.py +0 -0
  69. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/peering_group_resources_pb2_grpc.py +0 -0
  70. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/peering_groups_pb2.py +0 -0
  71. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/peering_groups_pb2_grpc.py +0 -0
  72. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/queries_pb2.py +0 -0
  73. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/queries_pb2_grpc.py +0 -0
  74. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/remote_identities_history_pb2.py +0 -0
  75. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/remote_identities_history_pb2_grpc.py +0 -0
  76. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/remote_identities_pb2.py +0 -0
  77. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/remote_identities_pb2_grpc.py +0 -0
  78. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/remote_identity_groups_history_pb2.py +0 -0
  79. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/remote_identity_groups_history_pb2_grpc.py +0 -0
  80. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/remote_identity_groups_pb2.py +0 -0
  81. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/remote_identity_groups_pb2_grpc.py +0 -0
  82. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/replays_pb2.py +0 -0
  83. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/replays_pb2_grpc.py +0 -0
  84. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/resources_history_pb2.py +0 -0
  85. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/resources_history_pb2_grpc.py +0 -0
  86. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/resources_pb2.py +0 -0
  87. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/resources_pb2_grpc.py +0 -0
  88. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/role_resources_history_pb2.py +0 -0
  89. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/role_resources_history_pb2_grpc.py +0 -0
  90. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/role_resources_pb2.py +0 -0
  91. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/role_resources_pb2_grpc.py +0 -0
  92. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/roles_history_pb2.py +0 -0
  93. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/roles_history_pb2_grpc.py +0 -0
  94. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/roles_pb2.py +0 -0
  95. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/roles_pb2_grpc.py +0 -0
  96. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/secret_store_healths_pb2.py +0 -0
  97. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/secret_store_healths_pb2_grpc.py +0 -0
  98. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/secret_store_types_pb2.py +0 -0
  99. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/secret_store_types_pb2_grpc.py +0 -0
  100. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/secret_stores_history_pb2.py +0 -0
  101. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/secret_stores_history_pb2_grpc.py +0 -0
  102. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/secret_stores_pb2.py +0 -0
  103. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/secret_stores_pb2_grpc.py +0 -0
  104. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/spec_pb2.py +0 -0
  105. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/spec_pb2_grpc.py +0 -0
  106. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/tags_pb2.py +0 -0
  107. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/tags_pb2_grpc.py +0 -0
  108. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/workflow_approvers_history_pb2.py +0 -0
  109. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/workflow_approvers_history_pb2_grpc.py +0 -0
  110. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/workflow_approvers_pb2.py +0 -0
  111. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/workflow_approvers_pb2_grpc.py +0 -0
  112. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/workflow_assignments_history_pb2.py +0 -0
  113. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/workflow_assignments_history_pb2_grpc.py +0 -0
  114. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/workflow_assignments_pb2.py +0 -0
  115. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/workflow_assignments_pb2_grpc.py +0 -0
  116. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/workflow_roles_history_pb2.py +0 -0
  117. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/workflow_roles_history_pb2_grpc.py +0 -0
  118. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/workflow_roles_pb2.py +0 -0
  119. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/workflow_roles_pb2_grpc.py +0 -0
  120. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/workflows_history_pb2.py +0 -0
  121. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/workflows_history_pb2_grpc.py +0 -0
  122. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/workflows_pb2.py +0 -0
  123. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm/workflows_pb2_grpc.py +0 -0
  124. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm.egg-info/SOURCES.txt +0 -0
  125. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm.egg-info/dependency_links.txt +0 -0
  126. {strongdm-7.1.1 → strongdm-8.0.0}/strongdm.egg-info/requires.txt +0 -0
  127. {strongdm-7.1.1 → strongdm-8.0.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: 7.1.1
3
+ Version: 8.0.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/v7.1.1.tar.gz
9
+ Download-URL: https://github.com/strongdm/strongdm-sdk-python/archive/v8.0.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='7.1.1',
26
+ version='8.0.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/v7.1.1.tar.gz',
35
+ 'https://github.com/strongdm/strongdm-sdk-python/archive/v8.0.0.tar.gz',
36
36
  keywords=[
37
37
  'strongDM', 'sdm', 'api', 'automation', 'security', 'audit',
38
38
  'database', 'server', 'ssh', 'rdp'
@@ -26,13 +26,14 @@ from google.protobuf import symbol_database as _symbol_database
26
26
  _sym_db = _symbol_database.Default()
27
27
 
28
28
 
29
+ from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2
29
30
  from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
30
31
  from . import options_pb2 as options__pb2
31
32
  from . import spec_pb2 as spec__pb2
32
33
  from . import tags_pb2 as tags__pb2
33
34
 
34
35
 
35
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0e\x61\x63\x63ounts.proto\x12\x02v1\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\"\xfc\x01\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:\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\"\x9e\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\x30\n\x05token\x18\x03 \x01(\x0b\x32\t.v1.TokenB\x14\xf2\xf8\xb3\x07\x0f\xb2\xf4\xb3\x07\ngo_privateH\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\"\xd2\x06\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:\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\"\x8f\x02\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:\x19\xfa\xf8\xb3\x07\x14\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\ngo_private2\xa1\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\x1d\xca\xf9\xb3\x07\x0c\xc2\xf9\xb3\x07\x07\x41\x63\x63ount\xca\xf9\xb3\x07\x07\xd2\xf9\xb3\x07\x02\x61-Bd\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\"\xb2\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\x44\n\x05token\x18\x03 \x01(\x0b\x32\t.v1.TokenB(\xf2\xf8\xb3\x07#\xb0\xf3\xb3\x07\x01\xb2\xf4\xb3\x07\x01*\xb2\xf4\xb3\x07\x13!terraform-providerH\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\"\xd2\x06\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:\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\"\x9a\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:(\xfa\xf8\xb3\x07#\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x13!terraform-provider2\xab\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\'\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\x05\xe0\xf9\xb3\x07\x01\x42\x64\n\x19\x63om.strongdm.api.plumbingB\x10\x41\x63\x63ountsPlumbingZ5github.com/strongdm/strongdm-sdk-go/v3/internal/v1;v1b\x06proto3')
36
37
 
37
38
 
38
39
 
@@ -163,6 +164,10 @@ if _descriptor._USE_C_DESCRIPTORS == False:
163
164
  _ACCOUNTCREATERESPONSE.fields_by_name['token']._serialized_options = b'\362\370\263\007\n\260\363\263\007\001\360\363\263\007\001'
164
165
  _ACCOUNTCREATERESPONSE.fields_by_name['rate_limit']._options = None
165
166
  _ACCOUNTCREATERESPONSE.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'
167
+ _ACCOUNTCREATERESPONSE.fields_by_name['access_key']._options = None
168
+ _ACCOUNTCREATERESPONSE.fields_by_name['access_key']._serialized_options = b'\362\370\263\007#\260\363\263\007\001\262\364\263\007\001*\262\364\263\007\023!terraform-provider'
169
+ _ACCOUNTCREATERESPONSE.fields_by_name['secret_key']._options = None
170
+ _ACCOUNTCREATERESPONSE.fields_by_name['secret_key']._serialized_options = b'\362\370\263\007#\260\363\263\007\001\262\364\263\007\001*\262\364\263\007\023!terraform-provider'
166
171
  _ACCOUNTCREATERESPONSE._options = None
167
172
  _ACCOUNTCREATERESPONSE._serialized_options = b'\372\370\263\007\005\250\363\263\007\001'
168
173
  _ACCOUNTGETREQUEST.fields_by_name['id']._options = None
@@ -206,7 +211,7 @@ if _descriptor._USE_C_DESCRIPTORS == False:
206
211
  _ACCOUNT.fields_by_name['service']._options = None
207
212
  _ACCOUNT.fields_by_name['service']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
208
213
  _ACCOUNT.fields_by_name['token']._options = None
209
- _ACCOUNT.fields_by_name['token']._serialized_options = b'\362\370\263\007\017\262\364\263\007\ngo_private'
214
+ _ACCOUNT.fields_by_name['token']._serialized_options = b'\362\370\263\007#\260\363\263\007\001\262\364\263\007\001*\262\364\263\007\023!terraform-provider'
210
215
  _ACCOUNT._options = None
211
216
  _ACCOUNT._serialized_options = b'\372\370\263\007\005\250\363\263\007\001\372\370\263\007R\302\363\263\007M\242\363\263\007 tf_examples/account_resource.txt\252\363\263\007#tf_examples/account_data_source.txt'
212
217
  _USER.fields_by_name['id']._options = None
@@ -255,10 +260,16 @@ if _descriptor._USE_C_DESCRIPTORS == False:
255
260
  _TOKEN.fields_by_name['rekeyed']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
256
261
  _TOKEN.fields_by_name['deadline']._options = None
257
262
  _TOKEN.fields_by_name['deadline']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
263
+ _TOKEN.fields_by_name['account_type']._options = None
264
+ _TOKEN.fields_by_name['account_type']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
265
+ _TOKEN.fields_by_name['permissions']._options = None
266
+ _TOKEN.fields_by_name['permissions']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
267
+ _TOKEN.fields_by_name['duration']._options = None
268
+ _TOKEN.fields_by_name['duration']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
258
269
  _TOKEN._options = None
259
- _TOKEN._serialized_options = b'\372\370\263\007\024\250\363\263\007\001\322\363\263\007\ngo_private'
270
+ _TOKEN._serialized_options = b'\372\370\263\007#\250\363\263\007\001\322\363\263\007\001*\322\363\263\007\023!terraform-provider'
260
271
  _ACCOUNTS._options = None
261
- _ACCOUNTS._serialized_options = b'\312\371\263\007\014\302\371\263\007\007Account\312\371\263\007\007\322\371\263\007\002a-'
272
+ _ACCOUNTS._serialized_options = b'\312\371\263\007\014\302\371\263\007\007Account\312\371\263\007\007\322\371\263\007\002a-\312\371\263\007\005\340\371\263\007\001'
262
273
  _ACCOUNTS.methods_by_name['Create']._options = None
263
274
  _ACCOUNTS.methods_by_name['Create']._serialized_options = b'\202\371\263\007\t\242\363\263\007\004post\202\371\263\007\021\252\363\263\007\014/v1/accounts'
264
275
  _ACCOUNTS.methods_by_name['Get']._options = None
@@ -269,34 +280,34 @@ if _descriptor._USE_C_DESCRIPTORS == False:
269
280
  _ACCOUNTS.methods_by_name['Delete']._serialized_options = b'\202\371\263\007\013\242\363\263\007\006delete\202\371\263\007\026\252\363\263\007\021/v1/accounts/{id}'
270
281
  _ACCOUNTS.methods_by_name['List']._options = None
271
282
  _ACCOUNTS.methods_by_name['List']._serialized_options = b'\202\371\263\007\010\242\363\263\007\003get\202\371\263\007\021\252\363\263\007\014/v1/accounts'
272
- _ACCOUNTCREATEREQUEST._serialized_start=94
273
- _ACCOUNTCREATEREQUEST._serialized_end=199
274
- _ACCOUNTCREATERESPONSE._serialized_start=202
275
- _ACCOUNTCREATERESPONSE._serialized_end=454
276
- _ACCOUNTGETREQUEST._serialized_start=456
277
- _ACCOUNTGETREQUEST._serialized_end=537
278
- _ACCOUNTGETRESPONSE._serialized_start=540
279
- _ACCOUNTGETRESPONSE._serialized_end=754
280
- _ACCOUNTUPDATEREQUEST._serialized_start=756
281
- _ACCOUNTUPDATEREQUEST._serialized_end=873
282
- _ACCOUNTUPDATERESPONSE._serialized_start=876
283
- _ACCOUNTUPDATERESPONSE._serialized_end=1096
284
- _ACCOUNTDELETEREQUEST._serialized_start=1098
285
- _ACCOUNTDELETEREQUEST._serialized_end=1185
286
- _ACCOUNTDELETERESPONSE._serialized_start=1188
287
- _ACCOUNTDELETERESPONSE._serialized_end=1366
288
- _ACCOUNTLISTREQUEST._serialized_start=1368
289
- _ACCOUNTLISTREQUEST._serialized_end=1455
290
- _ACCOUNTLISTRESPONSE._serialized_start=1458
291
- _ACCOUNTLISTRESPONSE._serialized_end=1651
292
- _ACCOUNT._serialized_start=1654
293
- _ACCOUNT._serialized_end=1940
294
- _USER._serialized_start=1943
295
- _USER._serialized_end=2793
296
- _SERVICE._serialized_start=2796
297
- _SERVICE._serialized_end=2939
298
- _TOKEN._serialized_start=2942
299
- _TOKEN._serialized_end=3213
300
- _ACCOUNTS._serialized_start=3216
301
- _ACCOUNTS._serialized_end=3761
283
+ _ACCOUNTCREATEREQUEST._serialized_start=126
284
+ _ACCOUNTCREATEREQUEST._serialized_end=231
285
+ _ACCOUNTCREATERESPONSE._serialized_start=234
286
+ _ACCOUNTCREATERESPONSE._serialized_end=610
287
+ _ACCOUNTGETREQUEST._serialized_start=612
288
+ _ACCOUNTGETREQUEST._serialized_end=693
289
+ _ACCOUNTGETRESPONSE._serialized_start=696
290
+ _ACCOUNTGETRESPONSE._serialized_end=910
291
+ _ACCOUNTUPDATEREQUEST._serialized_start=912
292
+ _ACCOUNTUPDATEREQUEST._serialized_end=1029
293
+ _ACCOUNTUPDATERESPONSE._serialized_start=1032
294
+ _ACCOUNTUPDATERESPONSE._serialized_end=1252
295
+ _ACCOUNTDELETEREQUEST._serialized_start=1254
296
+ _ACCOUNTDELETEREQUEST._serialized_end=1341
297
+ _ACCOUNTDELETERESPONSE._serialized_start=1344
298
+ _ACCOUNTDELETERESPONSE._serialized_end=1522
299
+ _ACCOUNTLISTREQUEST._serialized_start=1524
300
+ _ACCOUNTLISTREQUEST._serialized_end=1611
301
+ _ACCOUNTLISTRESPONSE._serialized_start=1614
302
+ _ACCOUNTLISTRESPONSE._serialized_end=1807
303
+ _ACCOUNT._serialized_start=1810
304
+ _ACCOUNT._serialized_end=2116
305
+ _USER._serialized_start=2119
306
+ _USER._serialized_end=2969
307
+ _SERVICE._serialized_start=2972
308
+ _SERVICE._serialized_end=3115
309
+ _TOKEN._serialized_start=3118
310
+ _TOKEN._serialized_end=3528
311
+ _ACCOUNTS._serialized_start=3531
312
+ _ACCOUNTS._serialized_end=4086
302
313
  # @@protoc_insertion_point(module_scope)
@@ -23,6 +23,7 @@ class AccountsStub(object):
23
23
  """Accounts are users that have access to strongDM. There are two types of accounts:
24
24
  1. **Users:** humans who are authenticated through username and password or SSO.
25
25
  2. **Service Accounts:** machines that are authenticated using a service token.
26
+ 3. **Tokens** are access keys with permissions that can be used for authentication.
26
27
  """
27
28
 
28
29
  def __init__(self, channel):
@@ -62,6 +63,7 @@ class AccountsServicer(object):
62
63
  """Accounts are users that have access to strongDM. There are two types of accounts:
63
64
  1. **Users:** humans who are authenticated through username and password or SSO.
64
65
  2. **Service Accounts:** machines that are authenticated using a service token.
66
+ 3. **Tokens** are access keys with permissions that can be used for authentication.
65
67
  """
66
68
 
67
69
  def Create(self, request, context):
@@ -138,6 +140,7 @@ class Accounts(object):
138
140
  """Accounts are users that have access to strongDM. There are two types of accounts:
139
141
  1. **Users:** humans who are authenticated through username and password or SSO.
140
142
  2. **Service Accounts:** machines that are authenticated using a service token.
143
+ 3. **Tokens** are access keys with permissions that can be used for authentication.
141
144
  """
142
145
 
143
146
  @staticmethod
@@ -32,8 +32,8 @@ from . import svc
32
32
  DEFAULT_MAX_RETRIES = 3
33
33
  DEFAULT_BASE_RETRY_DELAY = 0.0030 # 30 ms
34
34
  DEFAULT_MAX_RETRY_DELAY = 300 # 300 seconds
35
- API_VERSION = '2024-03-14'
36
- USER_AGENT = 'strongdm-sdk-python/7.1.1'
35
+ API_VERSION = '2024-03-28'
36
+ USER_AGENT = 'strongdm-sdk-python/8.0.0'
37
37
 
38
38
 
39
39
  class Client:
@@ -139,6 +139,7 @@ class Client:
139
139
  Accounts are users that have access to strongDM. There are two types of accounts:
140
140
  1. **Users:** humans who are authenticated through username and password or SSO.
141
141
  2. **Service Accounts:** machines that are authenticated using a service token.
142
+ 3. **Tokens** are access keys with permissions that can be used for authentication.
142
143
 
143
144
  See `strongdm.svc.Accounts`.
144
145
  '''
@@ -426,7 +427,8 @@ class Client:
426
427
  return hmac.new(key, msg=msg_byte_string,
427
428
  digestmod=hashlib.sha256).digest()
428
429
 
429
- current_utc_date = datetime.datetime.utcnow().strftime('%Y-%m-%d')
430
+ current_utc_date = datetime.datetime.now(
431
+ datetime.timezone.utc).strftime('%Y-%m-%d')
430
432
  signing_key = hmac_digest(self.api_secret, current_utc_date.encode())
431
433
  signing_key = hmac_digest(signing_key, b'sdm_api_v1')
432
434
 
@@ -549,6 +551,7 @@ class SnapshotClient:
549
551
  Accounts are users that have access to strongDM. There are two types of accounts:
550
552
  1. **Users:** humans who are authenticated through username and password or SSO.
551
553
  2. **Service Accounts:** machines that are authenticated using a service token.
554
+ 3. **Tokens** are access keys with permissions that can be used for authentication.
552
555
 
553
556
  See `strongdm.svc.SnapshotAccounts`.
554
557
  '''
@@ -2153,19 +2153,27 @@ class AccountCreateResponse:
2153
2153
  AccountCreateResponse reports how the Accounts were created in the system.
2154
2154
  '''
2155
2155
  __slots__ = [
2156
+ 'access_key',
2156
2157
  'account',
2157
2158
  'meta',
2158
2159
  'rate_limit',
2160
+ 'secret_key',
2159
2161
  'token',
2160
2162
  ]
2161
2163
 
2162
2164
  def __init__(
2163
2165
  self,
2166
+ access_key=None,
2164
2167
  account=None,
2165
2168
  meta=None,
2166
2169
  rate_limit=None,
2170
+ secret_key=None,
2167
2171
  token=None,
2168
2172
  ):
2173
+ self.access_key = access_key if access_key is not None else ''
2174
+ '''
2175
+ ID part of the API key.
2176
+ '''
2169
2177
  self.account = account if account is not None else None
2170
2178
  '''
2171
2179
  The created Account.
@@ -2178,6 +2186,10 @@ class AccountCreateResponse:
2178
2186
  '''
2179
2187
  Rate limit information.
2180
2188
  '''
2189
+ self.secret_key = secret_key if secret_key is not None else ''
2190
+ '''
2191
+ Secret part of the API key.
2192
+ '''
2181
2193
  self.token = token if token is not None else ''
2182
2194
  '''
2183
2195
  The auth token generated for the Account. The Account will use this token to
@@ -2186,26 +2198,32 @@ class AccountCreateResponse:
2186
2198
 
2187
2199
  def __repr__(self):
2188
2200
  return '<sdm.AccountCreateResponse ' + \
2201
+ 'access_key: ' + repr(self.access_key) + ' ' +\
2189
2202
  'account: ' + repr(self.account) + ' ' +\
2190
2203
  'meta: ' + repr(self.meta) + ' ' +\
2191
2204
  'rate_limit: ' + repr(self.rate_limit) + ' ' +\
2205
+ 'secret_key: ' + repr(self.secret_key) + ' ' +\
2192
2206
  'token: ' + repr(self.token) + ' ' +\
2193
2207
  '>'
2194
2208
 
2195
2209
  def to_dict(self):
2196
2210
  return {
2211
+ 'access_key': self.access_key,
2197
2212
  'account': self.account,
2198
2213
  'meta': self.meta,
2199
2214
  'rate_limit': self.rate_limit,
2215
+ 'secret_key': self.secret_key,
2200
2216
  'token': self.token,
2201
2217
  }
2202
2218
 
2203
2219
  @classmethod
2204
2220
  def from_dict(cls, d):
2205
2221
  return cls(
2222
+ access_key=d.get('access_key'),
2206
2223
  account=d.get('account'),
2207
2224
  meta=d.get('meta'),
2208
2225
  rate_limit=d.get('rate_limit'),
2226
+ secret_key=d.get('secret_key'),
2209
2227
  token=d.get('token'),
2210
2228
  )
2211
2229
 
@@ -20826,6 +20844,113 @@ class Teradata:
20826
20844
  )
20827
20845
 
20828
20846
 
20847
+ class Token:
20848
+ '''
20849
+ A Token is an account providing tokenized access for automation or integration use.
20850
+ Tokens include admin tokens, API keys, and SCIM tokens.
20851
+ '''
20852
+ __slots__ = [
20853
+ 'account_type',
20854
+ 'deadline',
20855
+ 'duration',
20856
+ 'id',
20857
+ 'name',
20858
+ 'permissions',
20859
+ 'rekeyed',
20860
+ 'suspended',
20861
+ 'tags',
20862
+ ]
20863
+
20864
+ def __init__(
20865
+ self,
20866
+ account_type=None,
20867
+ deadline=None,
20868
+ duration=None,
20869
+ id=None,
20870
+ name=None,
20871
+ permissions=None,
20872
+ rekeyed=None,
20873
+ suspended=None,
20874
+ tags=None,
20875
+ ):
20876
+ self.account_type = account_type if account_type is not None else ''
20877
+ '''
20878
+ Corresponds to the type of token, e.g. api or admin-token.
20879
+ '''
20880
+ self.deadline = deadline if deadline is not None else None
20881
+ '''
20882
+ The timestamp when the Token will expire.
20883
+ '''
20884
+ self.duration = duration if duration is not None else None
20885
+ '''
20886
+ Duration from token creation to expiration.
20887
+ '''
20888
+ self.id = id if id is not None else ''
20889
+ '''
20890
+ Unique identifier of the Token.
20891
+ '''
20892
+ self.name = name if name is not None else ''
20893
+ '''
20894
+ Unique human-readable name of the Token.
20895
+ '''
20896
+ self.permissions = permissions if permissions is not None else []
20897
+ '''
20898
+ Permissions assigned to the token, e.g. role:create.
20899
+ '''
20900
+ self.rekeyed = rekeyed if rekeyed is not None else None
20901
+ '''
20902
+ The timestamp when the Token was last rekeyed.
20903
+ '''
20904
+ self.suspended = suspended if suspended is not None else False
20905
+ '''
20906
+ Reserved for future use. Always false for tokens.
20907
+ '''
20908
+ self.tags = tags if tags is not None else _porcelain_zero_value_tags()
20909
+ '''
20910
+ Tags is a map of key, value pairs.
20911
+ '''
20912
+
20913
+ def __repr__(self):
20914
+ return '<sdm.Token ' + \
20915
+ 'account_type: ' + repr(self.account_type) + ' ' +\
20916
+ 'deadline: ' + repr(self.deadline) + ' ' +\
20917
+ 'duration: ' + repr(self.duration) + ' ' +\
20918
+ 'id: ' + repr(self.id) + ' ' +\
20919
+ 'name: ' + repr(self.name) + ' ' +\
20920
+ 'permissions: ' + repr(self.permissions) + ' ' +\
20921
+ 'rekeyed: ' + repr(self.rekeyed) + ' ' +\
20922
+ 'suspended: ' + repr(self.suspended) + ' ' +\
20923
+ 'tags: ' + repr(self.tags) + ' ' +\
20924
+ '>'
20925
+
20926
+ def to_dict(self):
20927
+ return {
20928
+ 'account_type': self.account_type,
20929
+ 'deadline': self.deadline,
20930
+ 'duration': self.duration,
20931
+ 'id': self.id,
20932
+ 'name': self.name,
20933
+ 'permissions': self.permissions,
20934
+ 'rekeyed': self.rekeyed,
20935
+ 'suspended': self.suspended,
20936
+ 'tags': self.tags,
20937
+ }
20938
+
20939
+ @classmethod
20940
+ def from_dict(cls, d):
20941
+ return cls(
20942
+ account_type=d.get('account_type'),
20943
+ deadline=d.get('deadline'),
20944
+ duration=d.get('duration'),
20945
+ id=d.get('id'),
20946
+ name=d.get('name'),
20947
+ permissions=d.get('permissions'),
20948
+ rekeyed=d.get('rekeyed'),
20949
+ suspended=d.get('suspended'),
20950
+ tags=d.get('tags'),
20951
+ )
20952
+
20953
+
20829
20954
  class Trino:
20830
20955
  '''
20831
20956
  Trino is currently unstable, and its API may change, or it may be removed,
@@ -964,6 +964,8 @@ def convert_account_to_plumbing(porcelain):
964
964
  return plumbing
965
965
  if isinstance(porcelain, models.Service):
966
966
  plumbing.service.CopyFrom(convert_service_to_plumbing(porcelain))
967
+ if isinstance(porcelain, models.Token):
968
+ plumbing.token.CopyFrom(convert_token_to_plumbing(porcelain))
967
969
  if isinstance(porcelain, models.User):
968
970
  plumbing.user.CopyFrom(convert_user_to_plumbing(porcelain))
969
971
  return plumbing
@@ -974,6 +976,8 @@ def convert_account_to_porcelain(plumbing):
974
976
  return None
975
977
  if plumbing.HasField('service'):
976
978
  return convert_service_to_porcelain(plumbing.service)
979
+ if plumbing.HasField('token'):
980
+ return convert_token_to_porcelain(plumbing.token)
977
981
  if plumbing.HasField('user'):
978
982
  return convert_user_to_porcelain(plumbing.user)
979
983
  raise errors.UnknownError(
@@ -1185,11 +1189,13 @@ def convert_account_create_response_to_porcelain(plumbing):
1185
1189
  if plumbing is None:
1186
1190
  return None
1187
1191
  porcelain = models.AccountCreateResponse()
1192
+ porcelain.access_key = (plumbing.access_key)
1188
1193
  porcelain.account = convert_account_to_porcelain(plumbing.account)
1189
1194
  porcelain.meta = convert_create_response_metadata_to_porcelain(
1190
1195
  plumbing.meta)
1191
1196
  porcelain.rate_limit = convert_rate_limit_metadata_to_porcelain(
1192
1197
  plumbing.rate_limit)
1198
+ porcelain.secret_key = (plumbing.secret_key)
1193
1199
  porcelain.token = (plumbing.token)
1194
1200
  return porcelain
1195
1201
 
@@ -1198,11 +1204,13 @@ def convert_account_create_response_to_plumbing(porcelain):
1198
1204
  plumbing = AccountCreateResponse()
1199
1205
  if porcelain is None:
1200
1206
  return plumbing
1207
+ plumbing.access_key = (porcelain.access_key)
1201
1208
  plumbing.account.CopyFrom(convert_account_to_plumbing(porcelain.account))
1202
1209
  plumbing.meta.CopyFrom(
1203
1210
  convert_create_response_metadata_to_plumbing(porcelain.meta))
1204
1211
  plumbing.rate_limit.CopyFrom(
1205
1212
  convert_rate_limit_metadata_to_plumbing(porcelain.rate_limit))
1213
+ plumbing.secret_key = (porcelain.secret_key)
1206
1214
  plumbing.token = (porcelain.token)
1207
1215
  return plumbing
1208
1216
 
@@ -10406,6 +10414,49 @@ def convert_repeated_teradata_to_porcelain(plumbings):
10406
10414
  return [convert_teradata_to_porcelain(plumbing) for plumbing in plumbings]
10407
10415
 
10408
10416
 
10417
+ def convert_token_to_porcelain(plumbing):
10418
+ if plumbing is None:
10419
+ return None
10420
+ porcelain = models.Token()
10421
+ porcelain.account_type = (plumbing.account_type)
10422
+ porcelain.deadline = convert_timestamp_to_porcelain(plumbing.deadline)
10423
+ porcelain.duration = convert_duration_to_porcelain(plumbing.duration)
10424
+ porcelain.id = (plumbing.id)
10425
+ porcelain.name = (plumbing.name)
10426
+ porcelain.permissions = (plumbing.permissions)
10427
+ porcelain.rekeyed = convert_timestamp_to_porcelain(plumbing.rekeyed)
10428
+ porcelain.suspended = (plumbing.suspended)
10429
+ porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
10430
+ return porcelain
10431
+
10432
+
10433
+ def convert_token_to_plumbing(porcelain):
10434
+ plumbing = Token()
10435
+ if porcelain is None:
10436
+ return plumbing
10437
+ plumbing.account_type = (porcelain.account_type)
10438
+ plumbing.deadline.CopyFrom(
10439
+ convert_timestamp_to_plumbing(porcelain.deadline))
10440
+ plumbing.duration.CopyFrom(convert_duration_to_plumbing(
10441
+ porcelain.duration))
10442
+ plumbing.id = (porcelain.id)
10443
+ plumbing.name = (porcelain.name)
10444
+ del plumbing.permissions[:]
10445
+ plumbing.permissions.extend((porcelain.permissions))
10446
+ plumbing.rekeyed.CopyFrom(convert_timestamp_to_plumbing(porcelain.rekeyed))
10447
+ plumbing.suspended = (porcelain.suspended)
10448
+ plumbing.tags.CopyFrom(convert_tags_to_plumbing(porcelain.tags))
10449
+ return plumbing
10450
+
10451
+
10452
+ def convert_repeated_token_to_plumbing(porcelains):
10453
+ return [convert_token_to_plumbing(porcelain) for porcelain in porcelains]
10454
+
10455
+
10456
+ def convert_repeated_token_to_porcelain(plumbings):
10457
+ return [convert_token_to_porcelain(plumbing) for plumbing in plumbings]
10458
+
10459
+
10409
10460
  def convert_trino_to_porcelain(plumbing):
10410
10461
  if plumbing is None:
10411
10462
  return None
@@ -925,8 +925,10 @@ class Accounts:
925
925
  Accounts are users that have access to strongDM. There are two types of accounts:
926
926
  1. **Users:** humans who are authenticated through username and password or SSO.
927
927
  2. **Service Accounts:** machines that are authenticated using a service token.
928
+ 3. **Tokens** are access keys with permissions that can be used for authentication.
928
929
  See:
929
930
  `strongdm.models.Service`
931
+ `strongdm.models.Token`
930
932
  `strongdm.models.User`
931
933
  '''
932
934
  def __init__(self, channel, client):
@@ -958,12 +960,14 @@ class Accounts:
958
960
  break
959
961
 
960
962
  resp = models.AccountCreateResponse()
963
+ resp.access_key = (plumbing_response.access_key)
961
964
  resp.account = plumbing.convert_account_to_porcelain(
962
965
  plumbing_response.account)
963
966
  resp.meta = plumbing.convert_create_response_metadata_to_porcelain(
964
967
  plumbing_response.meta)
965
968
  resp.rate_limit = plumbing.convert_rate_limit_metadata_to_porcelain(
966
969
  plumbing_response.rate_limit)
970
+ resp.secret_key = (plumbing_response.secret_key)
967
971
  resp.token = (plumbing_response.token)
968
972
  return resp
969
973
 
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: strongdm
3
- Version: 7.1.1
3
+ Version: 8.0.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/v7.1.1.tar.gz
9
+ Download-URL: https://github.com/strongdm/strongdm-sdk-python/archive/v8.0.0.tar.gz
10
10
  Keywords: strongDM,sdm,api,automation,security,audit,database,server,ssh,rdp
11
11
  Platform: UNKNOWN
12
12
  Classifier: Development Status :: 4 - Beta
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes