strongdm 7.1.0__zip → 12.1.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 (145) hide show
  1. {strongdm-7.1.0 → strongdm-12.1.0}/PKG-INFO +2 -2
  2. {strongdm-7.1.0 → strongdm-12.1.0}/setup.py +2 -2
  3. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/access_request_events_history_pb2.py +3 -3
  4. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/access_requests_history_pb2.py +3 -3
  5. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/access_requests_pb2.py +45 -16
  6. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/account_grants_pb2.py +6 -4
  7. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/accounts_pb2.py +47 -34
  8. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/accounts_pb2_grpc.py +3 -0
  9. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/approval_workflow_approvers_history_pb2.py +3 -3
  10. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/approval_workflow_approvers_pb2.py +3 -3
  11. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/approval_workflow_steps_history_pb2.py +3 -3
  12. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/approval_workflow_steps_pb2.py +3 -3
  13. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/approval_workflows_history_pb2.py +3 -3
  14. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/approval_workflows_pb2.py +3 -3
  15. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/client.py +108 -13
  16. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/constants.py +86 -12
  17. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/drivers_pb2.py +745 -227
  18. strongdm-12.1.0/strongdm/health_checks_pb2.py +107 -0
  19. strongdm-12.1.0/strongdm/health_checks_pb2_grpc.py +87 -0
  20. strongdm-12.1.0/strongdm/identity_aliases_history_pb2.py +100 -0
  21. strongdm-12.1.0/strongdm/identity_aliases_history_pb2_grpc.py +84 -0
  22. strongdm-12.1.0/strongdm/identity_aliases_pb2.py +220 -0
  23. strongdm-12.1.0/strongdm/identity_aliases_pb2_grpc.py +223 -0
  24. strongdm-12.1.0/strongdm/identity_sets_history_pb2.py +100 -0
  25. strongdm-12.1.0/strongdm/identity_sets_history_pb2_grpc.py +84 -0
  26. strongdm-12.1.0/strongdm/identity_sets_pb2.py +216 -0
  27. strongdm-12.1.0/strongdm/identity_sets_pb2_grpc.py +223 -0
  28. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/models.py +7625 -3429
  29. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/nodes_pb2.py +41 -15
  30. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/options_pb2.py +24 -24
  31. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/organization_history_pb2.py +13 -5
  32. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/peering_group_nodes_pb2.py +3 -3
  33. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/peering_group_peers_pb2.py +3 -3
  34. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/peering_group_resources_pb2.py +3 -3
  35. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/peering_groups_pb2.py +3 -3
  36. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/plumbing.py +3138 -1165
  37. strongdm-12.1.0/strongdm/policies_history_pb2.py +100 -0
  38. strongdm-12.1.0/strongdm/policies_history_pb2_grpc.py +84 -0
  39. strongdm-12.1.0/strongdm/policies_pb2.py +216 -0
  40. strongdm-12.1.0/strongdm/policies_pb2_grpc.py +223 -0
  41. strongdm-12.1.0/strongdm/proxy_cluster_keys_pb2.py +191 -0
  42. strongdm-12.1.0/strongdm/proxy_cluster_keys_pb2_grpc.py +192 -0
  43. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/queries_pb2.py +17 -11
  44. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/remote_identities_history_pb2.py +3 -3
  45. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/remote_identities_pb2.py +3 -3
  46. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/remote_identity_groups_history_pb2.py +3 -3
  47. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/remote_identity_groups_pb2.py +3 -3
  48. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/replays_pb2.py +8 -6
  49. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/secret_store_types_pb2.py +164 -40
  50. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/spec_pb2.py +12 -8
  51. strongdm-12.1.0/strongdm/spec_pb2_grpc.py +18 -0
  52. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/svc.py +1345 -339
  53. strongdm-12.1.0/strongdm/tags_pb2_grpc.py +18 -0
  54. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/workflow_approvers_history_pb2.py +3 -3
  55. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/workflow_approvers_pb2.py +3 -3
  56. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/workflow_assignments_history_pb2.py +3 -3
  57. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/workflow_assignments_pb2.py +3 -3
  58. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/workflow_roles_history_pb2.py +3 -3
  59. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/workflow_roles_pb2.py +3 -3
  60. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/workflows_history_pb2.py +3 -3
  61. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/workflows_pb2.py +31 -26
  62. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm.egg-info/PKG-INFO +2 -2
  63. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm.egg-info/SOURCES.txt +18 -0
  64. {strongdm-7.1.0 → strongdm-12.1.0}/LICENSE +0 -0
  65. {strongdm-7.1.0 → strongdm-12.1.0}/README.md +0 -0
  66. {strongdm-7.1.0 → strongdm-12.1.0}/setup.cfg +0 -0
  67. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/__init__.py +0 -0
  68. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/access_request_events_history_pb2_grpc.py +0 -0
  69. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/access_requests_history_pb2_grpc.py +0 -0
  70. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/access_requests_pb2_grpc.py +0 -0
  71. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/account_attachments_history_pb2.py +0 -0
  72. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/account_attachments_history_pb2_grpc.py +0 -0
  73. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/account_attachments_pb2.py +0 -0
  74. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/account_attachments_pb2_grpc.py +0 -0
  75. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/account_grants_history_pb2.py +0 -0
  76. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/account_grants_history_pb2_grpc.py +0 -0
  77. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/account_grants_pb2_grpc.py +0 -0
  78. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/account_permissions_pb2.py +0 -0
  79. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/account_permissions_pb2_grpc.py +0 -0
  80. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/account_resources_history_pb2.py +0 -0
  81. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/account_resources_history_pb2_grpc.py +0 -0
  82. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/account_resources_pb2.py +0 -0
  83. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/account_resources_pb2_grpc.py +0 -0
  84. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/accounts_history_pb2.py +0 -0
  85. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/accounts_history_pb2_grpc.py +0 -0
  86. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/activities_pb2.py +0 -0
  87. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/activities_pb2_grpc.py +0 -0
  88. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/approval_workflow_approvers_history_pb2_grpc.py +0 -0
  89. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/approval_workflow_approvers_pb2_grpc.py +0 -0
  90. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/approval_workflow_steps_history_pb2_grpc.py +0 -0
  91. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/approval_workflow_steps_pb2_grpc.py +0 -0
  92. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/approval_workflows_history_pb2_grpc.py +0 -0
  93. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/approval_workflows_pb2_grpc.py +0 -0
  94. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/control_panel_pb2.py +0 -0
  95. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/control_panel_pb2_grpc.py +0 -0
  96. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/drivers_pb2_grpc.py +0 -0
  97. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/errors.py +0 -0
  98. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/nodes_history_pb2.py +0 -0
  99. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/nodes_history_pb2_grpc.py +0 -0
  100. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/nodes_pb2_grpc.py +0 -0
  101. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/options_pb2_grpc.py +0 -0
  102. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/organization_history_pb2_grpc.py +0 -0
  103. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/peering_group_nodes_pb2_grpc.py +0 -0
  104. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/peering_group_peers_pb2_grpc.py +0 -0
  105. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/peering_group_resources_pb2_grpc.py +0 -0
  106. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/peering_groups_pb2_grpc.py +0 -0
  107. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/queries_pb2_grpc.py +0 -0
  108. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/remote_identities_history_pb2_grpc.py +0 -0
  109. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/remote_identities_pb2_grpc.py +0 -0
  110. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/remote_identity_groups_history_pb2_grpc.py +0 -0
  111. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/remote_identity_groups_pb2_grpc.py +0 -0
  112. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/replays_pb2_grpc.py +0 -0
  113. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/resources_history_pb2.py +0 -0
  114. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/resources_history_pb2_grpc.py +0 -0
  115. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/resources_pb2.py +0 -0
  116. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/resources_pb2_grpc.py +0 -0
  117. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/role_resources_history_pb2.py +0 -0
  118. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/role_resources_history_pb2_grpc.py +0 -0
  119. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/role_resources_pb2.py +0 -0
  120. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/role_resources_pb2_grpc.py +0 -0
  121. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/roles_history_pb2.py +0 -0
  122. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/roles_history_pb2_grpc.py +0 -0
  123. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/roles_pb2.py +0 -0
  124. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/roles_pb2_grpc.py +0 -0
  125. /strongdm-7.1.0/strongdm/secret_store_types_pb2_grpc.py → /strongdm-12.1.0/strongdm/secret_engine_policy_pb2_grpc.py +0 -0
  126. /strongdm-7.1.0/strongdm/spec_pb2_grpc.py → /strongdm-12.1.0/strongdm/secret_engine_types_pb2_grpc.py +0 -0
  127. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/secret_store_healths_pb2.py +0 -0
  128. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/secret_store_healths_pb2_grpc.py +0 -0
  129. /strongdm-7.1.0/strongdm/tags_pb2_grpc.py → /strongdm-12.1.0/strongdm/secret_store_types_pb2_grpc.py +0 -0
  130. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/secret_stores_history_pb2.py +0 -0
  131. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/secret_stores_history_pb2_grpc.py +0 -0
  132. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/secret_stores_pb2.py +0 -0
  133. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/secret_stores_pb2_grpc.py +0 -0
  134. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/tags_pb2.py +0 -0
  135. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/workflow_approvers_history_pb2_grpc.py +0 -0
  136. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/workflow_approvers_pb2_grpc.py +0 -0
  137. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/workflow_assignments_history_pb2_grpc.py +0 -0
  138. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/workflow_assignments_pb2_grpc.py +0 -0
  139. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/workflow_roles_history_pb2_grpc.py +0 -0
  140. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/workflow_roles_pb2_grpc.py +0 -0
  141. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/workflows_history_pb2_grpc.py +0 -0
  142. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm/workflows_pb2_grpc.py +0 -0
  143. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm.egg-info/dependency_links.txt +0 -0
  144. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm.egg-info/requires.txt +0 -0
  145. {strongdm-7.1.0 → strongdm-12.1.0}/strongdm.egg-info/top_level.txt +0 -0
