strongdm 15.40.0__tar.gz → 15.43.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {strongdm-15.40.0 → strongdm-15.43.0}/PKG-INFO +2 -2
- {strongdm-15.40.0 → strongdm-15.43.0}/setup.py +4 -4
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/access_requests_pb2.py +28 -12
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/client.py +132 -1
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/constants.py +1 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/drivers_pb2.py +32 -24
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/models.py +36 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/plumbing.py +8 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm.egg-info/PKG-INFO +2 -2
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm.egg-info/requires.txt +1 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/LICENSE +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/README.md +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/setup.cfg +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/__init__.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/access_request_events_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/access_request_events_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/access_requests_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/access_requests_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/access_requests_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/account_attachments_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/account_attachments_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/account_attachments_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/account_attachments_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/account_grants_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/account_grants_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/account_grants_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/account_grants_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/account_permissions_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/account_permissions_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/account_resources_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/account_resources_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/account_resources_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/account_resources_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/accounts_groups_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/accounts_groups_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/accounts_groups_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/accounts_groups_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/accounts_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/accounts_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/accounts_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/accounts_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/activities_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/activities_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/approval_workflow_approvers_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/approval_workflow_approvers_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/approval_workflow_approvers_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/approval_workflow_approvers_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/approval_workflow_steps_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/approval_workflow_steps_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/approval_workflow_steps_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/approval_workflow_steps_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/approval_workflows_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/approval_workflows_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/approval_workflows_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/approval_workflows_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/control_panel_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/control_panel_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/discovery_connectors_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/discovery_connectors_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/drivers_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/errors.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/groups_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/groups_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/groups_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/groups_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/groups_roles_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/groups_roles_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/groups_roles_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/groups_roles_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/health_checks_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/health_checks_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/identity_aliases_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/identity_aliases_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/identity_aliases_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/identity_aliases_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/identity_sets_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/identity_sets_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/identity_sets_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/identity_sets_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/managed_secrets_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/managed_secrets_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/nodes_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/nodes_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/nodes_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/nodes_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/options_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/options_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/organization_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/organization_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/peering_group_nodes_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/peering_group_nodes_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/peering_group_peers_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/peering_group_peers_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/peering_group_resources_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/peering_group_resources_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/peering_groups_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/peering_groups_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/policies_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/policies_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/policies_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/policies_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/proxy_cluster_keys_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/proxy_cluster_keys_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/queries_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/queries_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/remote_identities_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/remote_identities_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/remote_identities_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/remote_identities_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/remote_identity_groups_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/remote_identity_groups_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/remote_identity_groups_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/remote_identity_groups_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/replays_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/replays_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/resources_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/resources_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/resources_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/resources_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/role_resources_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/role_resources_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/role_resources_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/role_resources_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/roles_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/roles_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/roles_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/roles_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/secret_engine_policy_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/secret_engine_policy_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/secret_engine_types_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/secret_engine_types_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/secret_engines_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/secret_engines_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/secret_store_healths_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/secret_store_healths_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/secret_store_types_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/secret_store_types_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/secret_stores_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/secret_stores_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/secret_stores_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/secret_stores_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/spec_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/spec_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/svc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/tags_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/tags_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/workflow_approvers_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/workflow_approvers_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/workflow_approvers_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/workflow_approvers_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/workflow_roles_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/workflow_roles_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/workflow_roles_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/workflow_roles_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/workflows_history_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/workflows_history_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/workflows_pb2.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm/workflows_pb2_grpc.py +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm.egg-info/SOURCES.txt +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm.egg-info/dependency_links.txt +0 -0
- {strongdm-15.40.0 → strongdm-15.43.0}/strongdm.egg-info/top_level.txt +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: strongdm
|
|
3
|
-
Version: 15.
|
|
3
|
+
Version: 15.43.0
|
|
4
4
|
Summary: strongDM SDK for the Python programming language.
|
|
5
5
|
Home-page: https://github.com/strongdm/strongdm-sdk-python
|
|
6
6
|
Author: strongDM Team
|
|
7
7
|
Author-email: sdk-feedback@strongdm.com
|
|
8
8
|
License: apache-2.0
|
|
9
|
-
Download-URL: https://github.com/strongdm/strongdm-sdk-python/archive/v15.
|
|
9
|
+
Download-URL: https://github.com/strongdm/strongdm-sdk-python/archive/v15.43.0.tar.gz
|
|
10
10
|
Keywords: strongDM,sdm,api,automation,security,audit,database,server,ssh,rdp
|
|
11
11
|
Platform: UNKNOWN
|
|
12
12
|
Classifier: Development Status :: 4 - Beta
|
|
@@ -23,7 +23,7 @@ from setuptools import setup
|
|
|
23
23
|
setup(
|
|
24
24
|
name='strongdm',
|
|
25
25
|
packages=['strongdm'],
|
|
26
|
-
version='15.
|
|
26
|
+
version='15.43.0',
|
|
27
27
|
license='apache-2.0',
|
|
28
28
|
description='strongDM SDK for the Python programming language.',
|
|
29
29
|
long_description=long_description,
|
|
@@ -32,14 +32,14 @@ setup(
|
|
|
32
32
|
author_email='sdk-feedback@strongdm.com',
|
|
33
33
|
url='https://github.com/strongdm/strongdm-sdk-python',
|
|
34
34
|
download_url=
|
|
35
|
-
'https://github.com/strongdm/strongdm-sdk-python/archive/v15.
|
|
35
|
+
'https://github.com/strongdm/strongdm-sdk-python/archive/v15.43.0.tar.gz',
|
|
36
36
|
keywords=[
|
|
37
37
|
'strongDM', 'sdm', 'api', 'automation', 'security', 'audit',
|
|
38
38
|
'database', 'server', 'ssh', 'rdp'
|
|
39
39
|
],
|
|
40
40
|
install_requires=[
|
|
41
|
-
'grpcio>=1.42.0',
|
|
42
|
-
'
|
|
41
|
+
'grpcio >= 1.42.0', 'googleapis-common-protos>1.56.2,<2',
|
|
42
|
+
'cryptography >= 46.0.0'
|
|
43
43
|
],
|
|
44
44
|
classifiers=[
|
|
45
45
|
'Development Status :: 4 - Beta', # Chose either "3 - Alpha", "4 - Beta" or "5 - Production/Stable" as the current state of your package
|
|
@@ -33,7 +33,7 @@ from . import spec_pb2 as spec__pb2
|
|
|
33
33
|
from . import tags_pb2 as tags__pb2
|
|
34
34
|
|
|
35
35
|
|
|
36
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x61\x63\x63\x65ss_requests.proto\x12\x02v1\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\roptions.proto\x1a\nspec.proto\x1a\ntags.proto\"i\n\x18\x41\x63\x63\x65ssRequestListRequest\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:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xc9\x01\n\x19\x41\x63\x63\x65ssRequestListResponse\x12&\n\x04meta\x18\x01 \x01(\x0b\x32\x18.v1.ListResponseMetadata\x12\x36\n\x0f\x61\x63\x63\x65ss_requests\x18\x02 \x03(\x0b\x32\x11.v1.AccessRequestB\n\xf2\xf8\xb3\x07\x05\xb8\xf3\xb3\x07\x01\x12@\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB\x15\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\x83\x05\n\rAccessRequest\x12\x16\n\x02id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12$\n\x0bresource_id\x18\x02 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\x1a\n\x06reason\x18\x03 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1f\n\x0bworkflow_id\x18\x04 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1e\n\naccount_id\x18\x05 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12:\n\nstart_from\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12@\n\x0bvalid_until\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\x1a\n\x06status\x18\x08 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x39\n\tstatus_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1c\n\x08grant_id\x18\n \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1e\n\x08\x64uration\x18\x0b \x01(\x03\x42\x0c\x18\x01\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12@\n\x11requestedDuration\x18\r \x01(\x0b\x32\x19.google.protobuf.DurationB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12=\n\x0eresultDuration\x18\x0e \x01(\x0b\x32\x19.google.protobuf.DurationB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x31\n\x0erequester_name\x18\x0c \x01(\tB\x19\xf2\xf8\xb3\x07\x14\xb0\xf3\xb3\x07\x01\xb2\xf4\xb3\x07\ngo_private:\x10\xfa\xf8\xb3\x07\x0b\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\"\xf9\x01\n\x12\x41\x63\x63\x65ssRequestEvent\x12\x16\n\x02id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1e\n\nrequest_id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1c\n\x08\x61\x63tor_id\x18\x03 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x18\n\x04type\x18\x04 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1c\n\x08metadata\x18\x05 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x43\n\x04time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x19\xf2\xf8\xb3\x07\x14\xb0\xf3\xb3\x07\x01\xb2\xf4\xb3\x07\ngo_private:\x10\xfa\xf8\xb3\x07\x0b\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\"\xfc\x02\n\x13RequestableResource\x12\x16\n\x02id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x18\n\x04name\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1b\n\x07healthy\x18\x03 \x01(\x08\x42\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x18\n\x04type\x18\x04 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\"\n\x0e\x61uthentication\x18\x05 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\"\n\x04tags\x18\x06 \x01(\x0b\x32\x08.v1.TagsB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1a\n\x06\x61\x63\x63\x65ss\x18\x07 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x44\n\nprivileges\x18\x08 \x01(\x0b\x32\x15.v1.PrivilegesMessageB\x19\xf2\xf8\xb3\x07\x14\xb0\xf3\xb3\x07\x01\xb2\xf4\xb3\x07\ngo_private\x12@\n\x1dprivileges_requirement_status\x18\t \x01(\tB\x19\xf2\xf8\xb3\x07\x14\xb0\xf3\xb3\x07\x01\xb2\xf4\xb3\x07\ngo_private:\x10\xfa\xf8\xb3\x07\x0b\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\"\
|
|
36
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x61\x63\x63\x65ss_requests.proto\x12\x02v1\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\roptions.proto\x1a\nspec.proto\x1a\ntags.proto\"i\n\x18\x41\x63\x63\x65ssRequestListRequest\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:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\xc9\x01\n\x19\x41\x63\x63\x65ssRequestListResponse\x12&\n\x04meta\x18\x01 \x01(\x0b\x32\x18.v1.ListResponseMetadata\x12\x36\n\x0f\x61\x63\x63\x65ss_requests\x18\x02 \x03(\x0b\x32\x11.v1.AccessRequestB\n\xf2\xf8\xb3\x07\x05\xb8\xf3\xb3\x07\x01\x12@\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB\x15\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*:\n\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\"\x83\x05\n\rAccessRequest\x12\x16\n\x02id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12$\n\x0bresource_id\x18\x02 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\x1a\n\x06reason\x18\x03 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1f\n\x0bworkflow_id\x18\x04 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1e\n\naccount_id\x18\x05 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12:\n\nstart_from\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12@\n\x0bvalid_until\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\x1a\n\x06status\x18\x08 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x39\n\tstatus_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1c\n\x08grant_id\x18\n \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1e\n\x08\x64uration\x18\x0b \x01(\x03\x42\x0c\x18\x01\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12@\n\x11requestedDuration\x18\r \x01(\x0b\x32\x19.google.protobuf.DurationB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12=\n\x0eresultDuration\x18\x0e \x01(\x0b\x32\x19.google.protobuf.DurationB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x31\n\x0erequester_name\x18\x0c \x01(\tB\x19\xf2\xf8\xb3\x07\x14\xb0\xf3\xb3\x07\x01\xb2\xf4\xb3\x07\ngo_private:\x10\xfa\xf8\xb3\x07\x0b\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\"\xf9\x01\n\x12\x41\x63\x63\x65ssRequestEvent\x12\x16\n\x02id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1e\n\nrequest_id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1c\n\x08\x61\x63tor_id\x18\x03 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x18\n\x04type\x18\x04 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1c\n\x08metadata\x18\x05 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x43\n\x04time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x19\xf2\xf8\xb3\x07\x14\xb0\xf3\xb3\x07\x01\xb2\xf4\xb3\x07\ngo_private:\x10\xfa\xf8\xb3\x07\x0b\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\"\xfc\x02\n\x13RequestableResource\x12\x16\n\x02id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x18\n\x04name\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1b\n\x07healthy\x18\x03 \x01(\x08\x42\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x18\n\x04type\x18\x04 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\"\n\x0e\x61uthentication\x18\x05 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\"\n\x04tags\x18\x06 \x01(\x0b\x32\x08.v1.TagsB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1a\n\x06\x61\x63\x63\x65ss\x18\x07 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x44\n\nprivileges\x18\x08 \x01(\x0b\x32\x15.v1.PrivilegesMessageB\x19\xf2\xf8\xb3\x07\x14\xb0\xf3\xb3\x07\x01\xb2\xf4\xb3\x07\ngo_private\x12@\n\x1dprivileges_requirement_status\x18\t \x01(\tB\x19\xf2\xf8\xb3\x07\x14\xb0\xf3\xb3\x07\x01\xb2\xf4\xb3\x07\ngo_private:\x10\xfa\xf8\xb3\x07\x0b\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\"\xdc\x01\n\x11PrivilegesMessage\x12\x38\n\nkubernetes\x18\x01 \x01(\x0b\x32\x18.v1.KubernetesPrivilegesB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x39\n\x0b\x65ntraGroups\x18\x02 \x01(\x0b\x32\x18.v1.EntraGroupPrivilegesB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x37\n\noktaGroups\x18\x03 \x01(\x0b\x32\x17.v1.OktaGroupPrivilegesB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x19\xfa\xf8\xb3\x07\x14\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\ngo_private\"M\n\x14KubernetesPrivileges\x12\x1a\n\x06groups\x18\x01 \x03(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x19\xfa\xf8\xb3\x07\x14\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\ngo_private\"M\n\x14\x45ntraGroupPrivileges\x12\x1a\n\x06groups\x18\x01 \x03(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x19\xfa\xf8\xb3\x07\x14\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\ngo_private\"L\n\x13OktaGroupPrivileges\x12\x1a\n\x06groups\x18\x01 \x03(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x19\xfa\xf8\xb3\x07\x14\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\ngo_private\"\xc3\x01\n\x13\x41\x63\x63\x65ssRequestConfig\x12$\n\x0bresource_id\x18\x01 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\x1a\n\x06reason\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12:\n\nstart_from\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1c\n\x08\x64uration\x18\x04 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x10\xfa\xf8\xb3\x07\x0b\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\"\xcb\x03\n\x1aRequestAccessRequestConfig\x12\'\n\x0cresource_ids\x18\x01 \x03(\tB\x11\x18\x01\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\x1a\n\x06reason\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12:\n\nstart_from\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1c\n\x08\x64uration\x18\x04 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\xf2\x01\n\x0c\x61\x63\x63\x65ss_rules\x18\x05 \x01(\tB\xdb\x01\xf2\xf8\xb3\x07\xd5\x01\xb0\xf3\xb3\x07\x01\xca\xf3\xb3\x07\xa9\x01\xea\xf3\xb3\x07\x0c\x61\x63\x63\x65ss_rules\xf2\xf3\xb3\x07\x11\n\x02go\x12\x0b\x41\x63\x63\x65ssRules\xf2\xf3\xb3\x07\x19\n\ngo_private\x12\x0b\x41\x63\x63\x65ssRules\xf2\xf3\xb3\x07\x1b\n\x0cgo_terraform\x12\x0b\x41\x63\x63\x65ssRules\xf2\xf3\xb3\x07\x18\n\x04java\x12\x10List<AccessRule>\xf2\xf3\xb3\x07\"\n\x0cjson_gateway\x12\x12models.AccessRules\xba\xf4\xb3\x07\x17\x61\x63\x63\x65ssRulesDiffSuppress\xd0\xf4\xb3\x07\x01:\x19\xfa\xf8\xb3\x07\x14\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\ngo_private2\xd9\x01\n\x0e\x41\x63\x63\x65ssRequests\x12o\n\x04List\x12\x1c.v1.AccessRequestListRequest\x1a\x1d.v1.AccessRequestListResponse\"*\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07\x18\xaa\xf3\xb3\x07\x13/v1/access-requests\x1aV\xca\xf9\xb3\x07\x12\xc2\xf9\xb3\x07\rAccessRequest\xca\xf9\xb3\x07\x08\xd2\xf9\xb3\x07\x03\x61q-\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\x92\x01\n\x19\x63om.strongdm.api.plumbingB\x16\x41\x63\x63\x65ssRequestsPlumbingZ5github.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')
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
|
|
@@ -45,6 +45,7 @@ _REQUESTABLERESOURCE = DESCRIPTOR.message_types_by_name['RequestableResource']
|
|
|
45
45
|
_PRIVILEGESMESSAGE = DESCRIPTOR.message_types_by_name['PrivilegesMessage']
|
|
46
46
|
_KUBERNETESPRIVILEGES = DESCRIPTOR.message_types_by_name['KubernetesPrivileges']
|
|
47
47
|
_ENTRAGROUPPRIVILEGES = DESCRIPTOR.message_types_by_name['EntraGroupPrivileges']
|
|
48
|
+
_OKTAGROUPPRIVILEGES = DESCRIPTOR.message_types_by_name['OktaGroupPrivileges']
|
|
48
49
|
_ACCESSREQUESTCONFIG = DESCRIPTOR.message_types_by_name['AccessRequestConfig']
|
|
49
50
|
_REQUESTACCESSREQUESTCONFIG = DESCRIPTOR.message_types_by_name['RequestAccessRequestConfig']
|
|
50
51
|
AccessRequestListRequest = _reflection.GeneratedProtocolMessageType('AccessRequestListRequest', (_message.Message,), {
|
|
@@ -103,6 +104,13 @@ EntraGroupPrivileges = _reflection.GeneratedProtocolMessageType('EntraGroupPrivi
|
|
|
103
104
|
})
|
|
104
105
|
_sym_db.RegisterMessage(EntraGroupPrivileges)
|
|
105
106
|
|
|
107
|
+
OktaGroupPrivileges = _reflection.GeneratedProtocolMessageType('OktaGroupPrivileges', (_message.Message,), {
|
|
108
|
+
'DESCRIPTOR' : _OKTAGROUPPRIVILEGES,
|
|
109
|
+
'__module__' : 'access_requests_pb2'
|
|
110
|
+
# @@protoc_insertion_point(class_scope:v1.OktaGroupPrivileges)
|
|
111
|
+
})
|
|
112
|
+
_sym_db.RegisterMessage(OktaGroupPrivileges)
|
|
113
|
+
|
|
106
114
|
AccessRequestConfig = _reflection.GeneratedProtocolMessageType('AccessRequestConfig', (_message.Message,), {
|
|
107
115
|
'DESCRIPTOR' : _ACCESSREQUESTCONFIG,
|
|
108
116
|
'__module__' : 'access_requests_pb2'
|
|
@@ -200,6 +208,8 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
200
208
|
_PRIVILEGESMESSAGE.fields_by_name['kubernetes']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
|
|
201
209
|
_PRIVILEGESMESSAGE.fields_by_name['entraGroups']._options = None
|
|
202
210
|
_PRIVILEGESMESSAGE.fields_by_name['entraGroups']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
|
|
211
|
+
_PRIVILEGESMESSAGE.fields_by_name['oktaGroups']._options = None
|
|
212
|
+
_PRIVILEGESMESSAGE.fields_by_name['oktaGroups']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
|
|
203
213
|
_PRIVILEGESMESSAGE._options = None
|
|
204
214
|
_PRIVILEGESMESSAGE._serialized_options = b'\372\370\263\007\024\250\363\263\007\001\322\363\263\007\ngo_private'
|
|
205
215
|
_KUBERNETESPRIVILEGES.fields_by_name['groups']._options = None
|
|
@@ -210,6 +220,10 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
210
220
|
_ENTRAGROUPPRIVILEGES.fields_by_name['groups']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
|
|
211
221
|
_ENTRAGROUPPRIVILEGES._options = None
|
|
212
222
|
_ENTRAGROUPPRIVILEGES._serialized_options = b'\372\370\263\007\024\250\363\263\007\001\322\363\263\007\ngo_private'
|
|
223
|
+
_OKTAGROUPPRIVILEGES.fields_by_name['groups']._options = None
|
|
224
|
+
_OKTAGROUPPRIVILEGES.fields_by_name['groups']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
|
|
225
|
+
_OKTAGROUPPRIVILEGES._options = None
|
|
226
|
+
_OKTAGROUPPRIVILEGES._serialized_options = b'\372\370\263\007\024\250\363\263\007\001\322\363\263\007\ngo_private'
|
|
213
227
|
_ACCESSREQUESTCONFIG.fields_by_name['resource_id']._options = None
|
|
214
228
|
_ACCESSREQUESTCONFIG.fields_by_name['resource_id']._serialized_options = b'\362\370\263\007\n\260\363\263\007\001\300\363\263\007\001'
|
|
215
229
|
_ACCESSREQUESTCONFIG.fields_by_name['reason']._options = None
|
|
@@ -247,15 +261,17 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
247
261
|
_REQUESTABLERESOURCE._serialized_start=1343
|
|
248
262
|
_REQUESTABLERESOURCE._serialized_end=1723
|
|
249
263
|
_PRIVILEGESMESSAGE._serialized_start=1726
|
|
250
|
-
_PRIVILEGESMESSAGE._serialized_end=
|
|
251
|
-
_KUBERNETESPRIVILEGES._serialized_start=
|
|
252
|
-
_KUBERNETESPRIVILEGES._serialized_end=
|
|
253
|
-
_ENTRAGROUPPRIVILEGES._serialized_start=
|
|
254
|
-
_ENTRAGROUPPRIVILEGES._serialized_end=
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
264
|
+
_PRIVILEGESMESSAGE._serialized_end=1946
|
|
265
|
+
_KUBERNETESPRIVILEGES._serialized_start=1948
|
|
266
|
+
_KUBERNETESPRIVILEGES._serialized_end=2025
|
|
267
|
+
_ENTRAGROUPPRIVILEGES._serialized_start=2027
|
|
268
|
+
_ENTRAGROUPPRIVILEGES._serialized_end=2104
|
|
269
|
+
_OKTAGROUPPRIVILEGES._serialized_start=2106
|
|
270
|
+
_OKTAGROUPPRIVILEGES._serialized_end=2182
|
|
271
|
+
_ACCESSREQUESTCONFIG._serialized_start=2185
|
|
272
|
+
_ACCESSREQUESTCONFIG._serialized_end=2380
|
|
273
|
+
_REQUESTACCESSREQUESTCONFIG._serialized_start=2383
|
|
274
|
+
_REQUESTACCESSREQUESTCONFIG._serialized_end=2842
|
|
275
|
+
_ACCESSREQUESTS._serialized_start=2845
|
|
276
|
+
_ACCESSREQUESTS._serialized_end=3062
|
|
261
277
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -16,17 +16,23 @@
|
|
|
16
16
|
# Code generated by protogen. DO NOT EDIT.
|
|
17
17
|
|
|
18
18
|
import base64
|
|
19
|
+
import collections
|
|
19
20
|
import copy
|
|
20
21
|
import datetime
|
|
22
|
+
import functools
|
|
21
23
|
import grpc
|
|
22
24
|
import hashlib
|
|
23
25
|
import hmac
|
|
24
26
|
import random
|
|
27
|
+
import re
|
|
25
28
|
import time
|
|
26
29
|
from . import errors
|
|
27
30
|
from . import plumbing
|
|
28
31
|
from . import svc
|
|
29
32
|
|
|
33
|
+
from cryptography.hazmat.primitives.asymmetric import rsa, padding
|
|
34
|
+
from cryptography.hazmat.primitives import serialization, hashes
|
|
35
|
+
|
|
30
36
|
# These defaults are taken from AWS. Customization of these values
|
|
31
37
|
# is a future step in the API.
|
|
32
38
|
DEFAULT_BASE_RETRY_DELAY = 1 # 1 second
|
|
@@ -34,7 +40,131 @@ DEFAULT_MAX_RETRY_DELAY = 120 # 120 seconds
|
|
|
34
40
|
DEFAULT_RETRY_FACTOR = 1.6
|
|
35
41
|
DEFAULT_RETRY_JITTER = 0.2
|
|
36
42
|
API_VERSION = '2025-04-14'
|
|
37
|
-
USER_AGENT = 'strongdm-sdk-python/15.
|
|
43
|
+
USER_AGENT = 'strongdm-sdk-python/15.43.0'
|
|
44
|
+
|
|
45
|
+
method_regexp = re.compile(r'\W+')
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class _ClientCallDetails(
|
|
49
|
+
collections.namedtuple(
|
|
50
|
+
"_ClientCallDetails",
|
|
51
|
+
("method", "timeout", "metadata", "credentials")),
|
|
52
|
+
grpc.ClientCallDetails,
|
|
53
|
+
):
|
|
54
|
+
""" _ClientCallDetails is used to override some of the attributes of the client_call_details in the interceptors"""
|
|
55
|
+
pass
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class _EncryptionInterceptor(grpc.UnaryUnaryClientInterceptor):
|
|
59
|
+
""" _EncryptionInterceptor is used to add transparent encryption/decryption support for managed secrets"""
|
|
60
|
+
def __init__(self, client):
|
|
61
|
+
self.client = client
|
|
62
|
+
self.public_key_cache = {}
|
|
63
|
+
|
|
64
|
+
def intercept_unary_unary(self, continuation, client_call_details,
|
|
65
|
+
request):
|
|
66
|
+
method = method_regexp.sub("_", client_call_details.method.lower())
|
|
67
|
+
callback = getattr(self, method, None)
|
|
68
|
+
if callback is not None:
|
|
69
|
+
return callback(continuation, client_call_details, request)
|
|
70
|
+
return continuation(client_call_details, request)
|
|
71
|
+
|
|
72
|
+
@functools.cached_property
|
|
73
|
+
def private_key(self):
|
|
74
|
+
return rsa.generate_private_key(
|
|
75
|
+
public_exponent=65537,
|
|
76
|
+
key_size=4096,
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
def _encrypt_secret(self, method, continuation, client_call_details,
|
|
80
|
+
request):
|
|
81
|
+
secret = request.managed_secret
|
|
82
|
+
if len(secret.value) != 0:
|
|
83
|
+
if secret.secret_engine_id not in self.public_key_cache:
|
|
84
|
+
try:
|
|
85
|
+
# fetch secret engine details to fill up self.public_key_cache
|
|
86
|
+
# if it fails the call to create/update will fail as well
|
|
87
|
+
self.client.secret_engines.get(secret.secret_engine_id)
|
|
88
|
+
except errors.RPCError:
|
|
89
|
+
pass
|
|
90
|
+
key = self.public_key_cache.get(secret.secret_engine_id)
|
|
91
|
+
if key is not None:
|
|
92
|
+
encrypted = key.encrypt(
|
|
93
|
+
secret.value,
|
|
94
|
+
padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()),
|
|
95
|
+
algorithm=hashes.SHA256(),
|
|
96
|
+
label=None))
|
|
97
|
+
secret.value = encrypted
|
|
98
|
+
client_call_details = _ClientCallDetails(
|
|
99
|
+
method=client_call_details.method,
|
|
100
|
+
timeout=client_call_details.timeout,
|
|
101
|
+
metadata=self.client.get_metadata(method, request),
|
|
102
|
+
credentials=client_call_details.credentials)
|
|
103
|
+
return continuation(client_call_details, request)
|
|
104
|
+
|
|
105
|
+
def _v1_managedsecrets_create(self, continuation, client_call_details,
|
|
106
|
+
request):
|
|
107
|
+
return self._encrypt_secret("ManagedSecrets.Create", continuation,
|
|
108
|
+
client_call_details, request)
|
|
109
|
+
|
|
110
|
+
def _v1_managedsecrets_update(self, continuation, client_call_details,
|
|
111
|
+
request):
|
|
112
|
+
return self._encrypt_secret("ManagedSecrets.Update", continuation,
|
|
113
|
+
client_call_details, request)
|
|
114
|
+
|
|
115
|
+
def _v1_managedsecrets_retrieve(self, continuation, client_call_details,
|
|
116
|
+
request):
|
|
117
|
+
if len(request.public_key) != 0:
|
|
118
|
+
return continuation(client_call_details, request)
|
|
119
|
+
|
|
120
|
+
privKey = self.private_key
|
|
121
|
+
request.public_key = privKey.public_key().public_bytes(
|
|
122
|
+
serialization.Encoding.PEM,
|
|
123
|
+
serialization.PublicFormat.SubjectPublicKeyInfo)
|
|
124
|
+
client_call_details = _ClientCallDetails(
|
|
125
|
+
method=client_call_details.method,
|
|
126
|
+
timeout=client_call_details.timeout,
|
|
127
|
+
metadata=self.client.get_metadata("ManagedSecrets.Retrieve",
|
|
128
|
+
request),
|
|
129
|
+
credentials=client_call_details.credentials)
|
|
130
|
+
resp = continuation(client_call_details, request)
|
|
131
|
+
if resp.code() != grpc.StatusCode.OK:
|
|
132
|
+
return resp
|
|
133
|
+
result = resp.result()
|
|
134
|
+
plaintext = privKey.decrypt(
|
|
135
|
+
result.managed_secret.value,
|
|
136
|
+
padding.OAEP(
|
|
137
|
+
mgf=padding.MGF1(algorithm=hashes.SHA256()),
|
|
138
|
+
algorithm=hashes.SHA256(),
|
|
139
|
+
label=None,
|
|
140
|
+
))
|
|
141
|
+
result.managed_secret.value = plaintext
|
|
142
|
+
return resp
|
|
143
|
+
|
|
144
|
+
def _v1_secretengines_get(self, continuation, client_call_details,
|
|
145
|
+
request):
|
|
146
|
+
response = continuation(client_call_details, request)
|
|
147
|
+
if response.code() != grpc.StatusCode.OK:
|
|
148
|
+
return response
|
|
149
|
+
result = response.result()
|
|
150
|
+
engine = plumbing.convert_secret_engine_to_porcelain(
|
|
151
|
+
result.secret_engine)
|
|
152
|
+
engineKey = serialization.load_pem_public_key(engine.public_key)
|
|
153
|
+
self.public_key_cache[engine.id] = engineKey
|
|
154
|
+
return response
|
|
155
|
+
|
|
156
|
+
def _v1_secretengines_list(self, continuation, client_call_details,
|
|
157
|
+
request):
|
|
158
|
+
response = continuation(client_call_details, request)
|
|
159
|
+
if response.code() != grpc.StatusCode.OK:
|
|
160
|
+
return response
|
|
161
|
+
result = response.result()
|
|
162
|
+
for plumbing_engine in result.secret_engines:
|
|
163
|
+
engine = plumbing.convert_secret_engine_to_porcelain(
|
|
164
|
+
plumbing_engine)
|
|
165
|
+
engineKey = serialization.load_pem_public_key(engine.public_key)
|
|
166
|
+
self.public_key_cache[engine.id] = engineKey
|
|
167
|
+
return response
|
|
38
168
|
|
|
39
169
|
|
|
40
170
|
class Client:
|
|
@@ -70,6 +200,7 @@ class Client:
|
|
|
70
200
|
channel = grpc.secure_channel(host, creds)
|
|
71
201
|
except Exception as e:
|
|
72
202
|
raise plumbing.convert_error_to_porcelain(e) from e
|
|
203
|
+
channel = grpc.intercept_channel(channel, _EncryptionInterceptor(self))
|
|
73
204
|
self.channel = channel
|
|
74
205
|
self.access_requests = svc.AccessRequests(channel, self)
|
|
75
206
|
'''
|
|
@@ -332,6 +332,7 @@ class ActivityVerb:
|
|
|
332
332
|
RESOURCE_LOCKED = "user locked a resource"
|
|
333
333
|
RESOURCE_UNLOCKED = "user unlocked a resource"
|
|
334
334
|
RESOURCE_FORCE_UNLOCKED = "admin force-unlocked a resource"
|
|
335
|
+
RESOURCE_LOCK_REJECTED = "user lock rejected for a resource"
|
|
335
336
|
CONCURRENT_AUTHENTICATION_REVOKED_PER_ORG_SETTING = "concurrent authentications revoked per organization settings"
|
|
336
337
|
PEERING_GROUP_TOGGLED = "peering group toggled"
|
|
337
338
|
PEERING_GROUP_CREATED = "peering group created"
|