strongdm 3.6.0__zip → 3.7.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.
Files changed (83) hide show
  1. {strongdm-3.6.0 → strongdm-3.7.0}/PKG-INFO +2 -2
  2. {strongdm-3.6.0 → strongdm-3.7.0}/setup.py +2 -2
  3. strongdm-3.7.0/strongdm/account_attachments_history_pb2.py +96 -0
  4. strongdm-3.7.0/strongdm/account_attachments_history_pb2_grpc.py +84 -0
  5. strongdm-3.7.0/strongdm/account_grants_history_pb2.py +96 -0
  6. strongdm-3.7.0/strongdm/account_grants_history_pb2_grpc.py +84 -0
  7. strongdm-3.7.0/strongdm/account_permissions_pb2.py +97 -0
  8. strongdm-3.7.0/strongdm/account_permissions_pb2_grpc.py +87 -0
  9. strongdm-3.7.0/strongdm/account_resources_pb2.py +99 -0
  10. strongdm-3.7.0/strongdm/account_resources_pb2_grpc.py +87 -0
  11. strongdm-3.7.0/strongdm/accounts_history_pb2.py +96 -0
  12. strongdm-3.7.0/strongdm/accounts_history_pb2_grpc.py +84 -0
  13. strongdm-3.7.0/strongdm/activities_pb2.py +177 -0
  14. strongdm-3.7.0/strongdm/activities_pb2_grpc.py +124 -0
  15. strongdm-3.7.0/strongdm/client.py +432 -0
  16. strongdm-3.7.0/strongdm/constants.py +377 -0
  17. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/drivers_pb2.py +172 -172
  18. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/models.py +1868 -132
  19. strongdm-3.7.0/strongdm/nodes_history_pb2.py +96 -0
  20. strongdm-3.7.0/strongdm/nodes_history_pb2_grpc.py +84 -0
  21. strongdm-3.7.0/strongdm/organization_history_pb2.py +154 -0
  22. strongdm-3.7.0/strongdm/organization_history_pb2_grpc.py +84 -0
  23. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/plumbing.py +947 -0
  24. strongdm-3.7.0/strongdm/queries_pb2.py +133 -0
  25. strongdm-3.7.0/strongdm/queries_pb2_grpc.py +90 -0
  26. strongdm-3.7.0/strongdm/remote_identities_history_pb2.py +96 -0
  27. strongdm-3.7.0/strongdm/remote_identities_history_pb2_grpc.py +84 -0
  28. strongdm-3.7.0/strongdm/remote_identity_groups_history_pb2.py +96 -0
  29. strongdm-3.7.0/strongdm/remote_identity_groups_history_pb2_grpc.py +84 -0
  30. strongdm-3.7.0/strongdm/replays_pb2.py +107 -0
  31. strongdm-3.7.0/strongdm/replays_pb2_grpc.py +87 -0
  32. strongdm-3.7.0/strongdm/resources_history_pb2.py +96 -0
  33. strongdm-3.7.0/strongdm/resources_history_pb2_grpc.py +84 -0
  34. strongdm-3.7.0/strongdm/role_resources_history_pb2.py +96 -0
  35. strongdm-3.7.0/strongdm/role_resources_history_pb2_grpc.py +84 -0
  36. strongdm-3.7.0/strongdm/role_resources_pb2.py +93 -0
  37. strongdm-3.7.0/strongdm/role_resources_pb2_grpc.py +87 -0
  38. strongdm-3.7.0/strongdm/roles_history_pb2.py +96 -0
  39. strongdm-3.7.0/strongdm/roles_history_pb2_grpc.py +84 -0
  40. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/secret_store_types_pb2.py +11 -11
  41. strongdm-3.7.0/strongdm/secret_stores_history_pb2.py +96 -0
  42. strongdm-3.7.0/strongdm/secret_stores_history_pb2_grpc.py +84 -0
  43. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/svc.py +1199 -12
  44. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm.egg-info/PKG-INFO +2 -2
  45. strongdm-3.7.0/strongdm.egg-info/SOURCES.txt +78 -0
  46. strongdm-3.6.0/strongdm/client.py +0 -199
  47. strongdm-3.6.0/strongdm/constants.py +0 -53
  48. strongdm-3.6.0/strongdm.egg-info/SOURCES.txt +0 -44
  49. {strongdm-3.6.0 → strongdm-3.7.0}/README.md +0 -0
  50. {strongdm-3.6.0 → strongdm-3.7.0}/setup.cfg +0 -0
  51. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/__init__.py +0 -0
  52. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/account_attachments_pb2.py +0 -0
  53. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/account_attachments_pb2_grpc.py +0 -0
  54. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/account_grants_pb2.py +0 -0
  55. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/account_grants_pb2_grpc.py +0 -0
  56. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/accounts_pb2.py +0 -0
  57. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/accounts_pb2_grpc.py +0 -0
  58. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/control_panel_pb2.py +0 -0
  59. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/control_panel_pb2_grpc.py +0 -0
  60. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/drivers_pb2_grpc.py +0 -0
  61. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/errors.py +0 -0
  62. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/nodes_pb2.py +0 -0
  63. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/nodes_pb2_grpc.py +0 -0
  64. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/options_pb2.py +0 -0
  65. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/options_pb2_grpc.py +0 -0
  66. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/remote_identities_pb2.py +0 -0
  67. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/remote_identities_pb2_grpc.py +0 -0
  68. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/remote_identity_groups_pb2.py +0 -0
  69. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/remote_identity_groups_pb2_grpc.py +0 -0
  70. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/resources_pb2.py +0 -0
  71. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/resources_pb2_grpc.py +0 -0
  72. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/roles_pb2.py +0 -0
  73. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/roles_pb2_grpc.py +0 -0
  74. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/secret_store_types_pb2_grpc.py +0 -0
  75. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/secret_stores_pb2.py +0 -0
  76. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/secret_stores_pb2_grpc.py +0 -0
  77. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/spec_pb2.py +0 -0
  78. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/spec_pb2_grpc.py +0 -0
  79. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/tags_pb2.py +0 -0
  80. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm/tags_pb2_grpc.py +0 -0
  81. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm.egg-info/dependency_links.txt +0 -0
  82. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm.egg-info/requires.txt +1 -1
  83. {strongdm-3.6.0 → strongdm-3.7.0}/strongdm.egg-info/top_level.txt +0 -0
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: strongdm
3
- Version: 3.6.0
3
+ Version: 3.7.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/v3.6.0.tar.gz
9
+ Download-URL: https://github.com/strongdm/strongdm-sdk-python/archive/v3.7.0.tar.gz
10
10
  Description: # strongDM SDK for Python