@@ -30,7 +30,7 @@ from . import options_pb2 as options__pb2
30
30
  from . import spec_pb2 as spec__pb2
31
31
 
32
32
 
33
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x61pproval_workflow_steps.proto\x12\x02v1\x1a\roptions.proto\x1a\nspec.proto\"\x92\x01\n!ApprovalWorkflowStepCreateRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.CreateRequestMetadata\x12\x44\n\x16\x61pproval_workflow_step\x18\x02 \x01(\x0b\x32\x18.v1.ApprovalWorkflowStepB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\"\xf9\x01\n\"ApprovalWorkflowStepCreateResponse\x12(\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.CreateResponseMetadata\x12\x44\n\x16\x61pproval_workflow_step\x18\x02 \x01(\x0b\x32\x18.v1.ApprovalWorkflowStepB\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\"^\n\x1e\x41pprovalWorkflowStepGetRequest\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\"\xff\x01\n\x1f\x41pprovalWorkflowStepGetResponse\x12\x31\n\x04meta\x18\x01 \x01(\x0b\x32\x17.v1.GetResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x44\n\x16\x61pproval_workflow_step\x18\x02 \x01(\x0b\x32\x18.v1.ApprovalWorkflowStepB\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\"d\n!ApprovalWorkflowStepDeleteRequest\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\"\xcb\x01\n\"ApprovalWorkflowStepDeleteResponse\x12(\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.DeleteResponseMetadata\x12\x16\n\x02id\x18\x02 \x01(\tB\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\"d\n\x1f\x41pprovalWorkflowStepListRequest\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\"\xf6\x01\n ApprovalWorkflowStepListResponse\x12&\n\x04meta\x18\x01 \x01(\x0b\x32\x18.v1.ListResponseMetadata\x12\x45\n\x17\x61pproval_workflow_steps\x18\x02 \x03(\x0b\x32\x18.v1.ApprovalWorkflowStepB\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:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xdc\x01\n\x14\x41pprovalWorkflowStep\x12\x16\n\x02id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12)\n\x10\x61pproval_flow_id\x18\x02 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01:\x80\x01\xfa\xf8\xb3\x07{\xa8\xf3\xb3\x07\x01\xc2\xf3\xb3\x07k\xa2\xf3\xb3\x07/tf_examples/approval_workflow_step_resource.txt\xaa\xf3\xb3\x07\x32tf_examples/approval_workflow_step_data_source.txt\xd2\xf3\xb3\x07\x01*2\xf6\x04\n\x15\x41pprovalWorkflowSteps\x12\x8c\x01\n\x06\x43reate\x12%.v1.ApprovalWorkflowStepCreateRequest\x1a&.v1.ApprovalWorkflowStepCreateResponse\"3\x82\xf9\xb3\x07\t\xa2\xf3\xb3\x07\x04post\x82\xf9\xb3\x07 \xaa\xf3\xb3\x07\x1b/v1/approval-workflow-steps\x12\x86\x01\n\x03Get\x12\".v1.ApprovalWorkflowStepGetRequest\x1a#.v1.ApprovalWorkflowStepGetResponse\"6\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07$\xaa\xf3\xb3\x07\x1f/v1/approval-workflow-step/{id}\x12\x8e\x01\n\x06\x44\x65lete\x12%.v1.ApprovalWorkflowStepDeleteRequest\x1a&.v1.ApprovalWorkflowStepDeleteResponse\"5\x82\xf9\xb3\x07\x0b\xa2\xf3\xb3\x07\x06\x64\x65lete\x82\xf9\xb3\x07 \xaa\xf3\xb3\x07\x1b/v1/approval-workflow-steps\x12\x85\x01\n\x04List\x12#.v1.ApprovalWorkflowStepListRequest\x1a$.v1.ApprovalWorkflowStepListResponse\"2\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07 \xaa\xf3\xb3\x07\x1b/v1/approval-workflow-steps\x1a,\xca\xf9\xb3\x07\x19\xc2\xf9\xb3\x07\x14\x41pprovalWorkflowStep\xca\xf9\xb3\x07\t\xd2\xf9\xb3\x07\x04\x61\x66s-Bq\n\x19\x63om.strongdm.api.plumbingB\x1d\x41pprovalWorkflowStepsPlumbingZ5github.com/strongdm/strongdm-sdk-go/v3/internal/v1;v1b\x06proto3')
33
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x61pproval_workflow_steps.proto\x12\x02v1\x1a\roptions.proto\x1a\nspec.proto\"\x92\x01\n!ApprovalWorkflowStepCreateRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.CreateRequestMetadata\x12\x44\n\x16\x61pproval_workflow_step\x18\x02 \x01(\x0b\x32\x18.v1.ApprovalWorkflowStepB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\"\xf9\x01\n\"ApprovalWorkflowStepCreateResponse\x12(\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.CreateResponseMetadata\x12\x44\n\x16\x61pproval_workflow_step\x18\x02 \x01(\x0b\x32\x18.v1.ApprovalWorkflowStepB\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\"^\n\x1e\x41pprovalWorkflowStepGetRequest\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\"\xff\x01\n\x1f\x41pprovalWorkflowStepGetResponse\x12\x31\n\x04meta\x18\x01 \x01(\x0b\x32\x17.v1.GetResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x44\n\x16\x61pproval_workflow_step\x18\x02 \x01(\x0b\x32\x18.v1.ApprovalWorkflowStepB\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\"d\n!ApprovalWorkflowStepDeleteRequest\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\"\xcb\x01\n\"ApprovalWorkflowStepDeleteResponse\x12(\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.DeleteResponseMetadata\x12\x16\n\x02id\x18\x02 \x01(\tB\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\"d\n\x1f\x41pprovalWorkflowStepListRequest\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\"\xf6\x01\n ApprovalWorkflowStepListResponse\x12&\n\x04meta\x18\x01 \x01(\x0b\x32\x18.v1.ListResponseMetadata\x12\x45\n\x17\x61pproval_workflow_steps\x18\x02 \x03(\x0b\x32\x18.v1.ApprovalWorkflowStepB\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:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xdc\x01\n\x14\x41pprovalWorkflowStep\x12\x16\n\x02id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12)\n\x10\x61pproval_flow_id\x18\x02 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01:\x80\x01\xfa\xf8\xb3\x07{\xa8\xf3\xb3\x07\x01\xc2\xf3\xb3\x07k\xa2\xf3\xb3\x07/tf_examples/approval_workflow_step_resource.txt\xaa\xf3\xb3\x07\x32tf_examples/approval_workflow_step_data_source.txt\xd2\xf3\xb3\x07\x01*2\x80\x05\n\x15\x41pprovalWorkflowSteps\x12\x8c\x01\n\x06\x43reate\x12%.v1.ApprovalWorkflowStepCreateRequest\x1a&.v1.ApprovalWorkflowStepCreateResponse\"3\x82\xf9\xb3\x07\t\xa2\xf3\xb3\x07\x04post\x82\xf9\xb3\x07 \xaa\xf3\xb3\x07\x1b/v1/approval-workflow-steps\x12\x86\x01\n\x03Get\x12\".v1.ApprovalWorkflowStepGetRequest\x1a#.v1.ApprovalWorkflowStepGetResponse\"6\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07$\xaa\xf3\xb3\x07\x1f/v1/approval-workflow-step/{id}\x12\x8e\x01\n\x06\x44\x65lete\x12%.v1.ApprovalWorkflowStepDeleteRequest\x1a&.v1.ApprovalWorkflowStepDeleteResponse\"5\x82\xf9\xb3\x07\x0b\xa2\xf3\xb3\x07\x06\x64\x65lete\x82\xf9\xb3\x07 \xaa\xf3\xb3\x07\x1b/v1/approval-workflow-steps\x12\x85\x01\n\x04List\x12#.v1.ApprovalWorkflowStepListRequest\x1a$.v1.ApprovalWorkflowStepListResponse\"2\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07 \xaa\xf3\xb3\x07\x1b/v1/approval-workflow-steps\x1a\x36\xca\xf9\xb3\x07\x19\xc2\xf9\xb3\x07\x14\x41pprovalWorkflowStep\xca\xf9\xb3\x07\t\xd2\xf9\xb3\x07\x04\x61\x66s-\xca\xf9\xb3\x07\x05\xe8\xf9\xb3\x07\x01\x42q\n\x19\x63om.strongdm.api.plumbingB\x1d\x41pprovalWorkflowStepsPlumbingZ5github.com/strongdm/strongdm-sdk-go/v3/internal/v1;v1b\x06proto3')
34
34
 
