strongdm 13.12.0__zip → 14.2.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 (151) hide show
  1. {strongdm-13.12.0 → strongdm-14.2.0}/PKG-INFO +2 -2
  2. {strongdm-13.12.0 → strongdm-14.2.0}/setup.py +2 -2
  3. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/accounts_pb2.py +12 -8
  4. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/approval_workflow_approvers_pb2.py +6 -6
  5. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/approval_workflow_approvers_pb2_grpc.py +4 -4
  6. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/approval_workflow_steps_pb2.py +30 -23
  7. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/approval_workflow_steps_pb2_grpc.py +4 -4
  8. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/approval_workflows_pb2.py +4 -4
  9. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/client.py +2 -2
  10. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/drivers_pb2.py +39 -39
  11. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/models.py +131 -4
  12. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/plumbing.py +84 -0
  13. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/svc.py +12 -12
  14. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm.egg-info/PKG-INFO +2 -2
  15. {strongdm-13.12.0 → strongdm-14.2.0}/LICENSE +0 -0
  16. {strongdm-13.12.0 → strongdm-14.2.0}/README.md +0 -0
  17. {strongdm-13.12.0 → strongdm-14.2.0}/setup.cfg +0 -0
  18. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/__init__.py +0 -0
  19. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/access_request_events_history_pb2.py +0 -0
  20. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/access_request_events_history_pb2_grpc.py +0 -0
  21. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/access_requests_history_pb2.py +0 -0
  22. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/access_requests_history_pb2_grpc.py +0 -0
  23. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/access_requests_pb2.py +0 -0
  24. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/access_requests_pb2_grpc.py +0 -0
  25. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/account_attachments_history_pb2.py +0 -0
  26. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/account_attachments_history_pb2_grpc.py +0 -0
  27. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/account_attachments_pb2.py +0 -0
  28. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/account_attachments_pb2_grpc.py +0 -0
  29. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/account_grants_history_pb2.py +0 -0
  30. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/account_grants_history_pb2_grpc.py +0 -0
  31. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/account_grants_pb2.py +0 -0
  32. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/account_grants_pb2_grpc.py +0 -0
  33. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/account_permissions_pb2.py +0 -0
  34. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/account_permissions_pb2_grpc.py +0 -0
  35. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/account_resources_history_pb2.py +0 -0
  36. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/account_resources_history_pb2_grpc.py +0 -0
  37. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/account_resources_pb2.py +0 -0
  38. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/account_resources_pb2_grpc.py +0 -0
  39. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/accounts_history_pb2.py +0 -0
  40. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/accounts_history_pb2_grpc.py +0 -0
  41. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/accounts_pb2_grpc.py +0 -0
  42. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/activities_pb2.py +0 -0
  43. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/activities_pb2_grpc.py +0 -0
  44. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/approval_workflow_approvers_history_pb2.py +0 -0
  45. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/approval_workflow_approvers_history_pb2_grpc.py +0 -0
  46. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/approval_workflow_steps_history_pb2.py +0 -0
  47. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/approval_workflow_steps_history_pb2_grpc.py +0 -0
  48. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/approval_workflows_history_pb2.py +0 -0
  49. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/approval_workflows_history_pb2_grpc.py +0 -0
  50. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/approval_workflows_pb2_grpc.py +0 -0
  51. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/constants.py +0 -0
  52. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/control_panel_pb2.py +0 -0
  53. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/control_panel_pb2_grpc.py +0 -0
  54. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/drivers_pb2_grpc.py +0 -0
  55. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/errors.py +0 -0
  56. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/health_checks_pb2.py +0 -0
  57. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/health_checks_pb2_grpc.py +0 -0
  58. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/identity_aliases_history_pb2.py +0 -0
  59. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/identity_aliases_history_pb2_grpc.py +0 -0
  60. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/identity_aliases_pb2.py +0 -0
  61. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/identity_aliases_pb2_grpc.py +0 -0
  62. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/identity_sets_history_pb2.py +0 -0
  63. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/identity_sets_history_pb2_grpc.py +0 -0
  64. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/identity_sets_pb2.py +0 -0
  65. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/identity_sets_pb2_grpc.py +0 -0
  66. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/managed_secrets_pb2.py +0 -0
  67. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/managed_secrets_pb2_grpc.py +0 -0
  68. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/nodes_history_pb2.py +0 -0
  69. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/nodes_history_pb2_grpc.py +0 -0
  70. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/nodes_pb2.py +0 -0
  71. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/nodes_pb2_grpc.py +0 -0
  72. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/options_pb2.py +0 -0
  73. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/options_pb2_grpc.py +0 -0
  74. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/organization_history_pb2.py +0 -0
  75. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/organization_history_pb2_grpc.py +0 -0
  76. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/peering_group_nodes_pb2.py +0 -0
  77. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/peering_group_nodes_pb2_grpc.py +0 -0
  78. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/peering_group_peers_pb2.py +0 -0
  79. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/peering_group_peers_pb2_grpc.py +0 -0
  80. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/peering_group_resources_pb2.py +0 -0
  81. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/peering_group_resources_pb2_grpc.py +0 -0
  82. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/peering_groups_pb2.py +0 -0
  83. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/peering_groups_pb2_grpc.py +0 -0
  84. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/policies_history_pb2.py +0 -0
  85. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/policies_history_pb2_grpc.py +0 -0
  86. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/policies_pb2.py +0 -0
  87. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/policies_pb2_grpc.py +0 -0
  88. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/proxy_cluster_keys_pb2.py +0 -0
  89. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/proxy_cluster_keys_pb2_grpc.py +0 -0
  90. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/queries_pb2.py +0 -0
  91. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/queries_pb2_grpc.py +0 -0
  92. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/remote_identities_history_pb2.py +0 -0
  93. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/remote_identities_history_pb2_grpc.py +0 -0
  94. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/remote_identities_pb2.py +0 -0
  95. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/remote_identities_pb2_grpc.py +0 -0
  96. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/remote_identity_groups_history_pb2.py +0 -0
  97. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/remote_identity_groups_history_pb2_grpc.py +0 -0
  98. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/remote_identity_groups_pb2.py +0 -0
  99. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/remote_identity_groups_pb2_grpc.py +0 -0
  100. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/replays_pb2.py +0 -0
  101. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/replays_pb2_grpc.py +0 -0
  102. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/resources_history_pb2.py +0 -0
  103. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/resources_history_pb2_grpc.py +0 -0
  104. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/resources_pb2.py +0 -0
  105. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/resources_pb2_grpc.py +0 -0
  106. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/role_resources_history_pb2.py +0 -0
  107. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/role_resources_history_pb2_grpc.py +0 -0
  108. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/role_resources_pb2.py +0 -0
  109. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/role_resources_pb2_grpc.py +0 -0
  110. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/roles_history_pb2.py +0 -0
  111. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/roles_history_pb2_grpc.py +0 -0
  112. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/roles_pb2.py +0 -0
  113. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/roles_pb2_grpc.py +0 -0
  114. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/secret_engine_policy_pb2.py +0 -0
  115. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/secret_engine_policy_pb2_grpc.py +0 -0
  116. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/secret_engine_types_pb2.py +0 -0
  117. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/secret_engine_types_pb2_grpc.py +0 -0
  118. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/secret_engines_pb2.py +0 -0
  119. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/secret_engines_pb2_grpc.py +0 -0
  120. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/secret_store_healths_pb2.py +0 -0
  121. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/secret_store_healths_pb2_grpc.py +0 -0
  122. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/secret_store_types_pb2.py +0 -0
  123. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/secret_store_types_pb2_grpc.py +0 -0
  124. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/secret_stores_history_pb2.py +0 -0
  125. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/secret_stores_history_pb2_grpc.py +0 -0
  126. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/secret_stores_pb2.py +0 -0
  127. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/secret_stores_pb2_grpc.py +0 -0
  128. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/spec_pb2.py +0 -0
  129. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/spec_pb2_grpc.py +0 -0
  130. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/tags_pb2.py +0 -0
  131. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/tags_pb2_grpc.py +0 -0
  132. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/workflow_approvers_history_pb2.py +0 -0
  133. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/workflow_approvers_history_pb2_grpc.py +0 -0
  134. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/workflow_approvers_pb2.py +0 -0
  135. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/workflow_approvers_pb2_grpc.py +0 -0
  136. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/workflow_assignments_history_pb2.py +0 -0
  137. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/workflow_assignments_history_pb2_grpc.py +0 -0
  138. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/workflow_assignments_pb2.py +0 -0
  139. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/workflow_assignments_pb2_grpc.py +0 -0
  140. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/workflow_roles_history_pb2.py +0 -0
  141. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/workflow_roles_history_pb2_grpc.py +0 -0
  142. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/workflow_roles_pb2.py +0 -0
  143. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/workflow_roles_pb2_grpc.py +0 -0
  144. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/workflows_history_pb2.py +0 -0
  145. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/workflows_history_pb2_grpc.py +0 -0
  146. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/workflows_pb2.py +0 -0
  147. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm/workflows_pb2_grpc.py +0 -0
  148. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm.egg-info/SOURCES.txt +0 -0
  149. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm.egg-info/dependency_links.txt +0 -0
  150. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm.egg-info/requires.txt +0 -0
  151. {strongdm-13.12.0 → strongdm-14.2.0}/strongdm.egg-info/top_level.txt +0 -0
