strongdm 15.2.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.2.0 → strongdm-15.4.0}/PKG-INFO +2 -2
  2. {strongdm-15.2.0 → strongdm-15.4.0}/setup.py +2 -2
  3. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/approval_workflow_approvers_pb2.py +6 -4
  4. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/approval_workflows_pb2.py +6 -4
  5. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/client.py +18 -18
  6. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/drivers_pb2.py +313 -223
  7. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/models.py +357 -0
  8. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/plumbing.py +125 -1
  9. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/svc.py +212 -210
  10. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm.egg-info/PKG-INFO +2 -2
  11. {strongdm-15.2.0 → strongdm-15.4.0}/LICENSE +0 -0
  12. {strongdm-15.2.0 → strongdm-15.4.0}/README.md +0 -0
  13. {strongdm-15.2.0 → strongdm-15.4.0}/setup.cfg +0 -0
  14. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/__init__.py +0 -0
  15. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/access_request_events_history_pb2.py +0 -0
  16. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/access_request_events_history_pb2_grpc.py +0 -0
  17. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/access_requests_history_pb2.py +0 -0
  18. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/access_requests_history_pb2_grpc.py +0 -0
  19. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/access_requests_pb2.py +0 -0
  20. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/access_requests_pb2_grpc.py +0 -0
  21. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/account_attachments_history_pb2.py +0 -0
  22. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/account_attachments_history_pb2_grpc.py +0 -0
  23. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/account_attachments_pb2.py +0 -0
  24. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/account_attachments_pb2_grpc.py +0 -0
  25. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/account_grants_history_pb2.py +0 -0
  26. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/account_grants_history_pb2_grpc.py +0 -0
  27. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/account_grants_pb2.py +0 -0
  28. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/account_grants_pb2_grpc.py +0 -0
  29. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/account_permissions_pb2.py +0 -0
  30. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/account_permissions_pb2_grpc.py +0 -0
  31. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/account_resources_history_pb2.py +0 -0
  32. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/account_resources_history_pb2_grpc.py +0 -0
  33. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/account_resources_pb2.py +0 -0
  34. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/account_resources_pb2_grpc.py +0 -0
  35. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/accounts_history_pb2.py +0 -0
  36. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/accounts_history_pb2_grpc.py +0 -0
  37. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/accounts_pb2.py +0 -0
  38. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/accounts_pb2_grpc.py +0 -0
  39. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/activities_pb2.py +0 -0
  40. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/activities_pb2_grpc.py +0 -0
  41. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/approval_workflow_approvers_history_pb2.py +0 -0
  42. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/approval_workflow_approvers_history_pb2_grpc.py +0 -0
  43. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/approval_workflow_approvers_pb2_grpc.py +0 -0
  44. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/approval_workflow_steps_history_pb2.py +0 -0
  45. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/approval_workflow_steps_history_pb2_grpc.py +0 -0
  46. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/approval_workflow_steps_pb2.py +0 -0
  47. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/approval_workflow_steps_pb2_grpc.py +0 -0
  48. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/approval_workflows_history_pb2.py +0 -0
  49. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/approval_workflows_history_pb2_grpc.py +0 -0
  50. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/approval_workflows_pb2_grpc.py +0 -0
  51. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/constants.py +0 -0
  52. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/control_panel_pb2.py +0 -0
  53. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/control_panel_pb2_grpc.py +0 -0
  54. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/drivers_pb2_grpc.py +0 -0
  55. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/errors.py +0 -0
  56. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/health_checks_pb2.py +0 -0
  57. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/health_checks_pb2_grpc.py +0 -0
  58. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/identity_aliases_history_pb2.py +0 -0
  59. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/identity_aliases_history_pb2_grpc.py +0 -0
  60. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/identity_aliases_pb2.py +0 -0
  61. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/identity_aliases_pb2_grpc.py +0 -0
  62. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/identity_sets_history_pb2.py +0 -0
  63. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/identity_sets_history_pb2_grpc.py +0 -0
  64. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/identity_sets_pb2.py +0 -0
  65. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/identity_sets_pb2_grpc.py +0 -0
  66. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/managed_secrets_pb2.py +0 -0
  67. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/managed_secrets_pb2_grpc.py +0 -0
  68. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/nodes_history_pb2.py +0 -0
  69. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/nodes_history_pb2_grpc.py +0 -0
  70. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/nodes_pb2.py +0 -0
  71. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/nodes_pb2_grpc.py +0 -0
  72. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/options_pb2.py +0 -0
  73. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/options_pb2_grpc.py +0 -0
  74. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/organization_history_pb2.py +0 -0
  75. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/organization_history_pb2_grpc.py +0 -0
  76. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/peering_group_nodes_pb2.py +0 -0
  77. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/peering_group_nodes_pb2_grpc.py +0 -0
  78. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/peering_group_peers_pb2.py +0 -0
  79. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/peering_group_peers_pb2_grpc.py +0 -0
  80. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/peering_group_resources_pb2.py +0 -0
  81. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/peering_group_resources_pb2_grpc.py +0 -0
  82. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/peering_groups_pb2.py +0 -0
  83. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/peering_groups_pb2_grpc.py +0 -0
  84. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/policies_history_pb2.py +0 -0
  85. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/policies_history_pb2_grpc.py +0 -0
  86. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/policies_pb2.py +0 -0
  87. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/policies_pb2_grpc.py +0 -0
  88. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/proxy_cluster_keys_pb2.py +0 -0
  89. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/proxy_cluster_keys_pb2_grpc.py +0 -0
  90. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/queries_pb2.py +0 -0
  91. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/queries_pb2_grpc.py +0 -0
  92. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/remote_identities_history_pb2.py +0 -0
  93. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/remote_identities_history_pb2_grpc.py +0 -0
  94. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/remote_identities_pb2.py +0 -0
  95. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/remote_identities_pb2_grpc.py +0 -0
  96. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/remote_identity_groups_history_pb2.py +0 -0
  97. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/remote_identity_groups_history_pb2_grpc.py +0 -0
  98. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/remote_identity_groups_pb2.py +0 -0
  99. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/remote_identity_groups_pb2_grpc.py +0 -0
  100. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/replays_pb2.py +0 -0
  101. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/replays_pb2_grpc.py +0 -0
  102. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/resources_history_pb2.py +0 -0
  103. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/resources_history_pb2_grpc.py +0 -0
  104. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/resources_pb2.py +0 -0
  105. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/resources_pb2_grpc.py +0 -0
  106. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/role_resources_history_pb2.py +0 -0
  107. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/role_resources_history_pb2_grpc.py +0 -0
  108. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/role_resources_pb2.py +0 -0
  109. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/role_resources_pb2_grpc.py +0 -0
  110. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/roles_history_pb2.py +0 -0
  111. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/roles_history_pb2_grpc.py +0 -0
  112. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/roles_pb2.py +0 -0
  113. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/roles_pb2_grpc.py +0 -0
  114. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/secret_engine_policy_pb2.py +0 -0
  115. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/secret_engine_policy_pb2_grpc.py +0 -0
  116. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/secret_engine_types_pb2.py +0 -0
  117. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/secret_engine_types_pb2_grpc.py +0 -0
  118. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/secret_engines_pb2.py +0 -0
  119. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/secret_engines_pb2_grpc.py +0 -0
  120. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/secret_store_healths_pb2.py +0 -0
  121. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/secret_store_healths_pb2_grpc.py +0 -0
  122. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/secret_store_types_pb2.py +0 -0
  123. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/secret_store_types_pb2_grpc.py +0 -0
  124. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/secret_stores_history_pb2.py +0 -0
  125. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/secret_stores_history_pb2_grpc.py +0 -0
  126. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/secret_stores_pb2.py +0 -0
  127. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/secret_stores_pb2_grpc.py +0 -0
  128. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/spec_pb2.py +0 -0
  129. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/spec_pb2_grpc.py +0 -0
  130. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/tags_pb2.py +0 -0
  131. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/tags_pb2_grpc.py +0 -0
  132. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/workflow_approvers_history_pb2.py +0 -0
  133. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/workflow_approvers_history_pb2_grpc.py +0 -0
  134. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/workflow_approvers_pb2.py +0 -0
  135. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/workflow_approvers_pb2_grpc.py +0 -0
  136. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/workflow_roles_history_pb2.py +0 -0
  137. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/workflow_roles_history_pb2_grpc.py +0 -0
  138. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/workflow_roles_pb2.py +0 -0
  139. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/workflow_roles_pb2_grpc.py +0 -0
  140. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/workflows_history_pb2.py +0 -0
  141. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/workflows_history_pb2_grpc.py +0 -0
  142. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/workflows_pb2.py +0 -0
  143. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm/workflows_pb2_grpc.py +0 -0
  144. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm.egg-info/SOURCES.txt +0 -0
  145. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm.egg-info/dependency_links.txt +0 -0
  146. {strongdm-15.2.0 → strongdm-15.4.0}/strongdm.egg-info/requires.txt +0 -0
  147. {strongdm-15.2.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',
@@ -31277,6 +31633,7 @@ class Workflow:
31277
31633
  class WorkflowApprover:
31278
31634
  '''
31279
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.
31280
31637
  '''
31281
31638
  __slots__ = [
31282
31639
  'account_id',
@@ -48,6 +48,7 @@ from .approval_workflow_steps_history_pb2 import *
48
48
  from .approval_workflows_pb2 import *
49
49
  from .approval_workflows_history_pb2 import *
50
50
  from .control_panel_pb2 import *
51
+ from .roles_pb2 import *
51
52
  from .health_checks_pb2 import *
52
53
  from .identity_aliases_pb2 import *
53
54
  from .identity_aliases_history_pb2 import *
@@ -74,7 +75,6 @@ from .resources_pb2 import *
74
75
  from .resources_history_pb2 import *
75
76
  from .role_resources_pb2 import *
76
77
  from .role_resources_history_pb2 import *
77
- from .roles_pb2 import *
78
78
  from .roles_history_pb2 import *
79
79
  from .secret_engine_policy_pb2 import *
80
80
  from .secret_engine_types_pb2 import *
@@ -505,6 +505,58 @@ def convert_repeated_aks_user_impersonation_to_porcelain(plumbings):
505
505
  ]
506
506
 
507
507
 
508
+ def convert_amqp_to_porcelain(plumbing):
509
+ if plumbing is None:
510
+ return None
511
+ porcelain = models.AMQP()
512
+ porcelain.bind_interface = (plumbing.bind_interface)
513
+ porcelain.egress_filter = (plumbing.egress_filter)
514
+ porcelain.healthy = (plumbing.healthy)
515
+ porcelain.hostname = (plumbing.hostname)
516
+ porcelain.id = (plumbing.id)
517
+ porcelain.name = (plumbing.name)
518
+ porcelain.password = (plumbing.password)
519
+ porcelain.port = (plumbing.port)
520
+ porcelain.port_override = (plumbing.port_override)
521
+ porcelain.proxy_cluster_id = (plumbing.proxy_cluster_id)
522
+ porcelain.secret_store_id = (plumbing.secret_store_id)
523
+ porcelain.subdomain = (plumbing.subdomain)
524
+ porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
525
+ porcelain.tls_required = (plumbing.tls_required)
526
+ porcelain.username = (plumbing.username)
527
+ return porcelain
528
+
529
+
530
+ def convert_amqp_to_plumbing(porcelain):
531
+ plumbing = AMQP()
532
+ if porcelain is None:
533
+ return plumbing
534
+ plumbing.bind_interface = (porcelain.bind_interface)
535
+ plumbing.egress_filter = (porcelain.egress_filter)
536
+ plumbing.healthy = (porcelain.healthy)
537
+ plumbing.hostname = (porcelain.hostname)
538
+ plumbing.id = (porcelain.id)
539
+ plumbing.name = (porcelain.name)
540
+ plumbing.password = (porcelain.password)
541
+ plumbing.port = (porcelain.port)
542
+ plumbing.port_override = (porcelain.port_override)
543
+ plumbing.proxy_cluster_id = (porcelain.proxy_cluster_id)
544
+ plumbing.secret_store_id = (porcelain.secret_store_id)
545
+ plumbing.subdomain = (porcelain.subdomain)
546
+ plumbing.tags.CopyFrom(convert_tags_to_plumbing(porcelain.tags))
547
+ plumbing.tls_required = (porcelain.tls_required)
548
+ plumbing.username = (porcelain.username)
549
+ return plumbing
550
+
551
+
552
+ def convert_repeated_amqp_to_plumbing(porcelains):
553
+ return [convert_amqp_to_plumbing(porcelain) for porcelain in porcelains]
554
+
555
+
556
+ def convert_repeated_amqp_to_porcelain(plumbings):
557
+ return [convert_amqp_to_porcelain(plumbing) for plumbing in plumbings]
558
+
559
+
508
560
  def convert_aws_to_porcelain(plumbing):
509
561
  if plumbing is None:
510
562
  return None
@@ -3994,6 +4046,68 @@ def convert_repeated_azure_mysql_to_porcelain(plumbings):
3994
4046
  ]