35
35
 
36
36
 
@@ -152,7 +152,7 @@ if _descriptor._USE_C_DESCRIPTORS == False:
152
152
  _APPROVALWORKFLOWSTEP._options = None
153
153
  _APPROVALWORKFLOWSTEP._serialized_options = b'\372\370\263\007{\250\363\263\007\001\302\363\263\007k\242\363\263\007/tf_examples/approval_workflow_step_resource.txt\252\363\263\0072tf_examples/approval_workflow_step_data_source.txt\322\363\263\007\001*'
154
154
  _APPROVALWORKFLOWSTEPS._options = None
155
- _APPROVALWORKFLOWSTEPS._serialized_options = b'\312\371\263\007\031\302\371\263\007\024ApprovalWorkflowStep\312\371\263\007\t\322\371\263\007\004afs-'
155
+ _APPROVALWORKFLOWSTEPS._serialized_options = b'\312\371\263\007\031\302\371\263\007\024ApprovalWorkflowStep\312\371\263\007\t\322\371\263\007\004afs-\312\371\263\007\005\350\371\263\007\001'
156
156
  _APPROVALWORKFLOWSTEPS.methods_by_name['Create']._options = None
157
157
  _APPROVALWORKFLOWSTEPS.methods_by_name['Create']._serialized_options = b'\202\371\263\007\t\242\363\263\007\004post\202\371\263\007 \252\363\263\007\033/v1/approval-workflow-steps'
158
158
  _APPROVALWORKFLOWSTEPS.methods_by_name['Get']._options = None
@@ -180,5 +180,5 @@ if _descriptor._USE_C_DESCRIPTORS == False:
180
180
  _APPROVALWORKFLOWSTEP._serialized_start=1479
181
181
  _APPROVALWORKFLOWSTEP._serialized_end=1699
182
182
  _APPROVALWORKFLOWSTEPS._serialized_start=1702
183
- _APPROVALWORKFLOWSTEPS._serialized_end=2332
183
+ _APPROVALWORKFLOWSTEPS._serialized_end=2342
184
184
  # @@protoc_insertion_point(module_scope)
@@ -32,7 +32,7 @@ from . import options_pb2 as options__pb2
32
32
  from . import spec_pb2 as spec__pb2
33
33
 
34
34
 
35
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n approval_workflows_history.proto\x12\x02v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x18\x61pproval_workflows.proto\x1a\roptions.proto\x1a\nspec.proto\"\x91\x01\n\"ApprovalWorkflowHistoryListRequest\x12%\n\x04meta\x18\x01 \x01(\x0b\x32\x17.v1.ListRequestMetadata\x12\x1a\n\x06\x66ilter\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:(\xfa\xf8\xb3\x07\x06\xd2\xf3\xb3\x07\x01*\xfa\xf8\xb3\x07\x18\xd2\xf3\xb3\x07\x13!terraform-provider\"\x8a\x02\n#ApprovalWorkflowHistoryListResponse\x12&\n\x04meta\x18\x01 \x01(\x0b\x32\x18.v1.ListResponseMetadata\x12\x38\n\x07history\x18\x02 \x03(\x0b\x32\x1b.v1.ApprovalWorkflowHistoryB\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:(\xfa\xf8\xb3\x07\x06\xd2\xf3\xb3\x07\x01*\xfa\xf8\xb3\x07\x18\xd2\xf3\xb3\x07\x13!terraform-provider\"\xa2\x02\n\x17\x41pprovalWorkflowHistory\x12\x1f\n\x0b\x61\x63tivity_id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x39\n\ttimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12;\n\x11\x61pproval_workflow\x18\x03 \x01(\x0b\x32\x14.v1.ApprovalWorkflowB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12:\n\ndeleted_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:2\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\xfa\xf8\xb3\x07\x06\xd2\xf3\xb3\x07\x01*\xfa\xf8\xb3\x07\x18\xd2\xf3\xb3\x07\x13!terraform-provider2\x80\x02\n\x18\x41pprovalWorkflowsHistory\x12\x8e\x01\n\x04List\x12&.v1.ApprovalWorkflowHistoryListRequest\x1a\'.v1.ApprovalWorkflowHistoryListResponse\"5\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07#\xaa\xf3\xb3\x07\x1e/v1/approval-workflows-history\x1aS\xca\xf9\xb3\x07\x1c\xc2\xf9\xb3\x07\x17\x41pprovalWorkflowHistory\xca\xf9\xb3\x07\x05\xd8\xf9\xb3\x07\x01\xca\xf9\xb3\x07\x06\xca\xf9\xb3\x07\x01*\xca\xf9\xb3\x07\x18\xca\xf9\xb3\x07\x13!terraform-providerB\x9c\x01\n\x19\x63om.strongdm.api.plumbingB ApprovalWorkflowsHistoryPlumbingZ5github.com/strongdm/strongdm-sdk-go/v3/internal/v1;v1\xc2\x92\xb4\x07\x06\xa2\x8c\xb4\x07\x01*\xc2\x92\xb4\x07\x18\xa2\x8c\xb4\x07\x13!terraform-providerb\x06proto3')
35
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n approval_workflows_history.proto\x12\x02v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x18\x61pproval_workflows.proto\x1a\roptions.proto\x1a\nspec.proto\"\x91\x01\n\"ApprovalWorkflowHistoryListRequest\x12%\n\x04meta\x18\x01 \x01(\x0b\x32\x17.v1.ListRequestMetadata\x12\x1a\n\x06\x66ilter\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:(\xfa\xf8\xb3\x07\x06\xd2\xf3\xb3\x07\x01*\xfa\xf8\xb3\x07\x18\xd2\xf3\xb3\x07\x13!terraform-provider\"\x8a\x02\n#ApprovalWorkflowHistoryListResponse\x12&\n\x04meta\x18\x01 \x01(\x0b\x32\x18.v1.ListResponseMetadata\x12\x38\n\x07history\x18\x02 \x03(\x0b\x32\x1b.v1.ApprovalWorkflowHistoryB\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:(\xfa\xf8\xb3\x07\x06\xd2\xf3\xb3\x07\x01*\xfa\xf8\xb3\x07\x18\xd2\xf3\xb3\x07\x13!terraform-provider\"\xa2\x02\n\x17\x41pprovalWorkflowHistory\x12\x1f\n\x0b\x61\x63tivity_id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x39\n\ttimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12;\n\x11\x61pproval_workflow\x18\x03 \x01(\x0b\x32\x14.v1.ApprovalWorkflowB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12:\n\ndeleted_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:2\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\xfa\xf8\xb3\x07\x06\xd2\xf3\xb3\x07\x01*\xfa\xf8\xb3\x07\x18\xd2\xf3\xb3\x07\x13!terraform-provider2\x8a\x02\n\x18\x41pprovalWorkflowsHistory\x12\x8e\x01\n\x04List\x12&.v1.ApprovalWorkflowHistoryListRequest\x1a\'.v1.ApprovalWorkflowHistoryListResponse\"5\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07#\xaa\xf3\xb3\x07\x1e/v1/approval-workflows-history\x1a]\xca\xf9\xb3\x07\x1c\xc2\xf9\xb3\x07\x17\x41pprovalWorkflowHistory\xca\xf9\xb3\x07\x05\xd8\xf9\xb3\x07\x01\xca\xf9\xb3\x07\x06\xca\xf9\xb3\x07\x01*\xca\xf9\xb3\x07\x18\xca\xf9\xb3\x07\x13!terraform-provider\xca\xf9\xb3\x07\x05\xe8\xf9\xb3\x07\x01\x42\x9c\x01\n\x19\x63om.strongdm.api.plumbingB ApprovalWorkflowsHistoryPlumbingZ5github.com/strongdm/strongdm-sdk-go/v3/internal/v1;v1\xc2\x92\xb4\x07\x06\xa2\x8c\xb4\x07\x01*\xc2\x92\xb4\x07\x18\xa2\x8c\xb4\x07\x13!terraform-providerb\x06proto3')
36
36
 