@@ -5160,6 +5160,101 @@ class AmazonMQAMQP091:
5160
5160
  )
5161
5161
 
5162
5162
 
5163
+ class ApprovalFlowApprover:
5164
+ '''
5165
+ An approver for an approval workflow step. Specifies either an account_id or an role_id (not both)
5166
+ '''
5167
+ __slots__ = [
5168
+ 'account_id',
5169
+ 'role_id',
5170
+ ]
5171
+
5172
+ def __init__(
5173
+ self,
5174
+ account_id=None,
5175
+ role_id=None,
5176
+ ):
5177
+ self.account_id = account_id if account_id is not None else ''
5178
+ '''
5179
+ The approver account id.
5180
+ '''
5181
+ self.role_id = role_id if role_id is not None else ''
5182
+ '''
5183
+ The approver role id
5184
+ '''
5185
+
5186
+ def __repr__(self):
5187
+ return '<sdm.ApprovalFlowApprover ' + \
5188
+ 'account_id: ' + repr(self.account_id) + ' ' +\
5189
+ 'role_id: ' + repr(self.role_id) + ' ' +\
5190
+ '>'
5191
+
5192
+ def to_dict(self):
5193
+ return {
5194
+ 'account_id': self.account_id,
5195
+ 'role_id': self.role_id,
5196
+ }
5197
+
5198
+ @classmethod
5199
+ def from_dict(cls, d):
5200
+ return cls(
5201
+ account_id=d.get('account_id'),
5202
+ role_id=d.get('role_id'),
5203
+ )
5204
+
5205
+
5206
+ class ApprovalFlowStep:
5207
+ '''
5208
+ An approval step for an approval workflow. Specifies approvers and conditions for approval to be granted.
5209
+ '''
5210
+ __slots__ = [
5211
+ 'approvers',
5212
+ 'quantifier',
5213
+ 'skip_after',
5214
+ ]
5215
+
5216
+ def __init__(
5217
+ self,
5218
+ approvers=None,
5219
+ quantifier=None,
5220
+ skip_after=None,
5221
+ ):
5222
+ self.approvers = approvers if approvers is not None else []
5223
+ '''
5224
+ The approvers for this approval step
5225
+ '''
5226
+ self.quantifier = quantifier if quantifier is not None else ''
5227
+ '''
5228
+ Whether "any" or "all" approvers must approve for this approval step to pass. Optional, defaults to "any".
5229
+ '''
5230
+ self.skip_after = skip_after if skip_after is not None else None
5231
+ '''
5232
+ Duration after which this approval step will be skipped if no approval is given. Optional, if not provided an approver must approve before the step passes.
5233
+ '''
5234
+
5235
+ def __repr__(self):
5236
+ return '<sdm.ApprovalFlowStep ' + \
5237
+ 'approvers: ' + repr(self.approvers) + ' ' +\
5238
+ 'quantifier: ' + repr(self.quantifier) + ' ' +\
5239
+ 'skip_after: ' + repr(self.skip_after) + ' ' +\
5240
+ '>'
5241
+
5242
+ def to_dict(self):
5243
+ return {
5244
+ 'approvers': self.approvers,
5245
+ 'quantifier': self.quantifier,
5246
+ 'skip_after': self.skip_after,
5247
+ }
5248
+
5249
+ @classmethod
5250
+ def from_dict(cls, d):
5251
+ return cls(
5252
+ approvers=d.get('approvers'),
5253
+ quantifier=d.get('quantifier'),
5254
+ skip_after=d.get('skip_after'),
5255
+ )
5256
+
5257
+
5163
5258
  class ApprovalWorkflow:
