strongdm 11.10.1__zip → 11.11.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-11.10.1 → strongdm-11.11.0}/PKG-INFO +2 -2
- {strongdm-11.10.1 → strongdm-11.11.0}/setup.py +2 -2
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/client.py +20 -1
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/models.py +304 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/nodes_pb2.py +18 -18
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/plumbing.py +203 -0
- strongdm-11.11.0/strongdm/proxy_cluster_keys_pb2.py +191 -0
- strongdm-11.11.0/strongdm/proxy_cluster_keys_pb2_grpc.py +192 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/svc.py +178 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm.egg-info/PKG-INFO +2 -2
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm.egg-info/SOURCES.txt +2 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/LICENSE +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/README.md +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/setup.cfg +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/__init__.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/access_request_events_history_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/access_request_events_history_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/access_requests_history_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/access_requests_history_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/access_requests_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/access_requests_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/account_attachments_history_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/account_attachments_history_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/account_attachments_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/account_attachments_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/account_grants_history_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/account_grants_history_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/account_grants_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/account_grants_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/account_permissions_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/account_permissions_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/account_resources_history_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/account_resources_history_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/account_resources_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/account_resources_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/accounts_history_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/accounts_history_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/accounts_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/accounts_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/activities_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/activities_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/approval_workflow_approvers_history_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/approval_workflow_approvers_history_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/approval_workflow_approvers_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/approval_workflow_approvers_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/approval_workflow_steps_history_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/approval_workflow_steps_history_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/approval_workflow_steps_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/approval_workflow_steps_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/approval_workflows_history_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/approval_workflows_history_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/approval_workflows_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/approval_workflows_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/constants.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/control_panel_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/control_panel_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/drivers_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/drivers_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/errors.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/identity_aliases_history_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/identity_aliases_history_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/identity_aliases_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/identity_aliases_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/identity_sets_history_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/identity_sets_history_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/identity_sets_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/identity_sets_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/nodes_history_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/nodes_history_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/nodes_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/options_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/options_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/organization_history_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/organization_history_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/peering_group_nodes_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/peering_group_nodes_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/peering_group_peers_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/peering_group_peers_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/peering_group_resources_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/peering_group_resources_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/peering_groups_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/peering_groups_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/policies_history_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/policies_history_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/policies_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/policies_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/queries_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/queries_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/remote_identities_history_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/remote_identities_history_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/remote_identities_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/remote_identities_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/remote_identity_groups_history_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/remote_identity_groups_history_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/remote_identity_groups_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/remote_identity_groups_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/replays_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/replays_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/resources_history_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/resources_history_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/resources_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/resources_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/role_resources_history_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/role_resources_history_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/role_resources_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/role_resources_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/roles_history_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/roles_history_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/roles_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/roles_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/secret_engine_policy_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/secret_engine_types_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/secret_store_healths_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/secret_store_healths_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/secret_store_types_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/secret_store_types_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/secret_stores_history_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/secret_stores_history_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/secret_stores_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/secret_stores_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/spec_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/spec_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/tags_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/tags_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/workflow_approvers_history_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/workflow_approvers_history_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/workflow_approvers_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/workflow_approvers_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/workflow_assignments_history_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/workflow_assignments_history_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/workflow_assignments_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/workflow_assignments_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/workflow_roles_history_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/workflow_roles_history_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/workflow_roles_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/workflow_roles_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/workflows_history_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/workflows_history_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/workflows_pb2.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm/workflows_pb2_grpc.py +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm.egg-info/dependency_links.txt +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm.egg-info/requires.txt +0 -0
- {strongdm-11.10.1 → strongdm-11.11.0}/strongdm.egg-info/top_level.txt +0 -0
@@ -92,6 +92,8 @@ from .policies_pb2 import *
|
|
92
92
|
from .policies_pb2_grpc import *
|
93
93
|
from .policies_history_pb2 import *
|
94
94
|
from .policies_history_pb2_grpc import *
|
95
|
+
from .proxy_cluster_keys_pb2 import *
|
96
|
+
from .proxy_cluster_keys_pb2_grpc import *
|
95
97
|
from .queries_pb2 import *
|
96
98
|
from .queries_pb2_grpc import *
|
97
99
|
from .remote_identities_pb2 import *
|
@@ -2583,6 +2585,7 @@ class Nodes:
|
|
2583
2585
|
- **Relays** are used to extend the strongDM network into segmented subnets. They provide access to databases and servers but do not listen for incoming connections.
|
2584
2586
|
See:
|
2585
2587
|
`strongdm.models.Gateway`
|
2588
|
+
`strongdm.models.ProxyCluster`
|
2586
2589
|
`strongdm.models.Relay`
|
2587
2590
|
'''
|
2588
2591
|
def __init__(self, channel, client):
|
@@ -3716,6 +3719,181 @@ class PoliciesHistory:
|
|
3716
3719
|
return generator(self, req)
|
3717
3720
|
|
3718
3721
|
|
3722
|
+
class ProxyClusterKeys:
|
3723
|
+
'''
|
3724
|
+
Proxy Cluster Keys are authentication keys for all proxies within a cluster.
|
3725
|
+
The proxies within a cluster share the same key. One cluster can have
|
3726
|
+
multiple keys in order to facilitate key rotation.
|
3727
|
+
See `strongdm.models.ProxyClusterKey`.
|
3728
|
+
'''
|
3729
|
+
def __init__(self, channel, client):
|
3730
|
+
self.parent = client
|
3731
|
+
self.stub = ProxyClusterKeysStub(channel)
|
3732
|
+
|
3733
|
+
def create(self, proxy_cluster_key, timeout=None):
|
3734
|
+
'''
|
3735
|
+
Create registers a new ProxyClusterKey.
|
3736
|
+
'''
|
3737
|
+
req = ProxyClusterKeyCreateRequest()
|
3738
|
+
|
3739
|
+
if proxy_cluster_key is not None:
|
3740
|
+
req.proxy_cluster_key.CopyFrom(
|
3741
|
+
plumbing.convert_proxy_cluster_key_to_plumbing(
|
3742
|
+
proxy_cluster_key))
|
3743
|
+
tries = 0
|
3744
|
+
plumbing_response = None
|
3745
|
+
while True:
|
3746
|
+
try:
|
3747
|
+
plumbing_response = self.stub.Create(
|
3748
|
+
req,
|
3749
|
+
metadata=self.parent.get_metadata(
|
3750
|
+
'ProxyClusterKeys.Create', req),
|
3751
|
+
timeout=timeout)
|
3752
|
+
except Exception as e:
|
3753
|
+
if self.parent.shouldRetry(tries, e):
|
3754
|
+
tries += 1
|
3755
|
+
self.parent.jitterSleep(tries)
|
3756
|
+
continue
|
3757
|
+
raise plumbing.convert_error_to_porcelain(e) from e
|
3758
|
+
break
|
3759
|
+
|
3760
|
+
resp = models.ProxyClusterKeyCreateResponse()
|
3761
|
+
resp.meta = plumbing.convert_create_response_metadata_to_porcelain(
|
3762
|
+
plumbing_response.meta)
|
3763
|
+
resp.proxy_cluster_key = plumbing.convert_proxy_cluster_key_to_porcelain(
|
3764
|
+
plumbing_response.proxy_cluster_key)
|
3765
|
+
resp.rate_limit = plumbing.convert_rate_limit_metadata_to_porcelain(
|
3766
|
+
plumbing_response.rate_limit)
|
3767
|
+
resp.secret_key = (plumbing_response.secret_key)
|
3768
|
+
return resp
|
3769
|
+
|
3770
|
+
def get(self, id, timeout=None):
|
3771
|
+
'''
|
3772
|
+
Get reads one ProxyClusterKey by ID.
|
3773
|
+
'''
|
3774
|
+
req = ProxyClusterKeyGetRequest()
|
3775
|
+
if self.parent.snapshot_datetime is not None:
|
3776
|
+
req.meta.CopyFrom(GetRequestMetadata())
|
3777
|
+
req.meta.snapshot_at.FromDatetime(self.parent.snapshot_datetime)
|
3778
|
+
|
3779
|
+
req.id = (id)
|
3780
|
+
tries = 0
|
3781
|
+
plumbing_response = None
|
3782
|
+
while True:
|
3783
|
+
try:
|
3784
|
+
plumbing_response = self.stub.Get(
|
3785
|
+
req,
|
3786
|
+
metadata=self.parent.get_metadata('ProxyClusterKeys.Get',
|
3787
|
+
req),
|
3788
|
+
timeout=timeout)
|
3789
|
+
except Exception as e:
|
3790
|
+
if self.parent.shouldRetry(tries, e):
|
3791
|
+
tries += 1
|
3792
|
+
self.parent.jitterSleep(tries)
|
3793
|
+
continue
|
3794
|
+
raise plumbing.convert_error_to_porcelain(e) from e
|
3795
|
+
break
|
3796
|
+
|
3797
|
+
resp = models.ProxyClusterKeyGetResponse()
|
3798
|
+
resp.meta = plumbing.convert_get_response_metadata_to_porcelain(
|
3799
|
+
plumbing_response.meta)
|
3800
|
+
resp.proxy_cluster_key = plumbing.convert_proxy_cluster_key_to_porcelain(
|
3801
|
+
plumbing_response.proxy_cluster_key)
|
3802
|
+
resp.rate_limit = plumbing.convert_rate_limit_metadata_to_porcelain(
|
3803
|
+
plumbing_response.rate_limit)
|
3804
|
+
return resp
|
3805
|
+
|
3806
|
+
def delete(self, id, timeout=None):
|
3807
|
+
'''
|
3808
|
+
Delete removes a ProxyClusterKey by ID.
|
3809
|
+
'''
|
3810
|
+
req = ProxyClusterKeyDeleteRequest()
|
3811
|
+
|
3812
|
+
req.id = (id)
|
3813
|
+
tries = 0
|
3814
|
+
plumbing_response = None
|
3815
|
+
while True:
|
3816
|
+
try:
|
3817
|
+
plumbing_response = self.stub.Delete(
|
3818
|
+
req,
|
3819
|
+
metadata=self.parent.get_metadata(
|
3820
|
+
'ProxyClusterKeys.Delete', req),
|
3821
|
+
timeout=timeout)
|
3822
|
+
except Exception as e:
|
3823
|
+
if self.parent.shouldRetry(tries, e):
|
3824
|
+
tries += 1
|
3825
|
+
self.parent.jitterSleep(tries)
|
3826
|
+
continue
|
3827
|
+
raise plumbing.convert_error_to_porcelain(e) from e
|
3828
|
+
break
|
3829
|
+
|
3830
|
+
resp = models.ProxyClusterKeyDeleteResponse()
|
3831
|
+
resp.meta = plumbing.convert_delete_response_metadata_to_porcelain(
|
3832
|
+
plumbing_response.meta)
|
3833
|
+
resp.rate_limit = plumbing.convert_rate_limit_metadata_to_porcelain(
|
3834
|
+
plumbing_response.rate_limit)
|
3835
|
+
return resp
|
3836
|
+
|
3837
|
+
def list(self, filter, *args, timeout=None):
|
3838
|
+
'''
|
3839
|
+
List gets a list of ProxyClusterKeys matching a given set of criteria.
|
3840
|
+
'''
|
3841
|
+
req = ProxyClusterKeyListRequest()
|
3842
|
+
req.meta.CopyFrom(ListRequestMetadata())
|
3843
|
+
if self.parent.page_limit > 0:
|
3844
|
+
req.meta.limit = self.parent.page_limit
|
3845
|
+
if self.parent.snapshot_datetime is not None:
|
3846
|
+
req.meta.snapshot_at.FromDatetime(self.parent.snapshot_datetime)
|
3847
|
+
|
3848
|
+
req.filter = plumbing.quote_filter_args(filter, *args)
|
3849
|
+
|
3850
|
+
def generator(svc, req):
|
3851
|
+
tries = 0
|
3852
|
+
while True:
|
3853
|
+
try:
|
3854
|
+
plumbing_response = svc.stub.List(
|
3855
|
+
req,
|
3856
|
+
metadata=svc.parent.get_metadata(
|
3857
|
+
'ProxyClusterKeys.List', req),
|
3858
|
+
timeout=timeout)
|
3859
|
+
except Exception as e:
|
3860
|
+
if self.parent.shouldRetry(tries, e):
|
3861
|
+
tries += 1
|
3862
|
+
self.parent.jitterSleep(tries)
|
3863
|
+
continue
|
3864
|
+
raise plumbing.convert_error_to_porcelain(e) from e
|
3865
|
+
tries = 0
|
3866
|
+
for plumbing_item in plumbing_response.proxy_cluster_keys:
|
3867
|
+
yield plumbing.convert_proxy_cluster_key_to_porcelain(
|
3868
|
+
plumbing_item)
|
3869
|
+
if plumbing_response.meta.next_cursor == '':
|
3870
|
+
break
|
3871
|
+
req.meta.cursor = plumbing_response.meta.next_cursor
|
3872
|
+
|
3873
|
+
return generator(self, req)
|
3874
|
+
|
3875
|
+
|
3876
|
+
class SnapshotProxyClusterKeys:
|
3877
|
+
'''
|
3878
|
+
SnapshotProxyClusterKeys exposes the read only methods of the ProxyClusterKeys
|
3879
|
+
service for historical queries.
|
3880
|
+
'''
|
3881
|
+
def __init__(self, proxy_cluster_keys):
|
3882
|
+
self.proxy_cluster_keys = proxy_cluster_keys
|
3883
|
+
|
3884
|
+
def get(self, id, timeout=None):
|
3885
|
+
'''
|
3886
|
+
Get reads one ProxyClusterKey by ID.
|
3887
|
+
'''
|
3888
|
+
return self.proxy_cluster_keys.get(id, timeout=timeout)
|
3889
|
+
|
3890
|
+
def list(self, filter, *args, timeout=None):
|
3891
|
+
'''
|
3892
|
+
List gets a list of ProxyClusterKeys matching a given set of criteria.
|
3893
|
+
'''
|
3894
|
+
return self.proxy_cluster_keys.list(filter, *args, timeout=timeout)
|
3895
|
+
|
3896
|
+
|
3719
3897
|
class Queries:
|
3720
3898
|
'''
|
3721
3899
|
A Query is a record of a single client request to a resource, such as a SQL query.
|
@@ -1,12 +1,12 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: strongdm
|
3
|
-
Version: 11.
|
3
|
+
Version: 11.11.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/v11.
|
9
|
+
Download-URL: https://github.com/strongdm/strongdm-sdk-python/archive/v11.11.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
|
@@ -77,6 +77,8 @@ strongdm/policies_history_pb2.py
|
|
77
77
|
strongdm/policies_history_pb2_grpc.py
|
78
78
|
strongdm/policies_pb2.py
|
79
79
|
strongdm/policies_pb2_grpc.py
|
80
|
+
strongdm/proxy_cluster_keys_pb2.py
|
81
|
+
strongdm/proxy_cluster_keys_pb2_grpc.py
|
80
82
|
strongdm/queries_pb2.py
|
81
83
|
strongdm/queries_pb2_grpc.py
|
82
84
|
strongdm/remote_identities_history_pb2.py
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{strongdm-11.10.1 → strongdm-11.11.0}/strongdm/approval_workflow_approvers_history_pb2_grpc.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|