37
37
 
38
38
 
@@ -86,7 +86,7 @@ if _descriptor._USE_C_DESCRIPTORS == False:
86
86
  _APPROVALWORKFLOWHISTORY._options = None
87
87
  _APPROVALWORKFLOWHISTORY._serialized_options = b'\372\370\263\007\005\250\363\263\007\001\372\370\263\007\006\322\363\263\007\001*\372\370\263\007\030\322\363\263\007\023!terraform-provider'
88
88
  _APPROVALWORKFLOWSHISTORY._options = None
89
- _APPROVALWORKFLOWSHISTORY._serialized_options = b'\312\371\263\007\034\302\371\263\007\027ApprovalWorkflowHistory\312\371\263\007\005\330\371\263\007\001\312\371\263\007\006\312\371\263\007\001*\312\371\263\007\030\312\371\263\007\023!terraform-provider'
89
+ _APPROVALWORKFLOWSHISTORY._serialized_options = b'\312\371\263\007\034\302\371\263\007\027ApprovalWorkflowHistory\312\371\263\007\005\330\371\263\007\001\312\371\263\007\006\312\371\263\007\001*\312\371\263\007\030\312\371\263\007\023!terraform-provider\312\371\263\007\005\350\371\263\007\001'
90
90
  _APPROVALWORKFLOWSHISTORY.methods_by_name['List']._options = None
91
91
  _APPROVALWORKFLOWSHISTORY.methods_by_name['List']._serialized_options = b'\202\371\263\007\010\242\363\263\007\003get\202\371\263\007#\252\363\263\007\036/v1/approval-workflows-history'
92
92
  _APPROVALWORKFLOWHISTORYLISTREQUEST._serialized_start=127
@@ -96,5 +96,5 @@ if _descriptor._USE_C_DESCRIPTORS == False:
96
96
  _APPROVALWORKFLOWHISTORY._serialized_start=544
97
97
  _APPROVALWORKFLOWHISTORY._serialized_end=834
98
98
  _APPROVALWORKFLOWSHISTORY._serialized_start=837
99
- _APPROVALWORKFLOWSHISTORY._serialized_end=1093
99
+ _APPROVALWORKFLOWSHISTORY._serialized_end=1103
100
100
  # @@protoc_insertion_point(module_scope)
@@ -30,7 +30,7 @@ from . import options_pb2 as options__pb2
30
30
  from . import spec_pb2 as spec__pb2
31
31
 
32
32
 
