strongdm 15.14.0__zip → 15.16.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 (159) hide show
  1. {strongdm-15.14.0 → strongdm-15.16.0}/PKG-INFO +4 -4
  2. {strongdm-15.14.0 → strongdm-15.16.0}/README.md +2 -2
  3. {strongdm-15.14.0 → strongdm-15.16.0}/setup.py +2 -2
  4. strongdm-15.16.0/strongdm/accounts_groups_history_pb2.py +100 -0
  5. strongdm-15.16.0/strongdm/accounts_groups_history_pb2_grpc.py +84 -0
  6. strongdm-15.16.0/strongdm/accounts_groups_pb2.py +194 -0
  7. strongdm-15.16.0/strongdm/accounts_groups_pb2_grpc.py +186 -0
  8. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/approval_workflows_pb2.py +5 -5
  9. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/client.py +59 -1
  10. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/constants.py +7 -0
  11. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/drivers_pb2.py +262 -220
  12. strongdm-15.16.0/strongdm/groups_history_pb2.py +100 -0
  13. strongdm-15.16.0/strongdm/groups_history_pb2_grpc.py +84 -0
  14. strongdm-15.16.0/strongdm/groups_pb2.py +290 -0
  15. strongdm-15.16.0/strongdm/groups_pb2_grpc.py +253 -0
  16. strongdm-15.16.0/strongdm/groups_roles_history_pb2.py +100 -0
  17. strongdm-15.16.0/strongdm/groups_roles_history_pb2_grpc.py +84 -0
  18. strongdm-15.16.0/strongdm/groups_roles_pb2.py +200 -0
  19. strongdm-15.16.0/strongdm/groups_roles_pb2_grpc.py +186 -0
  20. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/models.py +6643 -4987
  21. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/plumbing.py +1256 -11
  22. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/svc.py +759 -0
  23. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm.egg-info/PKG-INFO +4 -4
  24. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm.egg-info/SOURCES.txt +12 -0
  25. {strongdm-15.14.0 → strongdm-15.16.0}/LICENSE +0 -0
  26. {strongdm-15.14.0 → strongdm-15.16.0}/setup.cfg +0 -0
  27. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/__init__.py +0 -0
  28. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/access_request_events_history_pb2.py +0 -0
  29. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/access_request_events_history_pb2_grpc.py +0 -0
  30. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/access_requests_history_pb2.py +0 -0
  31. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/access_requests_history_pb2_grpc.py +0 -0
  32. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/access_requests_pb2.py +0 -0
  33. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/access_requests_pb2_grpc.py +0 -0
  34. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/account_attachments_history_pb2.py +0 -0
  35. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/account_attachments_history_pb2_grpc.py +0 -0
  36. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/account_attachments_pb2.py +0 -0
  37. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/account_attachments_pb2_grpc.py +0 -0
  38. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/account_grants_history_pb2.py +0 -0
  39. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/account_grants_history_pb2_grpc.py +0 -0
  40. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/account_grants_pb2.py +0 -0
  41. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/account_grants_pb2_grpc.py +0 -0
  42. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/account_permissions_pb2.py +0 -0
  43. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/account_permissions_pb2_grpc.py +0 -0
  44. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/account_resources_history_pb2.py +0 -0
  45. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/account_resources_history_pb2_grpc.py +0 -0
  46. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/account_resources_pb2.py +0 -0
  47. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/account_resources_pb2_grpc.py +0 -0
  48. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/accounts_history_pb2.py +0 -0
  49. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/accounts_history_pb2_grpc.py +0 -0
  50. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/accounts_pb2.py +0 -0
  51. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/accounts_pb2_grpc.py +0 -0
  52. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/activities_pb2.py +0 -0
  53. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/activities_pb2_grpc.py +0 -0
  54. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/approval_workflow_approvers_history_pb2.py +0 -0
  55. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/approval_workflow_approvers_history_pb2_grpc.py +0 -0
  56. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/approval_workflow_approvers_pb2.py +0 -0
  57. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/approval_workflow_approvers_pb2_grpc.py +0 -0
  58. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/approval_workflow_steps_history_pb2.py +0 -0
  59. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/approval_workflow_steps_history_pb2_grpc.py +0 -0
  60. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/approval_workflow_steps_pb2.py +0 -0
  61. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/approval_workflow_steps_pb2_grpc.py +0 -0
  62. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/approval_workflows_history_pb2.py +0 -0
  63. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/approval_workflows_history_pb2_grpc.py +0 -0
  64. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/approval_workflows_pb2_grpc.py +0 -0
  65. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/control_panel_pb2.py +0 -0
  66. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/control_panel_pb2_grpc.py +0 -0
  67. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/drivers_pb2_grpc.py +0 -0
  68. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/errors.py +0 -0
  69. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/health_checks_pb2.py +0 -0
  70. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/health_checks_pb2_grpc.py +0 -0
  71. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/identity_aliases_history_pb2.py +0 -0
  72. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/identity_aliases_history_pb2_grpc.py +0 -0
  73. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/identity_aliases_pb2.py +0 -0
  74. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/identity_aliases_pb2_grpc.py +0 -0
  75. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/identity_sets_history_pb2.py +0 -0
  76. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/identity_sets_history_pb2_grpc.py +0 -0
  77. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/identity_sets_pb2.py +0 -0
  78. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/identity_sets_pb2_grpc.py +0 -0
  79. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/managed_secrets_pb2.py +0 -0
  80. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/managed_secrets_pb2_grpc.py +0 -0
  81. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/nodes_history_pb2.py +0 -0
  82. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/nodes_history_pb2_grpc.py +0 -0
  83. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/nodes_pb2.py +0 -0
  84. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/nodes_pb2_grpc.py +0 -0
  85. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/options_pb2.py +0 -0
  86. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/options_pb2_grpc.py +0 -0
  87. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/organization_history_pb2.py +0 -0
  88. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/organization_history_pb2_grpc.py +0 -0
  89. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/peering_group_nodes_pb2.py +0 -0
  90. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/peering_group_nodes_pb2_grpc.py +0 -0
  91. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/peering_group_peers_pb2.py +0 -0
  92. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/peering_group_peers_pb2_grpc.py +0 -0
  93. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/peering_group_resources_pb2.py +0 -0
  94. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/peering_group_resources_pb2_grpc.py +0 -0
  95. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/peering_groups_pb2.py +0 -0
  96. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/peering_groups_pb2_grpc.py +0 -0
  97. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/policies_history_pb2.py +0 -0
  98. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/policies_history_pb2_grpc.py +0 -0
  99. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/policies_pb2.py +0 -0
  100. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/policies_pb2_grpc.py +0 -0
  101. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/proxy_cluster_keys_pb2.py +0 -0
  102. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/proxy_cluster_keys_pb2_grpc.py +0 -0
  103. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/queries_pb2.py +0 -0
  104. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/queries_pb2_grpc.py +0 -0
  105. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/remote_identities_history_pb2.py +0 -0
  106. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/remote_identities_history_pb2_grpc.py +0 -0
  107. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/remote_identities_pb2.py +0 -0
  108. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/remote_identities_pb2_grpc.py +0 -0
  109. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/remote_identity_groups_history_pb2.py +0 -0
  110. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/remote_identity_groups_history_pb2_grpc.py +0 -0
  111. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/remote_identity_groups_pb2.py +0 -0
  112. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/remote_identity_groups_pb2_grpc.py +0 -0
  113. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/replays_pb2.py +0 -0
  114. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/replays_pb2_grpc.py +0 -0
  115. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/resources_history_pb2.py +0 -0
  116. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/resources_history_pb2_grpc.py +0 -0
  117. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/resources_pb2.py +0 -0
  118. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/resources_pb2_grpc.py +0 -0
  119. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/role_resources_history_pb2.py +0 -0
  120. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/role_resources_history_pb2_grpc.py +0 -0
  121. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/role_resources_pb2.py +0 -0
  122. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/role_resources_pb2_grpc.py +0 -0
  123. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/roles_history_pb2.py +0 -0
  124. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/roles_history_pb2_grpc.py +0 -0
  125. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/roles_pb2.py +0 -0
  126. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/roles_pb2_grpc.py +0 -0
  127. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/secret_engine_policy_pb2.py +0 -0
  128. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/secret_engine_policy_pb2_grpc.py +0 -0
  129. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/secret_engine_types_pb2.py +0 -0
  130. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/secret_engine_types_pb2_grpc.py +0 -0
  131. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/secret_engines_pb2.py +0 -0
  132. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/secret_engines_pb2_grpc.py +0 -0
  133. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/secret_store_healths_pb2.py +0 -0
  134. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/secret_store_healths_pb2_grpc.py +0 -0
  135. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/secret_store_types_pb2.py +0 -0
  136. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/secret_store_types_pb2_grpc.py +0 -0
  137. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/secret_stores_history_pb2.py +0 -0
  138. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/secret_stores_history_pb2_grpc.py +0 -0
  139. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/secret_stores_pb2.py +0 -0
  140. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/secret_stores_pb2_grpc.py +0 -0
  141. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/spec_pb2.py +0 -0
  142. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/spec_pb2_grpc.py +0 -0
  143. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/tags_pb2.py +0 -0
  144. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/tags_pb2_grpc.py +0 -0
  145. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/workflow_approvers_history_pb2.py +0 -0
  146. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/workflow_approvers_history_pb2_grpc.py +0 -0
  147. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/workflow_approvers_pb2.py +0 -0
  148. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/workflow_approvers_pb2_grpc.py +0 -0
  149. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/workflow_roles_history_pb2.py +0 -0
  150. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/workflow_roles_history_pb2_grpc.py +0 -0
  151. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/workflow_roles_pb2.py +0 -0
  152. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/workflow_roles_pb2_grpc.py +0 -0
  153. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/workflows_history_pb2.py +0 -0
  154. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/workflows_history_pb2_grpc.py +0 -0
  155. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/workflows_pb2.py +0 -0
  156. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm/workflows_pb2_grpc.py +0 -0
  157. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm.egg-info/dependency_links.txt +0 -0
  158. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm.egg-info/requires.txt +0 -0
  159. {strongdm-15.14.0 → strongdm-15.16.0}/strongdm.egg-info/top_level.txt +0 -0
