strongdm 11.17.0__zip → 11.20.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.17.0 → strongdm-11.20.0}/PKG-INFO +2 -2
- {strongdm-11.17.0 → strongdm-11.20.0}/setup.py +2 -2
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/access_requests_pb2.py +41 -16
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/client.py +1 -1
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/constants.py +1 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/drivers_pb2.py +270 -178
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/models.py +363 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/plumbing.py +133 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/svc.py +2 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm.egg-info/PKG-INFO +2 -2
- {strongdm-11.17.0 → strongdm-11.20.0}/LICENSE +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/README.md +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/setup.cfg +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/__init__.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/access_request_events_history_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/access_request_events_history_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/access_requests_history_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/access_requests_history_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/access_requests_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/account_attachments_history_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/account_attachments_history_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/account_attachments_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/account_attachments_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/account_grants_history_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/account_grants_history_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/account_grants_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/account_grants_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/account_permissions_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/account_permissions_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/account_resources_history_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/account_resources_history_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/account_resources_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/account_resources_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/accounts_history_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/accounts_history_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/accounts_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/accounts_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/activities_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/activities_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/approval_workflow_approvers_history_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/approval_workflow_approvers_history_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/approval_workflow_approvers_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/approval_workflow_approvers_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/approval_workflow_steps_history_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/approval_workflow_steps_history_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/approval_workflow_steps_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/approval_workflow_steps_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/approval_workflows_history_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/approval_workflows_history_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/approval_workflows_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/approval_workflows_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/control_panel_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/control_panel_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/drivers_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/errors.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/health_checks_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/health_checks_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/identity_aliases_history_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/identity_aliases_history_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/identity_aliases_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/identity_aliases_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/identity_sets_history_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/identity_sets_history_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/identity_sets_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/identity_sets_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/nodes_history_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/nodes_history_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/nodes_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/nodes_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/options_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/options_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/organization_history_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/organization_history_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/peering_group_nodes_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/peering_group_nodes_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/peering_group_peers_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/peering_group_peers_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/peering_group_resources_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/peering_group_resources_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/peering_groups_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/peering_groups_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/policies_history_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/policies_history_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/policies_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/policies_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/proxy_cluster_keys_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/proxy_cluster_keys_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/queries_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/queries_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/remote_identities_history_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/remote_identities_history_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/remote_identities_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/remote_identities_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/remote_identity_groups_history_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/remote_identity_groups_history_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/remote_identity_groups_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/remote_identity_groups_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/replays_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/replays_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/resources_history_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/resources_history_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/resources_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/resources_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/role_resources_history_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/role_resources_history_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/role_resources_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/role_resources_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/roles_history_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/roles_history_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/roles_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/roles_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/secret_engine_policy_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/secret_engine_types_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/secret_store_healths_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/secret_store_healths_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/secret_store_types_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/secret_store_types_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/secret_stores_history_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/secret_stores_history_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/secret_stores_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/secret_stores_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/spec_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/spec_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/tags_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/tags_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/workflow_approvers_history_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/workflow_approvers_history_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/workflow_approvers_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/workflow_approvers_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/workflow_assignments_history_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/workflow_assignments_history_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/workflow_assignments_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/workflow_assignments_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/workflow_roles_history_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/workflow_roles_history_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/workflow_roles_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/workflow_roles_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/workflows_history_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/workflows_history_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/workflows_pb2.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm/workflows_pb2_grpc.py +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm.egg-info/SOURCES.txt +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm.egg-info/dependency_links.txt +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm.egg-info/requires.txt +0 -0
- {strongdm-11.17.0 → strongdm-11.20.0}/strongdm.egg-info/top_level.txt +0 -0
@@ -1735,7 +1735,9 @@ class AccessRequest:
|
|
1735
1735
|
'grant_id',
|
1736
1736
|
'id',
|
1737
1737
|
'reason',
|
1738
|
+
'requestedduration',
|
1738
1739
|
'resource_id',
|
1740
|
+
'resultduration',
|
1739
1741
|
'start_from',
|
1740
1742
|
'status',
|
1741
1743
|
'status_at',
|
@@ -1750,7 +1752,9 @@ class AccessRequest:
|
|
1750
1752
|
grant_id=None,
|
1751
1753
|
id=None,
|
1752
1754
|
reason=None,
|
1755
|
+
requestedduration=None,
|
1753
1756
|
resource_id=None,
|
1757
|
+
resultduration=None,
|
1754
1758
|
start_from=None,
|
1755
1759
|
status=None,
|
1756
1760
|
status_at=None,
|
@@ -1764,6 +1768,7 @@ class AccessRequest:
|
|
1764
1768
|
self.duration = duration if duration is not None else 0
|
1765
1769
|
'''
|
1766
1770
|
Duration of the access request.
|
1771
|
+
Deprecated: use requested/result duration instead
|
1767
1772
|
'''
|
1768
1773
|
self.grant_id = grant_id if grant_id is not None else ''
|
1769
1774
|
'''
|
@@ -1777,10 +1782,18 @@ class AccessRequest:
|
|
1777
1782
|
'''
|
1778
1783
|
The reason the access was requested.
|
1779
1784
|
'''
|
1785
|
+
self.requestedduration = requestedduration if requestedduration is not None else None
|
1786
|
+
'''
|
1787
|
+
The duration that access was requested for, if any.
|
1788
|
+
'''
|
1780
1789
|
self.resource_id = resource_id if resource_id is not None else ''
|
1781
1790
|
'''
|
1782
1791
|
The resource id.
|
1783
1792
|
'''
|
1793
|
+
self.resultduration = resultduration if resultduration is not None else None
|
1794
|
+
'''
|
1795
|
+
The duration that results from an approved request.
|
1796
|
+
'''
|
1784
1797
|
self.start_from = start_from if start_from is not None else None
|
1785
1798
|
'''
|
1786
1799
|
The timestamp when the requested access will be granted.
|
@@ -1810,7 +1823,9 @@ class AccessRequest:
|
|
1810
1823
|
'grant_id: ' + repr(self.grant_id) + ' ' +\
|
1811
1824
|
'id: ' + repr(self.id) + ' ' +\
|
1812
1825
|
'reason: ' + repr(self.reason) + ' ' +\
|
1826
|
+
'requestedduration: ' + repr(self.requestedduration) + ' ' +\
|
1813
1827
|
'resource_id: ' + repr(self.resource_id) + ' ' +\
|
1828
|
+
'resultduration: ' + repr(self.resultduration) + ' ' +\
|
1814
1829
|
'start_from: ' + repr(self.start_from) + ' ' +\
|
1815
1830
|
'status: ' + repr(self.status) + ' ' +\
|
1816
1831
|
'status_at: ' + repr(self.status_at) + ' ' +\
|
@@ -1825,7 +1840,9 @@ class AccessRequest:
|
|
1825
1840
|
'grant_id': self.grant_id,
|
1826
1841
|
'id': self.id,
|
1827
1842
|
'reason': self.reason,
|
1843
|
+
'requestedduration': self.requestedduration,
|
1828
1844
|
'resource_id': self.resource_id,
|
1845
|
+
'resultduration': self.resultduration,
|
1829
1846
|
'start_from': self.start_from,
|
1830
1847
|
'status': self.status,
|
1831
1848
|
'status_at': self.status_at,
|
@@ -1841,7 +1858,9 @@ class AccessRequest:
|
|
1841
1858
|
grant_id=d.get('grant_id'),
|
1842
1859
|
id=d.get('id'),
|
1843
1860
|
reason=d.get('reason'),
|
1861
|
+
requestedduration=d.get('requestedduration'),
|
1844
1862
|
resource_id=d.get('resource_id'),
|
1863
|
+
resultduration=d.get('resultduration'),
|
1845
1864
|
start_from=d.get('start_from'),
|
1846
1865
|
status=d.get('status'),
|
1847
1866
|
status_at=d.get('status_at'),
|
@@ -10268,6 +10287,169 @@ class GCPCertX509Store:
|
|
10268
10287
|
)
|
10269
10288
|
|
10270
10289
|
|
10290
|
+
class GCPConsole:
|
10291
|
+
'''
|
10292
|
+
GCPConsole is currently unstable, and its API may change, or it may be removed,
|
10293
|
+
without a major version bump.
|
10294
|
+
'''
|
10295
|
+
__slots__ = [
|
10296
|
+
'bind_interface',
|
10297
|
+
'egress_filter',
|
10298
|
+
'healthy',
|
10299
|
+
'id',
|
10300
|
+
'identity_alias_healthcheck_username',
|
10301
|
+
'identity_set_id',
|
10302
|
+
'name',
|
10303
|
+
'port_override',
|
10304
|
+
'proxy_cluster_id',
|
10305
|
+
'secret_store_id',
|
10306
|
+
'session_expiry',
|
10307
|
+
'subdomain',
|
10308
|
+
'tags',
|
10309
|
+
'workforce_pool_id',
|
10310
|
+
'workforce_provider_id',
|
10311
|
+
]
|
10312
|
+
|
10313
|
+
def __init__(
|
10314
|
+
self,
|
10315
|
+
bind_interface=None,
|
10316
|
+
egress_filter=None,
|
10317
|
+
healthy=None,
|
10318
|
+
id=None,
|
10319
|
+
identity_alias_healthcheck_username=None,
|
10320
|
+
identity_set_id=None,
|
10321
|
+
name=None,
|
10322
|
+
port_override=None,
|
10323
|
+
proxy_cluster_id=None,
|
10324
|
+
secret_store_id=None,
|
10325
|
+
session_expiry=None,
|
10326
|
+
subdomain=None,
|
10327
|
+
tags=None,
|
10328
|
+
workforce_pool_id=None,
|
10329
|
+
workforce_provider_id=None,
|
10330
|
+
):
|
10331
|
+
self.bind_interface = bind_interface if bind_interface is not None else ''
|
10332
|
+
'''
|
10333
|
+
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.
|
10334
|
+
'''
|
10335
|
+
self.egress_filter = egress_filter if egress_filter is not None else ''
|
10336
|
+
'''
|
10337
|
+
A filter applied to the routing logic to pin datasource to nodes.
|
10338
|
+
'''
|
10339
|
+
self.healthy = healthy if healthy is not None else False
|
10340
|
+
'''
|
10341
|
+
True if the datasource is reachable and the credentials are valid.
|
10342
|
+
'''
|
10343
|
+
self.id = id if id is not None else ''
|
10344
|
+
'''
|
10345
|
+
Unique identifier of the Resource.
|
10346
|
+
'''
|
10347
|
+
self.identity_alias_healthcheck_username = identity_alias_healthcheck_username if identity_alias_healthcheck_username is not None else ''
|
10348
|
+
'''
|
10349
|
+
The username to use for healthchecks, when clients otherwise connect with their own identity alias username.
|
10350
|
+
'''
|
10351
|
+
self.identity_set_id = identity_set_id if identity_set_id is not None else ''
|
10352
|
+
'''
|
10353
|
+
The ID of the identity set to use for identity connections.
|
10354
|
+
'''
|
10355
|
+
self.name = name if name is not None else ''
|
10356
|
+
'''
|
10357
|
+
Unique human-readable name of the Resource.
|
10358
|
+
'''
|
10359
|
+
self.port_override = port_override if port_override is not None else 0
|
10360
|
+
'''
|
10361
|
+
The local port used by clients to connect to this resource.
|
10362
|
+
'''
|
10363
|
+
self.proxy_cluster_id = proxy_cluster_id if proxy_cluster_id is not None else ''
|
10364
|
+
'''
|
10365
|
+
ID of the proxy cluster for this resource, if any.
|
10366
|
+
'''
|
10367
|
+
self.secret_store_id = secret_store_id if secret_store_id is not None else ''
|
10368
|
+
'''
|
10369
|
+
ID of the secret store containing credentials for this resource, if any.
|
10370
|
+
'''
|
10371
|
+
self.session_expiry = session_expiry if session_expiry is not None else 0
|
10372
|
+
'''
|
10373
|
+
The length of time in seconds console sessions will live before needing to reauthenticate.
|
10374
|
+
'''
|
10375
|
+
self.subdomain = subdomain if subdomain is not None else ''
|
10376
|
+
'''
|
10377
|
+
Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
|
10378
|
+
'''
|
10379
|
+
self.tags = tags if tags is not None else _porcelain_zero_value_tags()
|
10380
|
+
'''
|
10381
|
+
Tags is a map of key, value pairs.
|
10382
|
+
'''
|
10383
|
+
self.workforce_pool_id = workforce_pool_id if workforce_pool_id is not None else ''
|
10384
|
+
'''
|
10385
|
+
The ID of the Workforce Identity Pool in GCP to use for federated authentication.
|
10386
|
+
'''
|
10387
|
+
self.workforce_provider_id = workforce_provider_id if workforce_provider_id is not None else ''
|
10388
|
+
'''
|
10389
|
+
The ID of the Workforce Identity Provider in GCP to use for federated authentication.
|
10390
|
+
'''
|
10391
|
+
|
10392
|
+
def __repr__(self):
|
10393
|
+
return '<sdm.GCPConsole ' + \
|
10394
|
+
'bind_interface: ' + repr(self.bind_interface) + ' ' +\
|
10395
|
+
'egress_filter: ' + repr(self.egress_filter) + ' ' +\
|
10396
|
+
'healthy: ' + repr(self.healthy) + ' ' +\
|
10397
|
+
'id: ' + repr(self.id) + ' ' +\
|
10398
|
+
'identity_alias_healthcheck_username: ' + repr(self.identity_alias_healthcheck_username) + ' ' +\
|
10399
|
+
'identity_set_id: ' + repr(self.identity_set_id) + ' ' +\
|
10400
|
+
'name: ' + repr(self.name) + ' ' +\
|
10401
|
+
'port_override: ' + repr(self.port_override) + ' ' +\
|
10402
|
+
'proxy_cluster_id: ' + repr(self.proxy_cluster_id) + ' ' +\
|
10403
|
+
'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
|
10404
|
+
'session_expiry: ' + repr(self.session_expiry) + ' ' +\
|
10405
|
+
'subdomain: ' + repr(self.subdomain) + ' ' +\
|
10406
|
+
'tags: ' + repr(self.tags) + ' ' +\
|
10407
|
+
'workforce_pool_id: ' + repr(self.workforce_pool_id) + ' ' +\
|
10408
|
+
'workforce_provider_id: ' + repr(self.workforce_provider_id) + ' ' +\
|
10409
|
+
'>'
|
10410
|
+
|
10411
|
+
def to_dict(self):
|
10412
|
+
return {
|
10413
|
+
'bind_interface': self.bind_interface,
|
10414
|
+
'egress_filter': self.egress_filter,
|
10415
|
+
'healthy': self.healthy,
|
10416
|
+
'id': self.id,
|
10417
|
+
'identity_alias_healthcheck_username':
|
10418
|
+
self.identity_alias_healthcheck_username,
|
10419
|
+
'identity_set_id': self.identity_set_id,
|
10420
|
+
'name': self.name,
|
10421
|
+
'port_override': self.port_override,
|
10422
|
+
'proxy_cluster_id': self.proxy_cluster_id,
|
10423
|
+
'secret_store_id': self.secret_store_id,
|
10424
|
+
'session_expiry': self.session_expiry,
|
10425
|
+
'subdomain': self.subdomain,
|
10426
|
+
'tags': self.tags,
|
10427
|
+
'workforce_pool_id': self.workforce_pool_id,
|
10428
|
+
'workforce_provider_id': self.workforce_provider_id,
|
10429
|
+
}
|
10430
|
+
|
10431
|
+
@classmethod
|
10432
|
+
def from_dict(cls, d):
|
10433
|
+
return cls(
|
10434
|
+
bind_interface=d.get('bind_interface'),
|
10435
|
+
egress_filter=d.get('egress_filter'),
|
10436
|
+
healthy=d.get('healthy'),
|
10437
|
+
id=d.get('id'),
|
10438
|
+
identity_alias_healthcheck_username=d.get(
|
10439
|
+
'identity_alias_healthcheck_username'),
|
10440
|
+
identity_set_id=d.get('identity_set_id'),
|
10441
|
+
name=d.get('name'),
|
10442
|
+
port_override=d.get('port_override'),
|
10443
|
+
proxy_cluster_id=d.get('proxy_cluster_id'),
|
10444
|
+
secret_store_id=d.get('secret_store_id'),
|
10445
|
+
session_expiry=d.get('session_expiry'),
|
10446
|
+
subdomain=d.get('subdomain'),
|
10447
|
+
tags=d.get('tags'),
|
10448
|
+
workforce_pool_id=d.get('workforce_pool_id'),
|
10449
|
+
workforce_provider_id=d.get('workforce_provider_id'),
|
10450
|
+
)
|
10451
|
+
|
10452
|
+
|
10271
10453
|
class GCPStore:
|
10272
10454
|
__slots__ = [
|
10273
10455
|
'id',
|
@@ -10326,6 +10508,187 @@ class GCPStore:
|
|
10326
10508
|
)
|
10327
10509
|
|
10328
10510
|
|
10511
|
+
class GCPWIF:
|
10512
|
+
'''
|
10513
|
+
GCPWIF is currently unstable, and its API may change, or it may be removed,
|
10514
|
+
without a major version bump.
|
10515
|
+
'''
|
10516
|
+
__slots__ = [
|
10517
|
+
'bind_interface',
|
10518
|
+
'egress_filter',
|
10519
|
+
'healthy',
|
10520
|
+
'id',
|
10521
|
+
'identity_alias_healthcheck_username',
|
10522
|
+
'identity_set_id',
|
10523
|
+
'name',
|
10524
|
+
'port_override',
|
10525
|
+
'project_id',
|
10526
|
+
'proxy_cluster_id',
|
10527
|
+
'scopes',
|
10528
|
+
'secret_store_id',
|
10529
|
+
'session_expiry',
|
10530
|
+
'subdomain',
|
10531
|
+
'tags',
|
10532
|
+
'workforce_pool_id',
|
10533
|
+
'workforce_provider_id',
|
10534
|
+
]
|
10535
|
+
|
10536
|
+
def __init__(
|
10537
|
+
self,
|
10538
|
+
bind_interface=None,
|
10539
|
+
egress_filter=None,
|
10540
|
+
healthy=None,
|
10541
|
+
id=None,
|
10542
|
+
identity_alias_healthcheck_username=None,
|
10543
|
+
identity_set_id=None,
|
10544
|
+
name=None,
|
10545
|
+
port_override=None,
|
10546
|
+
project_id=None,
|
10547
|
+
proxy_cluster_id=None,
|
10548
|
+
scopes=None,
|
10549
|
+
secret_store_id=None,
|
10550
|
+
session_expiry=None,
|
10551
|
+
subdomain=None,
|
10552
|
+
tags=None,
|
10553
|
+
workforce_pool_id=None,
|
10554
|
+
workforce_provider_id=None,
|
10555
|
+
):
|
10556
|
+
self.bind_interface = bind_interface if bind_interface is not None else ''
|
10557
|
+
'''
|
10558
|
+
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.
|
10559
|
+
'''
|
10560
|
+
self.egress_filter = egress_filter if egress_filter is not None else ''
|
10561
|
+
'''
|
10562
|
+
A filter applied to the routing logic to pin datasource to nodes.
|
10563
|
+
'''
|
10564
|
+
self.healthy = healthy if healthy is not None else False
|
10565
|
+
'''
|
10566
|
+
True if the datasource is reachable and the credentials are valid.
|
10567
|
+
'''
|
10568
|
+
self.id = id if id is not None else ''
|
10569
|
+
'''
|
10570
|
+
Unique identifier of the Resource.
|
10571
|
+
'''
|
10572
|
+
self.identity_alias_healthcheck_username = identity_alias_healthcheck_username if identity_alias_healthcheck_username is not None else ''
|
10573
|
+
'''
|
10574
|
+
The username to use for healthchecks, when clients otherwise connect with their own identity alias username.
|
10575
|
+
'''
|
10576
|
+
self.identity_set_id = identity_set_id if identity_set_id is not None else ''
|
10577
|
+
'''
|
10578
|
+
The ID of the identity set to use for identity connections.
|
10579
|
+
'''
|
10580
|
+
self.name = name if name is not None else ''
|
10581
|
+
'''
|
10582
|
+
Unique human-readable name of the Resource.
|
10583
|
+
'''
|
10584
|
+
self.port_override = port_override if port_override is not None else 0
|
10585
|
+
'''
|
10586
|
+
The local port used by clients to connect to this resource.
|
10587
|
+
'''
|
10588
|
+
self.project_id = project_id if project_id is not None else ''
|
10589
|
+
'''
|
10590
|
+
When specified, all project scoped requests will use this Project ID, overriding the project ID specified by clients
|
10591
|
+
'''
|
10592
|
+
self.proxy_cluster_id = proxy_cluster_id if proxy_cluster_id is not None else ''
|
10593
|
+
'''
|
10594
|
+
ID of the proxy cluster for this resource, if any.
|
10595
|
+
'''
|
10596
|
+
self.scopes = scopes if scopes is not None else ''
|
10597
|
+
'''
|
10598
|
+
Space separated scopes that this login should assume into when authenticating.
|
10599
|
+
'''
|
10600
|
+
self.secret_store_id = secret_store_id if secret_store_id is not None else ''
|
10601
|
+
'''
|
10602
|
+
ID of the secret store containing credentials for this resource, if any.
|
10603
|
+
'''
|
10604
|
+
self.session_expiry = session_expiry if session_expiry is not None else 0
|
10605
|
+
'''
|
10606
|
+
The length of time in seconds console sessions will live before needing to reauthenticate.
|
10607
|
+
'''
|
10608
|
+
self.subdomain = subdomain if subdomain is not None else ''
|
10609
|
+
'''
|
10610
|
+
Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
|
10611
|
+
'''
|
10612
|
+
self.tags = tags if tags is not None else _porcelain_zero_value_tags()
|
10613
|
+
'''
|
10614
|
+
Tags is a map of key, value pairs.
|
10615
|
+
'''
|
10616
|
+
self.workforce_pool_id = workforce_pool_id if workforce_pool_id is not None else ''
|
10617
|
+
'''
|
10618
|
+
The ID of the Workforce Identity Pool in GCP to use for federated authentication.
|
10619
|
+
'''
|
10620
|
+
self.workforce_provider_id = workforce_provider_id if workforce_provider_id is not None else ''
|
10621
|
+
'''
|
10622
|
+
The ID of the Workforce Identity Provider in GCP to use for federated authentication.
|
10623
|
+
'''
|
10624
|
+
|
10625
|
+
def __repr__(self):
|
10626
|
+
return '<sdm.GCPWIF ' + \
|
10627
|
+
'bind_interface: ' + repr(self.bind_interface) + ' ' +\
|
10628
|
+
'egress_filter: ' + repr(self.egress_filter) + ' ' +\
|
10629
|
+
'healthy: ' + repr(self.healthy) + ' ' +\
|
10630
|
+
'id: ' + repr(self.id) + ' ' +\
|
10631
|
+
'identity_alias_healthcheck_username: ' + repr(self.identity_alias_healthcheck_username) + ' ' +\
|
10632
|
+
'identity_set_id: ' + repr(self.identity_set_id) + ' ' +\
|
10633
|
+
'name: ' + repr(self.name) + ' ' +\
|
10634
|
+
'port_override: ' + repr(self.port_override) + ' ' +\
|
10635
|
+
'project_id: ' + repr(self.project_id) + ' ' +\
|
10636
|
+
'proxy_cluster_id: ' + repr(self.proxy_cluster_id) + ' ' +\
|
10637
|
+
'scopes: ' + repr(self.scopes) + ' ' +\
|
10638
|
+
'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
|
10639
|
+
'session_expiry: ' + repr(self.session_expiry) + ' ' +\
|
10640
|
+
'subdomain: ' + repr(self.subdomain) + ' ' +\
|
10641
|
+
'tags: ' + repr(self.tags) + ' ' +\
|
10642
|
+
'workforce_pool_id: ' + repr(self.workforce_pool_id) + ' ' +\
|
10643
|
+
'workforce_provider_id: ' + repr(self.workforce_provider_id) + ' ' +\
|
10644
|
+
'>'
|
10645
|
+
|
10646
|
+
def to_dict(self):
|
10647
|
+
return {
|
10648
|
+
'bind_interface': self.bind_interface,
|
10649
|
+
'egress_filter': self.egress_filter,
|
10650
|
+
'healthy': self.healthy,
|
10651
|
+
'id': self.id,
|
10652
|
+
'identity_alias_healthcheck_username':
|
10653
|
+
self.identity_alias_healthcheck_username,
|
10654
|
+
'identity_set_id': self.identity_set_id,
|
10655
|
+
'name': self.name,
|
10656
|
+
'port_override': self.port_override,
|
10657
|
+
'project_id': self.project_id,
|
10658
|
+
'proxy_cluster_id': self.proxy_cluster_id,
|
10659
|
+
'scopes': self.scopes,
|
10660
|
+
'secret_store_id': self.secret_store_id,
|
10661
|
+
'session_expiry': self.session_expiry,
|
10662
|
+
'subdomain': self.subdomain,
|
10663
|
+
'tags': self.tags,
|
10664
|
+
'workforce_pool_id': self.workforce_pool_id,
|
10665
|
+
'workforce_provider_id': self.workforce_provider_id,
|
10666
|
+
}
|
10667
|
+
|
10668
|
+
@classmethod
|
10669
|
+
def from_dict(cls, d):
|
10670
|
+
return cls(
|
10671
|
+
bind_interface=d.get('bind_interface'),
|
10672
|
+
egress_filter=d.get('egress_filter'),
|
10673
|
+
healthy=d.get('healthy'),
|
10674
|
+
id=d.get('id'),
|
10675
|
+
identity_alias_healthcheck_username=d.get(
|
10676
|
+
'identity_alias_healthcheck_username'),
|
10677
|
+
identity_set_id=d.get('identity_set_id'),
|
10678
|
+
name=d.get('name'),
|
10679
|
+
port_override=d.get('port_override'),
|
10680
|
+
project_id=d.get('project_id'),
|
10681
|
+
proxy_cluster_id=d.get('proxy_cluster_id'),
|
10682
|
+
scopes=d.get('scopes'),
|
10683
|
+
secret_store_id=d.get('secret_store_id'),
|
10684
|
+
session_expiry=d.get('session_expiry'),
|
10685
|
+
subdomain=d.get('subdomain'),
|
10686
|
+
tags=d.get('tags'),
|
10687
|
+
workforce_pool_id=d.get('workforce_pool_id'),
|
10688
|
+
workforce_provider_id=d.get('workforce_provider_id'),
|
10689
|
+
)
|
10690
|
+
|
10691
|
+
|
10329
10692
|
class Gateway:
|
10330
10693
|
'''
|
10331
10694
|
Gateway represents a StrongDM CLI installation running in gateway mode.
|
@@ -794,7 +794,11 @@ def convert_access_request_to_porcelain(plumbing):
|
|
794
794
|
porcelain.grant_id = (plumbing.grant_id)
|
795
795
|
porcelain.id = (plumbing.id)
|
796
796
|
porcelain.reason = (plumbing.reason)
|
797
|
+
porcelain.requestedduration = convert_duration_to_porcelain(
|
798
|
+
plumbing.requestedDuration)
|
797
799
|
porcelain.resource_id = (plumbing.resource_id)
|
800
|
+
porcelain.resultduration = convert_duration_to_porcelain(
|
801
|
+
plumbing.resultDuration)
|
798
802
|
porcelain.start_from = convert_timestamp_to_porcelain(plumbing.start_from)
|
799
803
|
porcelain.status = (plumbing.status)
|
800
804
|
porcelain.status_at = convert_timestamp_to_porcelain(plumbing.status_at)
|
@@ -813,7 +817,11 @@ def convert_access_request_to_plumbing(porcelain):
|
|
813
817
|
plumbing.grant_id = (porcelain.grant_id)
|
814
818
|
plumbing.id = (porcelain.id)
|
815
819
|
plumbing.reason = (porcelain.reason)
|
820
|
+
plumbing.requestedDuration.CopyFrom(
|
821
|
+
convert_duration_to_plumbing(porcelain.requestedduration))
|
816
822
|
plumbing.resource_id = (porcelain.resource_id)
|
823
|
+
plumbing.resultDuration.CopyFrom(
|
824
|
+
convert_duration_to_plumbing(porcelain.resultduration))
|
817
825
|
plumbing.start_from.CopyFrom(
|
818
826
|
convert_timestamp_to_plumbing(porcelain.start_from))
|
819
827
|
plumbing.status = (porcelain.status)
|
@@ -4894,6 +4902,64 @@ def convert_repeated_gcp_cert_x_509_store_to_porcelain(plumbings):
|
|
4894
4902
|
]
|
4895
4903
|
|
4896
4904
|
|
4905
|
+
def convert_gcp_console_to_porcelain(plumbing):
|
4906
|
+
if plumbing is None:
|
4907
|
+
return None
|
4908
|
+
porcelain = models.GCPConsole()
|
4909
|
+
porcelain.bind_interface = (plumbing.bind_interface)
|
4910
|
+
porcelain.egress_filter = (plumbing.egress_filter)
|
4911
|
+
porcelain.healthy = (plumbing.healthy)
|
4912
|
+
porcelain.id = (plumbing.id)
|
4913
|
+
porcelain.identity_alias_healthcheck_username = (
|
4914
|
+
plumbing.identity_alias_healthcheck_username)
|
4915
|
+
porcelain.identity_set_id = (plumbing.identity_set_id)
|
4916
|
+
porcelain.name = (plumbing.name)
|
4917
|
+
porcelain.port_override = (plumbing.port_override)
|
4918
|
+
porcelain.proxy_cluster_id = (plumbing.proxy_cluster_id)
|
4919
|
+
porcelain.secret_store_id = (plumbing.secret_store_id)
|
4920
|
+
porcelain.session_expiry = (plumbing.session_expiry)
|
4921
|
+
porcelain.subdomain = (plumbing.subdomain)
|
4922
|
+
porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
|
4923
|
+
porcelain.workforce_pool_id = (plumbing.workforce_pool_id)
|
4924
|
+
porcelain.workforce_provider_id = (plumbing.workforce_provider_id)
|
4925
|
+
return porcelain
|
4926
|
+
|
4927
|
+
|
4928
|
+
def convert_gcp_console_to_plumbing(porcelain):
|
4929
|
+
plumbing = GCPConsole()
|
4930
|
+
if porcelain is None:
|
4931
|
+
return plumbing
|
4932
|
+
plumbing.bind_interface = (porcelain.bind_interface)
|
4933
|
+
plumbing.egress_filter = (porcelain.egress_filter)
|
4934
|
+
plumbing.healthy = (porcelain.healthy)
|
4935
|
+
plumbing.id = (porcelain.id)
|
4936
|
+
plumbing.identity_alias_healthcheck_username = (
|
4937
|
+
porcelain.identity_alias_healthcheck_username)
|
4938
|
+
plumbing.identity_set_id = (porcelain.identity_set_id)
|
4939
|
+
plumbing.name = (porcelain.name)
|
4940
|
+
plumbing.port_override = (porcelain.port_override)
|
4941
|
+
plumbing.proxy_cluster_id = (porcelain.proxy_cluster_id)
|
4942
|
+
plumbing.secret_store_id = (porcelain.secret_store_id)
|
4943
|
+
plumbing.session_expiry = (porcelain.session_expiry)
|
4944
|
+
plumbing.subdomain = (porcelain.subdomain)
|
4945
|
+
plumbing.tags.CopyFrom(convert_tags_to_plumbing(porcelain.tags))
|
4946
|
+
plumbing.workforce_pool_id = (porcelain.workforce_pool_id)
|
4947
|
+
plumbing.workforce_provider_id = (porcelain.workforce_provider_id)
|
4948
|
+
return plumbing
|
4949
|
+
|
4950
|
+
|
4951
|
+
def convert_repeated_gcp_console_to_plumbing(porcelains):
|
4952
|
+
return [
|
4953
|
+
convert_gcp_console_to_plumbing(porcelain) for porcelain in porcelains
|
4954
|
+
]
|
4955
|
+
|
4956
|
+
|
4957
|
+
def convert_repeated_gcp_console_to_porcelain(plumbings):
|
4958
|
+
return [
|
4959
|
+
convert_gcp_console_to_porcelain(plumbing) for plumbing in plumbings
|
4960
|
+
]
|
4961
|
+
|
4962
|
+
|
4897
4963
|
def convert_gcp_store_to_porcelain(plumbing):
|
4898
4964
|
if plumbing is None:
|
4899
4965
|
return None
|
@@ -4926,6 +4992,64 @@ def convert_repeated_gcp_store_to_porcelain(plumbings):
|
|
4926
4992
|
return [convert_gcp_store_to_porcelain(plumbing) for plumbing in plumbings]
|
4927
4993
|
|
4928
4994
|
|
4995
|
+
def convert_gcpwif_to_porcelain(plumbing):
|
4996
|
+
if plumbing is None:
|
4997
|
+
return None
|
4998
|
+
porcelain = models.GCPWIF()
|
4999
|
+
porcelain.bind_interface = (plumbing.bind_interface)
|
5000
|
+
porcelain.egress_filter = (plumbing.egress_filter)
|
5001
|
+
porcelain.healthy = (plumbing.healthy)
|
5002
|
+
porcelain.id = (plumbing.id)
|
5003
|
+
porcelain.identity_alias_healthcheck_username = (
|
5004
|
+
plumbing.identity_alias_healthcheck_username)
|
5005
|
+
porcelain.identity_set_id = (plumbing.identity_set_id)
|
5006
|
+
porcelain.name = (plumbing.name)
|
5007
|
+
porcelain.port_override = (plumbing.port_override)
|
5008
|
+
porcelain.project_id = (plumbing.project_id)
|
5009
|
+
porcelain.proxy_cluster_id = (plumbing.proxy_cluster_id)
|
5010
|
+
porcelain.scopes = (plumbing.scopes)
|
5011
|
+
porcelain.secret_store_id = (plumbing.secret_store_id)
|
5012
|
+
porcelain.session_expiry = (plumbing.session_expiry)
|
5013
|
+
porcelain.subdomain = (plumbing.subdomain)
|
5014
|
+
porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
|
5015
|
+
porcelain.workforce_pool_id = (plumbing.workforce_pool_id)
|
5016
|
+
porcelain.workforce_provider_id = (plumbing.workforce_provider_id)
|
5017
|
+
return porcelain
|
5018
|
+
|
5019
|
+
|
5020
|
+
def convert_gcpwif_to_plumbing(porcelain):
|
5021
|
+
plumbing = GCPWIF()
|
5022
|
+
if porcelain is None:
|
5023
|
+
return plumbing
|
5024
|
+
plumbing.bind_interface = (porcelain.bind_interface)
|
5025
|
+
plumbing.egress_filter = (porcelain.egress_filter)
|
5026
|
+
plumbing.healthy = (porcelain.healthy)
|
5027
|
+
plumbing.id = (porcelain.id)
|
5028
|
+
plumbing.identity_alias_healthcheck_username = (
|
5029
|
+
porcelain.identity_alias_healthcheck_username)
|
5030
|
+
plumbing.identity_set_id = (porcelain.identity_set_id)
|
5031
|
+
plumbing.name = (porcelain.name)
|
5032
|
+
plumbing.port_override = (porcelain.port_override)
|
5033
|
+
plumbing.project_id = (porcelain.project_id)
|
5034
|
+
plumbing.proxy_cluster_id = (porcelain.proxy_cluster_id)
|
5035
|
+
plumbing.scopes = (porcelain.scopes)
|
5036
|
+
plumbing.secret_store_id = (porcelain.secret_store_id)
|
5037
|
+
plumbing.session_expiry = (porcelain.session_expiry)
|
5038
|
+
plumbing.subdomain = (porcelain.subdomain)
|
5039
|
+
plumbing.tags.CopyFrom(convert_tags_to_plumbing(porcelain.tags))
|
5040
|
+
plumbing.workforce_pool_id = (porcelain.workforce_pool_id)
|
5041
|
+
plumbing.workforce_provider_id = (porcelain.workforce_provider_id)
|
5042
|
+
return plumbing
|
5043
|
+
|
5044
|
+
|
5045
|
+
def convert_repeated_gcpwif_to_plumbing(porcelains):
|
5046
|
+
return [convert_gcpwif_to_plumbing(porcelain) for porcelain in porcelains]
|
5047
|
+
|
5048
|
+
|
5049
|
+
def convert_repeated_gcpwif_to_porcelain(plumbings):
|
5050
|
+
return [convert_gcpwif_to_porcelain(plumbing) for plumbing in plumbings]
|
5051
|
+
|
5052
|
+
|
4929
5053
|
def convert_gateway_to_porcelain(plumbing):
|
4930
5054
|
if plumbing is None:
|
4931
5055
|
return None
|
@@ -9878,6 +10002,11 @@ def convert_resource_to_plumbing(porcelain):
|
|
9878
10002
|
convert_elasticache_redis_to_plumbing(porcelain))
|
9879
10003
|
if isinstance(porcelain, models.GCP):
|
9880
10004
|
plumbing.gcp.CopyFrom(convert_gcp_to_plumbing(porcelain))
|
10005
|
+
if isinstance(porcelain, models.GCPConsole):
|
10006
|
+
plumbing.gcp_console.CopyFrom(
|
10007
|
+
convert_gcp_console_to_plumbing(porcelain))
|
10008
|
+
if isinstance(porcelain, models.GCPWIF):
|
10009
|
+
plumbing.gcpwif.CopyFrom(convert_gcpwif_to_plumbing(porcelain))
|
9881
10010
|
if isinstance(porcelain, models.GoogleGKE):
|
9882
10011
|
plumbing.google_gke.CopyFrom(convert_google_gke_to_plumbing(porcelain))
|
9883
10012
|
if isinstance(porcelain, models.GoogleGKEUserImpersonation):
|
@@ -10096,6 +10225,10 @@ def convert_resource_to_porcelain(plumbing):
|
|
10096
10225
|
plumbing.elasticache_redis)
|
10097
10226
|
if plumbing.HasField('gcp'):
|
10098
10227
|
return convert_gcp_to_porcelain(plumbing.gcp)
|
10228
|
+
if plumbing.HasField('gcp_console'):
|
10229
|
+
return convert_gcp_console_to_porcelain(plumbing.gcp_console)
|
10230
|
+
if plumbing.HasField('gcpwif'):
|
10231
|
+
return convert_gcpwif_to_porcelain(plumbing.gcpwif)
|
10099
10232
|
if plumbing.HasField('google_gke'):
|
10100
10233
|
return convert_google_gke_to_porcelain(plumbing.google_gke)
|
10101
10234
|
if plumbing.HasField('google_gke_user_impersonation'):
|
@@ -4494,6 +4494,8 @@ class Resources:
|
|
4494
4494
|
`strongdm.models.Elastic`
|
4495
4495
|
`strongdm.models.ElasticacheRedis`
|
4496
4496
|
`strongdm.models.GCP`
|
4497
|
+
`strongdm.models.GCPConsole`
|
4498
|
+
`strongdm.models.GCPWIF`
|
4497
4499
|
`strongdm.models.GoogleGKE`
|
4498
4500
|
`strongdm.models.GoogleGKEUserImpersonation`
|
4499
4501
|
`strongdm.models.Greenplum`
|
@@ -1,12 +1,12 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: strongdm
|
3
|
-
Version: 11.
|
3
|
+
Version: 11.20.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.20.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
|
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
|