33
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18\x61pproval_workflows.proto\x12\x02v1\x1a\roptions.proto\x1a\nspec.proto\"\x85\x01\n\x1d\x41pprovalWorkflowCreateRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.CreateRequestMetadata\x12;\n\x11\x61pproval_workflow\x18\x02 \x01(\x0b\x32\x14.v1.ApprovalWorkflowB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\"\xec\x01\n\x1e\x41pprovalWorkflowCreateResponse\x12(\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.CreateResponseMetadata\x12;\n\x11\x61pproval_workflow\x18\x02 \x01(\x0b\x32\x14.v1.ApprovalWorkflowB\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\"Z\n\x1a\x41pprovalWorkflowGetRequest\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\"\xf2\x01\n\x1b\x41pprovalWorkflowGetResponse\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\x11\x61pproval_workflow\x18\x02 \x01(\x0b\x32\x14.v1.ApprovalWorkflowB\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\"\x85\x01\n\x1d\x41pprovalWorkflowUpdateRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.UpdateRequestMetadata\x12;\n\x11\x61pproval_workflow\x18\x02 \x01(\x0b\x32\x14.v1.ApprovalWorkflowB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\"\xec\x01\n\x1e\x41pprovalWorkflowUpdateResponse\x12(\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.UpdateResponseMetadata\x12;\n\x11\x61pproval_workflow\x18\x02 \x01(\x0b\x32\x14.v1.ApprovalWorkflowB\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\"`\n\x1d\x41pprovalWorkflowDeleteRequest\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\"\xc7\x01\n\x1e\x41pprovalWorkflowDeleteResponse\x12(\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.DeleteResponseMetadata\x12\x16\n\x02id\x18\x02 \x01(\tB\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\"`\n\x1b\x41pprovalWorkflowListRequest\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\"\xe9\x01\n\x1c\x41pprovalWorkflowListResponse\x12&\n\x04meta\x18\x01 \x01(\x0b\x32\x18.v1.ListResponseMetadata\x12<\n\x12\x61pproval_workflows\x18\x02 \x03(\x0b\x32\x14.v1.ApprovalWorkflowB\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:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\x8a\x02\n\x10\x41pprovalWorkflow\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&\n\rapproval_mode\x18\x03 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\x1f\n\x0b\x64\x65scription\x18\x04 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:v\xfa\xf8\xb3\x07q\xa8\xf3\xb3\x07\x01\xc2\xf3\xb3\x07\x61\xa2\xf3\xb3\x07*tf_examples/approval_workflow_resource.txt\xaa\xf3\xb3\x07-tf_examples/approval_workflow_data_source.txt\xd2\xf3\xb3\x07\x01*2\xb6\x05\n\x11\x41pprovalWorkflows\x12\x7f\n\x06\x43reate\x12!.v1.ApprovalWorkflowCreateRequest\x1a\".v1.ApprovalWorkflowCreateResponse\".\x82\xf9\xb3\x07\t\xa2\xf3\xb3\x07\x04post\x82\xf9\xb3\x07\x1b\xaa\xf3\xb3\x07\x16/v1/approval-workflows\x12y\n\x03Get\x12\x1e.v1.ApprovalWorkflowGetRequest\x1a\x1f.v1.ApprovalWorkflowGetResponse\"1\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07\x1f\xaa\xf3\xb3\x07\x1a/v1/approval-workflow/{id}\x12\x81\x01\n\x06\x44\x65lete\x12!.v1.ApprovalWorkflowDeleteRequest\x1a\".v1.ApprovalWorkflowDeleteResponse\"0\x82\xf9\xb3\x07\x0b\xa2\xf3\xb3\x07\x06\x64\x65lete\x82\xf9\xb3\x07\x1b\xaa\xf3\xb3\x07\x16/v1/approval-workflows\x12~\n\x06Update\x12!.v1.ApprovalWorkflowUpdateRequest\x1a\".v1.ApprovalWorkflowUpdateResponse\"-\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03put\x82\xf9\xb3\x07\x1b\xaa\xf3\xb3\x07\x16/v1/approval-workflows\x12x\n\x04List\x12\x1f.v1.ApprovalWorkflowListRequest\x1a .v1.ApprovalWorkflowListResponse\"-\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07\x1b\xaa\xf3\xb3\x07\x16/v1/approval-workflows\x1a\'\xca\xf9\xb3\x07\x15\xc2\xf9\xb3\x07\x10\x41pprovalWorkflow\xca\xf9\xb3\x07\x08\xd2\xf9\xb3\x07\x03\x61\x66-Bm\n\x19\x63om.strongdm.api.plumbingB\x19\x41pprovalWorkflowsPlumbingZ5github.com/strongdm/strongdm-sdk-go/v3/internal/v1;v1b\x06proto3')
33
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18\x61pproval_workflows.proto\x12\x02v1\x1a\roptions.proto\x1a\nspec.proto\"\x85\x01\n\x1d\x41pprovalWorkflowCreateRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.CreateRequestMetadata\x12;\n\x11\x61pproval_workflow\x18\x02 \x01(\x0b\x32\x14.v1.ApprovalWorkflowB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\"\xec\x01\n\x1e\x41pprovalWorkflowCreateResponse\x12(\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.CreateResponseMetadata\x12;\n\x11\x61pproval_workflow\x18\x02 \x01(\x0b\x32\x14.v1.ApprovalWorkflowB\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\"Z\n\x1a\x41pprovalWorkflowGetRequest\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\"\xf2\x01\n\x1b\x41pprovalWorkflowGetResponse\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\x11\x61pproval_workflow\x18\x02 \x01(\x0b\x32\x14.v1.ApprovalWorkflowB\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\"\x85\x01\n\x1d\x41pprovalWorkflowUpdateRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.UpdateRequestMetadata\x12;\n\x11\x61pproval_workflow\x18\x02 \x01(\x0b\x32\x14.v1.ApprovalWorkflowB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\"\xec\x01\n\x1e\x41pprovalWorkflowUpdateResponse\x12(\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.UpdateResponseMetadata\x12;\n\x11\x61pproval_workflow\x18\x02 \x01(\x0b\x32\x14.v1.ApprovalWorkflowB\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\"`\n\x1d\x41pprovalWorkflowDeleteRequest\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\"\xc7\x01\n\x1e\x41pprovalWorkflowDeleteResponse\x12(\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.DeleteResponseMetadata\x12\x16\n\x02id\x18\x02 \x01(\tB\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\"`\n\x1b\x41pprovalWorkflowListRequest\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\"\xe9\x01\n\x1c\x41pprovalWorkflowListResponse\x12&\n\x04meta\x18\x01 \x01(\x0b\x32\x18.v1.ListResponseMetadata\x12<\n\x12\x61pproval_workflows\x18\x02 \x03(\x0b\x32\x14.v1.ApprovalWorkflowB\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:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\x8a\x02\n\x10\x41pprovalWorkflow\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&\n\rapproval_mode\x18\x03 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\x1f\n\x0b\x64\x65scription\x18\x04 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:v\xfa\xf8\xb3\x07q\xa8\xf3\xb3\x07\x01\xc2\xf3\xb3\x07\x61\xa2\xf3\xb3\x07*tf_examples/approval_workflow_resource.txt\xaa\xf3\xb3\x07-tf_examples/approval_workflow_data_source.txt\xd2\xf3\xb3\x07\x01*2\xc0\x05\n\x11\x41pprovalWorkflows\x12\x7f\n\x06\x43reate\x12!.v1.ApprovalWorkflowCreateRequest\x1a\".v1.ApprovalWorkflowCreateResponse\".\x82\xf9\xb3\x07\t\xa2\xf3\xb3\x07\x04post\x82\xf9\xb3\x07\x1b\xaa\xf3\xb3\x07\x16/v1/approval-workflows\x12y\n\x03Get\x12\x1e.v1.ApprovalWorkflowGetRequest\x1a\x1f.v1.ApprovalWorkflowGetResponse\"1\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07\x1f\xaa\xf3\xb3\x07\x1a/v1/approval-workflow/{id}\x12\x81\x01\n\x06\x44\x65lete\x12!.v1.ApprovalWorkflowDeleteRequest\x1a\".v1.ApprovalWorkflowDeleteResponse\"0\x82\xf9\xb3\x07\x0b\xa2\xf3\xb3\x07\x06\x64\x65lete\x82\xf9\xb3\x07\x1b\xaa\xf3\xb3\x07\x16/v1/approval-workflows\x12~\n\x06Update\x12!.v1.ApprovalWorkflowUpdateRequest\x1a\".v1.ApprovalWorkflowUpdateResponse\"-\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03put\x82\xf9\xb3\x07\x1b\xaa\xf3\xb3\x07\x16/v1/approval-workflows\x12x\n\x04List\x12\x1f.v1.ApprovalWorkflowListRequest\x1a .v1.ApprovalWorkflowListResponse\"-\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07\x1b\xaa\xf3\xb3\x07\x16/v1/approval-workflows\x1a\x31\xca\xf9\xb3\x07\x15\xc2\xf9\xb3\x07\x10\x41pprovalWorkflow\xca\xf9\xb3\x07\x08\xd2\xf9\xb3\x07\x03\x61\x66-\xca\xf9\xb3\x07\x05\xe8\xf9\xb3\x07\x01\x42m\n\x19\x63om.strongdm.api.plumbingB\x19\x41pprovalWorkflowsPlumbingZ5github.com/strongdm/strongdm-sdk-go/v3/internal/v1;v1b\x06proto3')
34
34
 
35
35
 
36
36
 
@@ -180,7 +180,7 @@ if _descriptor._USE_C_DESCRIPTORS == False:
180
180
  _APPROVALWORKFLOW._options = None
181
181
  _APPROVALWORKFLOW._serialized_options = b'\372\370\263\007q\250\363\263\007\001\302\363\263\007a\242\363\263\007*tf_examples/approval_workflow_resource.txt\252\363\263\007-tf_examples/approval_workflow_data_source.txt\322\363\263\007\001*'
182
182
  _APPROVALWORKFLOWS._options = None
183
- _APPROVALWORKFLOWS._serialized_options = b'\312\371\263\007\025\302\371\263\007\020ApprovalWorkflow\312\371\263\007\010\322\371\263\007\003af-'
183
+ _APPROVALWORKFLOWS._serialized_options = b'\312\371\263\007\025\302\371\263\007\020ApprovalWorkflow\312\371\263\007\010\322\371\263\007\003af-\312\371\263\007\005\350\371\263\007\001'
184
184
  _APPROVALWORKFLOWS.methods_by_name['Create']._options = None
185
185
  _APPROVALWORKFLOWS.methods_by_name['Create']._serialized_options = b'\202\371\263\007\t\242\363\263\007\004post\202\371\263\007\033\252\363\263\007\026/v1/approval-workflows'
186
186
  _APPROVALWORKFLOWS.methods_by_name['Get']._options = None
@@ -214,5 +214,5 @@ if _descriptor._USE_C_DESCRIPTORS == False:
214
214
  _APPROVALWORKFLOW._serialized_start=1781
215
215
  _APPROVALWORKFLOW._serialized_end=2047
216
216
  _APPROVALWORKFLOWS._serialized_start=2050
217
- _APPROVALWORKFLOWS._serialized_end=2744
217
+ _APPROVALWORKFLOWS._serialized_end=2754
218
218
  # @@protoc_insertion_point(module_scope)
@@ -23,16 +23,17 @@ import hashlib
23
23
  import hmac
24
24
  import random
25
25
  import time
26
- from . import svc
26
+ from . import errors
27
27
  from . import plumbing
28
+ from . import svc
28
29
 
29
30
  # These defaults are taken from AWS. Customization of these values
30
31
  # is a future step in the API.
31
32
  DEFAULT_MAX_RETRIES = 3
32
33
  DEFAULT_BASE_RETRY_DELAY = 0.0030 # 30 ms