@@ -31,7 +31,7 @@ from . import spec_pb2 as spec__pb2
31
31
  from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2
32
32
 
33
33
 
34
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18\x61pproval_workflows.proto\x12\x02v1\x1a\roptions.proto\x1a\nspec.proto\x1a\x1egoogle/protobuf/duration.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\"\x89\x03\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\x12}\n\x17\x61pproval_workflow_steps\x18\x05 \x03(\x0b\x32\x14.v1.ApprovalFlowStepBF\xf2\xf8\xb3\x07\x41\xb0\xf3\xb3\x07\x01\xca\xf3\xb3\x07(\xc2\xf4\xb3\x07#\n\x12terraform-provider\x12\rapproval_step\xb2\xf4\xb3\x07\x01*\xb2\xf4\xb3\x07\x04!cli: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*\"\xb3\x02\n\x10\x41pprovalFlowStep\x12\x1e\n\nquantifier\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x39\n\nskip_after\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x64\n\tapprovers\x18\x03 \x03(\x0b\x32\x18.v1.ApprovalFlowApproverB7\xf2\xf8\xb3\x07\x32\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\xca\xf3\xb3\x07#\xc2\xf4\xb3\x07\x1e\n\x12terraform-provider\x12\x08\x61pprover:^\xfa\xf8\xb3\x07Y\xa8\xf3\xb3\x07\x01\xca\xf3\xb3\x07@\xf2\xf3\xb3\x07\x1e\n\x12terraform-provider\x12\x08TypeList\xfa\xf3\xb3\x07\x18\x61pprovalFlowStepElemType\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x04!cli\"\x83\x02\n\x14\x41pprovalFlowApprover\x12\x1e\n\naccount_id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1b\n\x07role_id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1d\n\treference\x18\x03 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12+\n\x08group_id\x18\x04 \x01(\tB\x19\xf2\xf8\xb3\x07\x14\xb0\xf3\xb3\x07\x01\xb2\xf4\xb3\x07\ngo_private:b\xfa\xf8\xb3\x07]\xa8\xf3\xb3\x07\x01\xca\xf3\xb3\x07\x44\xf2\xf3\xb3\x07\x1e\n\x12terraform-provider\x12\x08TypeList\xfa\xf3\xb3\x07\x1c\x61pprovalFlowApproverElemType\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x04!cli2\xcb\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-\xca\xf9\xb3\x07\x05\xe8\xf9\xb3\x07\x01\xca\xf9\xb3\x07\x06\xca\xf9\xb3\x07\x01*Bm\n\x19\x63om.strongdm.api.plumbingB\x19\x41pprovalWorkflowsPlumbingZ5github.com/strongdm/strongdm-sdk-go/v3/internal/v1;v1b\x06proto3')
34
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18\x61pproval_workflows.proto\x12\x02v1\x1a\roptions.proto\x1a\nspec.proto\x1a\x1egoogle/protobuf/duration.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\"\x89\x03\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\x12}\n\x17\x61pproval_workflow_steps\x18\x05 \x03(\x0b\x32\x14.v1.ApprovalFlowStepBF\xf2\xf8\xb3\x07\x41\xb0\xf3\xb3\x07\x01\xca\xf3\xb3\x07(\xc2\xf4\xb3\x07#\n\x12terraform-provider\x12\rapproval_step\xb2\xf4\xb3\x07\x01*\xb2\xf4\xb3\x07\x04!cli: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*\"\xb3\x02\n\x10\x41pprovalFlowStep\x12\x1e\n\nquantifier\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x39\n\nskip_after\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x64\n\tapprovers\x18\x03 \x03(\x0b\x32\x18.v1.ApprovalFlowApproverB7\xf2\xf8\xb3\x07\x32\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\xca\xf3\xb3\x07#\xc2\xf4\xb3\x07\x1e\n\x12terraform-provider\x12\x08\x61pprover:^\xfa\xf8\xb3\x07Y\xa8\xf3\xb3\x07\x01\xca\xf3\xb3\x07@\xf2\xf3\xb3\x07\x1e\n\x12terraform-provider\x12\x08TypeList\xfa\xf3\xb3\x07\x18\x61pprovalFlowStepElemType\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x04!cli\"\xf4\x01\n\x14\x41pprovalFlowApprover\x12\x1e\n\naccount_id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1b\n\x07role_id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1d\n\treference\x18\x03 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1c\n\x08group_id\x18\x04 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:b\xfa\xf8\xb3\x07]\xa8\xf3\xb3\x07\x01\xca\xf3\xb3\x07\x44\xf2\xf3\xb3\x07\x1e\n\x12terraform-provider\x12\x08TypeList\xfa\xf3\xb3\x07\x1c\x61pprovalFlowApproverElemType\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x04!cli2\xcb\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-\xca\xf9\xb3\x07\x05\xe8\xf9\xb3\x07\x01\xca\xf9\xb3\x07\x06\xca\xf9\xb3\x07\x01*Bm\n\x19\x63om.strongdm.api.plumbingB\x19\x41pprovalWorkflowsPlumbingZ5github.com/strongdm/strongdm-sdk-go/v3/internal/v1;v1b\x06proto3')
35
35
 