5164
5259
  '''
5165
5260
  ApprovalWorkflows are the mechanism by which requests for access can be viewed by authorized
@@ -5167,6 +5262,7 @@ class ApprovalWorkflow:
5167
5262
  '''
5168
5263
  __slots__ = [
5169
5264
  'approval_mode',
5265
+ 'approval_workflow_steps',
5170
5266
  'description',
5171
5267
  'id',
5172
5268
  'name',
@@ -5175,6 +5271,7 @@ class ApprovalWorkflow:
5175
5271
  def __init__(
5176
5272
  self,
5177
5273
  approval_mode=None,
5274
+ approval_workflow_steps=None,
5178
5275
  description=None,
5179
5276
  id=None,
5180
5277
  name=None,
@@ -5183,6 +5280,10 @@ class ApprovalWorkflow:
5183
5280
  '''
5184
5281
  Approval mode of the ApprovalWorkflow
5185
5282
  '''
5283
+ self.approval_workflow_steps = approval_workflow_steps if approval_workflow_steps is not None else []
5284
+ '''
5285
+ The approval steps of this approval workflow
5286
+ '''
5186
5287
  self.description = description if description is not None else ''
5187
5288
  '''
5188
5289
  Optional description of the ApprovalWorkflow.
@@ -5199,6 +5300,7 @@ class ApprovalWorkflow:
5199
5300
  def __repr__(self):
5200
5301
  return '<sdm.ApprovalWorkflow ' + \
5201
5302
  'approval_mode: ' + repr(self.approval_mode) + ' ' +\
5303
+ 'approval_workflow_steps: ' + repr(self.approval_workflow_steps) + ' ' +\
5202
5304
  'description: ' + repr(self.description) + ' ' +\
5203
5305
  'id: ' + repr(self.id) + ' ' +\
5204
5306
  'name: ' + repr(self.name) + ' ' +\
@@ -5207,6 +5309,7 @@ class ApprovalWorkflow:
5207
5309
  def to_dict(self):
5208
5310
  return {
5209
5311
  'approval_mode': self.approval_mode,
5312
+ 'approval_workflow_steps': self.approval_workflow_steps,
5210
5313
  'description': self.description,
5211
5314
  'id': self.id,
5212
5315
  'name': self.name,
@@ -5216,6 +5319,7 @@ class ApprovalWorkflow:
5216
5319
  def from_dict(cls, d):
5217
5320
  return cls(
5218
5321
  approval_mode=d.get('approval_mode'),
5322
+ approval_workflow_steps=d.get('approval_workflow_steps'),
5219
5323
  description=d.get('description'),
5220
5324
  id=d.get('id'),
5221
5325
  name=d.get('name'),
@@ -5769,12 +5873,18 @@ class ApprovalWorkflowStep:
5769
5873
  __slots__ = [
5770
5874
  'approval_flow_id',
5771
5875
  'id',
5876
+ 'quantifier',
5877
+ 'skip_after',
5878
+ 'step_order',
5772
5879
  ]
5773
5880
 
5774
5881
  def __init__(
5775
5882
  self,
5776
5883
  approval_flow_id=None,
5777
5884
  id=None,
5885
+ quantifier=None,
5886
+ skip_after=None,
5887
+ step_order=None,
5778
5888
  ):
5779
5889
  self.approval_flow_id = approval_flow_id if approval_flow_id is not None else ''
5780
5890
  '''
@@ -5784,17 +5894,35 @@ class ApprovalWorkflowStep:
5784
5894
  '''
5785
5895
  Unique identifier of the ApprovalWorkflowStep.
5786
5896
  '''
5897
+ self.quantifier = quantifier if quantifier is not None else ''
5898
+ '''
5899
+ Whether "any" or "all" approvers must approve for this approval step to pass. Read only field for history commands.
5900
+ '''
5901
+ self.skip_after = skip_after if skip_after is not None else None
5902
+ '''
5903
+ Duration after which this approval step will be skipped if no approval is given. Read only field for history commands.
5904
+ '''
5905
+ self.step_order = step_order if step_order is not None else 0
5906
+ '''
5907
+ The position of the approval step in a sequence of approval steps for an approval workflow. Read only field for history commands.
5908
+ '''
5787
5909
 
5788
5910
  def __repr__(self):
5789
5911
  return '<sdm.ApprovalWorkflowStep ' + \
5790
5912
  'approval_flow_id: ' + repr(self.approval_flow_id) + ' ' +\
5791
5913
  'id: ' + repr(self.id) + ' ' +\
5914
+ 'quantifier: ' + repr(self.quantifier) + ' ' +\
5915
+ 'skip_after: ' + repr(self.skip_after) + ' ' +\
5916
+ 'step_order: ' + repr(self.step_order) + ' ' +\
5792
5917
  '>'
5793
5918
 
5794
5919
  def to_dict(self):
5795
5920
  return {
5796
5921
  'approval_flow_id': self.approval_flow_id,
5797
5922
  'id': self.id,
5923
+ 'quantifier': self.quantifier,
5924
+ 'skip_after': self.skip_after,
5925
+ 'step_order': self.step_order,
5798
5926
  }
5799
5927
 
5800
5928
  @classmethod
@@ -5802,6 +5930,9 @@ class ApprovalWorkflowStep:
5802
5930
  return cls(
5803
5931
  approval_flow_id=d.get('approval_flow_id'),
5804
5932
  id=d.get('id'),
5933
+ quantifier=d.get('quantifier'),
5934
+ skip_after=d.get('skip_after'),
5935
+ step_order=d.get('step_order'),
5805
5936
  )
5806
5937
 
5807
5938
 
@@ -23029,10 +23160,6 @@ class Redis:
23029
23160
 
23030
23161
 
23031
23162
  class RedisCluster:
23032
- '''
23033
- RedisCluster is currently unstable, and its API may change, or it may be removed,
23034
- without a major version bump.
23035
- '''
23036
23163
  __slots__ = [
23037
23164
  'bind_interface',
23038
23165
  'egress_filter',
@@ -2554,11 +2554,84 @@ def convert_repeated_amazon_mqamqp_091_to_porcelain(plumbings):
2554
2554
  ]
2555
2555
 
2556
2556
 
2557
+ def convert_approval_flow_approver_to_porcelain(plumbing):
2558
+ if plumbing is None:
2559
+ return None
2560
+ porcelain = models.ApprovalFlowApprover()
2561
+ porcelain.account_id = (plumbing.account_id)
2562
+ porcelain.role_id = (plumbing.role_id)
2563
+ return porcelain
2564
+
2565
+
2566
+ def convert_approval_flow_approver_to_plumbing(porcelain):
2567
+ plumbing = ApprovalFlowApprover()
2568
+ if porcelain is None:
2569
+ return plumbing
2570
+ plumbing.account_id = (porcelain.account_id)
2571
+ plumbing.role_id = (porcelain.role_id)
2572
+ return plumbing
2573
+
2574
+
2575
+ def convert_repeated_approval_flow_approver_to_plumbing(porcelains):
2576
+ return [
2577
+ convert_approval_flow_approver_to_plumbing(porcelain)
2578
+ for porcelain in porcelains
2579
+ ]
2580
+
2581
+
2582
+ def convert_repeated_approval_flow_approver_to_porcelain(plumbings):
2583
+ return [
2584
+ convert_approval_flow_approver_to_porcelain(plumbing)
2585
+ for plumbing in plumbings
2586
+ ]
2587
+
2588
+
2589
+ def convert_approval_flow_step_to_porcelain(plumbing):
2590
+ if plumbing is None:
2591
+ return None
2592
+ porcelain = models.ApprovalFlowStep()
2593
+ porcelain.approvers = convert_repeated_approval_flow_approver_to_porcelain(
2594
+ plumbing.approvers)
2595
+ porcelain.quantifier = (plumbing.quantifier)
2596
+ porcelain.skip_after = convert_duration_to_porcelain(plumbing.skip_after)
2597
+ return porcelain
2598
+
2599
+
2600
+ def convert_approval_flow_step_to_plumbing(porcelain):
2601
+ plumbing = ApprovalFlowStep()
2602
+ if porcelain is None:
2603
+ return plumbing
2604
+ del plumbing.approvers[:]
2605
+ plumbing.approvers.extend(
2606
+ convert_repeated_approval_flow_approver_to_plumbing(
2607
+ porcelain.approvers))
2608
+ plumbing.quantifier = (porcelain.quantifier)
2609
+ plumbing.skip_after.CopyFrom(
2610
+ convert_duration_to_plumbing(porcelain.skip_after))
2611
+ return plumbing
2612
+
2613
+
2614
+ def convert_repeated_approval_flow_step_to_plumbing(porcelains):
2615
+ return [
2616
+ convert_approval_flow_step_to_plumbing(porcelain)
2617
+ for porcelain in porcelains
2618
+ ]
2619
+
2620
+
2621
+ def convert_repeated_approval_flow_step_to_porcelain(plumbings):
2622
+ return [
2623
+ convert_approval_flow_step_to_porcelain(plumbing)
2624
+ for plumbing in plumbings
2625
+ ]
2626
+
2627
+
2557
2628
  def convert_approval_workflow_to_porcelain(plumbing):
2558
2629
  if plumbing is None:
2559
2630
  return None
2560
2631
  porcelain = models.ApprovalWorkflow()
2561
2632
  porcelain.approval_mode = (plumbing.approval_mode)
2633
+ porcelain.approval_workflow_steps = convert_repeated_approval_flow_step_to_porcelain(
2634
+ plumbing.approval_workflow_steps)
2562
2635
  porcelain.description = (plumbing.description)
2563
2636
  porcelain.id = (plumbing.id)
2564
2637
  porcelain.name = (plumbing.name)
@@ -2570,6 +2643,10 @@ def convert_approval_workflow_to_plumbing(porcelain):
2570
2643
  if porcelain is None:
2571
2644
  return plumbing
2572
2645
  plumbing.approval_mode = (porcelain.approval_mode)
2646
+ del plumbing.approval_workflow_steps[:]
2647
+ plumbing.approval_workflow_steps.extend(
2648
+ convert_repeated_approval_flow_step_to_plumbing(
2649
+ porcelain.approval_workflow_steps))
2573
2650
  plumbing.description = (porcelain.description)
2574
2651
  plumbing.id = (porcelain.id)
2575
2652
  plumbing.name = (porcelain.name)
@@ -3009,6 +3086,9 @@ def convert_approval_workflow_step_to_porcelain(plumbing):
3009
3086
  porcelain = models.ApprovalWorkflowStep()
3010
3087
  porcelain.approval_flow_id = (plumbing.approval_flow_id)
3011
3088
  porcelain.id = (plumbing.id)
3089
+ porcelain.quantifier = (plumbing.quantifier)
3090
+ porcelain.skip_after = convert_duration_to_porcelain(plumbing.skip_after)
3091
+ porcelain.step_order = (plumbing.step_order)
3012
3092
  return porcelain
3013
3093
 
3014
3094
 
@@ -3018,6 +3098,10 @@ def convert_approval_workflow_step_to_plumbing(porcelain):
3018
3098
  return plumbing
3019
3099
  plumbing.approval_flow_id = (porcelain.approval_flow_id)
3020
3100
  plumbing.id = (porcelain.id)
3101
+ plumbing.quantifier = (porcelain.quantifier)
3102
+ plumbing.skip_after.CopyFrom(
3103
+ convert_duration_to_plumbing(porcelain.skip_after))
3104
+ plumbing.step_order = (porcelain.step_order)
3021
3105
  return plumbing
3022
3106
 
3023
3107
 
@@ -1297,7 +1297,7 @@ class ApprovalWorkflowApprovers:
1297
1297
 
1298
1298
  def create(self, approval_workflow_approver, timeout=None):
1299
1299
  '''
1300
- Create creates a new approval workflow approver.
1300
+ Deprecated: Create creates a new approval workflow approver.
1301
1301
  '''
1302
1302
  req = ApprovalWorkflowApproverCreateRequest()
1303
1303
 
@@ -1331,7 +1331,7 @@ class ApprovalWorkflowApprovers:
1331
1331
 
1332
1332
  def get(self, id, timeout=None):
1333
1333
  '''
1334
- Get reads one approval workflow approver by ID.
1334
+ Deprecated: Get reads one approval workflow approver by ID.
1335
1335
  '''
1336
1336
  req = ApprovalWorkflowApproverGetRequest()
1337
1337
  if self.parent.snapshot_datetime is not None:
@@ -1367,7 +1367,7 @@ class ApprovalWorkflowApprovers:
1367
1367
 
1368
1368
  def delete(self, id, timeout=None):
1369
1369
  '''
1370
- Delete deletes an existing approval workflow approver.
1370
+ Deprecated: Delete deletes an existing approval workflow approver.
1371
1371
  '''
1372
1372
  req = ApprovalWorkflowApproverDeleteRequest()
1373
1373
 
@@ -1397,7 +1397,7 @@ class ApprovalWorkflowApprovers:
1397
1397
 
1398
1398
  def list(self, filter, *args, timeout=None):
1399
1399
  '''
1400
- Lists existing approval workflow approvers.
1400
+ Deprecated: Lists existing approval workflow approvers.
1401
1401
  '''
1402
1402
  req = ApprovalWorkflowApproverListRequest()
1403
1403
  req.meta.CopyFrom(ListRequestMetadata())
@@ -1444,13 +1444,13 @@ class SnapshotApprovalWorkflowApprovers:
1444
1444
 
1445
1445
  def get(self, id, timeout=None):
1446
1446
  '''
1447
- Get reads one approval workflow approver by ID.
1447
+ Deprecated: Get reads one approval workflow approver by ID.
1448
1448
  '''
1449
1449
  return self.approval_workflow_approvers.get(id, timeout=timeout)
1450
1450
 
1451
1451
  def list(self, filter, *args, timeout=None):
1452
1452
  '''
1453
- Lists existing approval workflow approvers.
1453
+ Deprecated: Lists existing approval workflow approvers.
1454
1454
  '''
1455
1455
  return self.approval_workflow_approvers.list(filter,
1456
1456
  *args,
@@ -1516,7 +1516,7 @@ class ApprovalWorkflowSteps:
1516
1516
 
1517
1517
  def create(self, approval_workflow_step, timeout=None):
1518
1518
  '''
1519
- Create creates a new approval workflow step.
1519
+ Deprecated: Create creates a new approval workflow step.
1520
1520
  '''
1521
1521
  req = ApprovalWorkflowStepCreateRequest()
1522
1522
 
@@ -1550,7 +1550,7 @@ class ApprovalWorkflowSteps:
1550
1550
 
1551
1551
  def get(self, id, timeout=None):
1552
1552
  '''
1553
- Get reads one approval workflow step by ID.
1553
+ Deprecated: Get reads one approval workflow step by ID.
1554
1554
  '''
1555
1555
  req = ApprovalWorkflowStepGetRequest()
1556
1556
  if self.parent.snapshot_datetime is not None:
@@ -1586,7 +1586,7 @@ class ApprovalWorkflowSteps:
1586
1586
 
1587
1587
  def delete(self, id, timeout=None):
1588
1588
  '''
1589
- Delete deletes an existing approval workflow step.
1589
+ Deprecated: Delete deletes an existing approval workflow step.
1590
1590
  '''
1591
1591
  req = ApprovalWorkflowStepDeleteRequest()
1592
1592
 
@@ -1616,7 +1616,7 @@ class ApprovalWorkflowSteps:
1616
1616
 
1617
1617
  def list(self, filter, *args, timeout=None):
1618
1618
  '''
1619
- Lists existing approval workflow steps.
1619
+ Deprecated: Lists existing approval workflow steps.
1620
1620
  '''
1621
1621
  req = ApprovalWorkflowStepListRequest()
1622
1622
  req.meta.CopyFrom(ListRequestMetadata())
@@ -1663,13 +1663,13 @@ class SnapshotApprovalWorkflowSteps:
1663
1663
 
1664
1664
  def get(self, id, timeout=None):
1665
1665
  '''
1666
- Get reads one approval workflow step by ID.
1666
+ Deprecated: Get reads one approval workflow step by ID.
1667
1667
  '''
1668
1668
  return self.approval_workflow_steps.get(id, timeout=timeout)
1669
1669
 
1670
1670
  def list(self, filter, *args, timeout=None):
1671
1671
  '''
1672
- Lists existing approval workflow steps.
1672
+ Deprecated: Lists existing approval workflow steps.
1673
1673
  '''
1674
1674
  return self.approval_workflow_steps.list(filter,
1675
1675
  *args,
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: strongdm
3
- Version: 13.12.0
3
+ Version: 14.2.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/v13.12.0.tar.gz
9
+ Download-URL: https://github.com/strongdm/strongdm-sdk-python/archive/v14.2.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