3995
4047
 
3996
4048
 
4049
+ def convert_azure_mysql_managed_identity_to_porcelain(plumbing):
4050
+ if plumbing is None:
4051
+ return None
4052
+ porcelain = models.AzureMysqlManagedIdentity()
4053
+ porcelain.bind_interface = (plumbing.bind_interface)
4054
+ porcelain.database = (plumbing.database)
4055
+ porcelain.egress_filter = (plumbing.egress_filter)
4056
+ porcelain.healthy = (plumbing.healthy)
4057
+ porcelain.hostname = (plumbing.hostname)
4058
+ porcelain.id = (plumbing.id)
4059
+ porcelain.name = (plumbing.name)
4060
+ porcelain.password = (plumbing.password)
4061
+ porcelain.port = (plumbing.port)
4062
+ porcelain.port_override = (plumbing.port_override)
4063
+ porcelain.proxy_cluster_id = (plumbing.proxy_cluster_id)
4064
+ porcelain.secret_store_id = (plumbing.secret_store_id)
4065
+ porcelain.subdomain = (plumbing.subdomain)
4066
+ porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
4067
+ porcelain.use_azure_single_server_usernames = (
4068
+ plumbing.use_azure_single_server_usernames)
4069
+ porcelain.username = (plumbing.username)
4070
+ return porcelain
4071
+
4072
+
4073
+ def convert_azure_mysql_managed_identity_to_plumbing(porcelain):
4074
+ plumbing = AzureMysqlManagedIdentity()
4075
+ if porcelain is None:
4076
+ return plumbing
4077
+ plumbing.bind_interface = (porcelain.bind_interface)
4078
+ plumbing.database = (porcelain.database)
4079
+ plumbing.egress_filter = (porcelain.egress_filter)
4080
+ plumbing.healthy = (porcelain.healthy)
4081
+ plumbing.hostname = (porcelain.hostname)
4082
+ plumbing.id = (porcelain.id)
4083
+ plumbing.name = (porcelain.name)
4084
+ plumbing.password = (porcelain.password)
4085
+ plumbing.port = (porcelain.port)
4086
+ plumbing.port_override = (porcelain.port_override)
4087
+ plumbing.proxy_cluster_id = (porcelain.proxy_cluster_id)
4088
+ plumbing.secret_store_id = (porcelain.secret_store_id)
4089
+ plumbing.subdomain = (porcelain.subdomain)
4090
+ plumbing.tags.CopyFrom(convert_tags_to_plumbing(porcelain.tags))
4091
+ plumbing.use_azure_single_server_usernames = (
4092
+ porcelain.use_azure_single_server_usernames)
4093
+ plumbing.username = (porcelain.username)
4094
+ return plumbing
4095
+
4096
+
4097
+ def convert_repeated_azure_mysql_managed_identity_to_plumbing(porcelains):
4098
+ return [
4099
+ convert_azure_mysql_managed_identity_to_plumbing(porcelain)
4100
+ for porcelain in porcelains
4101
+ ]
4102
+
4103
+
4104
+ def convert_repeated_azure_mysql_managed_identity_to_porcelain(plumbings):
4105
+ return [
4106
+ convert_azure_mysql_managed_identity_to_porcelain(plumbing)
4107
+ for plumbing in plumbings
4108
+ ]
4109
+
4110
+
3997
4111
  def convert_azure_postgres_to_porcelain(plumbing):