33
34
  DEFAULT_MAX_RETRY_DELAY = 300 # 300 seconds
34
- API_VERSION = '2024-03-14'
35
- USER_AGENT = 'strongdm-sdk-python/7.1.0'
35
+ API_VERSION = '2024-03-28'
36
+ USER_AGENT = 'strongdm-sdk-python/12.1.0'
36
37
 
37
38
 
38
39
  class Client:
@@ -138,6 +139,7 @@ class Client:
138
139
  Accounts are users that have access to strongDM. There are two types of accounts:
139
140
  1. **Users:** humans who are authenticated through username and password or SSO.
140
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.
141
143
 
142
144
  See `strongdm.svc.Accounts`.
143
145
  '''
@@ -202,6 +204,40 @@ class Client:
202
204
 
203
205
  See `strongdm.svc.ControlPanel`.
204
206
  '''
207
+ self.health_checks = svc.HealthChecks(channel, self)
208
+ '''
209
+ HealthChecks lists the last healthcheck between each node and resource.
210
+ Note the unconventional capitalization here is to prevent having a collision with GRPC
211
+
212
+ See `strongdm.svc.HealthChecks`.
213
+ '''
214
+ self.identity_aliases = svc.IdentityAliases(channel, self)
215
+ '''
216
+ IdentityAliases assign an alias to an account within an IdentitySet.
217
+ The alias is used as the username when connecting to a identity supported resource.
218
+
219
+ See `strongdm.svc.IdentityAliases`.
220
+ '''
221
+ self.identity_aliases_history = svc.IdentityAliasesHistory(
222
+ channel, self)
223
+ '''
224
+ IdentityAliasesHistory records all changes to the state of a IdentityAlias.
225
+
226
+ See `strongdm.svc.IdentityAliasesHistory`.
227
+ '''
228
+ self.identity_sets = svc.IdentitySets(channel, self)
229
+ '''
230
+ A IdentitySet is a named grouping of Identity Aliases for Accounts.
231
+ An Account's relationship to a IdentitySet is defined via IdentityAlias objects.
232
+
233
+ See `strongdm.svc.IdentitySets`.
234
+ '''
235
+ self.identity_sets_history = svc.IdentitySetsHistory(channel, self)
236
+ '''
237
+ IdentitySetsHistory records all changes to the state of a IdentitySet.
238
+
239
+ See `strongdm.svc.IdentitySetsHistory`.
240
+ '''
205
241
  self.nodes = svc.Nodes(channel, self)
206
242
  '''
207
243
  Nodes make up the strongDM network, and allow your users to connect securely to your resources. There are two types of nodes:
@@ -246,6 +282,27 @@ class Client:
246
282
 
247
283
  See `strongdm.svc.PeeringGroups`.
248
284
  '''
285
+ self.policies = svc.Policies(channel, self)
286
+ '''
287
+ Policies are the collection of one or more statements that enforce fine-grained access
288
+ control for the users of an organization.
289
+
290
+ See `strongdm.svc.Policies`.
291
+ '''
292
+ self.policies_history = svc.PoliciesHistory(channel, self)
293
+ '''
294
+ PoliciesHistory records all changes to the state of a Policy.
295
+
296
+ See `strongdm.svc.PoliciesHistory`.
297
+ '''
298
+ self.proxy_cluster_keys = svc.ProxyClusterKeys(channel, self)
299
+ '''
300
+ Proxy Cluster Keys are authentication keys for all proxies within a cluster.
301
+ The proxies within a cluster share the same key. One cluster can have
302
+ multiple keys in order to facilitate key rotation.
303
+
304
+ See `strongdm.svc.ProxyClusterKeys`.
305
+ '''
249
306
  self.queries = svc.Queries(channel, self)
250
307
  '''
251
308
  A Query is a record of a single client request to a resource, such as a SQL query.
@@ -328,18 +385,18 @@ class Client:
328
385
 
329
386
  See `strongdm.svc.RolesHistory`.
330
387
  '''
331
- self.secret_store_healths = svc.SecretStoreHealths(channel, self)
332
- '''
333
- SecretStoreHealths exposes health states for secret stores.
334
-
335
- See `strongdm.svc.SecretStoreHealths`.
336
- '''
337
388
  self.secret_stores = svc.SecretStores(channel, self)
338
389
  '''
339
390
  SecretStores are servers where resource secrets (passwords, keys) are stored.
340
391
 
341
392
  See `strongdm.svc.SecretStores`.
342
393
  '''
394
+ self.secret_store_healths = svc.SecretStoreHealths(channel, self)
395
+ '''
396
+ SecretStoreHealths exposes health states for secret stores.
397
+
398
+ See `strongdm.svc.SecretStoreHealths`.
399
+ '''
343
400
  self.secret_stores_history = svc.SecretStoresHistory(channel, self)
344
401
  '''
345
402
  SecretStoresHistory records all changes to the state of a SecretStore.
@@ -425,7 +482,8 @@ class Client:
425
482
  return hmac.new(key, msg=msg_byte_string,
426
483
  digestmod=hashlib.sha256).digest()
427
484
 
428
- current_utc_date = datetime.datetime.utcnow().strftime('%Y-%m-%d')
485
+ current_utc_date = datetime.datetime.now(
486
+ datetime.timezone.utc).strftime('%Y-%m-%d')
429
487
  signing_key = hmac_digest(self.api_secret, current_utc_date.encode())
430
488
  signing_key = hmac_digest(signing_key, b'sdm_api_v1')
431
489
 
@@ -450,9 +508,9 @@ class Client:
450
508
  return False
451
509
  if not isinstance(err, grpc.RpcError):
452
510
  return True
453
- if (not self.expose_rate_limit_errors
454
- ) and err.code() == grpc.StatusCode.RESOURCE_EXHAUSTED:
455
- porcelain_err = plumbing.convert_error_to_porcelain(err)
511
+ porcelain_err = plumbing.convert_error_to_porcelain(err)
512
+ if (not self.expose_rate_limit_errors) and isinstance(
513
+ porcelain_err, errors.RateLimitError):
456
514
  wait_until = porcelain_err.rate_limit.reset_at
457
515
  now = datetime.datetime.now(datetime.timezone.utc)
458
516
  sleep_for = (wait_until - now).total_seconds()
@@ -487,7 +545,12 @@ class Client:
487
545
  client.channel, client)
488
546
  client.approval_workflows = svc.ApprovalWorkflows(
489
547
  client.channel, client)
548
+ client.identity_aliases = svc.IdentityAliases(client.channel, client)
549
+ client.identity_sets = svc.IdentitySets(client.channel, client)
490
550
  client.nodes = svc.Nodes(client.channel, client)
551
+ client.policies = svc.Policies(client.channel, client)
552
+ client.proxy_cluster_keys = svc.ProxyClusterKeys(
553
+ client.channel, client)
491
554
  client.remote_identities = svc.RemoteIdentities(client.channel, client)
492
555
  client.remote_identity_groups = svc.RemoteIdentityGroups(
493
556
  client.channel, client)
@@ -548,6 +611,7 @@ class SnapshotClient:
548
611
  Accounts are users that have access to strongDM. There are two types of accounts:
549
612
  1. **Users:** humans who are authenticated through username and password or SSO.
550
613
  2. **Service Accounts:** machines that are authenticated using a service token.
614
+ 3. **Tokens** are access keys with permissions that can be used for authentication.
551
615
 
552
616
  See `strongdm.svc.SnapshotAccounts`.
553
617
  '''
@@ -573,6 +637,21 @@ class SnapshotClient:
573
637
 
574
638
  See `strongdm.svc.SnapshotApprovalWorkflows`.
575
639
  '''
640
+ self.identity_aliases = svc.SnapshotIdentityAliases(
641
+ client.identity_aliases)
642
+ '''
643
+ IdentityAliases assign an alias to an account within an IdentitySet.
644
+ The alias is used as the username when connecting to a identity supported resource.
645
+
646
+ See `strongdm.svc.SnapshotIdentityAliases`.
647
+ '''
648
+ self.identity_sets = svc.SnapshotIdentitySets(client.identity_sets)
649
+ '''
650
+ A IdentitySet is a named grouping of Identity Aliases for Accounts.
651
+ An Account's relationship to a IdentitySet is defined via IdentityAlias objects.
652
+
653
+ See `strongdm.svc.SnapshotIdentitySets`.
654
+ '''
576
655
  self.nodes = svc.SnapshotNodes(client.nodes)
577
656
  '''