11
11
 
12
12
  This is the official [strongDM](https://www.strongdm.com/) SDK for the Python
@@ -0,0 +1,78 @@
1
+ README.md
2
+ setup.py
3
+ strongdm/__init__.py
4
+ strongdm/account_attachments_history_pb2.py
5
+ strongdm/account_attachments_history_pb2_grpc.py
6
+ strongdm/account_attachments_pb2.py
7
+ strongdm/account_attachments_pb2_grpc.py
8
+ strongdm/account_grants_history_pb2.py
9
+ strongdm/account_grants_history_pb2_grpc.py
10
+ strongdm/account_grants_pb2.py
11
+ strongdm/account_grants_pb2_grpc.py
12
+ strongdm/account_permissions_pb2.py
13
+ strongdm/account_permissions_pb2_grpc.py
14
+ strongdm/account_resources_pb2.py
15
+ strongdm/account_resources_pb2_grpc.py
16
+ strongdm/accounts_history_pb2.py
17
+ strongdm/accounts_history_pb2_grpc.py
18
+ strongdm/accounts_pb2.py
19
+ strongdm/accounts_pb2_grpc.py
20
+ strongdm/activities_pb2.py
21
+ strongdm/activities_pb2_grpc.py
22
+ strongdm/client.py
23
+ strongdm/constants.py
24
+ strongdm/control_panel_pb2.py
25
+ strongdm/control_panel_pb2_grpc.py
26
+ strongdm/drivers_pb2.py
27
+ strongdm/drivers_pb2_grpc.py
28
+ strongdm/errors.py
29
+ strongdm/models.py
30
+ strongdm/nodes_history_pb2.py
31
+ strongdm/nodes_history_pb2_grpc.py
32
+ strongdm/nodes_pb2.py
33
+ strongdm/nodes_pb2_grpc.py
34
+ strongdm/options_pb2.py
35
+ strongdm/options_pb2_grpc.py
36
+ strongdm/organization_history_pb2.py
37
+ strongdm/organization_history_pb2_grpc.py
38
+ strongdm/plumbing.py
39
+ strongdm/queries_pb2.py
40
+ strongdm/queries_pb2_grpc.py
41
+ strongdm/remote_identities_history_pb2.py
42
+ strongdm/remote_identities_history_pb2_grpc.py
43
+ strongdm/remote_identities_pb2.py
44
+ strongdm/remote_identities_pb2_grpc.py
45
+ strongdm/remote_identity_groups_history_pb2.py
46
+ strongdm/remote_identity_groups_history_pb2_grpc.py
47
+ strongdm/remote_identity_groups_pb2.py
48
+ strongdm/remote_identity_groups_pb2_grpc.py
49
+ strongdm/replays_pb2.py
50
+ strongdm/replays_pb2_grpc.py
51
+ strongdm/resources_history_pb2.py
52
+ strongdm/resources_history_pb2_grpc.py
53
+ strongdm/resources_pb2.py
54
+ strongdm/resources_pb2_grpc.py
55
+ strongdm/role_resources_history_pb2.py
56
+ strongdm/role_resources_history_pb2_grpc.py
57
+ strongdm/role_resources_pb2.py
58
+ strongdm/role_resources_pb2_grpc.py
59
+ strongdm/roles_history_pb2.py
60
+ strongdm/roles_history_pb2_grpc.py
61
+ strongdm/roles_pb2.py
62
+ strongdm/roles_pb2_grpc.py
63
+ strongdm/secret_store_types_pb2.py
64
+ strongdm/secret_store_types_pb2_grpc.py
65
+ strongdm/secret_stores_history_pb2.py
66
+ strongdm/secret_stores_history_pb2_grpc.py
67
+ strongdm/secret_stores_pb2.py
68
+ strongdm/secret_stores_pb2_grpc.py
69
+ strongdm/spec_pb2.py
70
+ strongdm/spec_pb2_grpc.py
71
+ strongdm/svc.py
72
+ strongdm/tags_pb2.py
73
+ strongdm/tags_pb2_grpc.py
74
+ strongdm.egg-info/PKG-INFO
75
+ strongdm.egg-info/SOURCES.txt
76
+ strongdm.egg-info/dependency_links.txt
77
+ strongdm.egg-info/requires.txt
78
+ strongdm.egg-info/top_level.txt
@@ -1,199 +0,0 @@
1
- # Copyright 2020 StrongDM Inc
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
- #
15
-
16
- # This file was generated by protogen. DO NOT EDIT.
17
-
18
- import grpc
19
- import hmac
20
- import random
21
- import hashlib
22
- import base64
23
- import datetime
24
- import time
25
- from . import svc
26
- from . import plumbing
27
-
28
- # These defaults are taken from AWS. Customization of these values
29
- # is a future step in the API.
30
- DEFAULT_MAX_RETRIES = 3
31
- DEFAULT_BASE_RETRY_DELAY = 0.0030 # 30 ms
32
- DEFAULT_MAX_RETRY_DELAY = 300 # 300 seconds
33
- API_VERSION = '2021-08-23'
34
- USER_AGENT = 'strongdm-sdk-python/3.6.0'
35
-
36
-
37
- class Client:
38
- '''Client interacts with the strongDM API.'''
39
- def __init__(self,
40
- api_access_key,
41
- api_secret,
42
- host='api.strongdm.com:443',
43
- insecure=False,
44
- retry_rate_limit_errors=True):
45
- '''
46
- Create a new Client.
47
-
48
- - api_access_key: the access key to authenticate with strongDM
49
- - api_secret: the secret key to authenticate with strongDM
50
- '''
51
- self.api_access_key = api_access_key.strip()
52
- self.api_secret = base64.b64decode(api_secret.strip())
53
- self.max_retries = DEFAULT_MAX_RETRIES
54
- self.base_retry_delay = DEFAULT_BASE_RETRY_DELAY
55
- self.max_retry_delay = DEFAULT_MAX_RETRY_DELAY
56
- self.expose_rate_limit_errors = (not retry_rate_limit_errors)
57
- self._test_options = {}
58
-
59
- try:
60
- if insecure:
61
- channel = grpc.insecure_channel(host)
62
- else:
63
- creds = grpc.ssl_channel_credentials()
64
- channel = grpc.secure_channel(host, creds)
65
- except Exception as e:
66
- raise plumbing.convert_error_to_porcelain(e) from e
67
- self.channel = channel
68
- self.account_attachments = svc.AccountAttachments(channel, self)
69
- '''
70
- AccountAttachments assign an account to a role.
71
-
72
- See `strongdm.svc.AccountAttachments`.
73
- '''
74
- self.account_grants = svc.AccountGrants(channel, self)
75
- '''
76
- AccountGrants assign a resource directly to an account, giving the account the permission to connect to that resource.
77
-
78
- See `strongdm.svc.AccountGrants`.
79
- '''
80
- self.accounts = svc.Accounts(channel, self)
81
- '''
82
- Accounts are users that have access to strongDM. There are two types of accounts:
83
- 1. **Users:** humans who are authenticated through username and password or SSO.
84
- 2. **Service Accounts:** machines that are authenticated using a service token.
85
-
86
- See `strongdm.svc.Accounts`.
87
- '''
88
- self.control_panel = svc.ControlPanel(channel, self)
89
- '''
90
- ControlPanel contains all administrative controls.
91
-
92
- See `strongdm.svc.ControlPanel`.
93
- '''
94
- self.nodes = svc.Nodes(channel, self)
95
- '''
96
- Nodes make up the strongDM network, and allow your users to connect securely to your resources. There are two types of nodes:
97
- - **Gateways** are the entry points into network. They listen for connection from the strongDM client, and provide access to databases and servers.
98
- - **Relays** are used to extend the strongDM network into segmented subnets. They provide access to databases and servers but do not listen for incoming connections.
99
-
100
- See `strongdm.svc.Nodes`.
101
- '''
102
- self.remote_identities = svc.RemoteIdentities(channel, self)
103
- '''
104
- RemoteIdentities assign a resource directly to an account, giving the account the permission to connect to that resource.
105
-
106
- See `strongdm.svc.RemoteIdentities`.
107
- '''
108
- self.remote_identity_groups = svc.RemoteIdentityGroups(channel, self)
109
- '''
110
- A RemoteIdentityGroup is a named grouping of Remote Identities for Accounts.
111
- An Account's relationship to a RemoteIdentityGroup is defined via RemoteIdentity objects.
112
-
113
- See `strongdm.svc.RemoteIdentityGroups`.
114
- '''
115
- self.resources = svc.Resources(channel, self)
116
- '''
117
- Resources are databases, servers, clusters, websites, or clouds that strongDM
118
- delegates access to.
119
-
120
- See `strongdm.svc.Resources`.
121
- '''
122
- self.roles = svc.Roles(channel, self)
123
- '''
124
- A Role has a list of access rules which determine which Resources the members
125
- of the Role have access to. An Account can be a member of multiple Roles via
126
- AccountAttachments.
127
-
128
- See `strongdm.svc.Roles`.
129
- '''
130
- self.secret_stores = svc.SecretStores(channel, self)
131
- '''
132
- SecretStores are servers where resource secrets (passwords, keys) are stored.
133
-
134
- See `strongdm.svc.SecretStores`.
135
- '''
136
-
137
- def close(self):
138
- '''Closes this Client and releases all resources held by it.
139
-
140
- Closing the Client will immediately terminate all RPCs active with the
141
- Client and it is not valid to invoke new RPCs with the Client.
142
-
143
- This method is idempotent.
144
- '''
145
- self.channel.close()
146
-
147
- def get_metadata(self, method_name, req):
148
- return [
149
- ('x-sdm-authentication', self.api_access_key),
150
- ('x-sdm-signature', self.sign(method_name,
151
- req.SerializeToString())),
152
- ('x-sdm-api-version', API_VERSION),
153
- ('x-sdm-user-agent', USER_AGENT),
154
- ]
155
-
156
- def sign(self, method_name, request_bytes):
157
- def hmac_digest(key, msg_byte_string):
158
- return hmac.new(key, msg=msg_byte_string,
159
- digestmod=hashlib.sha256).digest()
160
-
161
- current_utc_date = datetime.datetime.utcnow().strftime('%Y-%m-%d')
162
- signing_key = hmac_digest(self.api_secret, current_utc_date.encode())
163
- signing_key = hmac_digest(signing_key, b'sdm_api_v1')
164
-
165
- hash = hashlib.sha256()
166
-
167
- hash.update(method_name.encode())
168
- hash.update(b'\n')
169
- hash.update(request_bytes)
170
-
171
- return base64.b64encode(hmac_digest(signing_key, hash.digest()))
172
-
173
- def jitterSleep(self, iter):
174
- dur_max = self.base_retry_delay * 2**iter
175
- if (dur_max > self.max_retry_delay):
176
- dur_max = self.max_retry_delay
177
- # get a value between 0 and max
178
- dur = random.random() * dur_max
179
- time.sleep(dur)
180
-
181
- def shouldRetry(self, iter, err):
182
- if (iter >= self.max_retries - 1):
183
- return False
184
- if not isinstance(err, grpc.RpcError):
185
- return True
186
- if (not self.expose_rate_limit_errors
187
- ) and err.code() == grpc.StatusCode.RESOURCE_EXHAUSTED:
188
- porcelain_err = plumbing.convert_error_to_porcelain(err)
189
- wait_until = porcelain_err.rate_limit.reset_at
190
- now = datetime.datetime.now(datetime.timezone.utc)
191
- sleep_for = (wait_until - now).total_seconds()
192
- # If timezones or clock drift causes this calculation to fail,
193
- # wait at most one minute.
194
- if sleep_for < 0 or sleep_for > 60:
195
- sleep_for = 60
196
- time.sleep(sleep_for)
197
- return True
198
- return err.code() == grpc.StatusCode.INTERNAL or err.code(
199
- ) == grpc.StatusCode.UNAVAILABLE
@@ -1,53 +0,0 @@
1
- # Copyright 2020 StrongDM Inc
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
- #
15
- # @internal This file was generated by constgen. DO NOT EDIT.
16
-
17
-
18
- # Permission Levels, shared by all entities capable of making authenticated requests against StrongDM.
19
- class PermissionLevel:
20
- ROOT_ADMIN = "root-admin"
21
- ADMIN = "admin"
22
- DATABASE_ADMIN = "database-admin"
23
- TEAM_LEADER = "multi-team-leader"
24
- USER = "user"
25
- RELAY = "relay"
26
- ADMIN_TOKEN = "admin-token"
27
- SCIM_TOKEN = "scim-token"
28
- SERVICE = "service"
29
- SUSPENDED = "suspended"
30
- EMPTY = ""
31
-
32
-
33
- # Node Lifecycle States, defining whether a node was last reported online, offline, restarting, etc.
34
- class NodeState:
35
- NEW = "new"
36
- VERIFYING_RESTART = "verifying_restart"
37
- AWAITING_RESTART = "awaiting_restart"
38
- RESTARTING = "restarting"
39
- STARTED = "started"
40
- STOPPED = "stopped"
41
- DEAD = "dead"
42
-
43
-
44
- # Providers responsible for managing roles and users.
45
- # None, or an empty string, implies the user is managed by strongDM.
46
- class Provider:
47
- NONE = ""
48
- OKTA = "okta"
49
- SAIL_POINT = "sailpoint"
50
- AZURE = "azure"
51
- GENERIC = "generic"
52
- ONE_LOGIN = "onelogin"
53
- GOOGLE = "google"
@@ -1,44 +0,0 @@
1
- README.md
2
- setup.py
3
- strongdm/__init__.py
4
- strongdm/account_attachments_pb2.py
5
- strongdm/account_attachments_pb2_grpc.py
6
- strongdm/account_grants_pb2.py
7
- strongdm/account_grants_pb2_grpc.py
8
- strongdm/accounts_pb2.py
9
- strongdm/accounts_pb2_grpc.py
10
- strongdm/client.py
11
- strongdm/constants.py
12
- strongdm/control_panel_pb2.py
13
- strongdm/control_panel_pb2_grpc.py
14
- strongdm/drivers_pb2.py
15
- strongdm/drivers_pb2_grpc.py
16
- strongdm/errors.py
17
- strongdm/models.py
18
- strongdm/nodes_pb2.py
19
- strongdm/nodes_pb2_grpc.py
20
- strongdm/options_pb2.py
21
- strongdm/options_pb2_grpc.py
22
- strongdm/plumbing.py
23
- strongdm/remote_identities_pb2.py
24
- strongdm/remote_identities_pb2_grpc.py
25
- strongdm/remote_identity_groups_pb2.py
26
- strongdm/remote_identity_groups_pb2_grpc.py
27
- strongdm/resources_pb2.py
28
- strongdm/resources_pb2_grpc.py
29
- strongdm/roles_pb2.py
30
- strongdm/roles_pb2_grpc.py
31
- strongdm/secret_store_types_pb2.py
32
- strongdm/secret_store_types_pb2_grpc.py
33
- strongdm/secret_stores_pb2.py
34
- strongdm/secret_stores_pb2_grpc.py
35
- strongdm/spec_pb2.py
36
- strongdm/spec_pb2_grpc.py
37
- strongdm/svc.py
38
- strongdm/tags_pb2.py
39
- strongdm/tags_pb2_grpc.py
40
- strongdm.egg-info/PKG-INFO
41
- strongdm.egg-info/SOURCES.txt
42
- strongdm.egg-info/dependency_links.txt
43
- strongdm.egg-info/requires.txt
44
- strongdm.egg-info/top_level.txt
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,2 +1,2 @@
1
- grpcio>=1.42.0
2
1
  googleapis-common-protos<2,>1.56.2
2
+ grpcio>=1.42.0