36
36
 
37
37
 
@@ -213,7 +213,7 @@ if _descriptor._USE_C_DESCRIPTORS == False:
213
213
  _APPROVALFLOWAPPROVER.fields_by_name['reference']._options = None
214
214
  _APPROVALFLOWAPPROVER.fields_by_name['reference']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
215
215
  _APPROVALFLOWAPPROVER.fields_by_name['group_id']._options = None
216
- _APPROVALFLOWAPPROVER.fields_by_name['group_id']._serialized_options = b'\362\370\263\007\024\260\363\263\007\001\262\364\263\007\ngo_private'
216
+ _APPROVALFLOWAPPROVER.fields_by_name['group_id']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
217
217
  _APPROVALFLOWAPPROVER._options = None
218
218
  _APPROVALFLOWAPPROVER._serialized_options = b'\372\370\263\007]\250\363\263\007\001\312\363\263\007D\362\363\263\007\036\n\022terraform-provider\022\010TypeList\372\363\263\007\034approvalFlowApproverElemType\322\363\263\007\001*\322\363\263\007\004!cli'
219
219
  _APPROVALWORKFLOWS._options = None
@@ -253,7 +253,7 @@ if _descriptor._USE_C_DESCRIPTORS == False:
253
253
  _APPROVALFLOWSTEP._serialized_start=2209
