Skip to content

Commit c16062b

Browse files
committed
15.33.0
1 parent 130fb57 commit c16062b

File tree

8 files changed

+349
-62
lines changed

8 files changed

+349
-62
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.31.0',
26+
version='15.33.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='[email protected]',
3333
url='https://github.com/strongdm/strongdm-sdk-python',
3434
download_url=
35-
'https://github.com/strongdm/strongdm-sdk-python/archive/v15.31.0.tar.gz',
35+
'https://github.com/strongdm/strongdm-sdk-python/archive/v15.33.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.31.0
3+
Version: 15.33.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: [email protected]
88
License: apache-2.0
9-
Download-URL: https://github.com/strongdm/strongdm-sdk-python/archive/v15.31.0.tar.gz
9+
Download-URL: https://github.com/strongdm/strongdm-sdk-python/archive/v15.33.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
@@ -34,7 +34,7 @@
3434
DEFAULT_RETRY_FACTOR = 1.6
3535
DEFAULT_RETRY_JITTER = 0.2
3636
API_VERSION = '2025-04-14'
37-
USER_AGENT = 'strongdm-sdk-python/15.31.0'
37+
USER_AGENT = 'strongdm-sdk-python/15.33.0'
3838

3939

4040
class Client:

strongdm/models.py

Lines changed: 175 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21660,10 +21660,6 @@ def from_dict(cls, d):
2166021660

2166121661

