strongdm 15.41.0__tar.gz → 15.44.0__tar.gz
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-15.41.0 → strongdm-15.44.0}/PKG-INFO +2 -2
- {strongdm-15.41.0 → strongdm-15.44.0}/setup.py +4 -4
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/client.py +132 -1
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/constants.py +1 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/discovery_connectors_pb2.py +12 -10
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/models.py +36 -27
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/plumbing.py +8 -6
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm.egg-info/PKG-INFO +2 -2
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm.egg-info/requires.txt +1 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/LICENSE +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/README.md +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/setup.cfg +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/__init__.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/access_request_events_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/access_request_events_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/access_requests_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/access_requests_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/access_requests_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/access_requests_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/account_attachments_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/account_attachments_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/account_attachments_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/account_attachments_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/account_grants_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/account_grants_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/account_grants_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/account_grants_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/account_permissions_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/account_permissions_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/account_resources_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/account_resources_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/account_resources_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/account_resources_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/accounts_groups_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/accounts_groups_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/accounts_groups_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/accounts_groups_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/accounts_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/accounts_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/accounts_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/accounts_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/activities_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/activities_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/approval_workflow_approvers_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/approval_workflow_approvers_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/approval_workflow_approvers_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/approval_workflow_approvers_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/approval_workflow_steps_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/approval_workflow_steps_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/approval_workflow_steps_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/approval_workflow_steps_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/approval_workflows_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/approval_workflows_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/approval_workflows_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/approval_workflows_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/control_panel_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/control_panel_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/discovery_connectors_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/drivers_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/drivers_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/errors.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/groups_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/groups_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/groups_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/groups_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/groups_roles_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/groups_roles_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/groups_roles_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/groups_roles_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/health_checks_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/health_checks_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/identity_aliases_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/identity_aliases_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/identity_aliases_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/identity_aliases_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/identity_sets_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/identity_sets_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/identity_sets_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/identity_sets_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/managed_secrets_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/managed_secrets_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/nodes_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/nodes_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/nodes_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/nodes_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/options_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/options_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/organization_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/organization_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/peering_group_nodes_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/peering_group_nodes_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/peering_group_peers_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/peering_group_peers_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/peering_group_resources_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/peering_group_resources_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/peering_groups_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/peering_groups_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/policies_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/policies_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/policies_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/policies_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/proxy_cluster_keys_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/proxy_cluster_keys_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/queries_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/queries_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/remote_identities_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/remote_identities_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/remote_identities_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/remote_identities_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/remote_identity_groups_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/remote_identity_groups_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/remote_identity_groups_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/remote_identity_groups_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/replays_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/replays_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/resources_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/resources_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/resources_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/resources_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/role_resources_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/role_resources_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/role_resources_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/role_resources_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/roles_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/roles_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/roles_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/roles_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/secret_engine_policy_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/secret_engine_policy_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/secret_engine_types_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/secret_engine_types_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/secret_engines_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/secret_engines_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/secret_store_healths_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/secret_store_healths_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/secret_store_types_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/secret_store_types_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/secret_stores_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/secret_stores_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/secret_stores_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/secret_stores_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/spec_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/spec_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/svc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/tags_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/tags_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/workflow_approvers_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/workflow_approvers_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/workflow_approvers_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/workflow_approvers_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/workflow_roles_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/workflow_roles_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/workflow_roles_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/workflow_roles_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/workflows_history_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/workflows_history_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/workflows_pb2.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm/workflows_pb2_grpc.py +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm.egg-info/SOURCES.txt +0 -0
- {strongdm-15.41.0 → strongdm-15.44.0}/strongdm.egg-info/dependency_links.txt +0 -0
- {strongdm-15.41.0 → strongdm-15.44.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: 15.
|
|
3
|
+
Version: 15.44.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/v15.
|
|
9
|
+
Download-URL: https://github.com/strongdm/strongdm-sdk-python/archive/v15.44.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='15.
|
|
26
|
+
version='15.44.0',
|
|
27
27
|
license='apache-2.0',
|
|
28
28
|
description='strongDM SDK for the Python programming language.',
|
|
29
29
|
long_description=long_description,
|
|
@@ -32,14 +32,14 @@ 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/v15.
|
|
35
|
+
'https://github.com/strongdm/strongdm-sdk-python/archive/v15.44.0.tar.gz',
|
|
36
36
|
keywords=[
|
|
37
37
|
'strongDM', 'sdm', 'api', 'automation', 'security', 'audit',
|
|
38
38
|
'database', 'server', 'ssh', 'rdp'
|
|
39
39
|
],
|
|
40
40
|
install_requires=[
|
|
41
|
-
'grpcio>=1.42.0',
|
|
42
|
-
'
|
|
41
|
+
'grpcio >= 1.42.0', 'googleapis-common-protos>1.56.2,<2',
|
|
42
|
+
'cryptography >= 46.0.0'
|
|
43
43
|
],
|
|
44
44
|
classifiers=[
|
|
45
45
|
'Development Status :: 4 - Beta', # Chose either "3 - Alpha", "4 - Beta" or "5 - Production/Stable" as the current state of your package
|
|
@@ -16,17 +16,23 @@
|
|
|
16
16
|
# Code generated by protogen. DO NOT EDIT.
|
|
17
17
|
|
|
18
18
|
import base64
|
|
19
|
+
import collections
|
|
19
20
|
import copy
|
|
20
21
|
import datetime
|
|
22
|
+
import functools
|
|
21
23
|
import grpc
|
|
22
24
|
import hashlib
|
|
23
25
|
import hmac
|
|
24
26
|
import random
|
|
27
|
+
import re
|
|
25
28
|
import time
|
|
26
29
|
from . import errors
|
|
27
30
|
from . import plumbing
|
|
28
31
|
from . import svc
|
|
29
32
|
|
|
33
|
+
from cryptography.hazmat.primitives.asymmetric import rsa, padding
|
|
34
|
+
from cryptography.hazmat.primitives import serialization, hashes
|
|
35
|
+
|
|
30
36
|
# These defaults are taken from AWS. Customization of these values
|
|
31
37
|
# is a future step in the API.
|
|
32
38
|
DEFAULT_BASE_RETRY_DELAY = 1 # 1 second
|
|
@@ -34,7 +40,131 @@ DEFAULT_MAX_RETRY_DELAY = 120 # 120 seconds
|
|
|
34
40
|
DEFAULT_RETRY_FACTOR = 1.6
|
|
35
41
|
DEFAULT_RETRY_JITTER = 0.2
|
|
36
42
|
API_VERSION = '2025-04-14'
|
|
37
|
-
USER_AGENT = 'strongdm-sdk-python/15.
|
|
43
|
+
USER_AGENT = 'strongdm-sdk-python/15.44.0'
|
|
44
|
+
|
|
45
|
+
method_regexp = re.compile(r'\W+')
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class _ClientCallDetails(
|
|
49
|
+
collections.namedtuple(
|
|
50
|
+
"_ClientCallDetails",
|
|
51
|
+
("method", "timeout", "metadata", "credentials")),
|
|
52
|
+
grpc.ClientCallDetails,
|
|
53
|
+
):
|
|
54
|
+
""" _ClientCallDetails is used to override some of the attributes of the client_call_details in the interceptors"""
|
|
55
|
+
pass
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class _EncryptionInterceptor(grpc.UnaryUnaryClientInterceptor):
|
|
59
|
+
""" _EncryptionInterceptor is used to add transparent encryption/decryption support for managed secrets"""
|
|
60
|
+
def __init__(self, client):
|
|
61
|
+
self.client = client
|
|
62
|
+
self.public_key_cache = {}
|
|
63
|
+
|
|
64
|
+
def intercept_unary_unary(self, continuation, client_call_details,
|
|
65
|
+
request):
|
|
66
|
+
method = method_regexp.sub("_", client_call_details.method.lower())
|
|
67
|
+
callback = getattr(self, method, None)
|
|
68
|
+
if callback is not None:
|
|
69
|
+
return callback(continuation, client_call_details, request)
|
|
70
|
+
return continuation(client_call_details, request)
|
|
71
|
+
|
|
72
|
+
@functools.cached_property
|
|
73
|
+
def private_key(self):
|
|
74
|
+
return rsa.generate_private_key(
|
|
75
|
+
public_exponent=65537,
|
|
76
|
+
key_size=4096,
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
def _encrypt_secret(self, method, continuation, client_call_details,
|
|
80
|
+
request):
|
|
81
|
+
secret = request.managed_secret
|
|
82
|
+
if len(secret.value) != 0:
|
|
83
|
+
if secret.secret_engine_id not in self.public_key_cache:
|
|
84
|
+
try:
|
|
85
|
+
# fetch secret engine details to fill up self.public_key_cache
|
|
86
|
+
# if it fails the call to create/update will fail as well
|
|
87
|
+
self.client.secret_engines.get(secret.secret_engine_id)
|
|
88
|
+
except errors.RPCError:
|
|
89
|
+
pass
|
|
90
|
+
key = self.public_key_cache.get(secret.secret_engine_id)
|
|
91
|
+
if key is not None:
|
|
92
|
+
encrypted = key.encrypt(
|
|
93
|
+
secret.value,
|
|
94
|
+
padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()),
|
|
95
|
+
algorithm=hashes.SHA256(),
|
|
96
|
+
label=None))
|
|
97
|
+
secret.value = encrypted
|
|
98
|
+
client_call_details = _ClientCallDetails(
|
|
99
|
+
method=client_call_details.method,
|
|
100
|
+
timeout=client_call_details.timeout,
|
|
101
|
+
metadata=self.client.get_metadata(method, request),
|
|
102
|
+
credentials=client_call_details.credentials)
|
|
103
|
+
return continuation(client_call_details, request)
|
|
104
|
+
|
|
105
|
+
def _v1_managedsecrets_create(self, continuation, client_call_details,
|
|
106
|
+
request):
|
|
107
|
+
return self._encrypt_secret("ManagedSecrets.Create", continuation,
|
|
108
|
+
client_call_details, request)
|
|
109
|
+
|
|
110
|
+
def _v1_managedsecrets_update(self, continuation, client_call_details,
|
|
111
|
+
request):
|
|
112
|
+
return self._encrypt_secret("ManagedSecrets.Update", continuation,
|
|
113
|
+
client_call_details, request)
|
|
114
|
+
|
|
115
|
+
def _v1_managedsecrets_retrieve(self, continuation, client_call_details,
|
|
116
|
+
request):
|
|
117
|
+
if len(request.public_key) != 0:
|
|
118
|
+
return continuation(client_call_details, request)
|
|
119
|
+
|
|
120
|
+
privKey = self.private_key
|
|
121
|
+
request.public_key = privKey.public_key().public_bytes(
|
|
122
|
+
serialization.Encoding.PEM,
|
|
123
|
+
serialization.PublicFormat.SubjectPublicKeyInfo)
|
|
124
|
+
client_call_details = _ClientCallDetails(
|
|
125
|
+
method=client_call_details.method,
|
|
126
|
+
timeout=client_call_details.timeout,
|
|
127
|
+
metadata=self.client.get_metadata("ManagedSecrets.Retrieve",
|
|
128
|
+
request),
|
|
129
|
+
credentials=client_call_details.credentials)
|
|
130
|
+
resp = continuation(client_call_details, request)
|
|
131
|
+
if resp.code() != grpc.StatusCode.OK:
|
|
132
|
+
return resp
|
|
133
|
+
result = resp.result()
|
|
134
|
+
plaintext = privKey.decrypt(
|
|
135
|
+
result.managed_secret.value,
|
|
136
|
+
padding.OAEP(
|
|
137
|
+
mgf=padding.MGF1(algorithm=hashes.SHA256()),
|
|
138
|
+
algorithm=hashes.SHA256(),
|
|
139
|
+
label=None,
|
|
140
|
+
))
|
|
141
|
+
result.managed_secret.value = plaintext
|
|
142
|
+
return resp
|
|
143
|
+
|
|
144
|
+
def _v1_secretengines_get(self, continuation, client_call_details,
|
|
145
|
+
request):
|
|
146
|
+
response = continuation(client_call_details, request)
|
|
147
|
+
if response.code() != grpc.StatusCode.OK:
|
|
148
|
+
return response
|
|
149
|
+
result = response.result()
|
|
150
|
+
engine = plumbing.convert_secret_engine_to_porcelain(
|
|
151
|
+
result.secret_engine)
|
|
152
|
+
engineKey = serialization.load_pem_public_key(engine.public_key)
|
|
153
|
+
self.public_key_cache[engine.id] = engineKey
|
|
154
|
+
return response
|
|
155
|
+
|
|
156
|
+
def _v1_secretengines_list(self, continuation, client_call_details,
|
|
157
|
+
request):
|
|
158
|
+
response = continuation(client_call_details, request)
|
|
159
|
+
if response.code() != grpc.StatusCode.OK:
|
|
160
|
+
return response
|
|
161
|
+
result = response.result()
|
|
162
|
+
for plumbing_engine in result.secret_engines:
|
|
163
|
+
engine = plumbing.convert_secret_engine_to_porcelain(
|
|
164
|
+
plumbing_engine)
|
|
165
|
+
engineKey = serialization.load_pem_public_key(engine.public_key)
|
|
166
|
+
self.public_key_cache[engine.id] = engineKey
|
|
167
|
+
return response
|
|
38
168
|
|
|
39
169
|
|
|
40
170
|
class Client:
|
|
@@ -70,6 +200,7 @@ class Client:
|
|
|
70
200
|
channel = grpc.secure_channel(host, creds)
|
|
71
201
|
except Exception as e:
|
|
72
202
|
raise plumbing.convert_error_to_porcelain(e) from e
|
|
203
|
+
channel = grpc.intercept_channel(channel, _EncryptionInterceptor(self))
|
|
73
204
|
self.channel = channel
|
|
74
205
|
self.access_requests = svc.AccessRequests(channel, self)
|
|
75
206
|
'''
|
|
@@ -332,6 +332,7 @@ class ActivityVerb:
|
|
|
332
332
|
RESOURCE_LOCKED = "user locked a resource"
|
|
333
333
|
RESOURCE_UNLOCKED = "user unlocked a resource"
|
|
334
334
|
RESOURCE_FORCE_UNLOCKED = "admin force-unlocked a resource"
|
|
335
|
+
RESOURCE_LOCK_REJECTED = "user lock rejected for a resource"
|
|
335
336
|
CONCURRENT_AUTHENTICATION_REVOKED_PER_ORG_SETTING = "concurrent authentications revoked per organization settings"
|
|
336
337
|
PEERING_GROUP_TOGGLED = "peering group toggled"
|
|
337
338
|
PEERING_GROUP_CREATED = "peering group created"
|
|
@@ -31,7 +31,7 @@ from . import spec_pb2 as spec__pb2
|
|
|
31
31
|
from . import tags_pb2 as tags__pb2
|
|
32
32
|
|
|
33
33
|
|
|
34
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x64iscovery_connectors.proto\x12\x02v1\x1a\roptions.proto\x1a\nspec.proto\x1a\ntags.proto\"\x89\x01\n\x16\x43onnectorCreateRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.CreateRequestMetadata\x12,\n\tconnector\x18\x02 \x01(\x0b\x32\r.v1.ConnectorB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x18\xfa\xf8\xb3\x07\x13\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li\"\xc2\x01\n\x17\x43onnectorCreateResponse\x12(\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.CreateResponseMetadata\x12,\n\tconnector\x18\x02 \x01(\x0b\x32\r.v1.ConnectorB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x35\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x18\xfa\xf8\xb3\x07\x13\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li\"m\n\x13\x43onnectorGetRequest\x12$\n\x04meta\x18\x01 \x01(\x0b\x32\x16.v1.GetRequestMetadata\x12\x16\n\x02id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x18\xfa\xf8\xb3\x07\x13\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li\"\xc8\x01\n\x14\x43onnectorGetResponse\x12\x31\n\x04meta\x18\x01 \x01(\x0b\x32\x17.v1.GetResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12,\n\tconnector\x18\x02 \x01(\x0b\x32\r.v1.ConnectorB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x35\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x18\xfa\xf8\xb3\x07\x13\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li\"\x95\x01\n\x16\x43onnectorUpdateRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.UpdateRequestMetadata\x12\n\n\x02id\x18\x02 \x01(\t\x12,\n\tconnector\x18\x03 \x01(\x0b\x32\r.v1.ConnectorB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x18\xfa\xf8\xb3\x07\x13\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li\"\xc2\x01\n\x17\x43onnectorUpdateResponse\x12(\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.UpdateResponseMetadata\x12,\n\tconnector\x18\x02 \x01(\x0b\x32\r.v1.ConnectorB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x35\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x18\xfa\xf8\xb3\x07\x13\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li\"s\n\x16\x43onnectorDeleteRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.DeleteRequestMetadata\x12\x16\n\x02id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x18\xfa\xf8\xb3\x07\x13\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li\"\xa0\x01\n\x17\x43onnectorDeleteResponse\x12\x34\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.DeleteResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x35\n\nrate_limit\x18\x02 \x01(\x0b\x32\x15.v1.RateLimitMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x18\xfa\xf8\xb3\x07\x13\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li\"s\n\x14\x43onnectorListRequest\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:\x18\xfa\xf8\xb3\x07\x13\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li\"\xbf\x01\n\x15\x43onnectorListResponse\x12&\n\x04meta\x18\x01 \x01(\x0b\x32\x18.v1.ListResponseMetadata\x12-\n\nconnectors\x18\x02 \x03(\x0b\x32\r.v1.ConnectorB\n\xf2\xf8\xb3\x07\x05\xb8\xf3\xb3\x07\x01\x12\x35\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x18\xfa\xf8\xb3\x07\x13\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li\"\xc2\x02\n\tConnector\x12+\n\x03\x61ws\x18\x64 \x01(\x0b\x32\x10.v1.AWSConnectorB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01H\x00\x12/\n\x05\x61zure\x18\x65 \x01(\x0b\x32\x12.v1.AzureConnectorB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01H\x00\x12+\n\x03gcp\x18\x66 \x01(\x0b\x32\x10.v1.GCPConnectorB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01H\x00:\x18\xfa\xf8\xb3\x07\x13\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63liB\x8f\x01\n\x05\x63loud\x12\x85\x01\xaa\xf8\xb3\x07\t\xaa\xf8\xb3\x07\x04name\xaa\xf8\xb3\x07\x10\xaa\xf8\xb3\x07\x0b\x64\x65scription\xaa\xf8\xb3\x07\r\xaa\xf8\xb3\x07\x08services\xaa\xf8\xb3\x07\x11\xaa\xf8\xb3\x07\x0cinclude_tags\xaa\xf8\xb3\x07\x11\xaa\xf8\xb3\x07\x0c\x65xclude_tags\xaa\xf8\xb3\x07\x10\xaa\xf8\xb3\x07\x0bscan_period\xaa\xf8\xb3\x07\n\xb2\xf8\xb3\x07\x05\x63loud\"\xa4\x03\n\x0c\x41WSConnector\x12\x16\n\x02id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1d\n\x04name\x18\x02 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\x1f\n\x0b\x64\x65scription\x18\x03 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1f\n\x0bscan_period\x18\x04 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1c\n\x08services\x18\x05 \x03(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12)\n\x0cinclude_tags\x18\x06 \x03(\x0b\x32\x07.v1.TagB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12)\n\x0c\x65xclude_tags\x18\x07 \x03(\x0b\x32\x07.v1.TagB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\'\n\trole_name\x18\x14 \x01(\tB\x14\xf2\xf8\xb3\x07\x0f\xb0\xf3\xb3\x07\x01\xca\xf3\xb3\x07\x05\x88\xf4\xb3\x07\x01\x12)\n\x0b\x61\x63\x63ount_ids\x18\x15 \x03(\tB\x14\xf2\xf8\xb3\x07\x0f\xb0\xf3\xb3\x07\x01\xca\xf3\xb3\x07\x05\x88\xf4\xb3\x07\x01:S\xfa\xf8\xb3\x07N\xa8\xf3\xb3\x07\x01\xca\xf3\xb3\x07\x36\xc2\xf4\xb3\x07\x19\n\x12terraform-provider\x12\x03\x61ws\xc2\xf4\xb3\x07\x13\n\x0cjson_gateway\x12\x03\x61ws\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li\"\xd8\x03\n\x0e\x41zureConnector\x12\x16\n\x02id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1d\n\x04name\x18\x02 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\x1f\n\x0b\x64\x65scription\x18\x03 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1f\n\x0bscan_period\x18\x04 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1c\n\x08services\x18\x05 \x03(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12)\n\x0cinclude_tags\x18\x06 \x03(\x0b\x32\x07.v1.TagB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12)\n\x0c\x65xclude_tags\x18\x07 \x03(\x0b\x32\x07.v1.TagB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\'\n\ttenant_id\x18\x14 \x01(\tB\x14\xf2\xf8\xb3\x07\x0f\xb0\xf3\xb3\x07\x01\xca\xf3\xb3\x07\x05\x88\xf4\xb3\x07\x01\x12\'\n\tclient_id\x18\x15 \x01(\tB\x14\xf2\xf8\xb3\x07\x0f\xb0\xf3\xb3\x07\x01\xca\xf3\xb3\x07\x05\x88\xf4\xb3\x07\x01\x12.\n\x10subscription_ids\x18\x16 \x03(\tB\x14\xf2\xf8\xb3\x07\x0f\xb0\xf3\xb3\x07\x01\xca\xf3\xb3\x07\x05\x88\xf4\xb3\x07\x01:W\xfa\xf8\xb3\x07R\xa8\xf3\xb3\x07\x01\xca\xf3\xb3\x07:\xc2\xf4\xb3\x07\x1b\n\x12terraform-provider\x12\x05\x61zure\xc2\xf4\xb3\x07\x15\n\x0cjson_gateway\x12\x05\x61zure\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li\"\
|
|
34
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x64iscovery_connectors.proto\x12\x02v1\x1a\roptions.proto\x1a\nspec.proto\x1a\ntags.proto\"\x89\x01\n\x16\x43onnectorCreateRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.CreateRequestMetadata\x12,\n\tconnector\x18\x02 \x01(\x0b\x32\r.v1.ConnectorB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x18\xfa\xf8\xb3\x07\x13\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li\"\xc2\x01\n\x17\x43onnectorCreateResponse\x12(\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.CreateResponseMetadata\x12,\n\tconnector\x18\x02 \x01(\x0b\x32\r.v1.ConnectorB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x35\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x18\xfa\xf8\xb3\x07\x13\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li\"m\n\x13\x43onnectorGetRequest\x12$\n\x04meta\x18\x01 \x01(\x0b\x32\x16.v1.GetRequestMetadata\x12\x16\n\x02id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x18\xfa\xf8\xb3\x07\x13\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li\"\xc8\x01\n\x14\x43onnectorGetResponse\x12\x31\n\x04meta\x18\x01 \x01(\x0b\x32\x17.v1.GetResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12,\n\tconnector\x18\x02 \x01(\x0b\x32\r.v1.ConnectorB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x35\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x18\xfa\xf8\xb3\x07\x13\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li\"\x95\x01\n\x16\x43onnectorUpdateRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.UpdateRequestMetadata\x12\n\n\x02id\x18\x02 \x01(\t\x12,\n\tconnector\x18\x03 \x01(\x0b\x32\r.v1.ConnectorB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x18\xfa\xf8\xb3\x07\x13\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li\"\xc2\x01\n\x17\x43onnectorUpdateResponse\x12(\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.UpdateResponseMetadata\x12,\n\tconnector\x18\x02 \x01(\x0b\x32\r.v1.ConnectorB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x35\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x18\xfa\xf8\xb3\x07\x13\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li\"s\n\x16\x43onnectorDeleteRequest\x12\'\n\x04meta\x18\x01 \x01(\x0b\x32\x19.v1.DeleteRequestMetadata\x12\x16\n\x02id\x18\x02 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x18\xfa\xf8\xb3\x07\x13\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li\"\xa0\x01\n\x17\x43onnectorDeleteResponse\x12\x34\n\x04meta\x18\x01 \x01(\x0b\x32\x1a.v1.DeleteResponseMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x35\n\nrate_limit\x18\x02 \x01(\x0b\x32\x15.v1.RateLimitMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x18\xfa\xf8\xb3\x07\x13\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li\"s\n\x14\x43onnectorListRequest\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:\x18\xfa\xf8\xb3\x07\x13\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li\"\xbf\x01\n\x15\x43onnectorListResponse\x12&\n\x04meta\x18\x01 \x01(\x0b\x32\x18.v1.ListResponseMetadata\x12-\n\nconnectors\x18\x02 \x03(\x0b\x32\r.v1.ConnectorB\n\xf2\xf8\xb3\x07\x05\xb8\xf3\xb3\x07\x01\x12\x35\n\nrate_limit\x18\x03 \x01(\x0b\x32\x15.v1.RateLimitMetadataB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01:\x18\xfa\xf8\xb3\x07\x13\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li\"\xc2\x02\n\tConnector\x12+\n\x03\x61ws\x18\x64 \x01(\x0b\x32\x10.v1.AWSConnectorB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01H\x00\x12/\n\x05\x61zure\x18\x65 \x01(\x0b\x32\x12.v1.AzureConnectorB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01H\x00\x12+\n\x03gcp\x18\x66 \x01(\x0b\x32\x10.v1.GCPConnectorB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01H\x00:\x18\xfa\xf8\xb3\x07\x13\xa8\xf3\xb3\x07\x01\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63liB\x8f\x01\n\x05\x63loud\x12\x85\x01\xaa\xf8\xb3\x07\t\xaa\xf8\xb3\x07\x04name\xaa\xf8\xb3\x07\x10\xaa\xf8\xb3\x07\x0b\x64\x65scription\xaa\xf8\xb3\x07\r\xaa\xf8\xb3\x07\x08services\xaa\xf8\xb3\x07\x11\xaa\xf8\xb3\x07\x0cinclude_tags\xaa\xf8\xb3\x07\x11\xaa\xf8\xb3\x07\x0c\x65xclude_tags\xaa\xf8\xb3\x07\x10\xaa\xf8\xb3\x07\x0bscan_period\xaa\xf8\xb3\x07\n\xb2\xf8\xb3\x07\x05\x63loud\"\xa4\x03\n\x0c\x41WSConnector\x12\x16\n\x02id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1d\n\x04name\x18\x02 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\x1f\n\x0b\x64\x65scription\x18\x03 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1f\n\x0bscan_period\x18\x04 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1c\n\x08services\x18\x05 \x03(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12)\n\x0cinclude_tags\x18\x06 \x03(\x0b\x32\x07.v1.TagB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12)\n\x0c\x65xclude_tags\x18\x07 \x03(\x0b\x32\x07.v1.TagB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\'\n\trole_name\x18\x14 \x01(\tB\x14\xf2\xf8\xb3\x07\x0f\xb0\xf3\xb3\x07\x01\xca\xf3\xb3\x07\x05\x88\xf4\xb3\x07\x01\x12)\n\x0b\x61\x63\x63ount_ids\x18\x15 \x03(\tB\x14\xf2\xf8\xb3\x07\x0f\xb0\xf3\xb3\x07\x01\xca\xf3\xb3\x07\x05\x88\xf4\xb3\x07\x01:S\xfa\xf8\xb3\x07N\xa8\xf3\xb3\x07\x01\xca\xf3\xb3\x07\x36\xc2\xf4\xb3\x07\x19\n\x12terraform-provider\x12\x03\x61ws\xc2\xf4\xb3\x07\x13\n\x0cjson_gateway\x12\x03\x61ws\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li\"\xd8\x03\n\x0e\x41zureConnector\x12\x16\n\x02id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1d\n\x04name\x18\x02 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\x1f\n\x0b\x64\x65scription\x18\x03 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1f\n\x0bscan_period\x18\x04 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1c\n\x08services\x18\x05 \x03(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12)\n\x0cinclude_tags\x18\x06 \x03(\x0b\x32\x07.v1.TagB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12)\n\x0c\x65xclude_tags\x18\x07 \x03(\x0b\x32\x07.v1.TagB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\'\n\ttenant_id\x18\x14 \x01(\tB\x14\xf2\xf8\xb3\x07\x0f\xb0\xf3\xb3\x07\x01\xca\xf3\xb3\x07\x05\x88\xf4\xb3\x07\x01\x12\'\n\tclient_id\x18\x15 \x01(\tB\x14\xf2\xf8\xb3\x07\x0f\xb0\xf3\xb3\x07\x01\xca\xf3\xb3\x07\x05\x88\xf4\xb3\x07\x01\x12.\n\x10subscription_ids\x18\x16 \x03(\tB\x14\xf2\xf8\xb3\x07\x0f\xb0\xf3\xb3\x07\x01\xca\xf3\xb3\x07\x05\x88\xf4\xb3\x07\x01:W\xfa\xf8\xb3\x07R\xa8\xf3\xb3\x07\x01\xca\xf3\xb3\x07:\xc2\xf4\xb3\x07\x1b\n\x12terraform-provider\x12\x05\x61zure\xc2\xf4\xb3\x07\x15\n\x0cjson_gateway\x12\x05\x61zure\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li\"\xc9\x04\n\x0cGCPConnector\x12\x16\n\x02id\x18\x01 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1d\n\x04name\x18\x02 \x01(\tB\x0f\xf2\xf8\xb3\x07\n\xb0\xf3\xb3\x07\x01\xc0\xf3\xb3\x07\x01\x12\x1f\n\x0b\x64\x65scription\x18\x03 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1f\n\x0bscan_period\x18\x04 \x01(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12\x1c\n\x08services\x18\x05 \x03(\tB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12)\n\x0cinclude_tags\x18\x06 \x03(\x0b\x32\x07.v1.TagB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12)\n\x0c\x65xclude_tags\x18\x07 \x03(\x0b\x32\x07.v1.TagB\n\xf2\xf8\xb3\x07\x05\xb0\xf3\xb3\x07\x01\x12)\n\x0bproject_ids\x18\x17 \x03(\tB\x14\xf2\xf8\xb3\x07\x0f\xb0\xf3\xb3\x07\x01\xca\xf3\xb3\x07\x05\x88\xf4\xb3\x07\x01\x12\x35\n\x17workload_project_number\x18\x18 \x01(\tB\x14\xf2\xf8\xb3\x07\x0f\xb0\xf3\xb3\x07\x01\xca\xf3\xb3\x07\x05\x88\xf4\xb3\x07\x01\x12\x31\n\x13workload_project_id\x18\x19 \x01(\tB\x14\xf2\xf8\xb3\x07\x0f\xb0\xf3\xb3\x07\x01\xca\xf3\xb3\x07\x05\x88\xf4\xb3\x07\x01\x12\x32\n\x14workload_provider_id\x18\x1a \x01(\tB\x14\xf2\xf8\xb3\x07\x0f\xb0\xf3\xb3\x07\x01\xca\xf3\xb3\x07\x05\x88\xf4\xb3\x07\x01\x12.\n\x10workload_pool_id\x18\x1b \x01(\tB\x14\xf2\xf8\xb3\x07\x0f\xb0\xf3\xb3\x07\x01\xca\xf3\xb3\x07\x05\x88\xf4\xb3\x07\x01:S\xfa\xf8\xb3\x07N\xa8\xf3\xb3\x07\x01\xca\xf3\xb3\x07\x36\xc2\xf4\xb3\x07\x19\n\x12terraform-provider\x12\x03gcp\xc2\xf4\xb3\x07\x13\n\x0cjson_gateway\x12\x03gcp\xd2\xf3\xb3\x07\x01*\xd2\xf3\xb3\x07\x03\x63li2\xd7\x04\n\x13\x44iscoveryConnectors\x12i\n\x06\x43reate\x12\x1a.v1.ConnectorCreateRequest\x1a\x1b.v1.ConnectorCreateResponse\"&\x82\xf9\xb3\x07\t\xa2\xf3\xb3\x07\x04post\x82\xf9\xb3\x07\x13\xaa\xf3\xb3\x07\x0e/v1/connectors\x12\x64\n\x03Get\x12\x17.v1.ConnectorGetRequest\x1a\x18.v1.ConnectorGetResponse\"*\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07\x18\xaa\xf3\xb3\x07\x13/v1/connectors/{id}\x12m\n\x06Update\x12\x1a.v1.ConnectorUpdateRequest\x1a\x1b.v1.ConnectorUpdateResponse\"*\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03put\x82\xf9\xb3\x07\x18\xaa\xf3\xb3\x07\x13/v1/connectors/{id}\x12p\n\x06\x44\x65lete\x12\x1a.v1.ConnectorDeleteRequest\x1a\x1b.v1.ConnectorDeleteResponse\"-\x82\xf9\xb3\x07\x0b\xa2\xf3\xb3\x07\x06\x64\x65lete\x82\xf9\xb3\x07\x18\xaa\xf3\xb3\x07\x13/v1/connectors/{id}\x12\x62\n\x04List\x12\x18.v1.ConnectorListRequest\x1a\x19.v1.ConnectorListResponse\"%\x82\xf9\xb3\x07\x08\xa2\xf3\xb3\x07\x03get\x82\xf9\xb3\x07\x13\xaa\xf3\xb3\x07\x0e/v1/connectors\x1a*\xca\xf9\xb3\x07%\xc2\xf9\xb3\x07\tConnector\xca\xf9\xb3\x07\x01*\xca\xf9\xb3\x07\x03\x63li\xd2\xf9\xb3\x07\x04\x63on-B\x87\x01\n\x19\x63om.strongdm.api.plumbingB\x1b\x44iscoveryConnectorsPlumbingZ5github.com/strongdm/strongdm-sdk-go/v3/internal/v1;v1\xc2\x92\xb4\x07\x06\xa2\x8c\xb4\x07\x01*\xc2\x92\xb4\x07\x08\xa2\x8c\xb4\x07\x03\x63lib\x06proto3')
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
|
|
@@ -270,14 +270,16 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
270
270
|
_GCPCONNECTOR.fields_by_name['include_tags']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
|
|
271
271
|
_GCPCONNECTOR.fields_by_name['exclude_tags']._options = None
|
|
272
272
|
_GCPCONNECTOR.fields_by_name['exclude_tags']._serialized_options = b'\362\370\263\007\005\260\363\263\007\001'
|
|
273
|
-
_GCPCONNECTOR.fields_by_name['project_number']._options = None
|
|
274
|
-
_GCPCONNECTOR.fields_by_name['project_number']._serialized_options = b'\362\370\263\007\017\260\363\263\007\001\312\363\263\007\005\210\364\263\007\001'
|
|
275
|
-
_GCPCONNECTOR.fields_by_name['provider_id']._options = None
|
|
276
|
-
_GCPCONNECTOR.fields_by_name['provider_id']._serialized_options = b'\362\370\263\007\017\260\363\263\007\001\312\363\263\007\005\210\364\263\007\001'
|
|
277
|
-
_GCPCONNECTOR.fields_by_name['pool_id']._options = None
|
|
278
|
-
_GCPCONNECTOR.fields_by_name['pool_id']._serialized_options = b'\362\370\263\007\017\260\363\263\007\001\312\363\263\007\005\210\364\263\007\001'
|
|
279
273
|
_GCPCONNECTOR.fields_by_name['project_ids']._options = None
|
|
280
274
|
_GCPCONNECTOR.fields_by_name['project_ids']._serialized_options = b'\362\370\263\007\017\260\363\263\007\001\312\363\263\007\005\210\364\263\007\001'
|
|
275
|
+
_GCPCONNECTOR.fields_by_name['workload_project_number']._options = None
|
|
276
|
+
_GCPCONNECTOR.fields_by_name['workload_project_number']._serialized_options = b'\362\370\263\007\017\260\363\263\007\001\312\363\263\007\005\210\364\263\007\001'
|
|
277
|
+
_GCPCONNECTOR.fields_by_name['workload_project_id']._options = None
|
|
278
|
+
_GCPCONNECTOR.fields_by_name['workload_project_id']._serialized_options = b'\362\370\263\007\017\260\363\263\007\001\312\363\263\007\005\210\364\263\007\001'
|
|
279
|
+
_GCPCONNECTOR.fields_by_name['workload_provider_id']._options = None
|
|
280
|
+
_GCPCONNECTOR.fields_by_name['workload_provider_id']._serialized_options = b'\362\370\263\007\017\260\363\263\007\001\312\363\263\007\005\210\364\263\007\001'
|
|
281
|
+
_GCPCONNECTOR.fields_by_name['workload_pool_id']._options = None
|
|
282
|
+
_GCPCONNECTOR.fields_by_name['workload_pool_id']._serialized_options = b'\362\370\263\007\017\260\363\263\007\001\312\363\263\007\005\210\364\263\007\001'
|
|
281
283
|
_GCPCONNECTOR._options = None
|
|
282
284
|
_GCPCONNECTOR._serialized_options = b'\372\370\263\007N\250\363\263\007\001\312\363\263\0076\302\364\263\007\031\n\022terraform-provider\022\003gcp\302\364\263\007\023\n\014json_gateway\022\003gcp\322\363\263\007\001*\322\363\263\007\003cli'
|
|
283
285
|
_DISCOVERYCONNECTORS._options = None
|
|
@@ -319,7 +321,7 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
319
321
|
_AZURECONNECTOR._serialized_start=2413
|
|
320
322
|
_AZURECONNECTOR._serialized_end=2885
|
|
321
323
|
_GCPCONNECTOR._serialized_start=2888
|
|
322
|
-
_GCPCONNECTOR._serialized_end=
|
|
323
|
-
_DISCOVERYCONNECTORS._serialized_start=
|
|
324
|
-
_DISCOVERYCONNECTORS._serialized_end=
|
|
324
|
+
_GCPCONNECTOR._serialized_end=3473
|
|
325
|
+
_DISCOVERYCONNECTORS._serialized_start=3476
|
|
326
|
+
_DISCOVERYCONNECTORS._serialized_end=4075
|
|
325
327
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -13949,12 +13949,13 @@ class GCPConnector:
|
|
|
13949
13949
|
'id',
|
|
13950
13950
|
'include_tags',
|
|
13951
13951
|
'name',
|
|
13952
|
-
'pool_id',
|
|
13953
13952
|
'project_ids',
|
|
13954
|
-
'project_number',
|
|
13955
|
-
'provider_id',
|
|
13956
13953
|
'scan_period',
|
|
13957
13954
|
'services',
|
|
13955
|
+
'workload_pool_id',
|
|
13956
|
+
'workload_project_id',
|
|
13957
|
+
'workload_project_number',
|
|
13958
|
+
'workload_provider_id',
|
|
13958
13959
|
]
|
|
13959
13960
|
|
|
13960
13961
|
def __init__(
|
|
@@ -13964,12 +13965,13 @@ class GCPConnector:
|
|
|
13964
13965
|
id=None,
|
|
13965
13966
|
include_tags=None,
|
|
13966
13967
|
name=None,
|
|
13967
|
-
pool_id=None,
|
|
13968
13968
|
project_ids=None,
|
|
13969
|
-
project_number=None,
|
|
13970
|
-
provider_id=None,
|
|
13971
13969
|
scan_period=None,
|
|
13972
13970
|
services=None,
|
|
13971
|
+
workload_pool_id=None,
|
|
13972
|
+
workload_project_id=None,
|
|
13973
|
+
workload_project_number=None,
|
|
13974
|
+
workload_provider_id=None,
|
|
13973
13975
|
):
|
|
13974
13976
|
self.description = description if description is not None else ''
|
|
13975
13977
|
'''
|
|
@@ -13993,22 +13995,10 @@ class GCPConnector:
|
|
|
13993
13995
|
'''
|
|
13994
13996
|
Unique human-readable name of the Connector.
|
|
13995
13997
|
'''
|
|
13996
|
-
self.pool_id = pool_id if pool_id is not None else ''
|
|
13997
|
-
'''
|
|
13998
|
-
PoolId is the GCP Workload Pool Identifier used to authenticate our JWT
|
|
13999
|
-
'''
|
|
14000
13998
|
self.project_ids = project_ids if project_ids is not None else []
|
|
14001
13999
|
'''
|
|
14002
14000
|
ProjectIds is the list of GCP Projects the connector will scan
|
|
14003
14001
|
'''
|
|
14004
|
-
self.project_number = project_number if project_number is not None else ''
|
|
14005
|
-
'''
|
|
14006
|
-
ProjectNumber is the GCP Project the Workload Pool is defined in
|
|
14007
|
-
'''
|
|
14008
|
-
self.provider_id = provider_id if provider_id is not None else ''
|
|
14009
|
-
'''
|
|
14010
|
-
ProviderId is the GCP Workload Provider Identifier used to authenticate our JWT
|
|
14011
|
-
'''
|
|
14012
14002
|
self.scan_period = scan_period if scan_period is not None else ''
|
|
14013
14003
|
'''
|
|
14014
14004
|
ScanPeriod identifies which remote system this Connector discovers
|
|
@@ -14017,6 +14007,22 @@ class GCPConnector:
|
|
|
14017
14007
|
'''
|
|
14018
14008
|
Services is a list of services this connector should scan.
|
|
14019
14009
|
'''
|
|
14010
|
+
self.workload_pool_id = workload_pool_id if workload_pool_id is not None else ''
|
|
14011
|
+
'''
|
|
14012
|
+
WorkloadPoolId is the GCP Workload Pool Identifier used to authenticate our JWT
|
|
14013
|
+
'''
|
|
14014
|
+
self.workload_project_id = workload_project_id if workload_project_id is not None else ''
|
|
14015
|
+
'''
|
|
14016
|
+
WorkloadProjectId is the GCP Project ID where the Workload Pool is defined
|
|
14017
|
+
'''
|
|
14018
|
+
self.workload_project_number = workload_project_number if workload_project_number is not None else ''
|
|
14019
|
+
'''
|
|
14020
|
+
WorkloadProjectNumber is the GCP Project Number where the Workload Pool is defined
|
|
14021
|
+
'''
|
|
14022
|
+
self.workload_provider_id = workload_provider_id if workload_provider_id is not None else ''
|
|
14023
|
+
'''
|
|
14024
|
+
WorkloadProviderId is the GCP Workload Provider Identifier used to authenticate our JWT
|
|
14025
|
+
'''
|
|
14020
14026
|
|
|
14021
14027
|
def __repr__(self):
|
|
14022
14028
|
return '<sdm.GCPConnector ' + \
|
|
@@ -14025,12 +14031,13 @@ class GCPConnector:
|
|
|
14025
14031
|
'id: ' + repr(self.id) + ' ' +\
|
|
14026
14032
|
'include_tags: ' + repr(self.include_tags) + ' ' +\
|
|
14027
14033
|
'name: ' + repr(self.name) + ' ' +\
|
|
14028
|
-
'pool_id: ' + repr(self.pool_id) + ' ' +\
|
|
14029
14034
|
'project_ids: ' + repr(self.project_ids) + ' ' +\
|
|
14030
|
-
'project_number: ' + repr(self.project_number) + ' ' +\
|
|
14031
|
-
'provider_id: ' + repr(self.provider_id) + ' ' +\
|
|
14032
14035
|
'scan_period: ' + repr(self.scan_period) + ' ' +\
|
|
14033
14036
|
'services: ' + repr(self.services) + ' ' +\
|
|
14037
|
+
'workload_pool_id: ' + repr(self.workload_pool_id) + ' ' +\
|
|
14038
|
+
'workload_project_id: ' + repr(self.workload_project_id) + ' ' +\
|
|
14039
|
+
'workload_project_number: ' + repr(self.workload_project_number) + ' ' +\
|
|
14040
|
+
'workload_provider_id: ' + repr(self.workload_provider_id) + ' ' +\
|
|
14034
14041
|
'>'
|
|
14035
14042
|
|
|
14036
14043
|
def to_dict(self):
|
|
@@ -14040,12 +14047,13 @@ class GCPConnector:
|
|
|
14040
14047
|
'id': self.id,
|
|
14041
14048
|
'include_tags': self.include_tags,
|
|
14042
14049
|
'name': self.name,
|
|
14043
|
-
'pool_id': self.pool_id,
|
|
14044
14050
|
'project_ids': self.project_ids,
|
|
14045
|
-
'project_number': self.project_number,
|
|
14046
|
-
'provider_id': self.provider_id,
|
|
14047
14051
|
'scan_period': self.scan_period,
|
|
14048
14052
|
'services': self.services,
|
|
14053
|
+
'workload_pool_id': self.workload_pool_id,
|
|
14054
|
+
'workload_project_id': self.workload_project_id,
|
|
14055
|
+
'workload_project_number': self.workload_project_number,
|
|
14056
|
+
'workload_provider_id': self.workload_provider_id,
|
|
14049
14057
|
}
|
|
14050
14058
|
|
|
14051
14059
|
@classmethod
|
|
@@ -14056,12 +14064,13 @@ class GCPConnector:
|
|
|
14056
14064
|
id=d.get('id'),
|
|
14057
14065
|
include_tags=d.get('include_tags'),
|
|
14058
14066
|
name=d.get('name'),
|
|
14059
|
-
pool_id=d.get('pool_id'),
|
|
14060
14067
|
project_ids=d.get('project_ids'),
|
|
14061
|
-
project_number=d.get('project_number'),
|
|
14062
|
-
provider_id=d.get('provider_id'),
|
|
14063
14068
|
scan_period=d.get('scan_period'),
|
|
14064
14069
|
services=d.get('services'),
|
|
14070
|
+
workload_pool_id=d.get('workload_pool_id'),
|
|
14071
|
+
workload_project_id=d.get('workload_project_id'),
|
|
14072
|
+
workload_project_number=d.get('workload_project_number'),
|
|
14073
|
+
workload_provider_id=d.get('workload_provider_id'),
|
|
14065
14074
|
)
|
|
14066
14075
|
|
|
14067
14076
|
|
|
@@ -6739,12 +6739,13 @@ def convert_gcp_connector_to_porcelain(plumbing):
|
|
|
6739
6739
|
porcelain.include_tags = convert_repeated_tag_to_porcelain(
|
|
6740
6740
|
plumbing.include_tags)
|
|
6741
6741
|
porcelain.name = (plumbing.name)
|
|
6742
|
-
porcelain.pool_id = (plumbing.pool_id)
|
|
6743
6742
|
porcelain.project_ids = (plumbing.project_ids)
|
|
6744
|
-
porcelain.project_number = (plumbing.project_number)
|
|
6745
|
-
porcelain.provider_id = (plumbing.provider_id)
|
|
6746
6743
|
porcelain.scan_period = (plumbing.scan_period)
|
|
6747
6744
|
porcelain.services = (plumbing.services)
|
|
6745
|
+
porcelain.workload_pool_id = (plumbing.workload_pool_id)
|
|
6746
|
+
porcelain.workload_project_id = (plumbing.workload_project_id)
|
|
6747
|
+
porcelain.workload_project_number = (plumbing.workload_project_number)
|
|
6748
|
+
porcelain.workload_provider_id = (plumbing.workload_provider_id)
|
|
6748
6749
|
return porcelain
|
|
6749
6750
|
|
|
6750
6751
|
|
|
@@ -6761,14 +6762,15 @@ def convert_gcp_connector_to_plumbing(porcelain):
|
|
|
6761
6762
|
plumbing.include_tags.extend(
|
|
6762
6763
|
convert_repeated_tag_to_plumbing(porcelain.include_tags))
|
|
6763
6764
|
plumbing.name = (porcelain.name)
|
|
6764
|
-
plumbing.pool_id = (porcelain.pool_id)
|
|
6765
6765
|
del plumbing.project_ids[:]
|
|
6766
6766
|
plumbing.project_ids.extend((porcelain.project_ids))
|
|
6767
|
-
plumbing.project_number = (porcelain.project_number)
|
|
6768
|
-
plumbing.provider_id = (porcelain.provider_id)
|
|
6769
6767
|
plumbing.scan_period = (porcelain.scan_period)
|
|
6770
6768
|
del plumbing.services[:]
|
|
6771
6769
|
plumbing.services.extend((porcelain.services))
|
|
6770
|
+
plumbing.workload_pool_id = (porcelain.workload_pool_id)
|
|
6771
|
+
plumbing.workload_project_id = (porcelain.workload_project_id)
|
|
6772
|
+
plumbing.workload_project_number = (porcelain.workload_project_number)
|
|
6773
|
+
plumbing.workload_provider_id = (porcelain.workload_provider_id)
|
|
6772
6774
|
return plumbing
|
|
6773
6775
|
|
|
6774
6776
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: strongdm
|
|
3
|
-
Version: 15.
|
|
3
|
+
Version: 15.44.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/v15.
|
|
9
|
+
Download-URL: https://github.com/strongdm/strongdm-sdk-python/archive/v15.44.0.tar.gz
|
|
10
10
|
Keywords: strongDM,sdm,api,automation,security,audit,database,server,ssh,rdp
|
|
11
11
|
Platform: UNKNOWN
|
|
12
12
|
Classifier: Development Status :: 4 - Beta
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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-15.41.0 → strongdm-15.44.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
|
|
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
|