254
254
  _APPROVALFLOWSTEP._serialized_end=2516
255
255
  _APPROVALFLOWAPPROVER._serialized_start=2519
256
- _APPROVALFLOWAPPROVER._serialized_end=2778
257
- _APPROVALWORKFLOWS._serialized_start=2781
258
- _APPROVALWORKFLOWS._serialized_end=3496
256
+ _APPROVALFLOWAPPROVER._serialized_end=2763
257
+ _APPROVALWORKFLOWS._serialized_start=2766
258
+ _APPROVALWORKFLOWS._serialized_end=3481
259
259
  # @@protoc_insertion_point(module_scope)
@@ -34,7 +34,7 @@ DEFAULT_MAX_RETRY_DELAY = 120 # 120 seconds
34
34
  DEFAULT_RETRY_FACTOR = 1.6
35
35
  DEFAULT_RETRY_JITTER = 0.2
36
36
  API_VERSION = '2025-04-14'
37
- USER_AGENT = 'strongdm-sdk-python/15.14.0'
37
+ USER_AGENT = 'strongdm-sdk-python/15.16.0'
38
38
 
39
39
 
40
40
  class Client:
@@ -145,6 +145,18 @@ class Client:
145
145
 
146
146
  See `strongdm.svc.Accounts`.
147
147
  '''
148
+ self.accounts_groups = svc.AccountsGroups(channel, self)
149
+ '''
150
+ An AccountGroup links an account and a group.
151
+
152
+ See `strongdm.svc.AccountsGroups`.
153
+ '''
154
+ self.accounts_groups_history = svc.AccountsGroupsHistory(channel, self)
155
+ '''
156
+ AccountsGroupsHistory records all changes to the state of an AccountGroup.
157
+
158
+ See `strongdm.svc.AccountsGroupsHistory`.
159
+ '''
148
160
  self.accounts_history = svc.AccountsHistory(channel, self)
149
161
  '''