3998
4112
  if plumbing is None:
3999
4113
  return None
@@ -12165,6 +12279,8 @@ def convert_resource_to_plumbing(porcelain):
12165
12279
  if isinstance(porcelain, models.AmazonMQAMQP091):
12166
12280
  plumbing.amazon_mqamqp_091.CopyFrom(
12167
12281
  convert_amazon_mqamqp_091_to_plumbing(porcelain))
12282
+ if isinstance(porcelain, models.AMQP):
12283
+ plumbing.amqp.CopyFrom(convert_amqp_to_plumbing(porcelain))
12168
12284
  if isinstance(porcelain, models.Athena):
12169
12285
  plumbing.athena.CopyFrom(convert_athena_to_plumbing(porcelain))
12170
12286
  if isinstance(porcelain, models.AthenaIAM):
@@ -12203,6 +12319,9 @@ def convert_resource_to_plumbing(porcelain):
12203
12319
  if isinstance(porcelain, models.AzureMysql):
12204
12320
  plumbing.azure_mysql.CopyFrom(
12205
12321
  convert_azure_mysql_to_plumbing(porcelain))
12322
+ if isinstance(porcelain, models.AzureMysqlManagedIdentity):
12323
+ plumbing.azure_mysql_managed_identity.CopyFrom(
12324
+ convert_azure_mysql_managed_identity_to_plumbing(porcelain))
12206
12325
  if isinstance(porcelain, models.AzurePostgres):
