strongdm 13.2.0__zip → 13.2.1__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-13.2.0 → strongdm-13.2.1}/PKG-INFO +2 -2
- {strongdm-13.2.0 → strongdm-13.2.1}/setup.py +2 -2
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/client.py +1 -1
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/drivers_pb2.py +296 -200
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/models.py +358 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/plumbing.py +133 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/svc.py +2 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm.egg-info/PKG-INFO +2 -2
- {strongdm-13.2.0 → strongdm-13.2.1}/LICENSE +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/README.md +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/setup.cfg +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/__init__.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/access_request_events_history_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/access_request_events_history_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/access_requests_history_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/access_requests_history_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/access_requests_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/access_requests_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/account_attachments_history_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/account_attachments_history_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/account_attachments_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/account_attachments_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/account_grants_history_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/account_grants_history_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/account_grants_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/account_grants_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/account_permissions_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/account_permissions_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/account_resources_history_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/account_resources_history_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/account_resources_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/account_resources_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/accounts_history_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/accounts_history_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/accounts_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/accounts_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/activities_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/activities_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/approval_workflow_approvers_history_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/approval_workflow_approvers_history_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/approval_workflow_approvers_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/approval_workflow_approvers_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/approval_workflow_steps_history_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/approval_workflow_steps_history_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/approval_workflow_steps_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/approval_workflow_steps_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/approval_workflows_history_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/approval_workflows_history_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/approval_workflows_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/approval_workflows_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/constants.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/control_panel_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/control_panel_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/drivers_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/errors.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/health_checks_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/health_checks_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/identity_aliases_history_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/identity_aliases_history_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/identity_aliases_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/identity_aliases_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/identity_sets_history_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/identity_sets_history_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/identity_sets_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/identity_sets_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/nodes_history_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/nodes_history_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/nodes_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/nodes_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/options_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/options_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/organization_history_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/organization_history_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/peering_group_nodes_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/peering_group_nodes_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/peering_group_peers_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/peering_group_peers_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/peering_group_resources_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/peering_group_resources_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/peering_groups_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/peering_groups_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/policies_history_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/policies_history_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/policies_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/policies_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/proxy_cluster_keys_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/proxy_cluster_keys_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/queries_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/queries_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/remote_identities_history_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/remote_identities_history_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/remote_identities_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/remote_identities_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/remote_identity_groups_history_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/remote_identity_groups_history_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/remote_identity_groups_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/remote_identity_groups_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/replays_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/replays_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/resources_history_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/resources_history_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/resources_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/resources_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/role_resources_history_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/role_resources_history_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/role_resources_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/role_resources_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/roles_history_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/roles_history_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/roles_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/roles_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/secret_engine_policy_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/secret_engine_types_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/secret_store_healths_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/secret_store_healths_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/secret_store_types_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/secret_store_types_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/secret_stores_history_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/secret_stores_history_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/secret_stores_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/secret_stores_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/spec_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/spec_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/tags_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/tags_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/workflow_approvers_history_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/workflow_approvers_history_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/workflow_approvers_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/workflow_approvers_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/workflow_assignments_history_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/workflow_assignments_history_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/workflow_assignments_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/workflow_assignments_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/workflow_roles_history_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/workflow_roles_history_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/workflow_roles_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/workflow_roles_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/workflows_history_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/workflows_history_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/workflows_pb2.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm/workflows_pb2_grpc.py +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm.egg-info/SOURCES.txt +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm.egg-info/dependency_links.txt +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm.egg-info/requires.txt +0 -0
- {strongdm-13.2.0 → strongdm-13.2.1}/strongdm.egg-info/top_level.txt +0 -0
@@ -21637,6 +21637,364 @@ class Redshift:
|
|
21637
21637
|
)
|
21638
21638
|
|
21639
21639
|
|
21640
|
+
class RedshiftIAM:
|
21641
|
+
'''
|
21642
|
+
RedshiftIAM is currently unstable, and its API may change, or it may be removed,
|
21643
|
+
without a major version bump.
|
21644
|
+
'''
|
21645
|
+
__slots__ = [
|
21646
|
+
'bind_interface',
|
21647
|
+
'cluster_id',
|
21648
|
+
'database',
|
21649
|
+
'egress_filter',
|
21650
|
+
'healthy',
|
21651
|
+
'hostname',
|
21652
|
+
'id',
|
21653
|
+
'name',
|
21654
|
+
'override_database',
|
21655
|
+
'port',
|
21656
|
+
'port_override',
|
21657
|
+
'proxy_cluster_id',
|
21658
|
+
'region',
|
21659
|
+
'role_assumption_arn',
|
21660
|
+
'secret_store_id',
|
21661
|
+
'subdomain',
|
21662
|
+
'tags',
|
21663
|
+
]
|
21664
|
+
|
21665
|
+
def __init__(
|
21666
|
+
self,
|
21667
|
+
bind_interface=None,
|
21668
|
+
cluster_id=None,
|
21669
|
+
database=None,
|
21670
|
+
egress_filter=None,
|
21671
|
+
healthy=None,
|
21672
|
+
hostname=None,
|
21673
|
+
id=None,
|
21674
|
+
name=None,
|
21675
|
+
override_database=None,
|
21676
|
+
port=None,
|
21677
|
+
port_override=None,
|
21678
|
+
proxy_cluster_id=None,
|
21679
|
+
region=None,
|
21680
|
+
role_assumption_arn=None,
|
21681
|
+
secret_store_id=None,
|
21682
|
+
subdomain=None,
|
21683
|
+
tags=None,
|
21684
|
+
):
|
21685
|
+
self.bind_interface = bind_interface if bind_interface is not None else ''
|
21686
|
+
'''
|
21687
|
+
The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided.
|
21688
|
+
'''
|
21689
|
+
self.cluster_id = cluster_id if cluster_id is not None else ''
|
21690
|
+
'''
|
21691
|
+
Cluster Identified of Redshift cluster
|
21692
|
+
'''
|
21693
|
+
self.database = database if database is not None else ''
|
21694
|
+
'''
|
21695
|
+
The initial database to connect to. This setting does not by itself prevent switching to another database after connecting.
|
21696
|
+
'''
|
21697
|
+
self.egress_filter = egress_filter if egress_filter is not None else ''
|
21698
|
+
'''
|
21699
|
+
A filter applied to the routing logic to pin datasource to nodes.
|
21700
|
+
'''
|
21701
|
+
self.healthy = healthy if healthy is not None else False
|
21702
|
+
'''
|
21703
|
+
True if the datasource is reachable and the credentials are valid.
|
21704
|
+
'''
|
21705
|
+
self.hostname = hostname if hostname is not None else ''
|
21706
|
+
'''
|
21707
|
+
The host to dial to initiate a connection from the egress node to this resource.
|
21708
|
+
'''
|
21709
|
+
self.id = id if id is not None else ''
|
21710
|
+
'''
|
21711
|
+
Unique identifier of the Resource.
|
21712
|
+
'''
|
21713
|
+
self.name = name if name is not None else ''
|
21714
|
+
'''
|
21715
|
+
Unique human-readable name of the Resource.
|
21716
|
+
'''
|
21717
|
+
self.override_database = override_database if override_database is not None else False
|
21718
|
+
'''
|
21719
|
+
If set, the database configured cannot be changed by users. This setting is not recommended for most use cases, as some clients will insist their database has changed when it has not, leading to user confusion.
|
21720
|
+
'''
|
21721
|
+
self.port = port if port is not None else 0
|
21722
|
+
'''
|
21723
|
+
The port to dial to initiate a connection from the egress node to this resource.
|
21724
|
+
'''
|
21725
|
+
self.port_override = port_override if port_override is not None else 0
|
21726
|
+
'''
|
21727
|
+
The local port used by clients to connect to this resource.
|
21728
|
+
'''
|
21729
|
+
self.proxy_cluster_id = proxy_cluster_id if proxy_cluster_id is not None else ''
|
21730
|
+
'''
|
21731
|
+
ID of the proxy cluster for this resource, if any.
|
21732
|
+
'''
|
21733
|
+
self.region = region if region is not None else ''
|
21734
|
+
'''
|
21735
|
+
The AWS region to connect to.
|
21736
|
+
'''
|
21737
|
+
self.role_assumption_arn = role_assumption_arn if role_assumption_arn is not None else ''
|
21738
|
+
'''
|
21739
|
+
If provided, the gateway/relay will try to assume this role instead of the underlying compute's role.
|
21740
|
+
'''
|
21741
|
+
self.secret_store_id = secret_store_id if secret_store_id is not None else ''
|
21742
|
+
'''
|
21743
|
+
ID of the secret store containing credentials for this resource, if any.
|
21744
|
+
'''
|
21745
|
+
self.subdomain = subdomain if subdomain is not None else ''
|
21746
|
+
'''
|
21747
|
+
Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
|
21748
|
+
'''
|
21749
|
+
self.tags = tags if tags is not None else _porcelain_zero_value_tags()
|
21750
|
+
'''
|
21751
|
+
Tags is a map of key, value pairs.
|
21752
|
+
'''
|
21753
|
+
|
21754
|
+
def __repr__(self):
|
21755
|
+
return '<sdm.RedshiftIAM ' + \
|
21756
|
+
'bind_interface: ' + repr(self.bind_interface) + ' ' +\
|
21757
|
+
'cluster_id: ' + repr(self.cluster_id) + ' ' +\
|
21758
|
+
'database: ' + repr(self.database) + ' ' +\
|
21759
|
+
'egress_filter: ' + repr(self.egress_filter) + ' ' +\
|
21760
|
+
'healthy: ' + repr(self.healthy) + ' ' +\
|
21761
|
+
'hostname: ' + repr(self.hostname) + ' ' +\
|
21762
|
+
'id: ' + repr(self.id) + ' ' +\
|
21763
|
+
'name: ' + repr(self.name) + ' ' +\
|
21764
|
+
'override_database: ' + repr(self.override_database) + ' ' +\
|
21765
|
+
'port: ' + repr(self.port) + ' ' +\
|
21766
|
+
'port_override: ' + repr(self.port_override) + ' ' +\
|
21767
|
+
'proxy_cluster_id: ' + repr(self.proxy_cluster_id) + ' ' +\
|
21768
|
+
'region: ' + repr(self.region) + ' ' +\
|
21769
|
+
'role_assumption_arn: ' + repr(self.role_assumption_arn) + ' ' +\
|
21770
|
+
'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
|
21771
|
+
'subdomain: ' + repr(self.subdomain) + ' ' +\
|
21772
|
+
'tags: ' + repr(self.tags) + ' ' +\
|
21773
|
+
'>'
|
21774
|
+
|
21775
|
+
def to_dict(self):
|
21776
|
+
return {
|
21777
|
+
'bind_interface': self.bind_interface,
|
21778
|
+
'cluster_id': self.cluster_id,
|
21779
|
+
'database': self.database,
|
21780
|
+
'egress_filter': self.egress_filter,
|
21781
|
+
'healthy': self.healthy,
|
21782
|
+
'hostname': self.hostname,
|
21783
|
+
'id': self.id,
|
21784
|
+
'name': self.name,
|
21785
|
+
'override_database': self.override_database,
|
21786
|
+
'port': self.port,
|
21787
|
+
'port_override': self.port_override,
|
21788
|
+
'proxy_cluster_id': self.proxy_cluster_id,
|
21789
|
+
'region': self.region,
|
21790
|
+
'role_assumption_arn': self.role_assumption_arn,
|
21791
|
+
'secret_store_id': self.secret_store_id,
|
21792
|
+
'subdomain': self.subdomain,
|
21793
|
+
'tags': self.tags,
|
21794
|
+
}
|
21795
|
+
|
21796
|
+
@classmethod
|
21797
|
+
def from_dict(cls, d):
|
21798
|
+
return cls(
|
21799
|
+
bind_interface=d.get('bind_interface'),
|
21800
|
+
cluster_id=d.get('cluster_id'),
|
21801
|
+
database=d.get('database'),
|
21802
|
+
egress_filter=d.get('egress_filter'),
|
21803
|
+
healthy=d.get('healthy'),
|
21804
|
+
hostname=d.get('hostname'),
|
21805
|
+
id=d.get('id'),
|
21806
|
+
name=d.get('name'),
|
21807
|
+
override_database=d.get('override_database'),
|
21808
|
+
port=d.get('port'),
|
21809
|
+
port_override=d.get('port_override'),
|
21810
|
+
proxy_cluster_id=d.get('proxy_cluster_id'),
|
21811
|
+
region=d.get('region'),
|
21812
|
+
role_assumption_arn=d.get('role_assumption_arn'),
|
21813
|
+
secret_store_id=d.get('secret_store_id'),
|
21814
|
+
subdomain=d.get('subdomain'),
|
21815
|
+
tags=d.get('tags'),
|
21816
|
+
)
|
21817
|
+
|
21818
|
+
|
21819
|
+
class RedshiftServerlessIAM:
|
21820
|
+
'''
|
21821
|
+
RedshiftServerlessIAM is currently unstable, and its API may change, or it may be removed,
|
21822
|
+
without a major version bump.
|
21823
|
+
'''
|
21824
|
+
__slots__ = [
|
21825
|
+
'bind_interface',
|
21826
|
+
'database',
|
21827
|
+
'egress_filter',
|
21828
|
+
'healthy',
|
21829
|
+
'hostname',
|
21830
|
+
'id',
|
21831
|
+
'name',
|
21832
|
+
'override_database',
|
21833
|
+
'port',
|
21834
|
+
'port_override',
|
21835
|
+
'proxy_cluster_id',
|
21836
|
+
'region',
|
21837
|
+
'role_assumption_arn',
|
21838
|
+
'secret_store_id',
|
21839
|
+
'subdomain',
|
21840
|
+
'tags',
|
21841
|
+
'workgroup',
|
21842
|
+
]
|
21843
|
+
|
21844
|
+
def __init__(
|
21845
|
+
self,
|
21846
|
+
bind_interface=None,
|
21847
|
+
database=None,
|
21848
|
+
egress_filter=None,
|
21849
|
+
healthy=None,
|
21850
|
+
hostname=None,
|
21851
|
+
id=None,
|
21852
|
+
name=None,
|
21853
|
+
override_database=None,
|
21854
|
+
port=None,
|
21855
|
+
port_override=None,
|
21856
|
+
proxy_cluster_id=None,
|
21857
|
+
region=None,
|
21858
|
+
role_assumption_arn=None,
|
21859
|
+
secret_store_id=None,
|
21860
|
+
subdomain=None,
|
21861
|
+
tags=None,
|
21862
|
+
workgroup=None,
|
21863
|
+
):
|
21864
|
+
self.bind_interface = bind_interface if bind_interface is not None else ''
|
21865
|
+
'''
|
21866
|
+
The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided.
|
21867
|
+
'''
|
21868
|
+
self.database = database if database is not None else ''
|
21869
|
+
'''
|
21870
|
+
The initial database to connect to. This setting does not by itself prevent switching to another database after connecting.
|
21871
|
+
'''
|
21872
|
+
self.egress_filter = egress_filter if egress_filter is not None else ''
|
21873
|
+
'''
|
21874
|
+
A filter applied to the routing logic to pin datasource to nodes.
|
21875
|
+
'''
|
21876
|
+
self.healthy = healthy if healthy is not None else False
|
21877
|
+
'''
|
21878
|
+
True if the datasource is reachable and the credentials are valid.
|
21879
|
+
'''
|
21880
|
+
self.hostname = hostname if hostname is not None else ''
|
21881
|
+
'''
|
21882
|
+
The host to dial to initiate a connection from the egress node to this resource.
|
21883
|
+
'''
|
21884
|
+
self.id = id if id is not None else ''
|
21885
|
+
'''
|
21886
|
+
Unique identifier of the Resource.
|
21887
|
+
'''
|
21888
|
+
self.name = name if name is not None else ''
|
21889
|
+
'''
|
21890
|
+
Unique human-readable name of the Resource.
|
21891
|
+
'''
|
21892
|
+
self.override_database = override_database if override_database is not None else False
|
21893
|
+
'''
|
21894
|
+
If set, the database configured cannot be changed by users. This setting is not recommended for most use cases, as some clients will insist their database has changed when it has not, leading to user confusion.
|
21895
|
+
'''
|
21896
|
+
self.port = port if port is not None else 0
|
21897
|
+
'''
|
21898
|
+
The port to dial to initiate a connection from the egress node to this resource.
|
21899
|
+
'''
|
21900
|
+
self.port_override = port_override if port_override is not None else 0
|
21901
|
+
'''
|
21902
|
+
The local port used by clients to connect to this resource.
|
21903
|
+
'''
|
21904
|
+
self.proxy_cluster_id = proxy_cluster_id if proxy_cluster_id is not None else ''
|
21905
|
+
'''
|
21906
|
+
ID of the proxy cluster for this resource, if any.
|
21907
|
+
'''
|
21908
|
+
self.region = region if region is not None else ''
|
21909
|
+
'''
|
21910
|
+
The AWS region to connect to.
|
21911
|
+
'''
|
21912
|
+
self.role_assumption_arn = role_assumption_arn if role_assumption_arn is not None else ''
|
21913
|
+
'''
|
21914
|
+
If provided, the gateway/relay will try to assume this role instead of the underlying compute's role.
|
21915
|
+
'''
|
21916
|
+
self.secret_store_id = secret_store_id if secret_store_id is not None else ''
|
21917
|
+
'''
|
21918
|
+
ID of the secret store containing credentials for this resource, if any.
|
21919
|
+
'''
|
21920
|
+
self.subdomain = subdomain if subdomain is not None else ''
|
21921
|
+
'''
|
21922
|
+
Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
|
21923
|
+
'''
|
21924
|
+
self.tags = tags if tags is not None else _porcelain_zero_value_tags()
|
21925
|
+
'''
|
21926
|
+
Tags is a map of key, value pairs.
|
21927
|
+
'''
|
21928
|
+
self.workgroup = workgroup if workgroup is not None else ''
|
21929
|
+
'''
|
21930
|
+
Workgroup name in the serverless Redshift
|
21931
|
+
'''
|
21932
|
+
|
21933
|
+
def __repr__(self):
|
21934
|
+
return '<sdm.RedshiftServerlessIAM ' + \
|
21935
|
+
'bind_interface: ' + repr(self.bind_interface) + ' ' +\
|
21936
|
+
'database: ' + repr(self.database) + ' ' +\
|
21937
|
+
'egress_filter: ' + repr(self.egress_filter) + ' ' +\
|
21938
|
+
'healthy: ' + repr(self.healthy) + ' ' +\
|
21939
|
+
'hostname: ' + repr(self.hostname) + ' ' +\
|
21940
|
+
'id: ' + repr(self.id) + ' ' +\
|
21941
|
+
'name: ' + repr(self.name) + ' ' +\
|
21942
|
+
'override_database: ' + repr(self.override_database) + ' ' +\
|
21943
|
+
'port: ' + repr(self.port) + ' ' +\
|
21944
|
+
'port_override: ' + repr(self.port_override) + ' ' +\
|
21945
|
+
'proxy_cluster_id: ' + repr(self.proxy_cluster_id) + ' ' +\
|
21946
|
+
'region: ' + repr(self.region) + ' ' +\
|
21947
|
+
'role_assumption_arn: ' + repr(self.role_assumption_arn) + ' ' +\
|
21948
|
+
'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
|
21949
|
+
'subdomain: ' + repr(self.subdomain) + ' ' +\
|
21950
|
+
'tags: ' + repr(self.tags) + ' ' +\
|
21951
|
+
'workgroup: ' + repr(self.workgroup) + ' ' +\
|
21952
|
+
'>'
|
21953
|
+
|
21954
|
+
def to_dict(self):
|
21955
|
+
return {
|
21956
|
+
'bind_interface': self.bind_interface,
|
21957
|
+
'database': self.database,
|
21958
|
+
'egress_filter': self.egress_filter,
|
21959
|
+
'healthy': self.healthy,
|
21960
|
+
'hostname': self.hostname,
|
21961
|
+
'id': self.id,
|
21962
|
+
'name': self.name,
|
21963
|
+
'override_database': self.override_database,
|
21964
|
+
'port': self.port,
|
21965
|
+
'port_override': self.port_override,
|
21966
|
+
'proxy_cluster_id': self.proxy_cluster_id,
|
21967
|
+
'region': self.region,
|
21968
|
+
'role_assumption_arn': self.role_assumption_arn,
|
21969
|
+
'secret_store_id': self.secret_store_id,
|
21970
|
+
'subdomain': self.subdomain,
|
21971
|
+
'tags': self.tags,
|
21972
|
+
'workgroup': self.workgroup,
|
21973
|
+
}
|
21974
|
+
|
21975
|
+
@classmethod
|
21976
|
+
def from_dict(cls, d):
|
21977
|
+
return cls(
|
21978
|
+
bind_interface=d.get('bind_interface'),
|
21979
|
+
database=d.get('database'),
|
21980
|
+
egress_filter=d.get('egress_filter'),
|
21981
|
+
healthy=d.get('healthy'),
|
21982
|
+
hostname=d.get('hostname'),
|
21983
|
+
id=d.get('id'),
|
21984
|
+
name=d.get('name'),
|
21985
|
+
override_database=d.get('override_database'),
|
21986
|
+
port=d.get('port'),
|
21987
|
+
port_override=d.get('port_override'),
|
21988
|
+
proxy_cluster_id=d.get('proxy_cluster_id'),
|
21989
|
+
region=d.get('region'),
|
21990
|
+
role_assumption_arn=d.get('role_assumption_arn'),
|
21991
|
+
secret_store_id=d.get('secret_store_id'),
|
21992
|
+
subdomain=d.get('subdomain'),
|
21993
|
+
tags=d.get('tags'),
|
21994
|
+
workgroup=d.get('workgroup'),
|
21995
|
+
)
|
21996
|
+
|
21997
|
+
|
21640
21998
|
class Relay:
|
21641
21999
|
'''
|
21642
22000
|
Relay represents a StrongDM CLI installation running in relay mode.
|
@@ -9922,6 +9922,128 @@ def convert_repeated_redshift_to_porcelain(plumbings):
|
|
9922
9922
|
return [convert_redshift_to_porcelain(plumbing) for plumbing in plumbings]
|
9923
9923
|
|
9924
9924
|
|
9925
|
+
def convert_redshift_iam_to_porcelain(plumbing):
|
9926
|
+
if plumbing is None:
|
9927
|
+
return None
|
9928
|
+
porcelain = models.RedshiftIAM()
|
9929
|
+
porcelain.bind_interface = (plumbing.bind_interface)
|
9930
|
+
porcelain.cluster_id = (plumbing.cluster_id)
|
9931
|
+
porcelain.database = (plumbing.database)
|
9932
|
+
porcelain.egress_filter = (plumbing.egress_filter)
|
9933
|
+
porcelain.healthy = (plumbing.healthy)
|
9934
|
+
porcelain.hostname = (plumbing.hostname)
|
9935
|
+
porcelain.id = (plumbing.id)
|
9936
|
+
porcelain.name = (plumbing.name)
|
9937
|
+
porcelain.override_database = (plumbing.override_database)
|
9938
|
+
porcelain.port = (plumbing.port)
|
9939
|
+
porcelain.port_override = (plumbing.port_override)
|
9940
|
+
porcelain.proxy_cluster_id = (plumbing.proxy_cluster_id)
|
9941
|
+
porcelain.region = (plumbing.region)
|
9942
|
+
porcelain.role_assumption_arn = (plumbing.role_assumption_arn)
|
9943
|
+
porcelain.secret_store_id = (plumbing.secret_store_id)
|
9944
|
+
porcelain.subdomain = (plumbing.subdomain)
|
9945
|
+
porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
|
9946
|
+
return porcelain
|
9947
|
+
|
9948
|
+
|
9949
|
+
def convert_redshift_iam_to_plumbing(porcelain):
|
9950
|
+
plumbing = RedshiftIAM()
|
9951
|
+
if porcelain is None:
|
9952
|
+
return plumbing
|
9953
|
+
plumbing.bind_interface = (porcelain.bind_interface)
|
9954
|
+
plumbing.cluster_id = (porcelain.cluster_id)
|
9955
|
+
plumbing.database = (porcelain.database)
|
9956
|
+
plumbing.egress_filter = (porcelain.egress_filter)
|
9957
|
+
plumbing.healthy = (porcelain.healthy)
|
9958
|
+
plumbing.hostname = (porcelain.hostname)
|
9959
|
+
plumbing.id = (porcelain.id)
|
9960
|
+
plumbing.name = (porcelain.name)
|
9961
|
+
plumbing.override_database = (porcelain.override_database)
|
9962
|
+
plumbing.port = (porcelain.port)
|
9963
|
+
plumbing.port_override = (porcelain.port_override)
|
9964
|
+
plumbing.proxy_cluster_id = (porcelain.proxy_cluster_id)
|
9965
|
+
plumbing.region = (porcelain.region)
|
9966
|
+
plumbing.role_assumption_arn = (porcelain.role_assumption_arn)
|
9967
|
+
plumbing.secret_store_id = (porcelain.secret_store_id)
|
9968
|
+
plumbing.subdomain = (porcelain.subdomain)
|
9969
|
+
plumbing.tags.CopyFrom(convert_tags_to_plumbing(porcelain.tags))
|
9970
|
+
return plumbing
|
9971
|
+
|
9972
|
+
|
9973
|
+
def convert_repeated_redshift_iam_to_plumbing(porcelains):
|
9974
|
+
return [
|
9975
|
+
convert_redshift_iam_to_plumbing(porcelain) for porcelain in porcelains
|
9976
|
+
]
|
9977
|
+
|
9978
|
+
|
9979
|
+
def convert_repeated_redshift_iam_to_porcelain(plumbings):
|
9980
|
+
return [
|
9981
|
+
convert_redshift_iam_to_porcelain(plumbing) for plumbing in plumbings
|
9982
|
+
]
|
9983
|
+
|
9984
|
+
|
9985
|
+
def convert_redshift_serverless_iam_to_porcelain(plumbing):
|
9986
|
+
if plumbing is None:
|
9987
|
+
return None
|
9988
|
+
porcelain = models.RedshiftServerlessIAM()
|
9989
|
+
porcelain.bind_interface = (plumbing.bind_interface)
|
9990
|
+
porcelain.database = (plumbing.database)
|
9991
|
+
porcelain.egress_filter = (plumbing.egress_filter)
|
9992
|
+
porcelain.healthy = (plumbing.healthy)
|
9993
|
+
porcelain.hostname = (plumbing.hostname)
|
9994
|
+
porcelain.id = (plumbing.id)
|
9995
|
+
porcelain.name = (plumbing.name)
|
9996
|
+
porcelain.override_database = (plumbing.override_database)
|
9997
|
+
porcelain.port = (plumbing.port)
|
9998
|
+
porcelain.port_override = (plumbing.port_override)
|
9999
|
+
porcelain.proxy_cluster_id = (plumbing.proxy_cluster_id)
|
10000
|
+
porcelain.region = (plumbing.region)
|
10001
|
+
porcelain.role_assumption_arn = (plumbing.role_assumption_arn)
|
10002
|
+
porcelain.secret_store_id = (plumbing.secret_store_id)
|
10003
|
+
porcelain.subdomain = (plumbing.subdomain)
|
10004
|
+
porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
|
10005
|
+
porcelain.workgroup = (plumbing.workgroup)
|
10006
|
+
return porcelain
|
10007
|
+
|
10008
|
+
|
10009
|
+
def convert_redshift_serverless_iam_to_plumbing(porcelain):
|
10010
|
+
plumbing = RedshiftServerlessIAM()
|
10011
|
+
if porcelain is None:
|
10012
|
+
return plumbing
|
10013
|
+
plumbing.bind_interface = (porcelain.bind_interface)
|
10014
|
+
plumbing.database = (porcelain.database)
|
10015
|
+
plumbing.egress_filter = (porcelain.egress_filter)
|
10016
|
+
plumbing.healthy = (porcelain.healthy)
|
10017
|
+
plumbing.hostname = (porcelain.hostname)
|
10018
|
+
plumbing.id = (porcelain.id)
|
10019
|
+
plumbing.name = (porcelain.name)
|
10020
|
+
plumbing.override_database = (porcelain.override_database)
|
10021
|
+
plumbing.port = (porcelain.port)
|
10022
|
+
plumbing.port_override = (porcelain.port_override)
|
10023
|
+
plumbing.proxy_cluster_id = (porcelain.proxy_cluster_id)
|
10024
|
+
plumbing.region = (porcelain.region)
|
10025
|
+
plumbing.role_assumption_arn = (porcelain.role_assumption_arn)
|
10026
|
+
plumbing.secret_store_id = (porcelain.secret_store_id)
|
10027
|
+
plumbing.subdomain = (porcelain.subdomain)
|
10028
|
+
plumbing.tags.CopyFrom(convert_tags_to_plumbing(porcelain.tags))
|
10029
|
+
plumbing.workgroup = (porcelain.workgroup)
|
10030
|
+
return plumbing
|
10031
|
+
|
10032
|
+
|
10033
|
+
def convert_repeated_redshift_serverless_iam_to_plumbing(porcelains):
|
10034
|
+
return [
|
10035
|
+
convert_redshift_serverless_iam_to_plumbing(porcelain)
|
10036
|
+
for porcelain in porcelains
|
10037
|
+
]
|
10038
|
+
|
10039
|
+
|
10040
|
+
def convert_repeated_redshift_serverless_iam_to_porcelain(plumbings):
|
10041
|
+
return [
|
10042
|
+
convert_redshift_serverless_iam_to_porcelain(plumbing)
|
10043
|
+
for plumbing in plumbings
|
10044
|
+
]
|
10045
|
+
|
10046
|
+
|
9925
10047
|
def convert_relay_to_porcelain(plumbing):
|
9926
10048
|
if plumbing is None:
|
9927
10049
|
return None
|
@@ -10646,6 +10768,12 @@ def convert_resource_to_plumbing(porcelain):
|
|
10646
10768
|
plumbing.redis.CopyFrom(convert_redis_to_plumbing(porcelain))
|
10647
10769
|
if isinstance(porcelain, models.Redshift):
|
10648
10770
|
plumbing.redshift.CopyFrom(convert_redshift_to_plumbing(porcelain))
|
10771
|
+
if isinstance(porcelain, models.RedshiftIAM):
|
10772
|
+
plumbing.redshift_iam.CopyFrom(
|
10773
|
+
convert_redshift_iam_to_plumbing(porcelain))
|
10774
|
+
if isinstance(porcelain, models.RedshiftServerlessIAM):
|
10775
|
+
plumbing.redshift_serverless_iam.CopyFrom(
|
10776
|
+
convert_redshift_serverless_iam_to_plumbing(porcelain))
|
10649
10777
|
if isinstance(porcelain, models.SingleStore):
|
10650
10778
|
plumbing.single_store.CopyFrom(
|
10651
10779
|
convert_single_store_to_plumbing(porcelain))
|
@@ -10883,6 +11011,11 @@ def convert_resource_to_porcelain(plumbing):
|
|
10883
11011
|
return convert_redis_to_porcelain(plumbing.redis)
|
10884
11012
|
if plumbing.HasField('redshift'):
|
10885
11013
|
return convert_redshift_to_porcelain(plumbing.redshift)
|
11014
|
+
if plumbing.HasField('redshift_iam'):
|
11015
|
+
return convert_redshift_iam_to_porcelain(plumbing.redshift_iam)
|
11016
|
+
if plumbing.HasField('redshift_serverless_iam'):
|
11017
|
+
return convert_redshift_serverless_iam_to_porcelain(
|
11018
|
+
plumbing.redshift_serverless_iam)
|
10886
11019
|
if plumbing.HasField('single_store'):
|
10887
11020
|
return convert_single_store_to_porcelain(plumbing.single_store)
|
10888
11021
|
if plumbing.HasField('snowflake'):
|
@@ -4539,6 +4539,8 @@ class Resources:
|
|
4539
4539
|
`strongdm.models.RDSPostgresIAM`
|
4540
4540
|
`strongdm.models.Redis`
|
4541
4541
|
`strongdm.models.Redshift`
|
4542
|
+
`strongdm.models.RedshiftIAM`
|
4543
|
+
`strongdm.models.RedshiftServerlessIAM`
|
4542
4544
|
`strongdm.models.SingleStore`
|
4543
4545
|
`strongdm.models.Snowflake`
|
4544
4546
|
`strongdm.models.Snowsight`
|
@@ -1,12 +1,12 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: strongdm
|
3
|
-
Version: 13.2.
|
3
|
+
Version: 13.2.1
|
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/v13.2.
|
9
|
+
Download-URL: https://github.com/strongdm/strongdm-sdk-python/archive/v13.2.1.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
|
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-13.2.0 → strongdm-13.2.1}/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
|