150
162
  AccountsHistory records all changes to the state of an Account.
@@ -214,6 +226,30 @@ class Client:
214
226
 
215
227
  See `strongdm.svc.Roles`.
216
228
  '''
229
+ self.groups = svc.Groups(channel, self)
230
+ '''
231
+ A Group is a set of principals.
232
+
233
+ See `strongdm.svc.Groups`.
234
+ '''
235
+ self.groups_history = svc.GroupsHistory(channel, self)
236
+ '''
237
+ GroupsHistory records all changes to the state of a Group.
238
+
239
+ See `strongdm.svc.GroupsHistory`.
240
+ '''
241
+ self.groups_roles = svc.GroupsRoles(channel, self)
242
+ '''
243
+ A GroupRole is an assignment of a Group to a Role.
244
+
245
+ See `strongdm.svc.GroupsRoles`.
246
+ '''
247
+ self.groups_roles_history = svc.GroupsRolesHistory(channel, self)
248
+ '''
249
+ GroupsRolesHistory records all changes to the state of a GroupRole.
250
+
251
+ See `strongdm.svc.GroupsRolesHistory`.
252
+ '''
217
253
  self.health_checks = svc.HealthChecks(channel, self)
218
254
  '''
219
255
  HealthChecks lists the last healthcheck between each node and resource.