2166221662
class MysqlEngine:
21663-
'''
21664-
MysqlEngine is currently unstable, and its API may change, or it may be removed,
21665-
without a major version bump.
21666-
'''
2166721663
__slots__ = [
2166821664
'after_read_ttl',
2166921665
'database',
@@ -24511,10 +24507,6 @@ def from_dict(cls, d):
2451124507

2451224508

2451324509
class PostgresEngine:
24514-
'''
24515-
PostgresEngine is currently unstable, and its API may change, or it may be removed,
24516-
without a major version bump.
24517-
'''
2451824510
__slots__ = [
2451924511
'after_read_ttl',
2452024512
'database',
@@ -31778,11 +31770,182 @@ def from_dict(cls, d):
3177831770
)
3177931771

3178031772

31773+
class SqlserverEngine:
31774+
__slots__ = [
31775+
'after_read_ttl',
31776+
'database',
31777+
'hostname',
31778+
'id',
31779+
'key_rotation_interval_days',
31780+
'name',
31781+
'password',
31782+
'policy',
31783+
'port',
31784+
'public_key',
31785+
'secret_store_id',
31786+
'secret_store_root_path',
31787+
'tags',
31788+
'tls',
31789+
'tls_skip_verify',
31790+
'ttl',
31791+
'username',
31792+
]
31793+
31794+
def __init__(
31795+
self,
31796+
after_read_ttl=None,
31797+
database=None,
31798+
hostname=None,
31799+
id=None,
31800+
key_rotation_interval_days=None,
31801+
name=None,
31802+
password=None,
31803+
policy=None,
31804+
port=None,
31805+
public_key=None,
31806+
secret_store_id=None,
31807+
secret_store_root_path=None,
31808+
tags=None,
31809+
tls=None,
31810+
tls_skip_verify=None,
31811+
ttl=None,
31812+
username=None,
31813+
):
31814+
self.after_read_ttl = after_read_ttl if after_read_ttl is not None else None
31815+
'''
31816+
The default time-to-live duration of the password after it's read. Once the ttl has passed, a password will be rotated.
31817+
'''
31818+
self.database = database if database is not None else ''
31819+
'''
31820+
Database is the database to verify credential against.
31821+
'''
31822+
self.hostname = hostname if hostname is not None else ''
31823+
'''
31824+
Hostname is the hostname or IP address of the SQL Server.
31825+
'''
31826+
self.id = id if id is not None else ''
31827+
'''
31828+
Unique identifier of the Secret Engine.
31829+
'''
31830+
self.key_rotation_interval_days = key_rotation_interval_days if key_rotation_interval_days is not None else 0
31831+
'''
31832+
An interval of public/private key rotation for secret engine in days
31833+
'''
31834+
self.name = name if name is not None else ''
31835+
'''
31836+
Unique human-readable name of the Secret Engine.
31837+
'''
31838+
self.password = password if password is not None else ''
31839+
'''
31840+
Password is the password to connect to the SQL Server server.
31841+
'''
31842+
self.policy = policy if policy is not None else None
31843+
'''
31844+
Policy for password creation
31845+
'''
31846+
self.port = port if port is not None else 0
31847+
'''
31848+
Port is the port number of the SQL Server server.
31849+
'''
31850+
self.public_key = public_key if public_key is not None else b''
31851+
'''
31852+
Public key linked with a secret engine
31853+
'''
31854+
self.secret_store_id = secret_store_id if secret_store_id is not None else ''
31855+
'''
31856+
Backing secret store identifier
31857+
'''
31858+
self.secret_store_root_path = secret_store_root_path if secret_store_root_path is not None else ''
31859+
'''
31860+
Backing Secret Store root path where managed secrets are going to be stored
31861+
'''
31862+
self.tags = tags if tags is not None else _porcelain_zero_value_tags()
31863+
'''
31864+
Tags is a map of key, value pairs.
31865+
'''
31866+
self.tls = tls if tls is not None else False
31867+
'''
31868+
TLS enables TLS/SSL when connecting to the SQL Server server.
31869+
'''
31870+
self.tls_skip_verify = tls_skip_verify if tls_skip_verify is not None else False
31871+
'''
31872+
TLS disable certificate verification
31873+
'''
31874+
self.ttl = ttl if ttl is not None else None
31875+
'''
31876+
The default password time-to-live duration. Once the ttl has passed, a password will be rotated the next time it's requested.
31877+
'''
31878+
self.username = username if username is not None else ''
31879+
'''
31880+
Username is the username to connect to the SQL Server.
31881+
'''
31882+
31883+
def __repr__(self):
31884+
return '<sdm.SqlserverEngine ' + \
31885+
'after_read_ttl: ' + repr(self.after_read_ttl) + ' ' +\
31886+
'database: ' + repr(self.database) + ' ' +\
31887+
'hostname: ' + repr(self.hostname) + ' ' +\
31888+
'id: ' + repr(self.id) + ' ' +\
31889+
'key_rotation_interval_days: ' + repr(self.key_rotation_interval_days) + ' ' +\
31890+
'name: ' + repr(self.name) + ' ' +\
31891+
'password: ' + repr(self.password) + ' ' +\
31892+
'policy: ' + repr(self.policy) + ' ' +\
31893+
'port: ' + repr(self.port) + ' ' +\
31894+
'public_key: ' + repr(self.public_key) + ' ' +\
31895+
'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
31896+
'secret_store_root_path: ' + repr(self.secret_store_root_path) + ' ' +\
31897+
'tags: ' + repr(self.tags) + ' ' +\
31898+
'tls: ' + repr(self.tls) + ' ' +\
31899+
'tls_skip_verify: ' + repr(self.tls_skip_verify) + ' ' +\
31900+
'ttl: ' + repr(self.ttl) + ' ' +\
31901+
'username: ' + repr(self.username) + ' ' +\
31902+
'>'
31903+
31904+
def to_dict(self):
31905+
return {
31906+
'after_read_ttl': self.after_read_ttl,
31907+
'database': self.database,
31908+
'hostname': self.hostname,
31909+
'id': self.id,
31910+
'key_rotation_interval_days': self.key_rotation_interval_days,
31911+
'name': self.name,
31912+
'password': self.password,
31913+
'policy': self.policy,
31914+
'port': self.port,
31915+
'public_key': self.public_key,
31916+
'secret_store_id': self.secret_store_id,
31917+
'secret_store_root_path': self.secret_store_root_path,
31918+
'tags': self.tags,
31919+
'tls': self.tls,
31920+
'tls_skip_verify': self.tls_skip_verify,
31921+
'ttl': self.ttl,
31922+
'username': self.username,
31923+
}
31924+
31925+
@classmethod
31926+
def from_dict(cls, d):
31927+
return cls(
31928+
after_read_ttl=d.get('after_read_ttl'),
31929+
database=d.get('database'),
31930+
hostname=d.get('hostname'),
31931+
id=d.get('id'),
31932+
key_rotation_interval_days=d.get('key_rotation_interval_days'),
31933+
name=d.get('name'),
31934+
password=d.get('password'),
31935+
policy=d.get('policy'),
31936+
port=d.get('port'),
31937+
public_key=d.get('public_key'),
31938+
secret_store_id=d.get('secret_store_id'),
31939+
secret_store_root_path=d.get('secret_store_root_path'),
31940+
tags=d.get('tags'),
31941+
tls=d.get('tls'),
31942+
tls_skip_verify=d.get('tls_skip_verify'),
31943+
ttl=d.get('ttl'),
31944+
username=d.get('username'),
31945+
)
31946+
31947+
3178131948
class StrongVaultStore:
31782-
'''
31783-
StrongVaultStore is currently unstable, and its API may change, or it may be removed,
31784-
without a major version bump.
31785-
'''
3178631949
__slots__ = [
3178731950
'id',
3178831951
'name',

strongdm/plumbing.py

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15312,6 +15312,9 @@ def convert_secret_engine_to_plumbing(porcelain):
1531215312
if isinstance(porcelain, models.PostgresEngine):
1531315313
plumbing.postgres.CopyFrom(
1531415314
convert_postgres_engine_to_plumbing(porcelain))
15315+
if isinstance(porcelain, models.SqlserverEngine):
15316+
plumbing.sqlserver.CopyFrom(
15317+
convert_sqlserver_engine_to_plumbing(porcelain))
1531515318
return plumbing
1531615319

1531715320

@@ -15327,6 +15330,8 @@ def convert_secret_engine_to_porcelain(plumbing):
1532715330
return convert_mysql_engine_to_porcelain(plumbing.mysql)
1532815331
if plumbing.HasField('postgres'):
1532915332
return convert_postgres_engine_to_porcelain(plumbing.postgres)
15333+
if plumbing.HasField('sqlserver'):
15334+
return convert_sqlserver_engine_to_porcelain(plumbing.sqlserver)
1533015335
raise errors.UnknownError(
1533115336
"unknown polymorphic type, please upgrade your SDK")
1533215337

@@ -16507,6 +16512,74 @@ def convert_repeated_snowsight_to_porcelain(plumbings):
1650716512
return [convert_snowsight_to_porcelain(plumbing) for plumbing in plumbings]
1650816513

1650916514

16515+
def convert_sqlserver_engine_to_porcelain(plumbing):
16516+
if plumbing is None:
16517+
return None
16518+
porcelain = models.SqlserverEngine()
16519+
porcelain.after_read_ttl = convert_duration_to_porcelain(
16520+
plumbing.after_read_ttl)
16521+
porcelain.database = (plumbing.database)
16522+
porcelain.hostname = (plumbing.hostname)
16523+
porcelain.id = (plumbing.id)
16524+
porcelain.key_rotation_interval_days = (
16525+
plumbing.key_rotation_interval_days)
16526+
porcelain.name = (plumbing.name)
16527+
porcelain.password = (plumbing.password)
16528+
porcelain.policy = convert_secret_engine_policy_to_porcelain(
16529+
plumbing.policy)
16530+
porcelain.port = (plumbing.port)
16531+
porcelain.public_key = (plumbing.public_key)
16532+
porcelain.secret_store_id = (plumbing.secret_store_id)
16533+
porcelain.secret_store_root_path = (plumbing.secret_store_root_path)
16534+
porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
16535+
porcelain.tls = (plumbing.tls)
16536+
porcelain.tls_skip_verify = (plumbing.tls_skip_verify)
16537+
porcelain.ttl = convert_duration_to_porcelain(plumbing.ttl)
16538+
porcelain.username = (plumbing.username)
16539+
return porcelain
16540+
16541+
16542+
def convert_sqlserver_engine_to_plumbing(porcelain):
16543+
plumbing = SqlserverEngine()
16544+
if porcelain is None:
16545+
return plumbing
16546+
plumbing.after_read_ttl.CopyFrom(
16547+
convert_duration_to_plumbing(porcelain.after_read_ttl))
16548+
plumbing.database = (porcelain.database)
16549+
plumbing.hostname = (porcelain.hostname)
16550+
plumbing.id = (porcelain.id)
16551+
plumbing.key_rotation_interval_days = (
16552+
porcelain.key_rotation_interval_days)
16553+
plumbing.name = (porcelain.name)
16554+
plumbing.password = (porcelain.password)
16555+
plumbing.policy.CopyFrom(
16556+
convert_secret_engine_policy_to_plumbing(porcelain.policy))
16557+
plumbing.port = (porcelain.port)
16558+
plumbing.public_key = (porcelain.public_key)
16559+
plumbing.secret_store_id = (porcelain.secret_store_id)
16560+
plumbing.secret_store_root_path = (porcelain.secret_store_root_path)
16561+
plumbing.tags.CopyFrom(convert_tags_to_plumbing(porcelain.tags))
16562+
plumbing.tls = (porcelain.tls)
16563+
plumbing.tls_skip_verify = (porcelain.tls_skip_verify)
16564+
plumbing.ttl.CopyFrom(convert_duration_to_plumbing(porcelain.ttl))
16565+
plumbing.username = (porcelain.username)
16566+
return plumbing
16567+
16568+
16569+
def convert_repeated_sqlserver_engine_to_plumbing(porcelains):
16570+
return [
16571+
convert_sqlserver_engine_to_plumbing(porcelain)
16572+
for porcelain in porcelains
16573+
]
16574+
16575+
16576+
def convert_repeated_sqlserver_engine_to_porcelain(plumbings):
16577+
return [
16578+
convert_sqlserver_engine_to_porcelain(plumbing)
16579+
for plumbing in plumbings
16580+
]
16581+
16582+
1651016583
def convert_strong_vault_store_to_porcelain(plumbing):
1651116584
if plumbing is None:
1651216585
return None

0 commit comments

Comments
 (0)