strongdm 7.1.0__zip → 12.2.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.
- {strongdm-7.1.0 → strongdm-12.2.0}/PKG-INFO +2 -2
- {strongdm-7.1.0 → strongdm-12.2.0}/setup.py +2 -2
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/access_request_events_history_pb2.py +3 -3
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/access_requests_history_pb2.py +3 -3
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/access_requests_pb2.py +45 -16
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/account_grants_pb2.py +6 -4
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/accounts_pb2.py +47 -34
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/accounts_pb2_grpc.py +3 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/approval_workflow_approvers_history_pb2.py +3 -3
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/approval_workflow_approvers_pb2.py +3 -3
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/approval_workflow_steps_history_pb2.py +3 -3
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/approval_workflow_steps_pb2.py +3 -3
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/approval_workflows_history_pb2.py +3 -3
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/approval_workflows_pb2.py +3 -3
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/client.py +108 -13
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/constants.py +86 -12
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/drivers_pb2.py +745 -227
- strongdm-12.2.0/strongdm/health_checks_pb2.py +107 -0
- strongdm-12.2.0/strongdm/health_checks_pb2_grpc.py +87 -0
- strongdm-12.2.0/strongdm/identity_aliases_history_pb2.py +100 -0
- strongdm-12.2.0/strongdm/identity_aliases_history_pb2_grpc.py +84 -0
- strongdm-12.2.0/strongdm/identity_aliases_pb2.py +220 -0
- strongdm-12.2.0/strongdm/identity_aliases_pb2_grpc.py +223 -0
- strongdm-12.2.0/strongdm/identity_sets_history_pb2.py +100 -0
- strongdm-12.2.0/strongdm/identity_sets_history_pb2_grpc.py +84 -0
- strongdm-12.2.0/strongdm/identity_sets_pb2.py +216 -0
- strongdm-12.2.0/strongdm/identity_sets_pb2_grpc.py +223 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/models.py +7628 -3440
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/nodes_pb2.py +41 -15
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/options_pb2.py +24 -24
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/organization_history_pb2.py +13 -5
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/peering_group_nodes_pb2.py +3 -3
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/peering_group_peers_pb2.py +3 -3
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/peering_group_resources_pb2.py +3 -3
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/peering_groups_pb2.py +3 -3
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/plumbing.py +3138 -1165
- strongdm-12.2.0/strongdm/policies_history_pb2.py +100 -0
- strongdm-12.2.0/strongdm/policies_history_pb2_grpc.py +84 -0
- strongdm-12.2.0/strongdm/policies_pb2.py +216 -0
- strongdm-12.2.0/strongdm/policies_pb2_grpc.py +223 -0
- strongdm-12.2.0/strongdm/proxy_cluster_keys_pb2.py +191 -0
- strongdm-12.2.0/strongdm/proxy_cluster_keys_pb2_grpc.py +192 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/queries_pb2.py +17 -11
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/remote_identities_history_pb2.py +3 -3
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/remote_identities_pb2.py +3 -3
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/remote_identity_groups_history_pb2.py +3 -3
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/remote_identity_groups_pb2.py +3 -3
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/replays_pb2.py +8 -6
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/secret_store_types_pb2.py +164 -40
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/spec_pb2.py +12 -8
- strongdm-12.2.0/strongdm/spec_pb2_grpc.py +18 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/svc.py +1345 -339
- strongdm-12.2.0/strongdm/tags_pb2_grpc.py +18 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/workflow_approvers_history_pb2.py +3 -3
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/workflow_approvers_pb2.py +3 -3
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/workflow_assignments_history_pb2.py +3 -3
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/workflow_assignments_pb2.py +3 -3
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/workflow_roles_history_pb2.py +3 -3
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/workflow_roles_pb2.py +3 -3
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/workflows_history_pb2.py +3 -3
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/workflows_pb2.py +31 -26
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm.egg-info/PKG-INFO +2 -2
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm.egg-info/SOURCES.txt +18 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/LICENSE +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/README.md +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/setup.cfg +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/__init__.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/access_request_events_history_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/access_requests_history_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/access_requests_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/account_attachments_history_pb2.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/account_attachments_history_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/account_attachments_pb2.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/account_attachments_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/account_grants_history_pb2.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/account_grants_history_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/account_grants_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/account_permissions_pb2.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/account_permissions_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/account_resources_history_pb2.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/account_resources_history_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/account_resources_pb2.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/account_resources_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/accounts_history_pb2.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/accounts_history_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/activities_pb2.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/activities_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/approval_workflow_approvers_history_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/approval_workflow_approvers_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/approval_workflow_steps_history_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/approval_workflow_steps_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/approval_workflows_history_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/approval_workflows_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/control_panel_pb2.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/control_panel_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/drivers_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/errors.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/nodes_history_pb2.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/nodes_history_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/nodes_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/options_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/organization_history_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/peering_group_nodes_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/peering_group_peers_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/peering_group_resources_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/peering_groups_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/queries_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/remote_identities_history_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/remote_identities_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/remote_identity_groups_history_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/remote_identity_groups_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/replays_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/resources_history_pb2.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/resources_history_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/resources_pb2.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/resources_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/role_resources_history_pb2.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/role_resources_history_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/role_resources_pb2.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/role_resources_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/roles_history_pb2.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/roles_history_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/roles_pb2.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/roles_pb2_grpc.py +0 -0
- /strongdm-7.1.0/strongdm/secret_store_types_pb2_grpc.py → /strongdm-12.2.0/strongdm/secret_engine_policy_pb2_grpc.py +0 -0
- /strongdm-7.1.0/strongdm/spec_pb2_grpc.py → /strongdm-12.2.0/strongdm/secret_engine_types_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/secret_store_healths_pb2.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/secret_store_healths_pb2_grpc.py +0 -0
- /strongdm-7.1.0/strongdm/tags_pb2_grpc.py → /strongdm-12.2.0/strongdm/secret_store_types_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/secret_stores_history_pb2.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/secret_stores_history_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/secret_stores_pb2.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/secret_stores_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/tags_pb2.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/workflow_approvers_history_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/workflow_approvers_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/workflow_assignments_history_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/workflow_assignments_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/workflow_roles_history_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/workflow_roles_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/workflows_history_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm/workflows_pb2_grpc.py +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm.egg-info/dependency_links.txt +0 -0
- {strongdm-7.1.0 → strongdm-12.2.0}/strongdm.egg-info/requires.txt +0 -0
- {strongdm-7.1.0 → strongdm-12.2.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\
|
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=
|
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\
|
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=
|
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\
|
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=
|
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
|
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-
|
35
|
-
USER_AGENT = 'strongdm-sdk-python/
|
35
|
+
API_VERSION = '2024-03-28'
|
36
|
+
USER_AGENT = 'strongdm-sdk-python/12.2.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.
|
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
|
-
|
454
|
-
|
455
|
-
|
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
|
-
|
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
|
-
|
337
|
-
|
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
|
437
|
-
class
|
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"
|