578
657
  Nodes make up the strongDM network, and allow your users to connect securely to your resources. There are two types of nodes:
@@ -581,6 +660,22 @@ class SnapshotClient:
581
660
 
582
661
  See `strongdm.svc.SnapshotNodes`.
583
662
  '''
663
+ self.policies = svc.SnapshotPolicies(client.policies)
664
+ '''
665
+ Policies are the collection of one or more statements that enforce fine-grained access
666
+ control for the users of an organization.
667
+
668
+ See `strongdm.svc.SnapshotPolicies`.
669
+ '''
670
+ self.proxy_cluster_keys = svc.SnapshotProxyClusterKeys(
671
+ client.proxy_cluster_keys)
672
+ '''
673
+ Proxy Cluster Keys are authentication keys for all proxies within a cluster.
674
+ The proxies within a cluster share the same key. One cluster can have
675
+ multiple keys in order to facilitate key rotation.
676
+
677
+ See `strongdm.svc.SnapshotProxyClusterKeys`.
678
+ '''
584
679
  self.remote_identities = svc.SnapshotRemoteIdentities(
585
680
  client.remote_identities)
586
681
  '''
@@ -85,6 +85,7 @@ class AuthProvider:
85
85
  ONE_LOGIN_SAML = "onelogin-saml"
86
86
  GENERIC_SAML = "generic-saml"
87
87
  PING_IDSAML = "ping-identity-saml"
88
+ PING_IDOIDC = "ping-identity-oidc"
88
89
 
89
90
 
90
91
  # Providers responsible for multi-factor authentication
@@ -92,6 +93,7 @@ class MFAProvider:
92
93
  NONE = ""
93
94
  DUO = "duo"
94
95
  TOTP = "totp"
96
+ OKTA = "okta"
95
97
 
96
98
 
97
99
  # Activity Entities, all entity types that can be part of an activity.
@@ -103,10 +105,17 @@ class ActivityEntityType:
103
105
  ORGANIZATION = "organization"
104
106
  INSTALLATION = "installation"
105
107
  SECRET_STORE = "secretstore"
108
+ SECRET_ENGINE = "secretengine"
106
109
  REMOTE_IDENTITY_GROUP = "remote_identity_group"
107
110
  REMOTE_IDENTITY = "remote_identity"
111
+ IDENTITY_SET = "identity_set"
112
+ IDENTITY_ALIAS = "identity_alias"
108
113
  ACCESS_REQUEST = "access_request"
109
114
  WORKFLOW = "workflow"
115
+ APPROVAL_FLOW = "approval_flow"
116
+ APPROVAL_FLOW_STEP = "approval_flow_step"
117
+ APPROVAL_FLOW_APPROVER = "approval_flow_approver"
118
+ MANAGED_SECRET = "managed_secret"
110
119
  NODE = "node"
111
120
  PEERING_GROUP = "peering_group"
112
121
  PEERING_GROUP_NODE = "peering_group_node"
@@ -121,6 +130,7 @@ class ActivityVerb:
121
130
  USER_UPDATED = "user updated"
122
131
  USER_SIGNUP = "user signup"
123
132
  USER_TYPE_CHANGED = "user type changed"
133
+ USER_PASSWORD_CHANGED = "user password changed"
124
134
  USER_TEMPORARY_ACCESS_GRANTED = "user temporary access granted"
125
135
  USER_TEMPORARY_ACCESS_REVOKED = "user temporary access revoked"
126
136
  USER_TEMPORARY_ACCESS_EXPIRED = "user temporary access expired"
@@ -237,12 +247,26 @@ class ActivityVerb:
237
247
  SECRET_STORE_ADDED = "secret store added"
238
248
  SECRET_STORE_UPDATED = "secret store updated"
239
249
  SECRET_STORE_DELETED = "secret store deleted"
250
+ SECRET_ENGINE_ADDED = "secret engine added"
251
+ SECRET_ENGINE_UPDATED = "secret engine updated"
252
+ SECRET_ENGINE_ROTATED = "secret engine's credentials updated"
253
+ SECRET_ENGINE_DELETED = "secret engine deleted"
240
254
  REMOTE_IDENTITY_GROUP_CREATED = "remote identity group created"
241
255
  REMOTE_IDENTITY_GROUP_UPDATED = "remote identity group updated"
242
256
  REMOTE_IDENTITY_GROUP_DELETED = "remote identity group deleted"
257
+ IDENTITY_SET_CREATED = "identity set created"
258
+ IDENTITY_SET_UPDATED = "identity set updated"
259
+ IDENTITY_SET_DELETED = "identity set deleted"
260
+ IDENTITY_SET_PROVISIONING_ENABLED = "identity set provisioning enabled"
261
+ IDENTITY_SET_PROVISIONING_DISABLED = "identity set provisioning disabled"
243
262
  REMOTE_IDENTITY_CREATED = "remote identity created"
244
263
  REMOTE_IDENTITY_UPDATED = "remote identity updated"
245
264
  REMOTE_IDENTITY_DELETED = "remote identity deleted"
265
+ IDENTITY_ALIAS_CREATED = "identity alias created"
266
+ IDENTITY_ALIAS_UPDATED = "identity alias updated"
267
+ IDENTITY_ALIAS_DELETED = "identity alias deleted"
268
+ IDENTITY_ALIAS_PROVISIONING_ENABLED = "identity alias provisioning enabled"
269
+ IDENTITY_ALIAS_PROVISIONING_DISABLED = "identity alias provisioning disabled"
246
270
  ACCESS_REQUESTED_TO_RESOURCE = "access requested to resource"
247
271
  ACCESS_REQUEST_TO_RESOURCE_APPROVAL_ADDED = "access request to resource approval added"
248
272
  ACCESS_REQUEST_TO_RESOURCE_CANCELED = "access request to resource canceled"
@@ -250,6 +274,35 @@ class ActivityVerb:
250
274
  ACCESS_REQUEST_TO_RESOURCE_TIMED_OUT = "access request to resource timed out"
251
275
  ACCESS_REQUEST_TO_RESOURCE_GRANTED = "access request to resource granted"
252
276
  ACCESS_REQUEST_TO_RESOURCE_GRANTED_AUTOMATICALLY = "access request to resource granted automatically"
277
+ ACCESS_REQUEST_TO_RESOURCE_APPROVED_VIA_SERVICE_NOW = "access request to resource approved via ServiceNow"
278
+ ACCESS_REQUEST_TO_RESOURCE_APPROVED_VIA_JIRA = "access request to resource approved via Jira"
279
+ WORKFLOW_DELETED = "workflow deleted"
280
+ WORKFLOW_ADDED = "workflow added"
281
+ DEPRECATED_WORKFLOW_RESOURCE_ASSIGNED = "resource assigned to workflow"
282
+ DEPRECATED_WORKFLOW_RESOURCE_UNASSIGNED = "resource unassigned from workflow"
283
+ DEPRECATED_WORKFLOW_RESOURCE_MULTIPLE_ASSIGNED = "multiple resources assigned to workflow"
284
+ DEPRECATED_WORKFLOW_RESOURCE_MULTIPLE_UNASSIGNED = "multiple resources unassigned from workflow"
285
+ DEPRECATED_WORKFLOW_APPROVERS_UPDATED = "workflow approvers updated"
286
+ DEPRECATED_WORKFLOW_AUTO_GRANT_UPDATED = "workflow auto grant updated"
287
+ DEPRECATED_WORKFLOW_APPROVAL_CRITERIA_UPDATED = "workflow approval criteria updated"
288
+ WORKFLOW_ROLES_UPDATED = "workflow roles updated"
289
+ WORKFLOW_NAME_UPDATED = "workflow name updated"
290
+ WORKFLOW_DESCRIPTION_UPDATED = "workflow description updated"
291
+ WORKFLOW_REQUIRES_REASON_UPDATED = "workflow requires reason updated"
292
+ WORKFLOW_SETTINGS_UPDATED = "workflow settings updated"
293
+ WORKFLOW_ACCESS_RULES_UPDATED = "workflow access rules updated"
294
+ WORKFLOW_ACCESS_RULES_DELETED = "workflow access rules deleted"
295
+ WORKFLOW_ACCESS_RULES_CREATED = "workflow access rules created"
296
+ WORKFLOW_ENABLED = "workflow enabled"
297
+ WORKFLOW_DISABLED = "workflow disabled"
298
+ APPROVAL_FLOW_ADDED = "approval workflow added"
299
+ APPROVAL_FLOW_DELETED = "approval workflow deleted"
300
+ APPROVAL_FLOW_UPDATED = "approval workflow updated"
301
+ APPROVAL_FLOW_STEP_ADDED = "approval workflow step added"
302
+ APPROVAL_FLOW_STEP_DELETED = "approval workflow step deleted"
303
+ APPROVAL_FLOW_STEP_UPDATED = "approval workflow step updated"
304
+ APPROVAL_FLOW_APPROVER_ADDED = "approval workflow approver added"
305
+ APPROVAL_FLOW_APPROVER_DELETED = "approval workflow approver deleted"
253
306
  ORG_VNM_SUBNET_UPDATED = "organization VNM subnet updated"
