Skip to content

Commit bf6eaf3

Browse files
committed
16.0.0
1 parent 0fa0728 commit bf6eaf3

File tree

8 files changed

+523
-274
lines changed

8 files changed

+523
-274
lines changed

setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
setup(
2424
name='strongdm',
2525
packages=['strongdm'],
26-
version='15.46.0',
26+
version='16.0.0',
2727
license='apache-2.0',
2828
description='strongDM SDK for the Python programming language.',
2929
long_description=long_description,
@@ -32,7 +32,7 @@
3232
author_email='sdk-feedback@strongdm.com',
3333
url='https://github.com/strongdm/strongdm-sdk-python',
3434
download_url=
35-
'https://github.com/strongdm/strongdm-sdk-python/archive/v15.46.0.tar.gz',
35+
'https://github.com/strongdm/strongdm-sdk-python/archive/v16.0.0.tar.gz',
3636
keywords=[
3737
'strongDM', 'sdm', 'api', 'automation', 'security', 'audit',
3838
'database', 'server', 'ssh', 'rdp'

strongdm.egg-info/PKG-INFO

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
Metadata-Version: 2.1
22
Name: strongdm
3-
Version: 15.46.0
3+
Version: 16.0.0
44
Summary: strongDM SDK for the Python programming language.
55
Home-page: https://github.com/strongdm/strongdm-sdk-python
66
Author: strongDM Team
77
Author-email: sdk-feedback@strongdm.com
88
License: apache-2.0
9-
Download-URL: https://github.com/strongdm/strongdm-sdk-python/archive/v15.46.0.tar.gz
9+
Download-URL: https://github.com/strongdm/strongdm-sdk-python/archive/v16.0.0.tar.gz
1010
Keywords: strongDM,sdm,api,automation,security,audit,database,server,ssh,rdp
1111
Platform: UNKNOWN
1212
Classifier: Development Status :: 4 - Beta

strongdm/client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
DEFAULT_RETRY_FACTOR = 1.6
4141
DEFAULT_RETRY_JITTER = 0.2
4242
API_VERSION = '2025-04-14'
43-
USER_AGENT = 'strongdm-sdk-python/15.46.0'
43+
USER_AGENT = 'strongdm-sdk-python/16.0.0'
4444

4545
method_regexp = re.compile(r'\W+')
4646

strongdm/drivers_pb2.py

Lines changed: 272 additions & 232 deletions
Large diffs are not rendered by default.

strongdm/managed_secrets_pb2.py

Lines changed: 4 additions & 4 deletions
Large diffs are not rendered by default.

strongdm/models.py

Lines changed: 175 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -12292,7 +12292,6 @@ class DocumentDBReplicaSet:
1229212292
'password',
1229312293
'port_override',
1229412294
'proxy_cluster_id',
12295-
'replica_set',
1229612295
'secret_store_id',
1229712296
'subdomain',
1229812297
'tags',
@@ -12312,7 +12311,6 @@ def __init__(
1231212311
password=None,
1231312312
port_override=None,
1231412313
proxy_cluster_id=None,
12315-
replica_set=None,
1231612314
secret_store_id=None,
1231712315
subdomain=None,
1231812316
tags=None,
@@ -12362,10 +12360,6 @@ def __init__(
1236212360
'''
1236312361
ID of the proxy cluster for this resource, if any.
1236412362
'''
12365-
self.replica_set = replica_set if replica_set is not None else ''
12366-
'''
12367-
The name of the mongo replicaset.
12368-
'''
1236912363
self.secret_store_id = secret_store_id if secret_store_id is not None else ''
1237012364
'''
1237112365
ID of the secret store containing credentials for this resource, if any.
@@ -12396,7 +12390,6 @@ def __repr__(self):
1239612390
'password: ' + repr(self.password) + ' ' +\
1239712391
'port_override: ' + repr(self.port_override) + ' ' +\
1239812392
'proxy_cluster_id: ' + repr(self.proxy_cluster_id) + ' ' +\
12399-
'replica_set: ' + repr(self.replica_set) + ' ' +\
1240012393
'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
1240112394
'subdomain: ' + repr(self.subdomain) + ' ' +\
1240212395
'tags: ' + repr(self.tags) + ' ' +\
@@ -12416,7 +12409,6 @@ def to_dict(self):
1241612409
'password': self.password,
1241712410
'port_override': self.port_override,
1241812411
'proxy_cluster_id': self.proxy_cluster_id,
12419-
'replica_set': self.replica_set,
1242012412
'secret_store_id': self.secret_store_id,
1242112413
'subdomain': self.subdomain,
1242212414
'tags': self.tags,
@@ -12437,7 +12429,6 @@ def from_dict(cls, d):
1243712429
password=d.get('password'),
1243812430
port_override=d.get('port_override'),
1243912431
proxy_cluster_id=d.get('proxy_cluster_id'),
12440-
replica_set=d.get('replica_set'),
1244112432
secret_store_id=d.get('secret_store_id'),
1244212433
subdomain=d.get('subdomain'),
1244312434
tags=d.get('tags'),
@@ -15058,6 +15049,181 @@ def from_dict(cls, d):
1505815049
)
1505915050

1506015051

15052+
class GoogleSpanner:
15053+
'''
15054+
GoogleSpanner is currently unstable, and its API may change, or it may be removed,
15055+
without a major version bump.
15056+
'''
15057+
__slots__ = [
15058+
'bind_interface',
15059+
'database',
15060+
'egress_filter',
15061+
'endpoint',
15062+
'healthy',
15063+
'id',
15064+
'instance',
15065+
'name',
15066+
'port',
15067+
'port_override',
15068+
'project',
15069+
'proxy_cluster_id',
15070+
'secret_store_id',
15071+
'service_account_to_impersonate',
15072+
'subdomain',
15073+
'tags',
15074+
]
15075+
15076+
def __init__(
15077+
self,
15078+
bind_interface=None,
15079+
database=None,
15080+
egress_filter=None,
15081+
endpoint=None,
15082+
healthy=None,
15083+
id=None,
15084+
instance=None,
15085+
name=None,
15086+
port=None,
15087+
port_override=None,
15088+
project=None,
15089+
proxy_cluster_id=None,
15090+
secret_store_id=None,
15091+
service_account_to_impersonate=None,
15092+
subdomain=None,
15093+
tags=None,
15094+
):
15095+
self.bind_interface = bind_interface if bind_interface is not None else ''
15096+
'''
15097+
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 and may also be set to one of the ResourceIPAllocationMode constants to select between VNM, loopback, or default allocation.
15098+
'''
15099+
self.database = database if database is not None else ''
15100+
'''
15101+
The initial database to connect to. This setting does not by itself prevent switching to another database after connecting.
15102+
'''
15103+
self.egress_filter = egress_filter if egress_filter is not None else ''
15104+
'''
15105+
A filter applied to the routing logic to pin datasource to nodes.
15106+
'''
15107+
self.endpoint = endpoint if endpoint is not None else ''
15108+
'''
15109+
The endpoint to dial e.g. spanner.googleapis.com
15110+
'''
15111+
self.healthy = healthy if healthy is not None else False
15112+
'''
15113+
True if the datasource is reachable and the credentials are valid.
15114+
'''
15115+
self.id = id if id is not None else ''
15116+
'''
15117+
Unique identifier of the Resource.
15118+
'''
15119+
self.instance = instance if instance is not None else ''
15120+
'''
15121+
The Spanner instance ID within the GCP project.
15122+
'''
15123+
self.name = name if name is not None else ''
15124+
'''
15125+
Unique human-readable name of the Resource.
15126+
'''
15127+
self.port = port if port is not None else 0
15128+
'''
15129+
The port to dial to initiate a connection from the egress node to this resource.
15130+
'''
15131+
self.port_override = port_override if port_override is not None else 0
15132+
'''
15133+
The local port used by clients to connect to this resource. It is automatically generated if not provided on create and may be re-generated on update by specifying a value of -1.
15134+
'''
15135+
self.project = project if project is not None else ''
15136+
'''
15137+
The GCP project ID containing the Spanner database.
15138+
'''
15139+
self.proxy_cluster_id = proxy_cluster_id if proxy_cluster_id is not None else ''
15140+
'''
15141+
ID of the proxy cluster for this resource, if any.
15142+
'''
15143+
self.secret_store_id = secret_store_id if secret_store_id is not None else ''
15144+
'''
15145+
ID of the secret store containing credentials for this resource, if any.
15146+
'''
15147+
self.service_account_to_impersonate = service_account_to_impersonate if service_account_to_impersonate is not None else ''
15148+
'''
15149+
Optional service account email to impersonate. When set, the relay's
15150+
Application Default Credentials will impersonate this service account
15151+
to access Spanner. This allows role separation where the relay uses
15152+
one service account but operates as another.
15153+
'''
15154+
self.subdomain = subdomain if subdomain is not None else ''
15155+
'''
15156+
DNS subdomain through which this resource may be accessed on clients. (e.g. "app-prod1" allows the resource to be accessed at "app-prod1.your-org-name.sdm-proxy-domain"). Only applicable to HTTP-based resources or resources using virtual networking mode.
15157+
'''
15158+
self.tags = tags if tags is not None else _porcelain_zero_value_tags()
15159+
'''
15160+
Tags is a map of key, value pairs.
15161+
'''
15162+
15163+
def __repr__(self):
15164+
return '<sdm.GoogleSpanner ' + \
15165+
'bind_interface: ' + repr(self.bind_interface) + ' ' +\
15166+
'database: ' + repr(self.database) + ' ' +\
15167+
'egress_filter: ' + repr(self.egress_filter) + ' ' +\
15168+
'endpoint: ' + repr(self.endpoint) + ' ' +\
15169+
'healthy: ' + repr(self.healthy) + ' ' +\
15170+
'id: ' + repr(self.id) + ' ' +\
15171+
'instance: ' + repr(self.instance) + ' ' +\
15172+
'name: ' + repr(self.name) + ' ' +\
15173+
'port: ' + repr(self.port) + ' ' +\
15174+
'port_override: ' + repr(self.port_override) + ' ' +\
15175+
'project: ' + repr(self.project) + ' ' +\
15176+
'proxy_cluster_id: ' + repr(self.proxy_cluster_id) + ' ' +\
15177+
'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
15178+
'service_account_to_impersonate: ' + repr(self.service_account_to_impersonate) + ' ' +\
15179+
'subdomain: ' + repr(self.subdomain) + ' ' +\
15180+
'tags: ' + repr(self.tags) + ' ' +\
15181+
'>'
15182+
15183+
def to_dict(self):
15184+
return {
15185+
'bind_interface': self.bind_interface,
15186+
'database': self.database,
15187+
'egress_filter': self.egress_filter,
15188+
'endpoint': self.endpoint,
15189+
'healthy': self.healthy,
15190+
'id': self.id,
15191+
'instance': self.instance,
15192+
'name': self.name,
15193+
'port': self.port,
15194+
'port_override': self.port_override,
15195+
'project': self.project,
15196+
'proxy_cluster_id': self.proxy_cluster_id,
15197+
'secret_store_id': self.secret_store_id,
15198+
'service_account_to_impersonate':
15199+
self.service_account_to_impersonate,
15200+
'subdomain': self.subdomain,
15201+
'tags': self.tags,
15202+
}
15203+
15204+
@classmethod
15205+
def from_dict(cls, d):
15206+
return cls(
15207+
bind_interface=d.get('bind_interface'),
15208+
database=d.get('database'),
15209+
egress_filter=d.get('egress_filter'),
15210+
endpoint=d.get('endpoint'),
15211+
healthy=d.get('healthy'),
15212+
id=d.get('id'),
15213+
instance=d.get('instance'),
15214+
name=d.get('name'),
15215+
port=d.get('port'),
15216+
port_override=d.get('port_override'),
15217+
project=d.get('project'),
15218+
proxy_cluster_id=d.get('proxy_cluster_id'),
15219+
secret_store_id=d.get('secret_store_id'),
15220+
service_account_to_impersonate=d.get(
15221+
'service_account_to_impersonate'),
15222+
subdomain=d.get('subdomain'),
15223+
tags=d.get('tags'),
15224+
)
15225+
15226+
1506115227
class Greenplum:
1506215228
__slots__ = [
1506315229
'bind_interface',
@@ -21714,7 +21880,6 @@ class MongoLegacyReplicaset:
2171421880
'port',
2171521881
'port_override',
2171621882
'proxy_cluster_id',
21717-
'replica_set',
2171821883
'secret_store_id',
2171921884
'subdomain',
2172021885
'tags',
@@ -21736,7 +21901,6 @@ def __init__(
2173621901
port=None,
2173721902
port_override=None,
2173821903
proxy_cluster_id=None,
21739-
replica_set=None,
2174021904
secret_store_id=None,
2174121905
subdomain=None,
2174221906
tags=None,
@@ -21791,10 +21955,6 @@ def __init__(
2179121955
'''
2179221956
ID of the proxy cluster for this resource, if any.
2179321957
'''
21794-
self.replica_set = replica_set if replica_set is not None else ''
21795-
'''
21796-
The name of the mongo replicaset.
21797-
'''
2179821958
self.secret_store_id = secret_store_id if secret_store_id is not None else ''
2179921959
'''
2180021960
ID of the secret store containing credentials for this resource, if any.
@@ -21830,7 +21990,6 @@ def __repr__(self):
2183021990
'port: ' + repr(self.port) + ' ' +\
2183121991
'port_override: ' + repr(self.port_override) + ' ' +\
2183221992
'proxy_cluster_id: ' + repr(self.proxy_cluster_id) + ' ' +\
21833-
'replica_set: ' + repr(self.replica_set) + ' ' +\
2183421993
'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
2183521994
'subdomain: ' + repr(self.subdomain) + ' ' +\
2183621995
'tags: ' + repr(self.tags) + ' ' +\
@@ -21852,7 +22011,6 @@ def to_dict(self):
2185222011
'port': self.port,
2185322012
'port_override': self.port_override,
2185422013
'proxy_cluster_id': self.proxy_cluster_id,
21855-
'replica_set': self.replica_set,
2185622014
'secret_store_id': self.secret_store_id,
2185722015
'subdomain': self.subdomain,
2185822016
'tags': self.tags,
@@ -21875,7 +22033,6 @@ def from_dict(cls, d):
2187522033
port=d.get('port'),
2187622034
port_override=d.get('port_override'),
2187722035
proxy_cluster_id=d.get('proxy_cluster_id'),
21878-
replica_set=d.get('replica_set'),
2187922036
secret_store_id=d.get('secret_store_id'),
2188022037
subdomain=d.get('subdomain'),
2188122038
tags=d.get('tags'),
@@ -21898,7 +22055,6 @@ class MongoReplicaSet:
2189822055
'port',
2189922056
'port_override',
2190022057
'proxy_cluster_id',
21901-
'replica_set',
2190222058
'secret_store_id',
2190322059
'subdomain',
2190422060
'tags',
@@ -21920,7 +22076,6 @@ def __init__(
2192022076
port=None,
2192122077
port_override=None,
2192222078
proxy_cluster_id=None,
21923-
replica_set=None,
2192422079
secret_store_id=None,
2192522080
subdomain=None,
2192622081
tags=None,
@@ -21975,10 +22130,6 @@ def __init__(
2197522130
'''
2197622131
ID of the proxy cluster for this resource, if any.
2197722132
'''
21978-
self.replica_set = replica_set if replica_set is not None else ''
21979-
'''
21980-
The name of the mongo replicaset.
21981-
'''
2198222133
self.secret_store_id = secret_store_id if secret_store_id is not None else ''
2198322134
'''
2198422135
ID of the secret store containing credentials for this resource, if any.
@@ -22014,7 +22165,6 @@ def __repr__(self):
2201422165
'port: ' + repr(self.port) + ' ' +\
2201522166
'port_override: ' + repr(self.port_override) + ' ' +\
2201622167
'proxy_cluster_id: ' + repr(self.proxy_cluster_id) + ' ' +\
22017-
'replica_set: ' + repr(self.replica_set) + ' ' +\
2201822168
'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
2201922169
'subdomain: ' + repr(self.subdomain) + ' ' +\
2202022170
'tags: ' + repr(self.tags) + ' ' +\
@@ -22036,7 +22186,6 @@ def to_dict(self):
2203622186
'port': self.port,
2203722187
'port_override': self.port_override,
2203822188
'proxy_cluster_id': self.proxy_cluster_id,
22039-
'replica_set': self.replica_set,
2204022189
'secret_store_id': self.secret_store_id,
2204122190
'subdomain': self.subdomain,
2204222191
'tags': self.tags,
@@ -22059,7 +22208,6 @@ def from_dict(cls, d):
2205922208
port=d.get('port'),
2206022209
port_override=d.get('port_override'),
2206122210
proxy_cluster_id=d.get('proxy_cluster_id'),
22062-
replica_set=d.get('replica_set'),
2206322211
secret_store_id=d.get('secret_store_id'),
2206422212
subdomain=d.get('subdomain'),
2206522213
tags=d.get('tags'),

0 commit comments

Comments
 (0)