@@ -556,6 +592,7 @@ class Client:
556
592
  client.channel, client)
557
593
  client.account_resources = svc.AccountResources(client.channel, client)
558
594
  client.accounts = svc.Accounts(client.channel, client)
595
+ client.accounts_groups = svc.AccountsGroups(client.channel, client)
559
596
  client.approval_workflow_approvers = svc.ApprovalWorkflowApprovers(
560
597
  client.channel, client)
561
598
  client.approval_workflow_steps = svc.ApprovalWorkflowSteps(
@@ -563,6 +600,8 @@ class Client:
563
600
  client.approval_workflows = svc.ApprovalWorkflows(
564
601
  client.channel, client)
565
602
  client.roles = svc.Roles(client.channel, client)
603
+ client.groups = svc.Groups(client.channel, client)
604
+ client.groups_roles = svc.GroupsRoles(client.channel, client)
566
605
  client.identity_aliases = svc.IdentityAliases(client.channel, client)
567
606
  client.identity_sets = svc.IdentitySets(client.channel, client)
568
607
  client.nodes = svc.Nodes(client.channel, client)
@@ -630,6 +669,13 @@ class SnapshotClient:
630
669
 
631
670
  See `strongdm.svc.SnapshotAccounts`.
632
671
  '''
672
+ self.accounts_groups = svc.SnapshotAccountsGroups(
673
+ client.accounts_groups)
674
+ '''
675
+ An AccountGroup links an account and a group.
676
+
677
+ See `strongdm.svc.SnapshotAccountsGroups`.
678
+ '''
633
679
  self.approval_workflow_approvers = svc.SnapshotApprovalWorkflowApprovers(
634
680
  client.approval_workflow_approvers)
635
681
  '''
@@ -660,6 +706,18 @@ class SnapshotClient:
660
706
 
661
707
  See `strongdm.svc.SnapshotRoles`.
662
708
  '''
709
+ self.groups = svc.SnapshotGroups(client.groups)
710
+ '''
711
+ A Group is a set of principals.
712
+
713
+ See `strongdm.svc.SnapshotGroups`.
714
+ '''
715
+ self.groups_roles = svc.SnapshotGroupsRoles(client.groups_roles)
716
+ '''
717
+ A GroupRole is an assignment of a Group to a Role.
718
+
719
+ See `strongdm.svc.SnapshotGroupsRoles`.
720
+ '''
663
721
  self.identity_aliases = svc.SnapshotIdentityAliases(
664
722
  client.identity_aliases)
665
723
  '''
@@ -357,6 +357,12 @@ class ActivityVerb:
357
357
 
358
358
  # Permissions, all permissions that may be granted to an account.
359
359
  class Permission:
360
+ GROUP_READ = "group:read"
361
+ GROUP_WRITE = "group:write"
362
+ GROUP_ROLE_READ = "grouprole:read"
363
+ GROUP_ROLE_WRITE = "grouprole:write"
364
+ ACCOUNT_GROUP_READ = "accountgroup:read"
365
+ ACCOUNT_GROUP_WRITE = "accountgroup:write"
360
366
  RELAY_LIST = "relay:list"
361
367
  RELAY_CREATE = "relay:create"
362
368
  DATASOURCE_LIST = "datasource:list"
@@ -420,6 +426,7 @@ class Permission:
420
426
  ORG_AUDIT_APPROVAL_FLOWS = "audit:approvalflows"
421
427
  ORG_AUDIT_ACCESS_REQUESTS = "audit:accessrequests"
422
428
  ORG_AUDIT_POLICIES = "audit:policies"
429
+ ORG_AUDIT_GROUPS = "audit:groups"
423
430
  WORKFLOW_LIST = "workflow:list"
424
431
  WORKFLOW_EDIT = "workflow:edit"
425
432
  ACCESS_REQUEST_LIST = "accessrequest:list"