254
307
  ORG_VNM_RESOURCES_ALLOCATED = "organization resources allocated within VNM subnet"
255
308
  DEPRECATED_ORG_ACTIVATE_DEVICE_APPROVAL = "activate device approval"
@@ -263,10 +316,18 @@ class ActivityVerb:
263
316
  RESOURCE_LOCKED = "user locked a resource"
264
317
  RESOURCE_UNLOCKED = "user unlocked a resource"
265
318
  RESOURCE_FORCE_UNLOCKED = "admin force-unlocked a resource"
319
+ CONCURRENT_AUTHENTICATION_REVOKED_PER_ORG_SETTING = "concurrent authentications revoked per organization settings"
266
320
  ORG_INTEGRATION_INSTALLED = "org integration installed"
267
321
  USER_INTEGRATION_AUTHORIZED = "user authorized integration"
268
322
  ORG_INTEGRATION_UNINSTALLED = "org integration uninstalled"
269
323
  USER_INTEGRATION_DEAUTHORIZED = "user deauthorized integration"
324
+ SERVICE_NOW_TOKEN_ADDED = "ServiceNow token created"
325
+ SERVICE_NOW_TOKEN_DELETED = "ServiceNow token deleted"
326
+ MANAGED_SECRET_CREATED = "managed secret created"
327
+ MANAGED_SECRET_UPDATED = "managed secret updated"
328
+ MANAGED_SECRET_EXPIRATION_TIME_UPDATED = "managed secret expiration time updated"
329
+ MANAGED_SECRET_CONFIG_UPDATED = "managed secret config updated"
330
+ MANAGED_SECRET_DELETED = "managed secret deleted"
270
331
 
271
332
 
272
333
  # Permissions, all permissions that may be granted to an account.
@@ -281,6 +342,11 @@ class Permission:
281
342
  DATASOURCE_UPDATE = "datasource:update"
282
343
  RESOURCE_LOCK_DELETE = "resourcelock:delete"
283
344
  RESOURCE_LOCK_LIST = "resourcelock:list"
345
+ SECRET_ENGINE_CREATE = "secretengine:create"
346
+ SECRET_ENGINE_LIST = "secretengine:list"
347
+ SECRET_ENGINE_DELETE = "secretengine:delete"
348
+ SECRET_ENGINE_UPDATE = "secretengine:update"
349
+ SECRET_ENGINE_STATUS = "secretengine:status"
284
350
  SECRET_STORE_CREATE = "secretstore:create"
285
351
  SECRET_STORE_LIST = "secretstore:list"
286
352
  SECRET_STORE_DELETE = "secretstore:delete"
@@ -301,8 +367,7 @@ class Permission:
301
367
  USER_DELETE = "user:delete"
302
368
  USER_ASSIGN = "user:assign"
303
369
  USER_SUSPEND = "user:suspend"
304
- DEMO_PROVISIONING_REQUEST_CREATE = "demoprovisioningrequest:create"
305
- DEMO_PROVISIONING_REQUEST_LIST = "demoprovisioningrequest:list"
370
+ USER_SET_PASSWORD = "user:set_password"
306
371
  ROLE_LIST = "role:list"
307
372
  ROLE_CREATE = "role:create"
308
373
  ROLE_DELETE = "role:delete"
@@ -324,22 +389,18 @@ class Permission:
324
389
  ORG_AUDIT_ORG = "audit:organization"
325
390
  ORG_AUDIT_REMOTE_IDENTITIES = "audit:remoteidentities"
326
391
  ORG_AUDIT_REMOTE_IDENTITY_GROUPS = "audit:remoteidentitygroups"
392
+ ORG_AUDIT_SECRET_ENGINES = "audit:secretengines"
327
393
  ORG_AUDIT_SECRET_STORES = "audit:secretstores"
328
394
  ORG_AUDIT_WORKFLOWS = "audit:workflows"
329
395
  ORG_AUDIT_APPROVAL_FLOWS = "audit:approvalflows"
330
396
  ORG_AUDIT_ACCESS_REQUESTS = "audit:accessrequests"
397
+ ORG_AUDIT_POLICIES = "audit:policies"
331
398
  WORKFLOW_LIST = "workflow:list"
332
399
  WORKFLOW_EDIT = "workflow:edit"
333
- ACCESS_REQUEST_EDIT = "accessrequest:edit"
334
400
  ACCESS_REQUEST_LIST = "accessrequest:list"
335
401
  ACCESS_REQUEST_REQUESTER = "accessrequest:requester"
336
- GLOBAL_RDP_RENDER = "rdp:render"
337
- GLOBAL_QUERY_BUCKET_TRACKER = "query:bucket_tracker"
338
- GLOBAL_ASSETS_GET_LATEST_VERSION_COMMIT_HASH = "assets:get_latest_version_commit_hash"
339
- GLOBAL_SDMOS_SERVICE = "sdmos:service"
340
- GLOBAL_SDMOS_DEPLOYMENT = "sdmos:deployment"
341
- GLOBAL_SDMOS_RELEASE = "sdmos:release"
342
- GLOBAL_DEMO_PROVISIONER = "demo:provision"
402
+ APPROVAL_FLOW_EDIT = "approvalflow:edit"
403
+ APPROVAL_FLOW_LIST = "approvalflow:list"
343
404
  INSTALLATION_BLESS = "installation:bless"
344
405
  INSTALLATION_CREATE = "installation:create"
345
406
  INSTALLATION_REVOKE = "installation:revoke"
@@ -353,6 +414,11 @@ class Permission:
353
414
  BILLING_READ = "billing:read"
354
415
  CREDENTIAL_READ = "credential:read"
355
416
  CREDENTIAL_WRITE = "credential:write"
417
+ MANAGED_SECRET_CREATE = "managedsecret:create"
418
+ MANAGED_SECRET_LIST = "managedsecret:list"
419
+ MANAGED_SECRET_DELETE = "managedsecret:delete"
420
+ MANAGED_SECRET_UPDATE = "managedsecret:update"
421
+ MANAGED_SECRET_READ = "managedsecret:read"
356
422
 
357
423
 
358
424
  # Query Categories, all the categories of resource against which queries are logged.
@@ -433,8 +499,16 @@ class CaptureType:
433
499
  SSH_PORT_FORWARD = "ssh-portForward"
434
500
 
435
501
 
436
- # Providers responsible for device posture enforcement
437
- class DevicePostureProvider:
502
+ # Providers responsible for device trust enforcement
503
+ class DeviceTrustProvider:
438
504
  NONE = ""
439
505
  SENTINEL_ONE = "sentinelone"
440
506
  CROWD_STRIKE = "crowdstrike"
507
+ MICROSOFT_DEFENDER = "microsoftdefender"
508
+ DUO = "duo"
509
+
510
+
511
+ # APIHost defines the API host for various control planes.
512
+ class APIHost:
513
+ US = "api.strongdm.com:443"
514
+ UK = "api.uk.strongdm.com:443"