strongdm 11.15.0__zip → 11.16.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.15.0 → strongdm-11.16.0}/PKG-INFO +2 -2
- {strongdm-11.15.0 → strongdm-11.16.0}/setup.py +2 -2
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/client.py +8 -1
- strongdm-11.16.0/strongdm/health_checks_pb2.py +107 -0
- strongdm-11.16.0/strongdm/health_checks_pb2_grpc.py +87 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/models.py +130 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/plumbing.py +76 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/svc.py +51 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm.egg-info/PKG-INFO +2 -2
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm.egg-info/SOURCES.txt +2 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/LICENSE +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/README.md +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/setup.cfg +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/__init__.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/access_request_events_history_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/access_request_events_history_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/access_requests_history_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/access_requests_history_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/access_requests_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/access_requests_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/account_attachments_history_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/account_attachments_history_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/account_attachments_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/account_attachments_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/account_grants_history_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/account_grants_history_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/account_grants_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/account_grants_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/account_permissions_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/account_permissions_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/account_resources_history_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/account_resources_history_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/account_resources_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/account_resources_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/accounts_history_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/accounts_history_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/accounts_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/accounts_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/activities_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/activities_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/approval_workflow_approvers_history_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/approval_workflow_approvers_history_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/approval_workflow_approvers_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/approval_workflow_approvers_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/approval_workflow_steps_history_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/approval_workflow_steps_history_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/approval_workflow_steps_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/approval_workflow_steps_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/approval_workflows_history_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/approval_workflows_history_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/approval_workflows_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/approval_workflows_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/constants.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/control_panel_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/control_panel_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/drivers_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/drivers_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/errors.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/identity_aliases_history_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/identity_aliases_history_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/identity_aliases_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/identity_aliases_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/identity_sets_history_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/identity_sets_history_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/identity_sets_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/identity_sets_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/nodes_history_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/nodes_history_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/nodes_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/nodes_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/options_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/options_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/organization_history_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/organization_history_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/peering_group_nodes_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/peering_group_nodes_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/peering_group_peers_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/peering_group_peers_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/peering_group_resources_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/peering_group_resources_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/peering_groups_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/peering_groups_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/policies_history_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/policies_history_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/policies_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/policies_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/proxy_cluster_keys_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/proxy_cluster_keys_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/queries_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/queries_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/remote_identities_history_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/remote_identities_history_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/remote_identities_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/remote_identities_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/remote_identity_groups_history_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/remote_identity_groups_history_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/remote_identity_groups_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/remote_identity_groups_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/replays_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/replays_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/resources_history_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/resources_history_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/resources_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/resources_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/role_resources_history_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/role_resources_history_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/role_resources_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/role_resources_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/roles_history_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/roles_history_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/roles_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/roles_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/secret_engine_policy_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/secret_engine_types_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/secret_store_healths_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/secret_store_healths_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/secret_store_types_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/secret_store_types_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/secret_stores_history_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/secret_stores_history_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/secret_stores_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/secret_stores_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/spec_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/spec_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/tags_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/tags_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/workflow_approvers_history_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/workflow_approvers_history_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/workflow_approvers_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/workflow_approvers_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/workflow_assignments_history_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/workflow_assignments_history_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/workflow_assignments_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/workflow_assignments_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/workflow_roles_history_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/workflow_roles_history_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/workflow_roles_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/workflow_roles_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/workflows_history_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/workflows_history_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/workflows_pb2.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm/workflows_pb2_grpc.py +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm.egg-info/dependency_links.txt +0 -0
- {strongdm-11.15.0 → strongdm-11.16.0}/strongdm.egg-info/requires.txt +0 -0
- {strongdm-11.15.0 → strongdm-11.16.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: 11.
|
3
|
+
Version: 11.16.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.16.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
|
@@ -23,7 +23,7 @@ from setuptools import setup
|
|
23
23
|
setup(
|
24
24
|
name='strongdm',
|
25
25
|
packages=['strongdm'],
|
26
|
-
version='11.
|
26
|
+
version='11.16.0',
|
27
27
|
license='apache-2.0',
|
28
28
|
description='strongDM SDK for the Python programming language.',
|
29
29
|
long_description=long_description,
|
@@ -32,7 +32,7 @@ setup(
|
|
32
32
|
author_email='sdk-feedback@strongdm.com',
|
33
33
|
url='https://github.com/strongdm/strongdm-sdk-python',
|
34
34
|
download_url=
|
35
|
-
'https://github.com/strongdm/strongdm-sdk-python/archive/v11.
|
35
|
+
'https://github.com/strongdm/strongdm-sdk-python/archive/v11.16.0.tar.gz',
|
36
36
|
keywords=[
|
37
37
|
'strongDM', 'sdm', 'api', 'automation', 'security', 'audit',
|
38
38
|
'database', 'server', 'ssh', 'rdp'
|
@@ -33,7 +33,7 @@ DEFAULT_MAX_RETRIES = 3
|
|
33
33
|
DEFAULT_BASE_RETRY_DELAY = 0.0030 # 30 ms
|
34
34
|
DEFAULT_MAX_RETRY_DELAY = 300 # 300 seconds
|
35
35
|
API_VERSION = '2024-03-28'
|
36
|
-
USER_AGENT = 'strongdm-sdk-python/11.
|
36
|
+
USER_AGENT = 'strongdm-sdk-python/11.16.0'
|
37
37
|
|
38
38
|
|
39
39
|
class Client:
|
@@ -204,6 +204,13 @@ class Client:
|
|
204
204
|
|
205
205
|
See `strongdm.svc.ControlPanel`.
|
206
206
|
'''
|
207
|
+
self.health_checks = svc.HealthChecks(channel, self)
|
208
|
+
'''
|
209
|
+
HealthChecks lists the last healthcheck between each node and resource.
|
210
|
+
Note the unconventional capitalization here is to prevent having a collision with GRPC
|
211
|
+
|
212
|
+
See `strongdm.svc.HealthChecks`.
|
213
|
+
'''
|
207
214
|
self.identity_aliases = svc.IdentityAliases(channel, self)
|
208
215
|
'''
|
209
216
|
IdentityAliases assign an alias to an account within an IdentitySet.
|
@@ -0,0 +1,107 @@
|
|
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
|
+
# -*- coding: utf-8 -*-
|
16
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
17
|
+
# source: health_checks.proto
|
18
|
+
"""Generated protocol buffer code."""
|
19
|
+
from google.protobuf import descriptor as _descriptor
|
20
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
21
|
+
from google.protobuf import message as _message
|
22
|
+
from google.protobuf import reflection as _reflection
|
23
|
+
from google.protobuf import symbol_database as _symbol_database
|
24
|
+
# @@protoc_insertion_point(imports)
|
25
|
+
|
26
|
+
_sym_db = _symbol_database.Default()
|
27
|
+
|
28
|
+
|
29
|
+
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
|
30
|
+
from . import options_pb2 as options__pb2
|
31
|
+
from . import spec_pb2 as spec__pb2
|
32
|
+
|
33
|
+
|
34
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13health_checks.proto\x12\x02v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\roptions.proto\x1a\nspec.proto\"\x85\x01\n\x16HealthcheckListRequest\x12%\n\x04meta\x18\x01 \x01(\x0b\x32\x17.v1.ListRequestMetadata\x12\x1a\n\x06\x66ilter\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:(\xfa\xf8\xb3\x07\x06\xd2\xf3\xb3\x07\x01*\xfa\xf8\xb3\x07\x18\xd2\xf3\xb3\x07\x13!terraform-provider\"\x81\x02\n\x17HealthcheckListResponse\x12&\n\x04meta\x18\x01 \x01(\x0b\x32\x18.v1.ListResponseMetadata\x12\x31\n\x0chealthchecks\x18\x02 \x03(\x0b\x32\x0f.v1.HealthcheckB\n\xf2\xf8\xb3\x07\x05\xb8\xf3\xb3\x07\x01\x12W\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB,\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\xf2\xf8\xb3\x07\x06\xb2\xf4\xb3\x07\x01*\xf2\xf8\xb3\x07\x12\xb2\xf4\xb3\x07\r!json_gateway:2\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\xfa\xf8\xb3\x07\x06\xd2\xf3\xb3\x07\x01*\xfa\xf8\xb3\x07\x18\xd2\xf3\xb3\x07\x13!terraform-provider\"\xf3\x02\n\x0bHealthcheck\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12$\n\x0bresource_id\x18\x02 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12&\n\rresource_name\x18\x03 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12 \n\x07node_id\x18\x04 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\"\n\tnode_name\x18\x05 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12 \n\x07healthy\x18\x06 \x01(\x08\x42\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\x1d\n\terror_msg\x18\x07 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12>\n\ttimestamp\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01:2\xfa\xf8\xb3\x07\x05\xa8\xf3\xb3\x07\x01\xfa\xf8\xb3\x07\x06\xd2\xf3\xb3\x07\x01*\xfa\xf8\xb3\x07\x18\xd2\xf3\xb3\x07\x13!terraform-provider2\xc1\x01\n\x0cHealthChecks\x12h\n\x04List\x12\x1a.v1.HealthcheckListRequest\x1a\x1b.v1.HealthcheckListResponse\"\'\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07\x15\xaa\xf3\xb3\x07\x10/v1/healthchecks\x1aG\xca\xf9\xb3\x07\x10\xc2\xf9\xb3\x07\x0bHealthcheck\xca\xf9\xb3\x07\x05\xd8\xf9\xb3\x07\x01\xca\xf9\xb3\x07\x06\xca\xf9\xb3\x07\x01*\xca\xf9\xb3\x07\x18\xca\xf9\xb3\x07\x13!terraform-providerB\x90\x01\n\x19\x63om.strongdm.api.plumbingB\x14HealthChecksPlumbingZ5github.com/strongdm/strongdm-sdk-go/v3/internal/v1;v1\xc2\x92\xb4\x07\x06\xa2\x8c\xb4\x07\x01*\xc2\x92\xb4\x07\x18\xa2\x8c\xb4\x07\x13!terraform-providerb\x06proto3')
|
35
|
+
|
36
|
+
|
37
|
+
|
38
|
+
_HEALTHCHECKLISTREQUEST = DESCRIPTOR.message_types_by_name['HealthcheckListRequest']
|
39
|
+
_HEALTHCHECKLISTRESPONSE = DESCRIPTOR.message_types_by_name['HealthcheckListResponse']
|
40
|
+
_HEALTHCHECK = DESCRIPTOR.message_types_by_name['Healthcheck']
|
41
|
+
HealthcheckListRequest = _reflection.GeneratedProtocolMessageType('HealthcheckListRequest', (_message.Message,), {
|
42
|
+
'DESCRIPTOR' : _HEALTHCHECKLISTREQUEST,
|
43
|
+
'__module__' : 'health_checks_pb2'
|
44
|
+
# @@protoc_insertion_point(class_scope:v1.HealthcheckListRequest)
|
45
|
+
})
|
46
|
+
_sym_db.RegisterMessage(HealthcheckListRequest)
|
47
|
+
|
48
|
+
HealthcheckListResponse = _reflection.GeneratedProtocolMessageType('HealthcheckListResponse', (_message.Message,), {
|
49
|
+
'DESCRIPTOR' : _HEALTHCHECKLISTRESPONSE,
|
50
|
+
'__module__' : 'health_checks_pb2'
|
51
|
+
# @@protoc_insertion_point(class_scope:v1.HealthcheckListResponse)
|
52
|
+
})
|
53
|
+
_sym_db.RegisterMessage(HealthcheckListResponse)
|
54
|
+
|
55
|
+
Healthcheck = _reflection.GeneratedProtocolMessageType('Healthcheck', (_message.Message,), {
|
56
|
+
'DESCRIPTOR' : _HEALTHCHECK,
|
57
|
+
'__module__' : 'health_checks_pb2'
|
58
|
+
# @@protoc_insertion_point(class_scope:v1.Healthcheck)
|
59
|
+
})
|
60
|
+
_sym_db.RegisterMessage(Healthcheck)
|
61
|
+
|
62
|
+
_HEALTHCHECKS = DESCRIPTOR.services_by_name['HealthChecks']
|
63
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
64
|
+
|
65
|
+
DESCRIPTOR._options = None
|
66
|
+
DESCRIPTOR._serialized_options = b'\n\031com.strongdm.api.plumbingB\024HealthChecksPlumbingZ5github.com/strongdm/strongdm-sdk-go/v3/internal/v1;v1\302\222\264\007\006\242\214\264\007\001*\302\222\264\007\030\242\214\264\007\023!terraform-provider'
|
67
|
+
_HEALTHCHECKLISTREQUEST.fields_by_name['filter']._options = None
|
68
|
+
_HEALTHCHECKLISTREQUEST.fields_by_name['filter']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
|
69
|
+
_HEALTHCHECKLISTREQUEST._options = None
|
70
|
+
_HEALTHCHECKLISTREQUEST._serialized_options = b'\372\370\263\007\006\322\363\263\007\001*\372\370\263\007\030\322\363\263\007\023!terraform-provider'
|
71
|
+
_HEALTHCHECKLISTRESPONSE.fields_by_name['healthchecks']._options = None
|
72
|
+
_HEALTHCHECKLISTRESPONSE.fields_by_name['healthchecks']._serialized_options = b'\362\370\263\007\005\270\363\263\007\001'
|
73
|
+
_HEALTHCHECKLISTRESPONSE.fields_by_name['rate_limit']._options = None
|
74
|
+
_HEALTHCHECKLISTRESPONSE.fields_by_name['rate_limit']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001\362\370\263\007\006\262\364\263\007\001*\362\370\263\007\022\262\364\263\007\r!json_gateway'
|
75
|
+
_HEALTHCHECKLISTRESPONSE._options = None
|
76
|
+
_HEALTHCHECKLISTRESPONSE._serialized_options = b'\372\370\263\007\005\250\363\263\007\001\372\370\263\007\006\322\363\263\007\001*\372\370\263\007\030\322\363\263\007\023!terraform-provider'
|
77
|
+
_HEALTHCHECK.fields_by_name['id']._options = None
|
78
|
+
_HEALTHCHECK.fields_by_name['id']._serialized_options = b'\362\370\263\007\n\260\363\263\007\001\300\363\263\007\001'
|
79
|
+
_HEALTHCHECK.fields_by_name['resource_id']._options = None
|
80
|
+
_HEALTHCHECK.fields_by_name['resource_id']._serialized_options = b'\362\370\263\007\n\260\363\263\007\001\300\363\263\007\001'
|
81
|
+
_HEALTHCHECK.fields_by_name['resource_name']._options = None
|
82
|
+
_HEALTHCHECK.fields_by_name['resource_name']._serialized_options = b'\362\370\263\007\n\260\363\263\007\001\300\363\263\007\001'
|
83
|
+
_HEALTHCHECK.fields_by_name['node_id']._options = None
|
84
|
+
_HEALTHCHECK.fields_by_name['node_id']._serialized_options = b'\362\370\263\007\n\260\363\263\007\001\300\363\263\007\001'
|
85
|
+
_HEALTHCHECK.fields_by_name['node_name']._options = None
|
86
|
+
_HEALTHCHECK.fields_by_name['node_name']._serialized_options = b'\362\370\263\007\n\260\363\263\007\001\300\363\263\007\001'
|
87
|
+
_HEALTHCHECK.fields_by_name['healthy']._options = None
|
88
|
+
_HEALTHCHECK.fields_by_name['healthy']._serialized_options = b'\362\370\263\007\n\260\363\263\007\001\300\363\263\007\001'
|
89
|
+
_HEALTHCHECK.fields_by_name['error_msg']._options = None
|
90
|
+
_HEALTHCHECK.fields_by_name['error_msg']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
|
91
|
+
_HEALTHCHECK.fields_by_name['timestamp']._options = None
|
92
|
+
_HEALTHCHECK.fields_by_name['timestamp']._serialized_options = b'\362\370\263\007\n\260\363\263\007\001\300\363\263\007\001'
|
93
|
+
_HEALTHCHECK._options = None
|
94
|
+
_HEALTHCHECK._serialized_options = b'\372\370\263\007\005\250\363\263\007\001\372\370\263\007\006\322\363\263\007\001*\372\370\263\007\030\322\363\263\007\023!terraform-provider'
|
95
|
+
_HEALTHCHECKS._options = None
|
96
|
+
_HEALTHCHECKS._serialized_options = b'\312\371\263\007\020\302\371\263\007\013Healthcheck\312\371\263\007\005\330\371\263\007\001\312\371\263\007\006\312\371\263\007\001*\312\371\263\007\030\312\371\263\007\023!terraform-provider'
|
97
|
+
_HEALTHCHECKS.methods_by_name['List']._options = None
|
98
|
+
_HEALTHCHECKS.methods_by_name['List']._serialized_options = b'\202\371\263\007\010\242\363\263\007\003get\202\371\263\007\025\252\363\263\007\020/v1/healthchecks'
|
99
|
+
_HEALTHCHECKLISTREQUEST._serialized_start=88
|
100
|
+
_HEALTHCHECKLISTREQUEST._serialized_end=221
|
101
|
+
_HEALTHCHECKLISTRESPONSE._serialized_start=224
|
102
|
+
_HEALTHCHECKLISTRESPONSE._serialized_end=481
|
103
|
+
_HEALTHCHECK._serialized_start=484
|
104
|
+
_HEALTHCHECK._serialized_end=855
|
105
|
+
_HEALTHCHECKS._serialized_start=858
|
106
|
+
_HEALTHCHECKS._serialized_end=1051
|
107
|
+
# @@protoc_insertion_point(module_scope)
|
@@ -0,0 +1,87 @@
|
|
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
|
+
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
16
|
+
"""Client and server classes corresponding to protobuf-defined services."""
|
17
|
+
import grpc
|
18
|
+
|
19
|
+
from . import health_checks_pb2 as health__checks__pb2
|
20
|
+
|
21
|
+
|
22
|
+
class HealthChecksStub(object):
|
23
|
+
"""HealthChecks lists the last healthcheck between each node and resource.
|
24
|
+
Note the unconventional capitalization here is to prevent having a collision with GRPC
|
25
|
+
"""
|
26
|
+
|
27
|
+
def __init__(self, channel):
|
28
|
+
"""Constructor.
|
29
|
+
|
30
|
+
Args:
|
31
|
+
channel: A grpc.Channel.
|
32
|
+
"""
|
33
|
+
self.List = channel.unary_unary(
|
34
|
+
'/v1.HealthChecks/List',
|
35
|
+
request_serializer=health__checks__pb2.HealthcheckListRequest.SerializeToString,
|
36
|
+
response_deserializer=health__checks__pb2.HealthcheckListResponse.FromString,
|
37
|
+
)
|
38
|
+
|
39
|
+
|
40
|
+
class HealthChecksServicer(object):
|
41
|
+
"""HealthChecks lists the last healthcheck between each node and resource.
|
42
|
+
Note the unconventional capitalization here is to prevent having a collision with GRPC
|
43
|
+
"""
|
44
|
+
|
45
|
+
def List(self, request, context):
|
46
|
+
"""List gets a list of Healthchecks matching a given set of criteria.
|
47
|
+
"""
|
48
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
49
|
+
context.set_details('Method not implemented!')
|
50
|
+
raise NotImplementedError('Method not implemented!')
|
51
|
+
|
52
|
+
|
53
|
+
def add_HealthChecksServicer_to_server(servicer, server):
|
54
|
+
rpc_method_handlers = {
|
55
|
+
'List': grpc.unary_unary_rpc_method_handler(
|
56
|
+
servicer.List,
|
57
|
+
request_deserializer=health__checks__pb2.HealthcheckListRequest.FromString,
|
58
|
+
response_serializer=health__checks__pb2.HealthcheckListResponse.SerializeToString,
|
59
|
+
),
|
60
|
+
}
|
61
|
+
generic_handler = grpc.method_handlers_generic_handler(
|
62
|
+
'v1.HealthChecks', rpc_method_handlers)
|
63
|
+
server.add_generic_rpc_handlers((generic_handler,))
|
64
|
+
|
65
|
+
|
66
|
+
# This class is part of an EXPERIMENTAL API.
|
67
|
+
class HealthChecks(object):
|
68
|
+
"""HealthChecks lists the last healthcheck between each node and resource.
|
69
|
+
Note the unconventional capitalization here is to prevent having a collision with GRPC
|
70
|
+
"""
|
71
|
+
|
72
|
+
@staticmethod
|
73
|
+
def List(request,
|
74
|
+
target,
|
75
|
+
options=(),
|
76
|
+
channel_credentials=None,
|
77
|
+
call_credentials=None,
|
78
|
+
insecure=False,
|
79
|
+
compression=None,
|
80
|
+
wait_for_ready=None,
|
81
|
+
timeout=None,
|
82
|
+
metadata=None):
|
83
|
+
return grpc.experimental.unary_unary(request, target, '/v1.HealthChecks/List',
|
84
|
+
health__checks__pb2.HealthcheckListRequest.SerializeToString,
|
85
|
+
health__checks__pb2.HealthcheckListResponse.FromString,
|
86
|
+
options, channel_credentials,
|
87
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
@@ -11344,6 +11344,136 @@ class HTTPNoAuth:
|
|
11344
11344
|
)
|
11345
11345
|
|
11346
11346
|
|
11347
|
+
class Healthcheck:
|
11348
|
+
'''
|
11349
|
+
Healthcheck defines the status of the link between a node and a resource
|
11350
|
+
'''
|
11351
|
+
__slots__ = [
|
11352
|
+
'error_msg',
|
11353
|
+
'healthy',
|
11354
|
+
'id',
|
11355
|
+
'node_id',
|
11356
|
+
'node_name',
|
11357
|
+
'resource_id',
|
11358
|
+
'resource_name',
|
11359
|
+
'timestamp',
|
11360
|
+
]
|
11361
|
+
|
11362
|
+
def __init__(
|
11363
|
+
self,
|
11364
|
+
error_msg=None,
|
11365
|
+
healthy=None,
|
11366
|
+
id=None,
|
11367
|
+
node_id=None,
|
11368
|
+
node_name=None,
|
11369
|
+
resource_id=None,
|
11370
|
+
resource_name=None,
|
11371
|
+
timestamp=None,
|
11372
|
+
):
|
11373
|
+
self.error_msg = error_msg if error_msg is not None else ''
|
11374
|
+
'''
|
11375
|
+
The error if unhealthy
|
11376
|
+
'''
|
11377
|
+
self.healthy = healthy if healthy is not None else False
|
11378
|
+
'''
|
11379
|
+
Whether the healthcheck succeeded.
|
11380
|
+
'''
|
11381
|
+
self.id = id if id is not None else ''
|
11382
|
+
'''
|
11383
|
+
Unique identifier of the healthcheck.
|
11384
|
+
'''
|
11385
|
+
self.node_id = node_id if node_id is not None else ''
|
11386
|
+
'''
|
11387
|
+
Unique identifier of the healthcheck node.
|
11388
|
+
'''
|
11389
|
+
self.node_name = node_name if node_name is not None else ''
|
11390
|
+
'''
|
11391
|
+
The name of the node.
|
11392
|
+
'''
|
11393
|
+
self.resource_id = resource_id if resource_id is not None else ''
|
11394
|
+
'''
|
11395
|
+
Unique identifier of the healthcheck resource.
|
11396
|
+
'''
|
11397
|
+
self.resource_name = resource_name if resource_name is not None else ''
|
11398
|
+
'''
|
11399
|
+
The name of the resource.
|
11400
|
+
'''
|
11401
|
+
self.timestamp = timestamp if timestamp is not None else None
|
11402
|
+
'''
|
11403
|
+
The time at which the healthcheck state was recorded.
|
11404
|
+
'''
|
11405
|
+
|
11406
|
+
def __repr__(self):
|
11407
|
+
return '<sdm.Healthcheck ' + \
|
11408
|
+
'error_msg: ' + repr(self.error_msg) + ' ' +\
|
11409
|
+
'healthy: ' + repr(self.healthy) + ' ' +\
|
11410
|
+
'id: ' + repr(self.id) + ' ' +\
|
11411
|
+
'node_id: ' + repr(self.node_id) + ' ' +\
|
11412
|
+
'node_name: ' + repr(self.node_name) + ' ' +\
|
11413
|
+
'resource_id: ' + repr(self.resource_id) + ' ' +\
|
11414
|
+
'resource_name: ' + repr(self.resource_name) + ' ' +\
|
11415
|
+
'timestamp: ' + repr(self.timestamp) + ' ' +\
|
11416
|
+
'>'
|
11417
|
+
|
11418
|
+
def to_dict(self):
|
11419
|
+
return {
|
11420
|
+
'error_msg': self.error_msg,
|
11421
|
+
'healthy': self.healthy,
|
11422
|
+
'id': self.id,
|
11423
|
+
'node_id': self.node_id,
|
11424
|
+
'node_name': self.node_name,
|
11425
|
+
'resource_id': self.resource_id,
|
11426
|
+
'resource_name': self.resource_name,
|
11427
|
+
'timestamp': self.timestamp,
|
11428
|
+
}
|
11429
|
+
|
11430
|
+
@classmethod
|
11431
|
+
def from_dict(cls, d):
|
11432
|
+
return cls(
|
11433
|
+
error_msg=d.get('error_msg'),
|
11434
|
+
healthy=d.get('healthy'),
|
11435
|
+
id=d.get('id'),
|
11436
|
+
node_id=d.get('node_id'),
|
11437
|
+
node_name=d.get('node_name'),
|
11438
|
+
resource_id=d.get('resource_id'),
|
11439
|
+
resource_name=d.get('resource_name'),
|
11440
|
+
timestamp=d.get('timestamp'),
|
11441
|
+
)
|
11442
|
+
|
11443
|
+
|
11444
|
+
class HealthcheckListResponse:
|
11445
|
+
'''
|
11446
|
+
HealthcheckListResponse returns a list of Healthchecks that meet the criteria of a
|
11447
|
+
HealthcheckListRequest.
|
11448
|
+
'''
|
11449
|
+
__slots__ = [
|
11450
|
+
'rate_limit',
|
11451
|
+
]
|
11452
|
+
|
11453
|
+
def __init__(
|
11454
|
+
self,
|
11455
|
+
rate_limit=None,
|
11456
|
+
):
|
11457
|
+
self.rate_limit = rate_limit if rate_limit is not None else None
|
11458
|
+
'''
|
11459
|
+
Rate limit information.
|
11460
|
+
'''
|
11461
|
+
|
11462
|
+
def __repr__(self):
|
11463
|
+
return '<sdm.HealthcheckListResponse ' + \
|
11464
|
+
'rate_limit: ' + repr(self.rate_limit) + ' ' +\
|
11465
|
+
'>'
|
11466
|
+
|
11467
|
+
def to_dict(self):
|
11468
|
+
return {
|
11469
|
+
'rate_limit': self.rate_limit,
|
11470
|
+
}
|
11471
|
+
|
11472
|
+
@classmethod
|
11473
|
+
def from_dict(cls, d):
|
11474
|
+
return cls(rate_limit=d.get('rate_limit'), )
|
11475
|
+
|
11476
|
+
|
11347
11477
|
class IdentityAlias:
|
11348
11478
|
'''
|
11349
11479
|
IdentityAliases define the username to be used for a specific account
|
@@ -48,6 +48,7 @@ from .approval_workflows_pb2 import *
|
|
48
48
|
from .approval_workflows_history_pb2 import *
|
49
49
|
from .control_panel_pb2 import *
|
50
50
|
from .drivers_pb2 import *
|
51
|
+
from .health_checks_pb2 import *
|
51
52
|
from .identity_aliases_pb2 import *
|
52
53
|
from .identity_aliases_history_pb2 import *
|
53
54
|
from .identity_sets_pb2 import *
|
@@ -5321,6 +5322,81 @@ def convert_repeated_http_no_auth_to_porcelain(plumbings):
|
|
5321
5322
|
]
|
5322
5323
|
|
5323
5324
|
|
5325
|
+
def convert_healthcheck_to_porcelain(plumbing):
|
5326
|
+
if plumbing is None:
|
5327
|
+
return None
|
5328
|
+
porcelain = models.Healthcheck()
|
5329
|
+
porcelain.error_msg = (plumbing.error_msg)
|
5330
|
+
porcelain.healthy = (plumbing.healthy)
|
5331
|
+
porcelain.id = (plumbing.id)
|
5332
|
+
porcelain.node_id = (plumbing.node_id)
|
5333
|
+
porcelain.node_name = (plumbing.node_name)
|
5334
|
+
porcelain.resource_id = (plumbing.resource_id)
|
5335
|
+
porcelain.resource_name = (plumbing.resource_name)
|
5336
|
+
porcelain.timestamp = convert_timestamp_to_porcelain(plumbing.timestamp)
|
5337
|
+
return porcelain
|
5338
|
+
|
5339
|
+
|
5340
|
+
def convert_healthcheck_to_plumbing(porcelain):
|
5341
|
+
plumbing = Healthcheck()
|
5342
|
+
if porcelain is None:
|
5343
|
+
return plumbing
|
5344
|
+
plumbing.error_msg = (porcelain.error_msg)
|
5345
|
+
plumbing.healthy = (porcelain.healthy)
|
5346
|
+
plumbing.id = (porcelain.id)
|
5347
|
+
plumbing.node_id = (porcelain.node_id)
|
5348
|
+
plumbing.node_name = (porcelain.node_name)
|
5349
|
+
plumbing.resource_id = (porcelain.resource_id)
|
5350
|
+
plumbing.resource_name = (porcelain.resource_name)
|
5351
|
+
plumbing.timestamp.CopyFrom(
|
5352
|
+
convert_timestamp_to_plumbing(porcelain.timestamp))
|
5353
|
+
return plumbing
|
5354
|
+
|
5355
|
+
|
5356
|
+
def convert_repeated_healthcheck_to_plumbing(porcelains):
|
5357
|
+
return [
|
5358
|
+
convert_healthcheck_to_plumbing(porcelain) for porcelain in porcelains
|
5359
|
+
]
|
5360
|
+
|
5361
|
+
|
5362
|
+
def convert_repeated_healthcheck_to_porcelain(plumbings):
|
5363
|
+
return [
|
5364
|
+
convert_healthcheck_to_porcelain(plumbing) for plumbing in plumbings
|
5365
|
+
]
|
5366
|
+
|
5367
|
+
|
5368
|
+
def convert_healthcheck_list_response_to_porcelain(plumbing):
|
5369
|
+
if plumbing is None:
|
5370
|
+
return None
|
5371
|
+
porcelain = models.HealthcheckListResponse()
|
5372
|
+
porcelain.rate_limit = convert_rate_limit_metadata_to_porcelain(
|
5373
|
+
plumbing.rate_limit)
|
5374
|
+
return porcelain
|
5375
|
+
|
5376
|
+
|
5377
|
+
def convert_healthcheck_list_response_to_plumbing(porcelain):
|
5378
|
+
plumbing = HealthcheckListResponse()
|
5379
|
+
if porcelain is None:
|
5380
|
+
return plumbing
|
5381
|
+
plumbing.rate_limit.CopyFrom(
|
5382
|
+
convert_rate_limit_metadata_to_plumbing(porcelain.rate_limit))
|
5383
|
+
return plumbing
|
5384
|
+
|
5385
|
+
|
5386
|
+
def convert_repeated_healthcheck_list_response_to_plumbing(porcelains):
|
5387
|
+
return [
|
5388
|
+
convert_healthcheck_list_response_to_plumbing(porcelain)
|
5389
|
+
for porcelain in porcelains
|
5390
|
+
]
|
5391
|
+
|
5392
|
+
|
5393
|
+
def convert_repeated_healthcheck_list_response_to_porcelain(plumbings):
|
5394
|
+
return [
|
5395
|
+
convert_healthcheck_list_response_to_porcelain(plumbing)
|
5396
|
+
for plumbing in plumbings
|
5397
|
+
]
|
5398
|
+
|
5399
|
+
|
5324
5400
|
def convert_identity_alias_to_porcelain(plumbing):
|
5325
5401
|
if plumbing is None:
|
5326
5402
|
return None
|
@@ -66,6 +66,8 @@ from .control_panel_pb2 import *
|
|
66
66
|
from .control_panel_pb2_grpc import *
|
67
67
|
from .drivers_pb2 import *
|
68
68
|
from .drivers_pb2_grpc import *
|
69
|
+
from .health_checks_pb2 import *
|
70
|
+
from .health_checks_pb2_grpc import *
|
69
71
|
from .identity_aliases_pb2 import *
|
70
72
|
from .identity_aliases_pb2_grpc import *
|
71
73
|
from .identity_aliases_history_pb2 import *
|
@@ -2069,6 +2071,55 @@ class ControlPanel:
|
|
2069
2071
|
return resp
|
2070
2072
|
|
2071
2073
|
|
2074
|
+
class HealthChecks:
|
2075
|
+
'''
|
2076
|
+
HealthChecks lists the last healthcheck between each node and resource.
|
2077
|
+
Note the unconventional capitalization here is to prevent having a collision with GRPC
|
2078
|
+
See `strongdm.models.Healthcheck`.
|
2079
|
+
'''
|
2080
|
+
def __init__(self, channel, client):
|
2081
|
+
self.parent = client
|
2082
|
+
self.stub = HealthChecksStub(channel)
|
2083
|
+
|
2084
|
+
def list(self, filter, *args, timeout=None):
|
2085
|
+
'''
|
2086
|
+
List gets a list of Healthchecks matching a given set of criteria.
|
2087
|
+
'''
|
2088
|
+
req = HealthcheckListRequest()
|
2089
|
+
req.meta.CopyFrom(ListRequestMetadata())
|
2090
|
+
if self.parent.page_limit > 0:
|
2091
|
+
req.meta.limit = self.parent.page_limit
|
2092
|
+
if self.parent.snapshot_datetime is not None:
|
2093
|
+
req.meta.snapshot_at.FromDatetime(self.parent.snapshot_datetime)
|
2094
|
+
|
2095
|
+
req.filter = plumbing.quote_filter_args(filter, *args)
|
2096
|
+
|
2097
|
+
def generator(svc, req):
|
2098
|
+
tries = 0
|
2099
|
+
while True:
|
2100
|
+
try:
|
2101
|
+
plumbing_response = svc.stub.List(
|
2102
|
+
req,
|
2103
|
+
metadata=svc.parent.get_metadata(
|
2104
|
+
'HealthChecks.List', req),
|
2105
|
+
timeout=timeout)
|
2106
|
+
except Exception as e:
|
2107
|
+
if self.parent.shouldRetry(tries, e):
|
2108
|
+
tries += 1
|
2109
|
+
self.parent.jitterSleep(tries)
|
2110
|
+
continue
|
2111
|
+
raise plumbing.convert_error_to_porcelain(e) from e
|
2112
|
+
tries = 0
|
2113
|
+
for plumbing_item in plumbing_response.healthchecks:
|
2114
|
+
yield plumbing.convert_healthcheck_to_porcelain(
|
2115
|
+
plumbing_item)
|
2116
|
+
if plumbing_response.meta.next_cursor == '':
|
2117
|
+
break
|
2118
|
+
req.meta.cursor = plumbing_response.meta.next_cursor
|
2119
|
+
|
2120
|
+
return generator(self, req)
|
2121
|
+
|
2122
|
+
|
2072
2123
|
class IdentityAliases:
|
2073
2124
|
'''
|
2074
2125
|
IdentityAliases assign an alias to an account within an IdentitySet.
|
@@ -1,12 +1,12 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: strongdm
|
3
|
-
Version: 11.
|
3
|
+
Version: 11.16.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.16.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
|
@@ -47,6 +47,8 @@ strongdm/control_panel_pb2_grpc.py
|
|
47
47
|
strongdm/drivers_pb2.py
|
48
48
|
strongdm/drivers_pb2_grpc.py
|
49
49
|
strongdm/errors.py
|
50
|
+
strongdm/health_checks_pb2.py
|
51
|
+
strongdm/health_checks_pb2_grpc.py
|
50
52
|
strongdm/identity_aliases_history_pb2.py
|
51
53
|
strongdm/identity_aliases_history_pb2_grpc.py
|
52
54
|
strongdm/identity_aliases_pb2.py
|
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-11.15.0 → strongdm-11.16.0}/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
|
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
|
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
|
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
|