12207
12326
  plumbing.azure_postgres.CopyFrom(
12208
12327
  convert_azure_postgres_to_plumbing(porcelain))
@@ -12441,6 +12560,8 @@ def convert_resource_to_porcelain(plumbing):
12441
12560
  if plumbing.HasField('amazon_mqamqp_091'):
12442
12561
  return convert_amazon_mqamqp_091_to_porcelain(
12443
12562
  plumbing.amazon_mqamqp_091)
12563
+ if plumbing.HasField('amqp'):
12564
+ return convert_amqp_to_porcelain(plumbing.amqp)
12444
12565
  if plumbing.HasField('athena'):
12445
12566
  return convert_athena_to_porcelain(plumbing.athena)
12446
12567
  if plumbing.HasField('athena_iam'):
@@ -12473,6 +12594,9 @@ def convert_resource_to_porcelain(plumbing):
12473
12594
  return convert_azure_console_to_porcelain(plumbing.azure_console)
12474
12595
  if plumbing.HasField('azure_mysql'):
12475
12596
  return convert_azure_mysql_to_porcelain(plumbing.azure_mysql)
12597
+ if plumbing.HasField('azure_mysql_managed_identity'):
12598
+ return convert_azure_mysql_managed_identity_to_porcelain(
12599
+ plumbing.azure_mysql_managed_identity)
12476
12600
  if plumbing.HasField('azure_postgres'):
12477
12601
  return convert_azure_postgres_to_porcelain(plumbing.azure_postgres)
12478
12602
  if plumbing.HasField('azure_postgres_managed_identity'):