strongdm 15.1.0__zip → 15.4.0__zip

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. {strongdm-15.1.0 → strongdm-15.4.0}/PKG-INFO +2 -2
  2. {strongdm-15.1.0 → strongdm-15.4.0}/setup.py +2 -2
  3. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/approval_workflow_approvers_pb2.py +6 -4
  4. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/approval_workflows_pb2.py +6 -4
  5. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/client.py +18 -18
  6. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/drivers_pb2.py +313 -223
  7. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/models.py +504 -0
  8. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/organization_history_pb2.py +25 -25
  9. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/plumbing.py +222 -1
  10. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/svc.py +212 -210
  11. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm.egg-info/PKG-INFO +2 -2
  12. {strongdm-15.1.0 → strongdm-15.4.0}/LICENSE +0 -0
  13. {strongdm-15.1.0 → strongdm-15.4.0}/README.md +0 -0
  14. {strongdm-15.1.0 → strongdm-15.4.0}/setup.cfg +0 -0
  15. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/__init__.py +0 -0
  16. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/access_request_events_history_pb2.py +0 -0
  17. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/access_request_events_history_pb2_grpc.py +0 -0
  18. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/access_requests_history_pb2.py +0 -0
  19. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/access_requests_history_pb2_grpc.py +0 -0
  20. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/access_requests_pb2.py +0 -0
  21. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/access_requests_pb2_grpc.py +0 -0
  22. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/account_attachments_history_pb2.py +0 -0
  23. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/account_attachments_history_pb2_grpc.py +0 -0
  24. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/account_attachments_pb2.py +0 -0
  25. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/account_attachments_pb2_grpc.py +0 -0
  26. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/account_grants_history_pb2.py +0 -0
  27. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/account_grants_history_pb2_grpc.py +0 -0
  28. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/account_grants_pb2.py +0 -0
  29. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/account_grants_pb2_grpc.py +0 -0
  30. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/account_permissions_pb2.py +0 -0
  31. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/account_permissions_pb2_grpc.py +0 -0
  32. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/account_resources_history_pb2.py +0 -0
  33. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/account_resources_history_pb2_grpc.py +0 -0
  34. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/account_resources_pb2.py +0 -0
  35. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/account_resources_pb2_grpc.py +0 -0
  36. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/accounts_history_pb2.py +0 -0
  37. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/accounts_history_pb2_grpc.py +0 -0
  38. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/accounts_pb2.py +0 -0
  39. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/accounts_pb2_grpc.py +0 -0
  40. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/activities_pb2.py +0 -0
  41. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/activities_pb2_grpc.py +0 -0
  42. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/approval_workflow_approvers_history_pb2.py +0 -0
  43. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/approval_workflow_approvers_history_pb2_grpc.py +0 -0
  44. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/approval_workflow_approvers_pb2_grpc.py +0 -0
  45. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/approval_workflow_steps_history_pb2.py +0 -0
  46. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/approval_workflow_steps_history_pb2_grpc.py +0 -0
  47. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/approval_workflow_steps_pb2.py +0 -0
  48. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/approval_workflow_steps_pb2_grpc.py +0 -0
  49. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/approval_workflows_history_pb2.py +0 -0
  50. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/approval_workflows_history_pb2_grpc.py +0 -0
  51. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/approval_workflows_pb2_grpc.py +0 -0
  52. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/constants.py +0 -0
  53. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/control_panel_pb2.py +0 -0
  54. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/control_panel_pb2_grpc.py +0 -0
  55. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/drivers_pb2_grpc.py +0 -0
  56. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/errors.py +0 -0
  57. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/health_checks_pb2.py +0 -0
  58. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/health_checks_pb2_grpc.py +0 -0
  59. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/identity_aliases_history_pb2.py +0 -0
  60. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/identity_aliases_history_pb2_grpc.py +0 -0
  61. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/identity_aliases_pb2.py +0 -0
  62. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/identity_aliases_pb2_grpc.py +0 -0
  63. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/identity_sets_history_pb2.py +0 -0
  64. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/identity_sets_history_pb2_grpc.py +0 -0
  65. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/identity_sets_pb2.py +0 -0
  66. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/identity_sets_pb2_grpc.py +0 -0
  67. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/managed_secrets_pb2.py +0 -0
  68. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/managed_secrets_pb2_grpc.py +0 -0
  69. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/nodes_history_pb2.py +0 -0
  70. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/nodes_history_pb2_grpc.py +0 -0
  71. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/nodes_pb2.py +0 -0
  72. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/nodes_pb2_grpc.py +0 -0
  73. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/options_pb2.py +0 -0
  74. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/options_pb2_grpc.py +0 -0
  75. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/organization_history_pb2_grpc.py +0 -0
  76. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/peering_group_nodes_pb2.py +0 -0
  77. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/peering_group_nodes_pb2_grpc.py +0 -0
  78. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/peering_group_peers_pb2.py +0 -0
  79. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/peering_group_peers_pb2_grpc.py +0 -0
  80. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/peering_group_resources_pb2.py +0 -0
  81. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/peering_group_resources_pb2_grpc.py +0 -0
  82. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/peering_groups_pb2.py +0 -0
  83. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/peering_groups_pb2_grpc.py +0 -0
  84. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/policies_history_pb2.py +0 -0
  85. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/policies_history_pb2_grpc.py +0 -0
  86. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/policies_pb2.py +0 -0
  87. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/policies_pb2_grpc.py +0 -0
  88. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/proxy_cluster_keys_pb2.py +0 -0
  89. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/proxy_cluster_keys_pb2_grpc.py +0 -0
  90. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/queries_pb2.py +0 -0
  91. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/queries_pb2_grpc.py +0 -0
  92. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/remote_identities_history_pb2.py +0 -0
  93. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/remote_identities_history_pb2_grpc.py +0 -0
  94. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/remote_identities_pb2.py +0 -0
  95. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/remote_identities_pb2_grpc.py +0 -0
  96. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/remote_identity_groups_history_pb2.py +0 -0
  97. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/remote_identity_groups_history_pb2_grpc.py +0 -0
  98. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/remote_identity_groups_pb2.py +0 -0
  99. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/remote_identity_groups_pb2_grpc.py +0 -0
  100. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/replays_pb2.py +0 -0
  101. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/replays_pb2_grpc.py +0 -0
  102. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/resources_history_pb2.py +0 -0
  103. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/resources_history_pb2_grpc.py +0 -0
  104. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/resources_pb2.py +0 -0
  105. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/resources_pb2_grpc.py +0 -0
  106. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/role_resources_history_pb2.py +0 -0
  107. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/role_resources_history_pb2_grpc.py +0 -0
  108. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/role_resources_pb2.py +0 -0
  109. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/role_resources_pb2_grpc.py +0 -0
  110. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/roles_history_pb2.py +0 -0
  111. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/roles_history_pb2_grpc.py +0 -0
  112. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/roles_pb2.py +0 -0
  113. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/roles_pb2_grpc.py +0 -0
  114. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/secret_engine_policy_pb2.py +0 -0
  115. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/secret_engine_policy_pb2_grpc.py +0 -0
  116. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/secret_engine_types_pb2.py +0 -0
  117. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/secret_engine_types_pb2_grpc.py +0 -0
  118. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/secret_engines_pb2.py +0 -0
  119. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/secret_engines_pb2_grpc.py +0 -0
  120. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/secret_store_healths_pb2.py +0 -0
  121. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/secret_store_healths_pb2_grpc.py +0 -0
  122. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/secret_store_types_pb2.py +0 -0
  123. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/secret_store_types_pb2_grpc.py +0 -0
  124. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/secret_stores_history_pb2.py +0 -0
  125. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/secret_stores_history_pb2_grpc.py +0 -0
  126. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/secret_stores_pb2.py +0 -0
  127. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/secret_stores_pb2_grpc.py +0 -0
  128. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/spec_pb2.py +0 -0
  129. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/spec_pb2_grpc.py +0 -0
  130. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/tags_pb2.py +0 -0
  131. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/tags_pb2_grpc.py +0 -0
  132. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/workflow_approvers_history_pb2.py +0 -0
  133. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/workflow_approvers_history_pb2_grpc.py +0 -0
  134. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/workflow_approvers_pb2.py +0 -0
  135. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/workflow_approvers_pb2_grpc.py +0 -0
  136. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/workflow_roles_history_pb2.py +0 -0
  137. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/workflow_roles_history_pb2_grpc.py +0 -0
  138. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/workflow_roles_pb2.py +0 -0
  139. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/workflow_roles_pb2_grpc.py +0 -0
  140. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/workflows_history_pb2.py +0 -0
  141. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/workflows_history_pb2_grpc.py +0 -0
  142. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/workflows_pb2.py +0 -0
  143. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm/workflows_pb2_grpc.py +0 -0
  144. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm.egg-info/SOURCES.txt +0 -0
  145. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm.egg-info/dependency_links.txt +0 -0
  146. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm.egg-info/requires.txt +0 -0
  147. {strongdm-15.1.0 → strongdm-15.4.0}/strongdm.egg-info/top_level.txt +0 -0
@@ -592,6 +592,9 @@ class AKSServiceAccount:
592
592
 
593
593
 
594
594
  class AKSServiceAccountUserImpersonation:
595
+ '''
596
+ AKSServiceAccountUserImpersonation is deprecated, see docs for more info.
597
+ '''
595
598
  __slots__ = [
596
599
  'bind_interface',
597
600
  'egress_filter',
@@ -740,6 +743,9 @@ class AKSServiceAccountUserImpersonation:
740
743
 
741
744
 
742
745
  class AKSUserImpersonation:
746
+ '''
747
+ AKSUserImpersonation is deprecated, see docs for more info.
748
+ '''
743
749
  __slots__ = [
744
750
  'bind_interface',
745
751
  'certificate_authority',
@@ -905,6 +911,167 @@ class AKSUserImpersonation:
905
911
  )
906
912
 
907
913
 
914
+ class AMQP:
915
+ '''
916
+ AMQP is currently unstable, and its API may change, or it may be removed,
917
+ without a major version bump.
918
+ '''
919
+ __slots__ = [
920
+ 'bind_interface',
921
+ 'egress_filter',
922
+ 'healthy',
923
+ 'hostname',
924
+ 'id',
925
+ 'name',
926
+ 'password',
927
+ 'port',
928
+ 'port_override',
929
+ 'proxy_cluster_id',
930
+ 'secret_store_id',
931
+ 'subdomain',
932
+ 'tags',
933
+ 'tls_required',
934
+ 'username',
935
+ ]
936
+
937
+ def __init__(
938
+ self,
939
+ bind_interface=None,
940
+ egress_filter=None,
941
+ healthy=None,
942
+ hostname=None,
943
+ id=None,
944
+ name=None,
945
+ password=None,
946
+ port=None,
947
+ port_override=None,
948
+ proxy_cluster_id=None,
949
+ secret_store_id=None,
950
+ subdomain=None,
951
+ tags=None,
952
+ tls_required=None,
953
+ username=None,
954
+ ):
955
+ self.bind_interface = bind_interface if bind_interface is not None else ''
956
+ '''
957
+ The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided.
958
+ '''
959
+ self.egress_filter = egress_filter if egress_filter is not None else ''
960
+ '''
961
+ A filter applied to the routing logic to pin datasource to nodes.
962
+ '''
963
+ self.healthy = healthy if healthy is not None else False
964
+ '''
965
+ True if the datasource is reachable and the credentials are valid.
966
+ '''
967
+ self.hostname = hostname if hostname is not None else ''
968
+ '''
969
+ The host to dial to initiate a connection from the egress node to this resource.
970
+ '''
971
+ self.id = id if id is not None else ''
972
+ '''
973
+ Unique identifier of the Resource.
974
+ '''
975
+ self.name = name if name is not None else ''
976
+ '''
977
+ Unique human-readable name of the Resource.
978
+ '''
979
+ self.password = password if password is not None else ''
980
+ '''
981
+ The password to authenticate with.
982
+ '''
983
+ self.port = port if port is not None else 0
984
+ '''
985
+ The port to dial to initiate a connection from the egress node to this resource.
986
+ '''
987
+ self.port_override = port_override if port_override is not None else 0
988
+ '''
989
+ The local port used by clients to connect to this resource.
990
+ '''
991
+ self.proxy_cluster_id = proxy_cluster_id if proxy_cluster_id is not None else ''
992
+ '''
993
+ ID of the proxy cluster for this resource, if any.
994
+ '''
995
+ self.secret_store_id = secret_store_id if secret_store_id is not None else ''
996
+ '''
997
+ ID of the secret store containing credentials for this resource, if any.
998
+ '''
999
+ self.subdomain = subdomain if subdomain is not None else ''
1000
+ '''
1001
+ Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
1002
+ '''
1003
+ self.tags = tags if tags is not None else _porcelain_zero_value_tags()
1004
+ '''
1005
+ Tags is a map of key, value pairs.
1006
+ '''
1007
+ self.tls_required = tls_required if tls_required is not None else False
1008
+ '''
1009
+ If set, TLS must be used to connect to this resource.
1010
+ '''
1011
+ self.username = username if username is not None else ''
1012
+ '''
1013
+ The username to authenticate with.
1014
+ '''
1015
+
1016
+ def __repr__(self):
1017
+ return '<sdm.AMQP ' + \
1018
+ 'bind_interface: ' + repr(self.bind_interface) + ' ' +\
1019
+ 'egress_filter: ' + repr(self.egress_filter) + ' ' +\
1020
+ 'healthy: ' + repr(self.healthy) + ' ' +\
1021
+ 'hostname: ' + repr(self.hostname) + ' ' +\
1022
+ 'id: ' + repr(self.id) + ' ' +\
1023
+ 'name: ' + repr(self.name) + ' ' +\
1024
+ 'password: ' + repr(self.password) + ' ' +\
1025
+ 'port: ' + repr(self.port) + ' ' +\
1026
+ 'port_override: ' + repr(self.port_override) + ' ' +\
1027
+ 'proxy_cluster_id: ' + repr(self.proxy_cluster_id) + ' ' +\
1028
+ 'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
1029
+ 'subdomain: ' + repr(self.subdomain) + ' ' +\
1030
+ 'tags: ' + repr(self.tags) + ' ' +\
1031
+ 'tls_required: ' + repr(self.tls_required) + ' ' +\
1032
+ 'username: ' + repr(self.username) + ' ' +\
1033
+ '>'
1034
+
1035
+ def to_dict(self):
1036
+ return {
1037
+ 'bind_interface': self.bind_interface,
1038
+ 'egress_filter': self.egress_filter,
1039
+ 'healthy': self.healthy,
1040
+ 'hostname': self.hostname,
1041
+ 'id': self.id,
1042
+ 'name': self.name,
1043
+ 'password': self.password,
1044
+ 'port': self.port,
1045
+ 'port_override': self.port_override,
1046
+ 'proxy_cluster_id': self.proxy_cluster_id,
1047
+ 'secret_store_id': self.secret_store_id,
1048
+ 'subdomain': self.subdomain,
1049
+ 'tags': self.tags,
1050
+ 'tls_required': self.tls_required,
1051
+ 'username': self.username,
1052
+ }
1053
+
1054
+ @classmethod
1055
+ def from_dict(cls, d):
1056
+ return cls(
1057
+ bind_interface=d.get('bind_interface'),
1058
+ egress_filter=d.get('egress_filter'),
1059
+ healthy=d.get('healthy'),
1060
+ hostname=d.get('hostname'),
1061
+ id=d.get('id'),
1062
+ name=d.get('name'),
1063
+ password=d.get('password'),
1064
+ port=d.get('port'),
1065
+ port_override=d.get('port_override'),
1066
+ proxy_cluster_id=d.get('proxy_cluster_id'),
1067
+ secret_store_id=d.get('secret_store_id'),
1068
+ subdomain=d.get('subdomain'),
1069
+ tags=d.get('tags'),
1070
+ tls_required=d.get('tls_required'),
1071
+ username=d.get('username'),
1072
+ )
1073
+
1074
+
908
1075
  class AWS:
909
1076
  __slots__ = [
910
1077
  'access_key',
@@ -4470,6 +4637,9 @@ class AmazonEKSInstanceProfile:
4470
4637
 
4471
4638
 
4472
4639
  class AmazonEKSInstanceProfileUserImpersonation:
4640
+ '''
4641
+ AmazonEKSInstanceProfileUserImpersonation is deprecated, see docs for more info.
4642
+ '''
4473
4643
  __slots__ = [
4474
4644
  'bind_interface',
4475
4645
  'certificate_authority',
@@ -4645,6 +4815,9 @@ class AmazonEKSInstanceProfileUserImpersonation:
4645
4815
 
4646
4816
 
4647
4817
  class AmazonEKSUserImpersonation:
4818
+ '''
4819
+ AmazonEKSUserImpersonation is deprecated, see docs for more info.
4820
+ '''
4648
4821
  __slots__ = [
4649
4822
  'access_key',
4650
4823
  'bind_interface',
@@ -5496,6 +5669,7 @@ class ApprovalWorkflow:
5496
5669
  class ApprovalWorkflowApprover:
5497
5670
  '''
5498
5671
  ApprovalWorkflowApprover links an approval workflow approver to an ApprovalWorkflowStep
5672
+ ApprovalWorkflowApprover is deprecated, see docs for more info.
5499
5673
  '''
5500
5674
  __slots__ = [
5501
5675
  'account_id',
@@ -6047,6 +6221,7 @@ class ApprovalWorkflowListResponse:
6047
6221
  class ApprovalWorkflowStep:
6048
6222
  '''
6049
6223
  ApprovalWorkflowStep links an approval workflow step to an ApprovalWorkflow
6224
+ ApprovalWorkflowStep is deprecated, see docs for more info.
6050
6225
  '''
6051
6226
  __slots__ = [
6052
6227
  'approval_flow_id',
@@ -7998,6 +8173,178 @@ class AzureMysql:
7998
8173
  )
7999
8174
 
8000
8175
 
8176
+ class AzureMysqlManagedIdentity:
8177
+ '''
8178
+ AzureMysqlManagedIdentity is currently unstable, and its API may change, or it may be removed,
8179
+ without a major version bump.
8180
+ '''
8181
+ __slots__ = [
8182
+ 'bind_interface',
8183
+ 'database',
8184
+ 'egress_filter',
8185
+ 'healthy',
8186
+ 'hostname',
8187
+ 'id',
8188
+ 'name',
8189
+ 'password',
8190
+ 'port',
8191
+ 'port_override',
8192
+ 'proxy_cluster_id',
8193
+ 'secret_store_id',
8194
+ 'subdomain',
8195
+ 'tags',
8196
+ 'use_azure_single_server_usernames',
8197
+ 'username',
8198
+ ]
8199
+
8200
+ def __init__(
8201
+ self,
8202
+ bind_interface=None,
8203
+ database=None,
8204
+ egress_filter=None,
8205
+ healthy=None,
8206
+ hostname=None,
8207
+ id=None,
8208
+ name=None,
8209
+ password=None,
8210
+ port=None,
8211
+ port_override=None,
8212
+ proxy_cluster_id=None,
8213
+ secret_store_id=None,
8214
+ subdomain=None,
8215
+ tags=None,
8216
+ use_azure_single_server_usernames=None,
8217
+ username=None,
8218
+ ):
8219
+ self.bind_interface = bind_interface if bind_interface is not None else ''
8220
+ '''
8221
+ The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided.
8222
+ '''
8223
+ self.database = database if database is not None else ''
8224
+ '''
8225
+ The database for healthchecks. Does not affect client requests.
8226
+ '''
8227
+ self.egress_filter = egress_filter if egress_filter is not None else ''
8228
+ '''
8229
+ A filter applied to the routing logic to pin datasource to nodes.
8230
+ '''
8231
+ self.healthy = healthy if healthy is not None else False
8232
+ '''
8233
+ True if the datasource is reachable and the credentials are valid.
8234
+ '''
8235
+ self.hostname = hostname if hostname is not None else ''
8236
+ '''
8237
+ The host to dial to initiate a connection from the egress node to this resource.
8238
+ '''
8239
+ self.id = id if id is not None else ''
8240
+ '''
8241
+ Unique identifier of the Resource.
8242
+ '''
8243
+ self.name = name if name is not None else ''
8244
+ '''
8245
+ Unique human-readable name of the Resource.
8246
+ '''
8247
+ self.password = password if password is not None else ''
8248
+ '''
8249
+ The password to authenticate with.
8250
+ '''
8251
+ self.port = port if port is not None else 0
8252
+ '''
8253
+ The port to dial to initiate a connection from the egress node to this resource.
8254
+ '''
8255
+ self.port_override = port_override if port_override is not None else 0
8256
+ '''
8257
+ The local port used by clients to connect to this resource.
8258
+ '''
8259
+ self.proxy_cluster_id = proxy_cluster_id if proxy_cluster_id is not None else ''
8260
+ '''
8261
+ ID of the proxy cluster for this resource, if any.
8262
+ '''
8263
+ self.secret_store_id = secret_store_id if secret_store_id is not None else ''
8264
+ '''
8265
+ ID of the secret store containing credentials for this resource, if any.
8266
+ '''
8267
+ self.subdomain = subdomain if subdomain is not None else ''
8268
+ '''
8269
+ Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
8270
+ '''
8271
+ self.tags = tags if tags is not None else _porcelain_zero_value_tags()
8272
+ '''
8273
+ Tags is a map of key, value pairs.
8274
+ '''
8275
+ self.use_azure_single_server_usernames = use_azure_single_server_usernames if use_azure_single_server_usernames is not None else False
8276
+ '''
8277
+ If true, appends the hostname to the username when hitting a database.azure.com address
8278
+ '''
8279
+ self.username = username if username is not None else ''
8280
+ '''
8281
+ The username to authenticate with.
8282
+ '''
8283
+
8284
+ def __repr__(self):
8285
+ return '<sdm.AzureMysqlManagedIdentity ' + \
8286
+ 'bind_interface: ' + repr(self.bind_interface) + ' ' +\
8287
+ 'database: ' + repr(self.database) + ' ' +\
8288
+ 'egress_filter: ' + repr(self.egress_filter) + ' ' +\
8289
+ 'healthy: ' + repr(self.healthy) + ' ' +\
8290
+ 'hostname: ' + repr(self.hostname) + ' ' +\
8291
+ 'id: ' + repr(self.id) + ' ' +\
8292
+ 'name: ' + repr(self.name) + ' ' +\
8293
+ 'password: ' + repr(self.password) + ' ' +\
8294
+ 'port: ' + repr(self.port) + ' ' +\
8295
+ 'port_override: ' + repr(self.port_override) + ' ' +\
8296
+ 'proxy_cluster_id: ' + repr(self.proxy_cluster_id) + ' ' +\
8297
+ 'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
8298
+ 'subdomain: ' + repr(self.subdomain) + ' ' +\
8299
+ 'tags: ' + repr(self.tags) + ' ' +\
8300
+ 'use_azure_single_server_usernames: ' + repr(self.use_azure_single_server_usernames) + ' ' +\
8301
+ 'username: ' + repr(self.username) + ' ' +\
8302
+ '>'
8303
+
8304
+ def to_dict(self):
8305
+ return {
8306
+ 'bind_interface': self.bind_interface,
8307
+ 'database': self.database,
8308
+ 'egress_filter': self.egress_filter,
8309
+ 'healthy': self.healthy,
8310
+ 'hostname': self.hostname,
8311
+ 'id': self.id,
8312
+ 'name': self.name,
8313
+ 'password': self.password,
8314
+ 'port': self.port,
8315
+ 'port_override': self.port_override,
8316
+ 'proxy_cluster_id': self.proxy_cluster_id,
8317
+ 'secret_store_id': self.secret_store_id,
8318
+ 'subdomain': self.subdomain,
8319
+ 'tags': self.tags,
8320
+ 'use_azure_single_server_usernames':
8321
+ self.use_azure_single_server_usernames,
8322
+ 'username': self.username,
8323
+ }
8324
+
8325
+ @classmethod
8326
+ def from_dict(cls, d):
8327
+ return cls(
8328
+ bind_interface=d.get('bind_interface'),
8329
+ database=d.get('database'),
8330
+ egress_filter=d.get('egress_filter'),
8331
+ healthy=d.get('healthy'),
8332
+ hostname=d.get('hostname'),
8333
+ id=d.get('id'),
8334
+ name=d.get('name'),
8335
+ password=d.get('password'),
8336
+ port=d.get('port'),
8337
+ port_override=d.get('port_override'),
8338
+ proxy_cluster_id=d.get('proxy_cluster_id'),
8339
+ secret_store_id=d.get('secret_store_id'),
8340
+ subdomain=d.get('subdomain'),
8341
+ tags=d.get('tags'),
8342
+ use_azure_single_server_usernames=d.get(
8343
+ 'use_azure_single_server_usernames'),
8344
+ username=d.get('username'),
8345
+ )
8346
+
8347
+
8001
8348
  class AzurePostgres:
8002
8349
  __slots__ = [
8003
8350
  'bind_interface',
@@ -13198,6 +13545,9 @@ class GoogleGKE:
13198
13545
 
13199
13546
 
13200
13547
  class GoogleGKEUserImpersonation:
13548
+ '''
13549
+ GoogleGKEUserImpersonation is deprecated, see docs for more info.
13550
+ '''
13201
13551
  __slots__ = [
13202
13552
  'bind_interface',
13203
13553
  'certificate_authority',
@@ -16011,6 +16361,9 @@ class KubernetesServiceAccount:
16011
16361
 
16012
16362
 
16013
16363
  class KubernetesServiceAccountUserImpersonation:
16364
+ '''
16365
+ KubernetesServiceAccountUserImpersonation is deprecated, see docs for more info.
16366
+ '''
16014
16367
  __slots__ = [
16015
16368
  'bind_interface',
16016
16369
  'egress_filter',
@@ -16159,6 +16512,9 @@ class KubernetesServiceAccountUserImpersonation:
16159
16512
 
16160
16513
 
16161
16514
  class KubernetesUserImpersonation:
16515
+ '''
16516
+ KubernetesUserImpersonation is deprecated, see docs for more info.
16517
+ '''
16162
16518
  __slots__ = [
16163
16519
  'bind_interface',
16164
16520
  'certificate_authority',
@@ -16324,6 +16680,132 @@ class KubernetesUserImpersonation:
16324
16680
  )
16325
16681
 
16326
16682
 
16683
+ class LogCategoryConfig:
16684
+ __slots__ = [
16685
+ 'remote_discard_replays',
16686
+ 'remote_encoder',
16687
+ ]
16688
+
16689
+ def __init__(
16690
+ self,
16691
+ remote_discard_replays=None,
16692
+ remote_encoder=None,
16693
+ ):
16694
+ self.remote_discard_replays = remote_discard_replays if remote_discard_replays is not None else False
16695
+ '''
16696
+ Indicates if the Organization should exclude replay data from remote logging for the log category.
16697
+ '''
16698
+ self.remote_encoder = remote_encoder if remote_encoder is not None else ''
16699
+ '''
16700
+ The Organization's remote log encryption encoder, one of the LogRemoteEncoder constants.
16701
+ '''
16702
+
16703
+ def __repr__(self):
16704
+ return '<sdm.LogCategoryConfig ' + \
16705
+ 'remote_discard_replays: ' + repr(self.remote_discard_replays) + ' ' +\
16706
+ 'remote_encoder: ' + repr(self.remote_encoder) + ' ' +\
16707
+ '>'
16708
+
16709
+ def to_dict(self):
16710
+ return {
16711
+ 'remote_discard_replays': self.remote_discard_replays,
16712
+ 'remote_encoder': self.remote_encoder,
16713
+ }
16714
+
16715
+ @classmethod
16716
+ def from_dict(cls, d):
16717
+ return cls(
16718
+ remote_discard_replays=d.get('remote_discard_replays'),
16719
+ remote_encoder=d.get('remote_encoder'),
16720
+ )
16721
+
16722
+
16723
+ class LogConfig:
16724
+ __slots__ = [
16725
+ 'categories',
16726
+ 'local_encoder',
16727
+ 'local_format',
16728
+ 'local_socket_path',
16729
+ 'local_storage',
16730
+ 'local_tcp_address',
16731
+ 'public_key',
16732
+ ]
16733
+
16734
+ def __init__(
16735
+ self,
16736
+ categories=None,
16737
+ local_encoder=None,
16738
+ local_format=None,
16739
+ local_socket_path=None,
16740
+ local_storage=None,
16741
+ local_tcp_address=None,
16742
+ public_key=None,
16743
+ ):
16744
+ self.categories = categories if categories is not None else _porcelain_zero_value_log_category_config_map(
16745
+ )
16746
+ '''
16747
+ The Organization's log category configuration settings.
16748
+ '''
16749
+ self.local_encoder = local_encoder if local_encoder is not None else ''
16750
+ '''
16751
+ The Organization's local log encryption encoder, one of the LogLocalEncoder constants.
16752
+ '''
16753
+ self.local_format = local_format if local_format is not None else ''
16754
+ '''
16755
+ The Organization's local log format, one of the LogLocalFormat constants.
16756
+ '''
16757
+ self.local_socket_path = local_socket_path if local_socket_path is not None else ''
16758
+ '''
16759
+ The Organization's local log socket path.
16760
+ '''
16761
+ self.local_storage = local_storage if local_storage is not None else ''
16762
+ '''
16763
+ The Organization's local log storage, one of the LogLocalStorage constants.
16764
+ '''
16765
+ self.local_tcp_address = local_tcp_address if local_tcp_address is not None else ''
16766
+ '''
16767
+ The Organization's local log TCP address.
16768
+ '''
16769
+ self.public_key = public_key if public_key is not None else ''
16770
+ '''
16771
+ The Organization's public key in PEM format for encrypting logs.
16772
+ '''
16773
+
16774
+ def __repr__(self):
16775
+ return '<sdm.LogConfig ' + \
16776
+ 'categories: ' + repr(self.categories) + ' ' +\
16777
+ 'local_encoder: ' + repr(self.local_encoder) + ' ' +\
16778
+ 'local_format: ' + repr(self.local_format) + ' ' +\
16779
+ 'local_socket_path: ' + repr(self.local_socket_path) + ' ' +\
16780
+ 'local_storage: ' + repr(self.local_storage) + ' ' +\
16781
+ 'local_tcp_address: ' + repr(self.local_tcp_address) + ' ' +\
16782
+ 'public_key: ' + repr(self.public_key) + ' ' +\
16783
+ '>'
16784
+
16785
+ def to_dict(self):
16786
+ return {
16787
+ 'categories': self.categories,
16788
+ 'local_encoder': self.local_encoder,
16789
+ 'local_format': self.local_format,
16790
+ 'local_socket_path': self.local_socket_path,
16791
+ 'local_storage': self.local_storage,
16792
+ 'local_tcp_address': self.local_tcp_address,
16793
+ 'public_key': self.public_key,
16794
+ }
16795
+
16796
+ @classmethod
16797
+ def from_dict(cls, d):
16798
+ return cls(
16799
+ categories=d.get('categories'),
16800
+ local_encoder=d.get('local_encoder'),
16801
+ local_format=d.get('local_format'),
16802
+ local_socket_path=d.get('local_socket_path'),
16803
+ local_storage=d.get('local_storage'),
16804
+ local_tcp_address=d.get('local_tcp_address'),
16805
+ public_key=d.get('public_key'),
16806
+ )
16807
+
16808
+
16327
16809
  class MTLSMysql:
16328
16810
  '''
16329
16811
  MTLSMysql is currently unstable, and its API may change, or it may be removed,
@@ -20288,6 +20770,7 @@ class Organization:
20288
20770
  'idle_timeout',
20289
20771
  'idle_timeout_enabled',
20290
20772
  'kind',
20773
+ 'log_config',
20291
20774
  'log_local_encoder',
20292
20775
  'log_local_format',
20293
20776
  'log_local_storage',
@@ -20322,6 +20805,7 @@ class Organization:
20322
20805
  idle_timeout=None,
20323
20806
  idle_timeout_enabled=None,
20324
20807
  kind=None,
20808
+ log_config=None,
20325
20809
  log_local_encoder=None,
20326
20810
  log_local_format=None,
20327
20811
  log_local_storage=None,
@@ -20363,6 +20847,7 @@ class Organization:
20363
20847
  self.discard_replays = discard_replays if discard_replays is not None else False
20364
20848
  '''
20365
20849
  Indicates if the Organization should drop replay data for SSH, RDP, and K8s logs.
20850
+ Deprecated: use categories specific log_config.categories[].remote_discard_replays instead
20366
20851
  '''
20367
20852
  self.enforce_single_session = enforce_single_session if enforce_single_session is not None else False
20368
20853
  '''
@@ -20380,29 +20865,39 @@ class Organization:
20380
20865
  '''
20381
20866
  The Organization's type, one of the OrgKind constants.
20382
20867
  '''
20868
+ self.log_config = log_config if log_config is not None else None
20869
+ '''
20870
+ The Organization's logging settings
20871
+ '''
20383
20872
  self.log_local_encoder = log_local_encoder if log_local_encoder is not None else ''
20384
20873
  '''
20385
20874
  The Organization's local log encryption encoder, one of the LogLocalEncoder constants.
20875
+ Deprecated: use log_config.local_encoder instead
20386
20876
  '''
20387
20877
  self.log_local_format = log_local_format if log_local_format is not None else ''
20388
20878
  '''
20389
20879
  The Organization's local log format, one of the LogLocalFormat constants.
20880
+ Deprecated: use log_config.local_format instead
20390
20881
  '''
20391
20882
  self.log_local_storage = log_local_storage if log_local_storage is not None else ''
20392
20883
  '''
20393
20884
  The Organization's local log storage, one of the LogLocalStorage constants.
20885
+ Deprecated: use log_config.local_storage instead
20394
20886
  '''
20395
20887
  self.log_remote_encoder = log_remote_encoder if log_remote_encoder is not None else ''
20396
20888
  '''
20397
20889
  The Organization's remote log encryption encoder, one of the LogRemoteEncoder constants.
20890
+ Deprecated: use categories specific log_config.categories[].remote_encoder instead
20398
20891
  '''
20399
20892
  self.log_socket_path = log_socket_path if log_socket_path is not None else ''
20400
20893
  '''
20401
20894
  The Organization's socket path for Socket local log storage.
20895
+ Deprecated: use log_config.local_socket_path instead
20402
20896
  '''
20403
20897
  self.log_tcp_address = log_tcp_address if log_tcp_address is not None else ''
20404
20898
  '''
20405
20899
  The Organization's TCP address for TCP or Syslog local log storage.
20900
+ Deprecated: use log_config.local_tcp_address instead
20406
20901
  '''
20407
20902
  self.loopback_range = loopback_range if loopback_range is not None else ''
20408
20903
  '''
@@ -20423,6 +20918,7 @@ class Organization:
20423
20918
  self.public_key_pem = public_key_pem if public_key_pem is not None else ''
20424
20919
  '''
20425
20920
  The Organization's public key PEM for encrypting remote logs.
20921
+ Deprecated: use log_config.public_key instead
20426
20922
  '''
20427
20923
  self.require_secret_store = require_secret_store if require_secret_store is not None else False
20428
20924
  '''
@@ -20476,6 +20972,7 @@ class Organization:
20476
20972
  'idle_timeout: ' + repr(self.idle_timeout) + ' ' +\
20477
20973
  'idle_timeout_enabled: ' + repr(self.idle_timeout_enabled) + ' ' +\
20478
20974
  'kind: ' + repr(self.kind) + ' ' +\
20975
+ 'log_config: ' + repr(self.log_config) + ' ' +\
20479
20976
  'log_local_encoder: ' + repr(self.log_local_encoder) + ' ' +\
20480
20977
  'log_local_format: ' + repr(self.log_local_format) + ' ' +\
20481
20978
  'log_local_storage: ' + repr(self.log_local_storage) + ' ' +\
@@ -20510,6 +21007,7 @@ class Organization:
20510
21007
  'idle_timeout': self.idle_timeout,
20511
21008
  'idle_timeout_enabled': self.idle_timeout_enabled,
20512
21009
  'kind': self.kind,
21010
+ 'log_config': self.log_config,
20513
21011
  'log_local_encoder': self.log_local_encoder,
20514
21012
  'log_local_format': self.log_local_format,
20515
21013
  'log_local_storage': self.log_local_storage,
@@ -20547,6 +21045,7 @@ class Organization:
20547
21045
  idle_timeout=d.get('idle_timeout'),
20548
21046
  idle_timeout_enabled=d.get('idle_timeout_enabled'),
20549
21047
  kind=d.get('kind'),
21048
+ log_config=d.get('log_config'),
20550
21049
  log_local_encoder=d.get('log_local_encoder'),
20551
21050
  log_local_format=d.get('log_local_format'),
20552
21051
  log_local_storage=d.get('log_local_storage'),
@@ -31134,6 +31633,7 @@ class Workflow:
31134
31633
  class WorkflowApprover:
31135
31634
  '''
31136
31635
  WorkflowApprover is an account or a role with the ability to approve requests bound to a workflow.
31636
+ WorkflowApprover is deprecated, see docs for more info.
31137
31637
  '''
31138
31638
  __slots__ = [
31139
31639
  'account_id',
@@ -32172,3 +32672,7 @@ def _porcelain_zero_value_access_rules():
32172
32672
 
32173
32673
  def _porcelain_zero_value_access_rule():
32174
32674
  return {}
32675
+
32676
+
32677
+ def _porcelain_zero_value_log_category_config_map():
32678
+ return {}