strongdm 13.11.0__zip → 14.0.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.11.0 → strongdm-14.0.0}/PKG-INFO +2 -2
  2. {strongdm-13.11.0 → strongdm-14.0.0}/setup.py +2 -2
  3. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/accounts_pb2.py +12 -8
  4. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/approval_workflow_approvers_pb2.py +6 -6
  5. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/approval_workflow_approvers_pb2_grpc.py +4 -4
  6. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/approval_workflow_steps_pb2.py +30 -23
  7. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/approval_workflow_steps_pb2_grpc.py +4 -4
  8. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/approval_workflows_pb2.py +4 -4
  9. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/client.py +15 -1
  10. strongdm-14.0.0/strongdm/managed_secrets_pb2.py +460 -0
  11. strongdm-14.0.0/strongdm/managed_secrets_pb2_grpc.py +398 -0
  12. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/models.py +2650 -423
  13. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/plumbing.py +4486 -2790
  14. strongdm-14.0.0/strongdm/secret_engine_policy_pb2.py +78 -0
  15. strongdm-14.0.0/strongdm/secret_engine_types_pb2.py +147 -0
  16. strongdm-14.0.0/strongdm/secret_engines_pb2.py +325 -0
  17. strongdm-14.0.0/strongdm/secret_engines_pb2_grpc.py +355 -0
  18. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/svc.py +698 -12
  19. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm.egg-info/PKG-INFO +2 -2
  20. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm.egg-info/SOURCES.txt +6 -0
  21. {strongdm-13.11.0 → strongdm-14.0.0}/LICENSE +0 -0
  22. {strongdm-13.11.0 → strongdm-14.0.0}/README.md +0 -0
  23. {strongdm-13.11.0 → strongdm-14.0.0}/setup.cfg +0 -0
  24. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/__init__.py +0 -0
  25. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/access_request_events_history_pb2.py +0 -0
  26. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/access_request_events_history_pb2_grpc.py +0 -0
  27. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/access_requests_history_pb2.py +0 -0
  28. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/access_requests_history_pb2_grpc.py +0 -0
  29. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/access_requests_pb2.py +0 -0
  30. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/access_requests_pb2_grpc.py +0 -0
  31. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/account_attachments_history_pb2.py +0 -0
  32. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/account_attachments_history_pb2_grpc.py +0 -0
  33. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/account_attachments_pb2.py +0 -0
  34. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/account_attachments_pb2_grpc.py +0 -0
  35. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/account_grants_history_pb2.py +0 -0
  36. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/account_grants_history_pb2_grpc.py +0 -0
  37. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/account_grants_pb2.py +0 -0
  38. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/account_grants_pb2_grpc.py +0 -0
  39. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/account_permissions_pb2.py +0 -0
  40. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/account_permissions_pb2_grpc.py +0 -0
  41. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/account_resources_history_pb2.py +0 -0
  42. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/account_resources_history_pb2_grpc.py +0 -0
  43. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/account_resources_pb2.py +0 -0
  44. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/account_resources_pb2_grpc.py +0 -0
  45. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/accounts_history_pb2.py +0 -0
  46. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/accounts_history_pb2_grpc.py +0 -0
  47. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/accounts_pb2_grpc.py +0 -0
  48. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/activities_pb2.py +0 -0
  49. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/activities_pb2_grpc.py +0 -0
  50. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/approval_workflow_approvers_history_pb2.py +0 -0
  51. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/approval_workflow_approvers_history_pb2_grpc.py +0 -0
  52. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/approval_workflow_steps_history_pb2.py +0 -0
  53. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/approval_workflow_steps_history_pb2_grpc.py +0 -0
  54. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/approval_workflows_history_pb2.py +0 -0
  55. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/approval_workflows_history_pb2_grpc.py +0 -0
  56. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/approval_workflows_pb2_grpc.py +0 -0
  57. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/constants.py +0 -0
  58. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/control_panel_pb2.py +0 -0
  59. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/control_panel_pb2_grpc.py +0 -0
  60. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/drivers_pb2.py +0 -0
  61. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/drivers_pb2_grpc.py +0 -0
  62. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/errors.py +0 -0
  63. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/health_checks_pb2.py +0 -0
  64. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/health_checks_pb2_grpc.py +0 -0
  65. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/identity_aliases_history_pb2.py +0 -0
  66. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/identity_aliases_history_pb2_grpc.py +0 -0
  67. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/identity_aliases_pb2.py +0 -0
  68. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/identity_aliases_pb2_grpc.py +0 -0
  69. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/identity_sets_history_pb2.py +0 -0
  70. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/identity_sets_history_pb2_grpc.py +0 -0
  71. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/identity_sets_pb2.py +0 -0
  72. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/identity_sets_pb2_grpc.py +0 -0
  73. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/nodes_history_pb2.py +0 -0
  74. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/nodes_history_pb2_grpc.py +0 -0
  75. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/nodes_pb2.py +0 -0
  76. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/nodes_pb2_grpc.py +0 -0
  77. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/options_pb2.py +0 -0
  78. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/options_pb2_grpc.py +0 -0
  79. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/organization_history_pb2.py +0 -0
  80. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/organization_history_pb2_grpc.py +0 -0
  81. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/peering_group_nodes_pb2.py +0 -0
  82. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/peering_group_nodes_pb2_grpc.py +0 -0
  83. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/peering_group_peers_pb2.py +0 -0
  84. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/peering_group_peers_pb2_grpc.py +0 -0
  85. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/peering_group_resources_pb2.py +0 -0
  86. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/peering_group_resources_pb2_grpc.py +0 -0
  87. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/peering_groups_pb2.py +0 -0
  88. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/peering_groups_pb2_grpc.py +0 -0
  89. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/policies_history_pb2.py +0 -0
  90. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/policies_history_pb2_grpc.py +0 -0
  91. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/policies_pb2.py +0 -0
  92. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/policies_pb2_grpc.py +0 -0
  93. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/proxy_cluster_keys_pb2.py +0 -0
  94. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/proxy_cluster_keys_pb2_grpc.py +0 -0
  95. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/queries_pb2.py +0 -0
  96. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/queries_pb2_grpc.py +0 -0
  97. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/remote_identities_history_pb2.py +0 -0
  98. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/remote_identities_history_pb2_grpc.py +0 -0
  99. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/remote_identities_pb2.py +0 -0
  100. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/remote_identities_pb2_grpc.py +0 -0
  101. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/remote_identity_groups_history_pb2.py +0 -0
  102. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/remote_identity_groups_history_pb2_grpc.py +0 -0
  103. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/remote_identity_groups_pb2.py +0 -0
  104. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/remote_identity_groups_pb2_grpc.py +0 -0
  105. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/replays_pb2.py +0 -0
  106. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/replays_pb2_grpc.py +0 -0
  107. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/resources_history_pb2.py +0 -0
  108. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/resources_history_pb2_grpc.py +0 -0
  109. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/resources_pb2.py +0 -0
  110. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/resources_pb2_grpc.py +0 -0
  111. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/role_resources_history_pb2.py +0 -0
  112. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/role_resources_history_pb2_grpc.py +0 -0
  113. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/role_resources_pb2.py +0 -0
  114. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/role_resources_pb2_grpc.py +0 -0
  115. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/roles_history_pb2.py +0 -0
  116. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/roles_history_pb2_grpc.py +0 -0
  117. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/roles_pb2.py +0 -0
  118. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/roles_pb2_grpc.py +0 -0
  119. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/secret_engine_policy_pb2_grpc.py +0 -0
  120. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/secret_engine_types_pb2_grpc.py +0 -0
  121. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/secret_store_healths_pb2.py +0 -0
  122. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/secret_store_healths_pb2_grpc.py +0 -0
  123. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/secret_store_types_pb2.py +0 -0
  124. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/secret_store_types_pb2_grpc.py +0 -0
  125. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/secret_stores_history_pb2.py +0 -0
  126. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/secret_stores_history_pb2_grpc.py +0 -0
  127. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/secret_stores_pb2.py +0 -0
  128. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/secret_stores_pb2_grpc.py +0 -0
  129. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/spec_pb2.py +0 -0
  130. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/spec_pb2_grpc.py +0 -0
  131. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/tags_pb2.py +0 -0
  132. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/tags_pb2_grpc.py +0 -0
  133. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/workflow_approvers_history_pb2.py +0 -0
  134. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/workflow_approvers_history_pb2_grpc.py +0 -0
  135. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/workflow_approvers_pb2.py +0 -0
  136. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/workflow_approvers_pb2_grpc.py +0 -0
  137. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/workflow_assignments_history_pb2.py +0 -0
  138. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/workflow_assignments_history_pb2_grpc.py +0 -0
  139. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/workflow_assignments_pb2.py +0 -0
  140. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/workflow_assignments_pb2_grpc.py +0 -0
  141. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/workflow_roles_history_pb2.py +0 -0
  142. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/workflow_roles_history_pb2_grpc.py +0 -0
  143. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/workflow_roles_pb2.py +0 -0
  144. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/workflow_roles_pb2_grpc.py +0 -0
  145. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/workflows_history_pb2.py +0 -0
  146. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/workflows_history_pb2_grpc.py +0 -0
  147. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/workflows_pb2.py +0 -0
  148. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm/workflows_pb2_grpc.py +0 -0
  149. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm.egg-info/dependency_links.txt +0 -0
  150. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm.egg-info/requires.txt +0 -0
  151. {strongdm-13.11.0 → strongdm-14.0.0}/strongdm.egg-info/top_level.txt +0 -0
@@ -3273,6 +3273,231 @@ class AccountUpdateResponse:
3273
3273
  )
3274
3274
 
3275
3275
 
3276
+ class ActiveDirectoryEngine:
3277
+ '''
3278
+ ActiveDirectoryEngine is currently unstable, and its API may change, or it may be removed,
3279
+ without a major version bump.
3280
+ '''
3281
+ __slots__ = [
3282
+ 'after_read_ttl',
3283
+ 'binddn',
3284
+ 'bindpass',
3285
+ 'certificate',
3286
+ 'connection_timeout',
3287
+ 'do_not_validate_timestamps',
3288
+ 'id',
3289
+ 'insecure_tls',
3290
+ 'key_rotation_interval_days',
3291
+ 'max_backoff_duration',
3292
+ 'name',
3293
+ 'policy',
3294
+ 'public_key',
3295
+ 'request_timeout',
3296
+ 'secret_store_id',
3297
+ 'secret_store_root_path',
3298
+ 'start_tls',
3299
+ 'tags',
3300
+ 'ttl',
3301
+ 'upndomain',
3302
+ 'url',
3303
+ 'userdn',
3304
+ ]
3305
+
3306
+ def __init__(
3307
+ self,
3308
+ after_read_ttl=None,
3309
+ binddn=None,
3310
+ bindpass=None,
3311
+ certificate=None,
3312
+ connection_timeout=None,
3313
+ do_not_validate_timestamps=None,
3314
+ id=None,
3315
+ insecure_tls=None,
3316
+ key_rotation_interval_days=None,
3317
+ max_backoff_duration=None,
3318
+ name=None,
3319
+ policy=None,
3320
+ public_key=None,
3321
+ request_timeout=None,
3322
+ secret_store_id=None,
3323
+ secret_store_root_path=None,
3324
+ start_tls=None,
3325
+ tags=None,
3326
+ ttl=None,
3327
+ upndomain=None,
3328
+ url=None,
3329
+ userdn=None,
3330
+ ):
3331
+ self.after_read_ttl = after_read_ttl if after_read_ttl is not None else None
3332
+ '''
3333
+ The default time-to-live duration of the password after it's read. Once the ttl has passed, a password will be rotated.
3334
+ '''
3335
+ self.binddn = binddn if binddn is not None else ''
3336
+ '''
3337
+ Distinguished name of object to bind when performing user and group search. Example: cn=vault,ou=Users,dc=example,dc=com
3338
+ '''
3339
+ self.bindpass = bindpass if bindpass is not None else ''
3340
+ '''
3341
+ Password to use along with binddn when performing user search.
3342
+ '''
3343
+ self.certificate = certificate if certificate is not None else ''
3344
+ '''
3345
+ CA certificate to use when verifying LDAP server certificate, must be x509 PEM encoded.
3346
+ '''
3347
+ self.connection_timeout = connection_timeout if connection_timeout is not None else 0
3348
+ '''
3349
+ Timeout, in seconds, when attempting to connect to the LDAP server before trying the next URL in the configuration.
3350
+ '''
3351
+ self.do_not_validate_timestamps = do_not_validate_timestamps if do_not_validate_timestamps is not None else False
3352
+ '''
3353
+ If set to true this will prevent password change timestamp validation in Active Directory when validating credentials
3354
+ '''
3355
+ self.id = id if id is not None else ''
3356
+ '''
3357
+ Unique identifier of the Secret Engine.
3358
+ '''
3359
+ self.insecure_tls = insecure_tls if insecure_tls is not None else False
3360
+ '''
3361
+ If true, skips LDAP server SSL certificate verification - insecure, use with caution!
3362
+ '''
3363
+ self.key_rotation_interval_days = key_rotation_interval_days if key_rotation_interval_days is not None else 0
3364
+ '''
3365
+ An interval of public/private key rotation for secret engine in days
3366
+ '''
3367
+ self.max_backoff_duration = max_backoff_duration if max_backoff_duration is not None else None
3368
+ '''
3369
+ The maximum retry duration in case of automatic failure.
3370
+ On failed ttl rotation attempt it will be retried in an increasing intervals until it reaches max_backoff_duration
3371
+ '''
3372
+ self.name = name if name is not None else ''
3373
+ '''
3374
+ Unique human-readable name of the Secret Engine.
3375
+ '''
3376
+ self.policy = policy if policy is not None else None
3377
+ '''
3378
+ Policy for password creation
3379
+ '''
3380
+ self.public_key = public_key if public_key is not None else b''
3381
+ '''
3382
+ Public key linked with a secret engine
3383
+ '''
3384
+ self.request_timeout = request_timeout if request_timeout is not None else 0
3385
+ '''
3386
+ Timeout, in seconds, for the connection when making requests against the server before returning back an error.
3387
+ '''
3388
+ self.secret_store_id = secret_store_id if secret_store_id is not None else ''
3389
+ '''
3390
+ Backing secret store identifier
3391
+ '''
3392
+ self.secret_store_root_path = secret_store_root_path if secret_store_root_path is not None else ''
3393
+ '''
3394
+ Backing Secret Store root path where managed secrets are going to be stored
3395
+ '''
3396
+ self.start_tls = start_tls if start_tls is not None else False
3397
+ '''
3398
+ If true, issues a StartTLS command after establishing an unencrypted connection.
3399
+ '''
3400
+ self.tags = tags if tags is not None else _porcelain_zero_value_tags()
3401
+ '''
3402
+ Tags is a map of key, value pairs.
3403
+ '''
3404
+ self.ttl = ttl if ttl is not None else None
3405
+ '''
3406
+ The default password time-to-live duration. Once the ttl has passed, a password will be rotated the next time it's requested.
3407
+ '''
3408
+ self.upndomain = upndomain if upndomain is not None else ''
3409
+ '''
3410
+ The domain (userPrincipalDomain) used to construct a UPN string for authentication.
3411
+ '''
3412
+ self.url = url if url is not None else ''
3413
+ '''
3414
+ The LDAP server to connect to.
3415
+ '''
3416
+ self.userdn = userdn if userdn is not None else ''
3417
+ '''
3418
+ Base DN under which to perform user search. Example: ou=Users,dc=example,dc=com
3419
+ '''
3420
+
3421
+ def __repr__(self):
3422
+ return '<sdm.ActiveDirectoryEngine ' + \
3423
+ 'after_read_ttl: ' + repr(self.after_read_ttl) + ' ' +\
3424
+ 'binddn: ' + repr(self.binddn) + ' ' +\
3425
+ 'bindpass: ' + repr(self.bindpass) + ' ' +\
3426
+ 'certificate: ' + repr(self.certificate) + ' ' +\
3427
+ 'connection_timeout: ' + repr(self.connection_timeout) + ' ' +\
3428
+ 'do_not_validate_timestamps: ' + repr(self.do_not_validate_timestamps) + ' ' +\
3429
+ 'id: ' + repr(self.id) + ' ' +\
3430
+ 'insecure_tls: ' + repr(self.insecure_tls) + ' ' +\
3431
+ 'key_rotation_interval_days: ' + repr(self.key_rotation_interval_days) + ' ' +\
3432
+ 'max_backoff_duration: ' + repr(self.max_backoff_duration) + ' ' +\
3433
+ 'name: ' + repr(self.name) + ' ' +\
3434
+ 'policy: ' + repr(self.policy) + ' ' +\
3435
+ 'public_key: ' + repr(self.public_key) + ' ' +\
3436
+ 'request_timeout: ' + repr(self.request_timeout) + ' ' +\
3437
+ 'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
3438
+ 'secret_store_root_path: ' + repr(self.secret_store_root_path) + ' ' +\
3439
+ 'start_tls: ' + repr(self.start_tls) + ' ' +\
3440
+ 'tags: ' + repr(self.tags) + ' ' +\
3441
+ 'ttl: ' + repr(self.ttl) + ' ' +\
3442
+ 'upndomain: ' + repr(self.upndomain) + ' ' +\
3443
+ 'url: ' + repr(self.url) + ' ' +\
3444
+ 'userdn: ' + repr(self.userdn) + ' ' +\
3445
+ '>'
3446
+
3447
+ def to_dict(self):
3448
+ return {
3449
+ 'after_read_ttl': self.after_read_ttl,
3450
+ 'binddn': self.binddn,
3451
+ 'bindpass': self.bindpass,
3452
+ 'certificate': self.certificate,
3453
+ 'connection_timeout': self.connection_timeout,
3454
+ 'do_not_validate_timestamps': self.do_not_validate_timestamps,
3455
+ 'id': self.id,
3456
+ 'insecure_tls': self.insecure_tls,
3457
+ 'key_rotation_interval_days': self.key_rotation_interval_days,
3458
+ 'max_backoff_duration': self.max_backoff_duration,
3459
+ 'name': self.name,
3460
+ 'policy': self.policy,
3461
+ 'public_key': self.public_key,
3462
+ 'request_timeout': self.request_timeout,
3463
+ 'secret_store_id': self.secret_store_id,
3464
+ 'secret_store_root_path': self.secret_store_root_path,
3465
+ 'start_tls': self.start_tls,
3466
+ 'tags': self.tags,
3467
+ 'ttl': self.ttl,
3468
+ 'upndomain': self.upndomain,
3469
+ 'url': self.url,
3470
+ 'userdn': self.userdn,
3471
+ }
3472
+
3473
+ @classmethod
3474
+ def from_dict(cls, d):
3475
+ return cls(
3476
+ after_read_ttl=d.get('after_read_ttl'),
3477
+ binddn=d.get('binddn'),
3478
+ bindpass=d.get('bindpass'),
3479
+ certificate=d.get('certificate'),
3480
+ connection_timeout=d.get('connection_timeout'),
3481
+ do_not_validate_timestamps=d.get('do_not_validate_timestamps'),
3482
+ id=d.get('id'),
3483
+ insecure_tls=d.get('insecure_tls'),
3484
+ key_rotation_interval_days=d.get('key_rotation_interval_days'),
3485
+ max_backoff_duration=d.get('max_backoff_duration'),
3486
+ name=d.get('name'),
3487
+ policy=d.get('policy'),
3488
+ public_key=d.get('public_key'),
3489
+ request_timeout=d.get('request_timeout'),
3490
+ secret_store_id=d.get('secret_store_id'),
3491
+ secret_store_root_path=d.get('secret_store_root_path'),
3492
+ start_tls=d.get('start_tls'),
3493
+ tags=d.get('tags'),
3494
+ ttl=d.get('ttl'),
3495
+ upndomain=d.get('upndomain'),
3496
+ url=d.get('url'),
3497
+ userdn=d.get('userdn'),
3498
+ )
3499
+
3500
+
3276
3501
  class ActiveDirectoryStore:
3277
3502
  __slots__ = [
3278
3503
  'id',
@@ -4935,6 +5160,101 @@ class AmazonMQAMQP091:
4935
5160
  )
4936
5161
 
4937
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
+
4938
5258
  class ApprovalWorkflow:
4939
5259
  '''
4940
5260
  ApprovalWorkflows are the mechanism by which requests for access can be viewed by authorized
@@ -4942,6 +5262,7 @@ class ApprovalWorkflow:
4942
5262
  '''
4943
5263
  __slots__ = [
4944
5264
  'approval_mode',
5265
+ 'approval_workflow_steps',
4945
5266
  'description',
4946
5267
  'id',
4947
5268
  'name',
@@ -4950,6 +5271,7 @@ class ApprovalWorkflow:
4950
5271
  def __init__(
4951
5272
  self,
4952
5273
  approval_mode=None,
5274
+ approval_workflow_steps=None,
4953
5275
  description=None,
4954
5276
  id=None,
4955
5277
  name=None,
@@ -4958,6 +5280,10 @@ class ApprovalWorkflow:
4958
5280
  '''
4959
5281
  Approval mode of the ApprovalWorkflow
4960
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
+ '''
4961
5287
  self.description = description if description is not None else ''
4962
5288
  '''
4963
5289
  Optional description of the ApprovalWorkflow.
@@ -4974,6 +5300,7 @@ class ApprovalWorkflow:
4974
5300
  def __repr__(self):
4975
5301
  return '<sdm.ApprovalWorkflow ' + \
4976
5302
  'approval_mode: ' + repr(self.approval_mode) + ' ' +\
5303
+ 'approval_workflow_steps: ' + repr(self.approval_workflow_steps) + ' ' +\
4977
5304
  'description: ' + repr(self.description) + ' ' +\
4978
5305
  'id: ' + repr(self.id) + ' ' +\
4979
5306
  'name: ' + repr(self.name) + ' ' +\
@@ -4982,6 +5309,7 @@ class ApprovalWorkflow:
4982
5309
  def to_dict(self):
4983
5310
  return {
4984
5311
  'approval_mode': self.approval_mode,
5312
+ 'approval_workflow_steps': self.approval_workflow_steps,
4985
5313
  'description': self.description,
4986
5314
  'id': self.id,
4987
5315
  'name': self.name,
@@ -4991,6 +5319,7 @@ class ApprovalWorkflow:
4991
5319
  def from_dict(cls, d):
4992
5320
  return cls(
4993
5321
  approval_mode=d.get('approval_mode'),
5322
+ approval_workflow_steps=d.get('approval_workflow_steps'),
4994
5323
  description=d.get('description'),
4995
5324
  id=d.get('id'),
4996
5325
  name=d.get('name'),
@@ -5544,12 +5873,18 @@ class ApprovalWorkflowStep:
5544
5873
  __slots__ = [
5545
5874
  'approval_flow_id',
5546
5875
  'id',
5876
+ 'quantifier',
5877
+ 'skip_after',
5878
+ 'step_order',
5547
5879
  ]
5548
5880
 
5549
5881
  def __init__(
5550
5882
  self,
5551
5883
  approval_flow_id=None,
5552
5884
  id=None,
5885
+ quantifier=None,
5886
+ skip_after=None,
5887
+ step_order=None,
5553
5888
  ):
5554
5889
  self.approval_flow_id = approval_flow_id if approval_flow_id is not None else ''
5555
5890
  '''
@@ -5559,17 +5894,35 @@ class ApprovalWorkflowStep:
5559
5894
  '''
5560
5895
  Unique identifier of the ApprovalWorkflowStep.
5561
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
+ '''
5562
5909
 
5563
5910
  def __repr__(self):
5564
5911
  return '<sdm.ApprovalWorkflowStep ' + \
5565
5912
  'approval_flow_id: ' + repr(self.approval_flow_id) + ' ' +\
5566
5913
  'id: ' + repr(self.id) + ' ' +\
5914
+ 'quantifier: ' + repr(self.quantifier) + ' ' +\
5915
+ 'skip_after: ' + repr(self.skip_after) + ' ' +\
5916
+ 'step_order: ' + repr(self.step_order) + ' ' +\
5567
5917
  '>'
5568
5918
 
5569
5919
  def to_dict(self):
5570
5920
  return {
5571
5921
  'approval_flow_id': self.approval_flow_id,
5572
5922
  'id': self.id,
5923
+ 'quantifier': self.quantifier,
5924
+ 'skip_after': self.skip_after,
5925
+ 'step_order': self.step_order,
5573
5926
  }
5574
5927
 
5575
5928
  @classmethod
@@ -5577,6 +5930,9 @@ class ApprovalWorkflowStep:
5577
5930
  return cls(
5578
5931
  approval_flow_id=d.get('approval_flow_id'),
5579
5932
  id=d.get('id'),
5933
+ quantifier=d.get('quantifier'),
5934
+ skip_after=d.get('skip_after'),
5935
+ step_order=d.get('step_order'),
5580
5936
  )
5581
5937
 
5582
5938
 
@@ -12061,6 +12417,64 @@ class Gateway:
12061
12417
  )
12062
12418
 
12063
12419
 
12420
+ class GenerateKeysRequest:
12421
+ __slots__ = [
12422
+ 'secret_engine_id',
12423
+ ]
12424
+
12425
+ def __init__(
12426
+ self,
12427
+ secret_engine_id=None,
12428
+ ):
12429
+ self.secret_engine_id = secret_engine_id if secret_engine_id is not None else ''
12430
+ '''
12431
+ required
12432
+ '''
12433
+
12434
+ def __repr__(self):
12435
+ return '<sdm.GenerateKeysRequest ' + \
12436
+ 'secret_engine_id: ' + repr(self.secret_engine_id) + ' ' +\
12437
+ '>'
12438
+
12439
+ def to_dict(self):
12440
+ return {
12441
+ 'secret_engine_id': self.secret_engine_id,
12442
+ }
12443
+
12444
+ @classmethod
12445
+ def from_dict(cls, d):
12446
+ return cls(secret_engine_id=d.get('secret_engine_id'), )
12447
+
12448
+
12449
+ class GenerateKeysResponse:
12450
+ __slots__ = [
12451
+ 'rate_limit',
12452
+ ]
12453
+
12454
+ def __init__(
12455
+ self,
12456
+ rate_limit=None,
12457
+ ):
12458
+ self.rate_limit = rate_limit if rate_limit is not None else None
12459
+ '''
12460
+ Rate limit information.
12461
+ '''
12462
+
12463
+ def __repr__(self):
12464
+ return '<sdm.GenerateKeysResponse ' + \
12465
+ 'rate_limit: ' + repr(self.rate_limit) + ' ' +\
12466
+ '>'
12467
+
12468
+ def to_dict(self):
12469
+ return {
12470
+ 'rate_limit': self.rate_limit,
12471
+ }
12472
+
12473
+ @classmethod
12474
+ def from_dict(cls, d):
12475
+ return cls(rate_limit=d.get('rate_limit'), )
12476
+
12477
+
12064
12478
  class GenericResponseMetadata:
12065
12479
  '''
12066
12480
  GenericResponseMetadata contains common headers for generic request
@@ -13216,38 +13630,150 @@ class HealthcheckListResponse:
13216
13630
  return cls(rate_limit=d.get('rate_limit'), )
13217
13631
 
13218
13632
 
13219
- class IdentityAlias:
13220
- '''
13221
- IdentityAliases define the username to be used for a specific account
13222
- when connecting to a remote resource using that identity set.
13223
- '''
13633
+ class HealthcheckRequest:
13224
13634
  __slots__ = [
13225
- 'account_id',
13226
- 'id',
13227
- 'identity_set_id',
13228
- 'username',
13635
+ 'secret_engine_id',
13229
13636
  ]
13230
13637
 
13231
13638
  def __init__(
13232
13639
  self,
13233
- account_id=None,
13234
- id=None,
13235
- identity_set_id=None,
13236
- username=None,
13640
+ secret_engine_id=None,
13237
13641
  ):
13238
- self.account_id = account_id if account_id is not None else ''
13239
- '''
13240
- The account for this identity alias.
13642
+ self.secret_engine_id = secret_engine_id if secret_engine_id is not None else ''
13241
13643
  '''
13242
- self.id = id if id is not None else ''
13243
- '''
13244
- Unique identifier of the IdentityAlias.
13245
- '''
13246
- self.identity_set_id = identity_set_id if identity_set_id is not None else ''
13247
- '''
13248
- The identity set.
13644
+ required
13249
13645
  '''
13250
- self.username = username if username is not None else ''
13646
+
13647
+ def __repr__(self):
13648
+ return '<sdm.HealthcheckRequest ' + \
13649
+ 'secret_engine_id: ' + repr(self.secret_engine_id) + ' ' +\
13650
+ '>'
13651
+
13652
+ def to_dict(self):
13653
+ return {
13654
+ 'secret_engine_id': self.secret_engine_id,
13655
+ }
13656
+
13657
+ @classmethod
13658
+ def from_dict(cls, d):
13659
+ return cls(secret_engine_id=d.get('secret_engine_id'), )
13660
+
13661
+
13662
+ class HealthcheckResponse:
13663
+ __slots__ = [
13664
+ 'rate_limit',
13665
+ 'status',
13666
+ ]
13667
+
13668
+ def __init__(
13669
+ self,
13670
+ rate_limit=None,
13671
+ status=None,
13672
+ ):
13673
+ self.rate_limit = rate_limit if rate_limit is not None else None
13674
+ '''
13675
+ Rate limit information.
13676
+ '''
13677
+ self.status = status if status is not None else []
13678
+ '''
13679
+ Array of statuses of all nodes serving a secret engine
13680
+ '''
13681
+
13682
+ def __repr__(self):
13683
+ return '<sdm.HealthcheckResponse ' + \
13684
+ 'rate_limit: ' + repr(self.rate_limit) + ' ' +\
13685
+ 'status: ' + repr(self.status) + ' ' +\
13686
+ '>'
13687
+
13688
+ def to_dict(self):
13689
+ return {
13690
+ 'rate_limit': self.rate_limit,
13691
+ 'status': self.status,
13692
+ }
13693
+
13694
+ @classmethod
13695
+ def from_dict(cls, d):
13696
+ return cls(
13697
+ rate_limit=d.get('rate_limit'),
13698
+ status=d.get('status'),
13699
+ )
13700
+
13701
+
13702
+ class HealthcheckStatus:
13703
+ '''
13704
+ HealthcheckStatus contains status of a node health
13705
+ '''
13706
+ __slots__ = [
13707
+ 'node_id',
13708
+ 'status',
13709
+ ]
13710
+
13711
+ def __init__(
13712
+ self,
13713
+ node_id=None,
13714
+ status=None,
13715
+ ):
13716
+ self.node_id = node_id if node_id is not None else ''
13717
+ '''
13718
+ ID of node
13719
+ '''
13720
+ self.status = status if status is not None else ''
13721
+ '''
13722
+ Status of node's health
13723
+ '''
13724
+
13725
+ def __repr__(self):
13726
+ return '<sdm.HealthcheckStatus ' + \
13727
+ 'node_id: ' + repr(self.node_id) + ' ' +\
13728
+ 'status: ' + repr(self.status) + ' ' +\
13729
+ '>'
13730
+
13731
+ def to_dict(self):
13732
+ return {
13733
+ 'node_id': self.node_id,
13734
+ 'status': self.status,
13735
+ }
13736
+
13737
+ @classmethod
13738
+ def from_dict(cls, d):
13739
+ return cls(
13740
+ node_id=d.get('node_id'),
13741
+ status=d.get('status'),
13742
+ )
13743
+
13744
+
13745
+ class IdentityAlias:
13746
+ '''
13747
+ IdentityAliases define the username to be used for a specific account
13748
+ when connecting to a remote resource using that identity set.
13749
+ '''
13750
+ __slots__ = [
13751
+ 'account_id',
13752
+ 'id',
13753
+ 'identity_set_id',
13754
+ 'username',
13755
+ ]
13756
+
13757
+ def __init__(
13758
+ self,
13759
+ account_id=None,
13760
+ id=None,
13761
+ identity_set_id=None,
13762
+ username=None,
13763
+ ):
13764
+ self.account_id = account_id if account_id is not None else ''
13765
+ '''
13766
+ The account for this identity alias.
13767
+ '''
13768
+ self.id = id if id is not None else ''
13769
+ '''
13770
+ Unique identifier of the IdentityAlias.
13771
+ '''
13772
+ self.identity_set_id = identity_set_id if identity_set_id is not None else ''
13773
+ '''
13774
+ The identity set.
13775
+ '''
13776
+ self.username = username if username is not None else ''
13251
13777
  '''
13252
13778
  The username to be used as the identity alias for this account.
13253
13779
  '''
@@ -13850,6 +14376,95 @@ class IdentitySetUpdateResponse:
13850
14376
  )
13851
14377
 
13852
14378
 
14379
+ class KeyValueEngine:
14380
+ '''
14381
+ KeyValueEngine is currently unstable, and its API may change, or it may be removed,
14382
+ without a major version bump.
14383
+ '''
14384
+ __slots__ = [
14385
+ 'id',
14386
+ 'key_rotation_interval_days',
14387
+ 'name',
14388
+ 'public_key',
14389
+ 'secret_store_id',
14390
+ 'secret_store_root_path',
14391
+ 'tags',
14392
+ ]
14393
+
14394
+ def __init__(
14395
+ self,
14396
+ id=None,
14397
+ key_rotation_interval_days=None,
14398
+ name=None,
14399
+ public_key=None,
14400
+ secret_store_id=None,
14401
+ secret_store_root_path=None,
14402
+ tags=None,
14403
+ ):
14404
+ self.id = id if id is not None else ''
14405
+ '''
14406
+ Unique identifier of the Secret Engine.
14407
+ '''
14408
+ self.key_rotation_interval_days = key_rotation_interval_days if key_rotation_interval_days is not None else 0
14409
+ '''
14410
+ An interval of public/private key rotation for secret engine in days
14411
+ '''
14412
+ self.name = name if name is not None else ''
14413
+ '''
14414
+ Unique human-readable name of the Secret Engine.
14415
+ '''
14416
+ self.public_key = public_key if public_key is not None else b''
14417
+ '''
14418
+ Public key linked with a secret engine
14419
+ '''
14420
+ self.secret_store_id = secret_store_id if secret_store_id is not None else ''
14421
+ '''
14422
+ Backing secret store identifier
14423
+ '''
14424
+ self.secret_store_root_path = secret_store_root_path if secret_store_root_path is not None else ''
14425
+ '''
14426
+ Backing Secret Store root path where managed secrets are going to be stored
14427
+ '''
14428
+ self.tags = tags if tags is not None else _porcelain_zero_value_tags()
14429
+ '''
14430
+ Tags is a map of key, value pairs.
14431
+ '''
14432
+
14433
+ def __repr__(self):
14434
+ return '<sdm.KeyValueEngine ' + \
14435
+ 'id: ' + repr(self.id) + ' ' +\
14436
+ 'key_rotation_interval_days: ' + repr(self.key_rotation_interval_days) + ' ' +\
14437
+ 'name: ' + repr(self.name) + ' ' +\
14438
+ 'public_key: ' + repr(self.public_key) + ' ' +\
14439
+ 'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
14440
+ 'secret_store_root_path: ' + repr(self.secret_store_root_path) + ' ' +\
14441
+ 'tags: ' + repr(self.tags) + ' ' +\
14442
+ '>'
14443
+
14444
+ def to_dict(self):
14445
+ return {
14446
+ 'id': self.id,
14447
+ 'key_rotation_interval_days': self.key_rotation_interval_days,
14448
+ 'name': self.name,
14449
+ 'public_key': self.public_key,
14450
+ 'secret_store_id': self.secret_store_id,
14451
+ 'secret_store_root_path': self.secret_store_root_path,
14452
+ 'tags': self.tags,
14453
+ }
14454
+
14455
+ @classmethod
14456
+ def from_dict(cls, d):
14457
+ return cls(
14458
+ id=d.get('id'),
14459
+ key_rotation_interval_days=d.get('key_rotation_interval_days'),
14460
+ name=d.get('name'),
14461
+ public_key=d.get('public_key'),
14462
+ secret_store_id=d.get('secret_store_id'),
14463
+ secret_store_root_path=d.get('secret_store_root_path'),
14464
+ tags=d.get('tags'),
14465
+ )
14466
+
14467
+
13853
14468
  class KeyfactorSSHStore:
13854
14469
  __slots__ = [
13855
14470
  'ca_file_path',
@@ -15600,365 +16215,1422 @@ class MTLSPostgres:
15600
16215
  )
15601
16216
 
15602
16217
 
15603
- class Maria:
16218
+ class ManagedSecret:
16219
+ '''
16220
+ ManagedSecret contains details about managed secret
16221
+ '''
15604
16222
  __slots__ = [
15605
- 'bind_interface',
15606
- 'database',
15607
- 'egress_filter',
15608
- 'healthy',
15609
- 'hostname',
16223
+ 'config',
16224
+ 'expires_at',
15610
16225
  'id',
16226
+ 'last_rotated_at',
15611
16227
  'name',
15612
- 'password',
15613
- 'port',
15614
- 'port_override',
15615
- 'proxy_cluster_id',
15616
- 'require_native_auth',
15617
- 'secret_store_id',
15618
- 'subdomain',
16228
+ 'policy',
16229
+ 'secret_engine_id',
16230
+ 'secret_store_path',
15619
16231
  'tags',
15620
- 'use_azure_single_server_usernames',
15621
- 'username',
16232
+ 'value',
15622
16233
  ]
15623
16234
 
15624
16235
  def __init__(
15625
16236
  self,
15626
- bind_interface=None,
15627
- database=None,
15628
- egress_filter=None,
15629
- healthy=None,
15630
- hostname=None,
16237
+ config=None,
16238
+ expires_at=None,
15631
16239
  id=None,
16240
+ last_rotated_at=None,
15632
16241
  name=None,
15633
- password=None,
15634
- port=None,
15635
- port_override=None,
15636
- proxy_cluster_id=None,
15637
- require_native_auth=None,
15638
- secret_store_id=None,
15639
- subdomain=None,
16242
+ policy=None,
16243
+ secret_engine_id=None,
16244
+ secret_store_path=None,
15640
16245
  tags=None,
15641
- use_azure_single_server_usernames=None,
15642
- username=None,
16246
+ value=None,
15643
16247
  ):
15644
- self.bind_interface = bind_interface if bind_interface is not None else ''
15645
- '''
15646
- 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.
15647
- '''
15648
- self.database = database if database is not None else ''
15649
- '''
15650
- The database for healthchecks. Does not affect client requests.
15651
- '''
15652
- self.egress_filter = egress_filter if egress_filter is not None else ''
16248
+ self.config = config if config is not None else ''
15653
16249
  '''
15654
- A filter applied to the routing logic to pin datasource to nodes.
16250
+ public part of the secret value
15655
16251
  '''
15656
- self.healthy = healthy if healthy is not None else False
16252
+ self.expires_at = expires_at if expires_at is not None else None
15657
16253
  '''
15658
- True if the datasource is reachable and the credentials are valid.
16254
+ Timestamp of when secret is going to be rotated
15659
16255
  '''
15660
- self.hostname = hostname if hostname is not None else ''
16256
+ self.id = id if id is not None else ''
15661
16257
  '''
15662
- The host to dial to initiate a connection from the egress node to this resource.
16258
+ Unique identifier of the Managed Secret.
15663
16259
  '''
15664
- self.id = id if id is not None else ''
16260
+ self.last_rotated_at = last_rotated_at if last_rotated_at is not None else None
15665
16261
  '''
15666
- Unique identifier of the Resource.
16262
+ Timestamp of when secret was last rotated
15667
16263
  '''
15668
16264
  self.name = name if name is not None else ''
15669
16265
  '''
15670
- Unique human-readable name of the Resource.
15671
- '''
15672
- self.password = password if password is not None else ''
16266
+ Unique human-readable name of the Managed Secret.
15673
16267
  '''
15674
- The password to authenticate with.
16268
+ self.policy = policy if policy is not None else None
15675
16269
  '''
15676
- self.port = port if port is not None else 0
16270
+ Password and rotation policy for the secret
15677
16271
  '''
15678
- The port to dial to initiate a connection from the egress node to this resource.
16272
+ self.secret_engine_id = secret_engine_id if secret_engine_id is not None else ''
15679
16273
  '''
15680
- self.port_override = port_override if port_override is not None else 0
16274
+ An ID of a Secret Engine linked with the Managed Secret.
15681
16275
  '''
15682
- The local port used by clients to connect to this resource.
16276
+ self.secret_store_path = secret_store_path if secret_store_path is not None else ''
15683
16277
  '''
15684
- self.proxy_cluster_id = proxy_cluster_id if proxy_cluster_id is not None else ''
16278
+ Path in a secret store.
15685
16279
  '''
15686
- ID of the proxy cluster for this resource, if any.
16280
+ self.tags = tags if tags is not None else _porcelain_zero_value_tags()
15687
16281
  '''
15688
- self.require_native_auth = require_native_auth if require_native_auth is not None else False
16282
+ Tags is a map of key, value pairs.
15689
16283
  '''
15690
- Whether native auth (mysql_native_password) is used for all connections (for backwards compatibility)
16284
+ self.value = value if value is not None else b''
15691
16285
  '''
15692
- self.secret_store_id = secret_store_id if secret_store_id is not None else ''
15693
- '''
15694
- ID of the secret store containing credentials for this resource, if any.
15695
- '''
15696
- self.subdomain = subdomain if subdomain is not None else ''
15697
- '''
15698
- Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
15699
- '''
15700
- self.tags = tags if tags is not None else _porcelain_zero_value_tags()
15701
- '''
15702
- Tags is a map of key, value pairs.
15703
- '''
15704
- self.use_azure_single_server_usernames = use_azure_single_server_usernames if use_azure_single_server_usernames is not None else False
15705
- '''
15706
- If true, appends the hostname to the username when hitting a database.azure.com address
15707
- '''
15708
- self.username = username if username is not None else ''
15709
- '''
15710
- The username to authenticate with.
16286
+ Sensitive value of the secret.
15711
16287
  '''
15712
16288
 
15713
16289
  def __repr__(self):
15714
- return '<sdm.Maria ' + \
15715
- 'bind_interface: ' + repr(self.bind_interface) + ' ' +\
15716
- 'database: ' + repr(self.database) + ' ' +\
15717
- 'egress_filter: ' + repr(self.egress_filter) + ' ' +\
15718
- 'healthy: ' + repr(self.healthy) + ' ' +\
15719
- 'hostname: ' + repr(self.hostname) + ' ' +\
16290
+ return '<sdm.ManagedSecret ' + \
16291
+ 'config: ' + repr(self.config) + ' ' +\
16292
+ 'expires_at: ' + repr(self.expires_at) + ' ' +\
15720
16293
  'id: ' + repr(self.id) + ' ' +\
16294
+ 'last_rotated_at: ' + repr(self.last_rotated_at) + ' ' +\
15721
16295
  'name: ' + repr(self.name) + ' ' +\
15722
- 'password: ' + repr(self.password) + ' ' +\
15723
- 'port: ' + repr(self.port) + ' ' +\
15724
- 'port_override: ' + repr(self.port_override) + ' ' +\
15725
- 'proxy_cluster_id: ' + repr(self.proxy_cluster_id) + ' ' +\
15726
- 'require_native_auth: ' + repr(self.require_native_auth) + ' ' +\
15727
- 'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
15728
- 'subdomain: ' + repr(self.subdomain) + ' ' +\
16296
+ 'policy: ' + repr(self.policy) + ' ' +\
16297
+ 'secret_engine_id: ' + repr(self.secret_engine_id) + ' ' +\
16298
+ 'secret_store_path: ' + repr(self.secret_store_path) + ' ' +\
15729
16299
  'tags: ' + repr(self.tags) + ' ' +\
15730
- 'use_azure_single_server_usernames: ' + repr(self.use_azure_single_server_usernames) + ' ' +\
15731
- 'username: ' + repr(self.username) + ' ' +\
16300
+ 'value: ' + repr(self.value) + ' ' +\
15732
16301
  '>'
15733
16302
 
15734
16303
  def to_dict(self):
15735
16304
  return {
15736
- 'bind_interface': self.bind_interface,
15737
- 'database': self.database,
15738
- 'egress_filter': self.egress_filter,
15739
- 'healthy': self.healthy,
15740
- 'hostname': self.hostname,
16305
+ 'config': self.config,
16306
+ 'expires_at': self.expires_at,
15741
16307
  'id': self.id,
16308
+ 'last_rotated_at': self.last_rotated_at,
15742
16309
  'name': self.name,
15743
- 'password': self.password,
15744
- 'port': self.port,
15745
- 'port_override': self.port_override,
15746
- 'proxy_cluster_id': self.proxy_cluster_id,
15747
- 'require_native_auth': self.require_native_auth,
15748
- 'secret_store_id': self.secret_store_id,
15749
- 'subdomain': self.subdomain,
16310
+ 'policy': self.policy,
16311
+ 'secret_engine_id': self.secret_engine_id,
16312
+ 'secret_store_path': self.secret_store_path,
15750
16313
  'tags': self.tags,
15751
- 'use_azure_single_server_usernames':
15752
- self.use_azure_single_server_usernames,
15753
- 'username': self.username,
16314
+ 'value': self.value,
15754
16315
  }
15755
16316
 
15756
16317
  @classmethod
15757
16318
  def from_dict(cls, d):
15758
16319
  return cls(
15759
- bind_interface=d.get('bind_interface'),
15760
- database=d.get('database'),
15761
- egress_filter=d.get('egress_filter'),
15762
- healthy=d.get('healthy'),
15763
- hostname=d.get('hostname'),
16320
+ config=d.get('config'),
16321
+ expires_at=d.get('expires_at'),
15764
16322
  id=d.get('id'),
16323
+ last_rotated_at=d.get('last_rotated_at'),
15765
16324
  name=d.get('name'),
15766
- password=d.get('password'),
15767
- port=d.get('port'),
15768
- port_override=d.get('port_override'),
15769
- proxy_cluster_id=d.get('proxy_cluster_id'),
15770
- require_native_auth=d.get('require_native_auth'),
15771
- secret_store_id=d.get('secret_store_id'),
15772
- subdomain=d.get('subdomain'),
16325
+ policy=d.get('policy'),
16326
+ secret_engine_id=d.get('secret_engine_id'),
16327
+ secret_store_path=d.get('secret_store_path'),
15773
16328
  tags=d.get('tags'),
15774
- use_azure_single_server_usernames=d.get(
15775
- 'use_azure_single_server_usernames'),
15776
- username=d.get('username'),
16329
+ value=d.get('value'),
15777
16330
  )
15778
16331
 
15779
16332
 
15780
- class Memcached:
16333
+ class ManagedSecretCreateRequest:
16334
+ '''
16335
+ ManagedSecretCreateRequest specifies a Managed Secret to create.
16336
+ '''
15781
16337
  __slots__ = [
15782
- 'bind_interface',
15783
- 'egress_filter',
15784
- 'healthy',
15785
- 'hostname',
15786
- 'id',
15787
- 'name',
15788
- 'port',
15789
- 'port_override',
15790
- 'proxy_cluster_id',
15791
- 'secret_store_id',
15792
- 'subdomain',
15793
- 'tags',
16338
+ 'managed_secret',
15794
16339
  ]
15795
16340
 
15796
16341
  def __init__(
15797
16342
  self,
15798
- bind_interface=None,
15799
- egress_filter=None,
15800
- healthy=None,
15801
- hostname=None,
15802
- id=None,
15803
- name=None,
15804
- port=None,
15805
- port_override=None,
15806
- proxy_cluster_id=None,
15807
- secret_store_id=None,
15808
- subdomain=None,
15809
- tags=None,
16343
+ managed_secret=None,
15810
16344
  ):
15811
- self.bind_interface = bind_interface if bind_interface is not None else ''
15812
- '''
15813
- 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.
15814
- '''
15815
- self.egress_filter = egress_filter if egress_filter is not None else ''
15816
- '''
15817
- A filter applied to the routing logic to pin datasource to nodes.
15818
- '''
15819
- self.healthy = healthy if healthy is not None else False
15820
- '''
15821
- True if the datasource is reachable and the credentials are valid.
15822
- '''
15823
- self.hostname = hostname if hostname is not None else ''
15824
- '''
15825
- The host to dial to initiate a connection from the egress node to this resource.
15826
- '''
15827
- self.id = id if id is not None else ''
15828
- '''
15829
- Unique identifier of the Resource.
15830
- '''
15831
- self.name = name if name is not None else ''
15832
- '''
15833
- Unique human-readable name of the Resource.
15834
- '''
15835
- self.port = port if port is not None else 0
15836
- '''
15837
- The port to dial to initiate a connection from the egress node to this resource.
15838
- '''
15839
- self.port_override = port_override if port_override is not None else 0
16345
+ self.managed_secret = managed_secret if managed_secret is not None else None
15840
16346
  '''
15841
- The local port used by clients to connect to this resource.
15842
- '''
15843
- self.proxy_cluster_id = proxy_cluster_id if proxy_cluster_id is not None else ''
15844
- '''
15845
- ID of the proxy cluster for this resource, if any.
16347
+ Parameters to define the new Managed Secret.
15846
16348
  '''
15847
- self.secret_store_id = secret_store_id if secret_store_id is not None else ''
16349
+
16350
+ def __repr__(self):
16351
+ return '<sdm.ManagedSecretCreateRequest ' + \
16352
+ 'managed_secret: ' + repr(self.managed_secret) + ' ' +\
16353
+ '>'
16354
+
16355
+ def to_dict(self):
16356
+ return {
16357
+ 'managed_secret': self.managed_secret,
16358
+ }
16359
+
16360
+ @classmethod
16361
+ def from_dict(cls, d):
16362
+ return cls(managed_secret=d.get('managed_secret'), )
16363
+
16364
+
16365
+ class ManagedSecretCreateResponse:
16366
+ '''
16367
+ ManagedSecretCreateResponse contains information about a Managed Secret after
16368
+ successful creation.
16369
+ '''
16370
+ __slots__ = [
16371
+ 'managed_secret',
16372
+ 'meta',
16373
+ 'rate_limit',
16374
+ ]
16375
+
16376
+ def __init__(
16377
+ self,
16378
+ managed_secret=None,
16379
+ meta=None,
16380
+ rate_limit=None,
16381
+ ):
16382
+ self.managed_secret = managed_secret if managed_secret is not None else None
15848
16383
  '''
15849
- ID of the secret store containing credentials for this resource, if any.
16384
+ The requested Managed Secret.
15850
16385
  '''
15851
- self.subdomain = subdomain if subdomain is not None else ''
16386
+ self.meta = meta if meta is not None else None
15852
16387
  '''
15853
- Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
16388
+ Reserved for future use.
15854
16389
  '''
15855
- self.tags = tags if tags is not None else _porcelain_zero_value_tags()
16390
+ self.rate_limit = rate_limit if rate_limit is not None else None
15856
16391
  '''
15857
- Tags is a map of key, value pairs.
16392
+ Rate limit information.
15858
16393
  '''
15859
16394
 
15860
16395
  def __repr__(self):
15861
- return '<sdm.Memcached ' + \
15862
- 'bind_interface: ' + repr(self.bind_interface) + ' ' +\
15863
- 'egress_filter: ' + repr(self.egress_filter) + ' ' +\
15864
- 'healthy: ' + repr(self.healthy) + ' ' +\
15865
- 'hostname: ' + repr(self.hostname) + ' ' +\
15866
- 'id: ' + repr(self.id) + ' ' +\
15867
- 'name: ' + repr(self.name) + ' ' +\
15868
- 'port: ' + repr(self.port) + ' ' +\
15869
- 'port_override: ' + repr(self.port_override) + ' ' +\
15870
- 'proxy_cluster_id: ' + repr(self.proxy_cluster_id) + ' ' +\
15871
- 'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
15872
- 'subdomain: ' + repr(self.subdomain) + ' ' +\
15873
- 'tags: ' + repr(self.tags) + ' ' +\
16396
+ return '<sdm.ManagedSecretCreateResponse ' + \
16397
+ 'managed_secret: ' + repr(self.managed_secret) + ' ' +\
16398
+ 'meta: ' + repr(self.meta) + ' ' +\
16399
+ 'rate_limit: ' + repr(self.rate_limit) + ' ' +\
15874
16400
  '>'
15875
16401
 
15876
16402
  def to_dict(self):
15877
16403
  return {
15878
- 'bind_interface': self.bind_interface,
15879
- 'egress_filter': self.egress_filter,
15880
- 'healthy': self.healthy,
15881
- 'hostname': self.hostname,
15882
- 'id': self.id,
15883
- 'name': self.name,
15884
- 'port': self.port,
15885
- 'port_override': self.port_override,
15886
- 'proxy_cluster_id': self.proxy_cluster_id,
15887
- 'secret_store_id': self.secret_store_id,
15888
- 'subdomain': self.subdomain,
15889
- 'tags': self.tags,
16404
+ 'managed_secret': self.managed_secret,
16405
+ 'meta': self.meta,
16406
+ 'rate_limit': self.rate_limit,
15890
16407
  }
15891
16408
 
15892
16409
  @classmethod
15893
16410
  def from_dict(cls, d):
15894
16411
  return cls(
15895
- bind_interface=d.get('bind_interface'),
15896
- egress_filter=d.get('egress_filter'),
15897
- healthy=d.get('healthy'),
15898
- hostname=d.get('hostname'),
15899
- id=d.get('id'),
15900
- name=d.get('name'),
15901
- port=d.get('port'),
15902
- port_override=d.get('port_override'),
15903
- proxy_cluster_id=d.get('proxy_cluster_id'),
15904
- secret_store_id=d.get('secret_store_id'),
15905
- subdomain=d.get('subdomain'),
15906
- tags=d.get('tags'),
16412
+ managed_secret=d.get('managed_secret'),
16413
+ meta=d.get('meta'),
16414
+ rate_limit=d.get('rate_limit'),
15907
16415
  )
15908
16416
 
15909
16417
 
15910
- class Memsql:
16418
+ class ManagedSecretDeleteRequest:
16419
+ '''
16420
+ ManagedSecretDeleteRequest specified the ID of a Managed Secret to be
16421
+ deleted.
16422
+ '''
15911
16423
  __slots__ = [
15912
- 'bind_interface',
15913
- 'database',
15914
- 'egress_filter',
15915
- 'healthy',
15916
- 'hostname',
15917
16424
  'id',
15918
- 'name',
15919
- 'password',
15920
- 'port',
15921
- 'port_override',
15922
- 'proxy_cluster_id',
15923
- 'require_native_auth',
15924
- 'secret_store_id',
15925
- 'subdomain',
15926
- 'tags',
15927
- 'use_azure_single_server_usernames',
15928
- 'username',
15929
16425
  ]
15930
16426
 
15931
16427
  def __init__(
15932
16428
  self,
15933
- bind_interface=None,
15934
- database=None,
15935
- egress_filter=None,
15936
- healthy=None,
15937
- hostname=None,
15938
16429
  id=None,
15939
- name=None,
15940
- password=None,
15941
- port=None,
15942
- port_override=None,
15943
- proxy_cluster_id=None,
15944
- require_native_auth=None,
15945
- secret_store_id=None,
15946
- subdomain=None,
15947
- tags=None,
15948
- use_azure_single_server_usernames=None,
15949
- username=None,
15950
16430
  ):
15951
- self.bind_interface = bind_interface if bind_interface is not None else ''
15952
- '''
15953
- 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.
15954
- '''
15955
- self.database = database if database is not None else ''
15956
- '''
15957
- The database for healthchecks. Does not affect client requests.
15958
- '''
15959
- self.egress_filter = egress_filter if egress_filter is not None else ''
16431
+ self.id = id if id is not None else ''
15960
16432
  '''
15961
- A filter applied to the routing logic to pin datasource to nodes.
16433
+ The unique identifier of the Managed Secret to delete.
16434
+ '''
16435
+
16436
+ def __repr__(self):
16437
+ return '<sdm.ManagedSecretDeleteRequest ' + \
16438
+ 'id: ' + repr(self.id) + ' ' +\
16439
+ '>'
16440
+
16441
+ def to_dict(self):
16442
+ return {
16443
+ 'id': self.id,
16444
+ }
16445
+
16446
+ @classmethod
16447
+ def from_dict(cls, d):
16448
+ return cls(id=d.get('id'), )
16449
+
16450
+
16451
+ class ManagedSecretDeleteResponse:
16452
+ '''
16453
+ ManagedSecretDeleteResponse contains information about a Managed Secret after
16454
+ it was deleted.
16455
+ '''
16456
+ __slots__ = [
16457
+ 'rate_limit',
16458
+ ]
16459
+
16460
+ def __init__(
16461
+ self,
16462
+ rate_limit=None,
16463
+ ):
16464
+ self.rate_limit = rate_limit if rate_limit is not None else None
16465
+ '''
16466
+ Rate limit information.
16467
+ '''
16468
+
16469
+ def __repr__(self):
16470
+ return '<sdm.ManagedSecretDeleteResponse ' + \
16471
+ 'rate_limit: ' + repr(self.rate_limit) + ' ' +\
16472
+ '>'
16473
+
16474
+ def to_dict(self):
16475
+ return {
16476
+ 'rate_limit': self.rate_limit,
16477
+ }
16478
+
16479
+ @classmethod
16480
+ def from_dict(cls, d):
16481
+ return cls(rate_limit=d.get('rate_limit'), )
16482
+
16483
+
16484
+ class ManagedSecretGetRequest:
16485
+ '''
16486
+ ManagedSecretGetRequest specifies which Managed Secret to retrieve
16487
+ '''
16488
+ __slots__ = [
16489
+ 'id',
16490
+ ]
16491
+
16492
+ def __init__(
16493
+ self,
16494
+ id=None,
16495
+ ):
16496
+ self.id = id if id is not None else ''
16497
+ '''
16498
+ The unique identifier of the Managed Secret to retrieve.
16499
+ '''
16500
+
16501
+ def __repr__(self):
16502
+ return '<sdm.ManagedSecretGetRequest ' + \
16503
+ 'id: ' + repr(self.id) + ' ' +\
16504
+ '>'
16505
+
16506
+ def to_dict(self):
16507
+ return {
16508
+ 'id': self.id,
16509
+ }
16510
+
16511
+ @classmethod
16512
+ def from_dict(cls, d):
16513
+ return cls(id=d.get('id'), )
16514
+
16515
+
16516
+ class ManagedSecretGetResponse:
16517
+ '''
16518
+ ManagedSecretGetResponse contains information about requested Managed Secret
16519
+ '''
16520
+ __slots__ = [
16521
+ 'managed_secret',
16522
+ 'meta',
16523
+ 'rate_limit',
16524
+ ]
16525
+
16526
+ def __init__(
16527
+ self,
16528
+ managed_secret=None,
16529
+ meta=None,
16530
+ rate_limit=None,
16531
+ ):
16532
+ self.managed_secret = managed_secret if managed_secret is not None else None
16533
+ '''
16534
+ The requested Managed Secret.
16535
+ '''
16536
+ self.meta = meta if meta is not None else None
16537
+ '''
16538
+ Reserved for future use.
16539
+ '''
16540
+ self.rate_limit = rate_limit if rate_limit is not None else None
16541
+ '''
16542
+ Rate limit information.
16543
+ '''
16544
+
16545
+ def __repr__(self):
16546
+ return '<sdm.ManagedSecretGetResponse ' + \
16547
+ 'managed_secret: ' + repr(self.managed_secret) + ' ' +\
16548
+ 'meta: ' + repr(self.meta) + ' ' +\
16549
+ 'rate_limit: ' + repr(self.rate_limit) + ' ' +\
16550
+ '>'
16551
+
16552
+ def to_dict(self):
16553
+ return {
16554
+ 'managed_secret': self.managed_secret,
16555
+ 'meta': self.meta,
16556
+ 'rate_limit': self.rate_limit,
16557
+ }
16558
+
16559
+ @classmethod
16560
+ def from_dict(cls, d):
16561
+ return cls(
16562
+ managed_secret=d.get('managed_secret'),
16563
+ meta=d.get('meta'),
16564
+ rate_limit=d.get('rate_limit'),
16565
+ )
16566
+
16567
+
16568
+ class ManagedSecretListRequest:
16569
+ '''
16570
+ ManagedSecretListRequest specifies criteria for retrieving a list of Managed
16571
+ Secrets.
16572
+ '''
16573
+ __slots__ = [
16574
+ 'filter',
16575
+ ]
16576
+
16577
+ def __init__(
16578
+ self,
16579
+ filter=None,
16580
+ ):
16581
+ self.filter = filter if filter is not None else ''
16582
+ '''
16583
+ A human-readable filter query string.
16584
+ '''
16585
+
16586
+ def __repr__(self):
16587
+ return '<sdm.ManagedSecretListRequest ' + \
16588
+ 'filter: ' + repr(self.filter) + ' ' +\
16589
+ '>'
16590
+
16591
+ def to_dict(self):
16592
+ return {
16593
+ 'filter': self.filter,
16594
+ }
16595
+
16596
+ @classmethod
16597
+ def from_dict(cls, d):
16598
+ return cls(filter=d.get('filter'), )
16599
+
16600
+
16601
+ class ManagedSecretListResponse:
16602
+ '''
16603
+ ManagedSecretListResponse contains a list of requested Managed Secrets
16604
+ '''
16605
+ __slots__ = [
16606
+ 'rate_limit',
16607
+ ]
16608
+
16609
+ def __init__(
16610
+ self,
16611
+ rate_limit=None,
16612
+ ):
16613
+ self.rate_limit = rate_limit if rate_limit is not None else None
16614
+ '''
16615
+ Rate limit information.
16616
+ '''
16617
+
16618
+ def __repr__(self):
16619
+ return '<sdm.ManagedSecretListResponse ' + \
16620
+ 'rate_limit: ' + repr(self.rate_limit) + ' ' +\
16621
+ '>'
16622
+
16623
+ def to_dict(self):
16624
+ return {
16625
+ 'rate_limit': self.rate_limit,
16626
+ }
16627
+
16628
+ @classmethod
16629
+ def from_dict(cls, d):
16630
+ return cls(rate_limit=d.get('rate_limit'), )
16631
+
16632
+
16633
+ class ManagedSecretLog:
16634
+ '''
16635
+ ManagedSecretLog contains details about action performed against a managed
16636
+ secret
16637
+ '''
16638
+ __slots__ = [
16639
+ 'account_id',
16640
+ 'action',
16641
+ 'created_at',
16642
+ 'debug',
16643
+ 'id',
16644
+ 'managed_secret_id',
16645
+ 'secret_engine_id',
16646
+ ]
16647
+
16648
+ def __init__(
16649
+ self,
16650
+ account_id=None,
16651
+ action=None,
16652
+ created_at=None,
16653
+ debug=None,
16654
+ id=None,
16655
+ managed_secret_id=None,
16656
+ secret_engine_id=None,
16657
+ ):
16658
+ self.account_id = account_id if account_id is not None else ''
16659
+ '''
16660
+ An ID of the account the action was performed by.
16661
+ '''
16662
+ self.action = action if action is not None else ''
16663
+ '''
16664
+ The action performed by the account against the managed secret.
16665
+ '''
16666
+ self.created_at = created_at if created_at is not None else None
16667
+ '''
16668
+ Timestamp of when action was performed.
16669
+ '''
16670
+ self.debug = debug if debug is not None else ''
16671
+ '''
16672
+ Any debug logs associated with the action.
16673
+ '''
16674
+ self.id = id if id is not None else ''
16675
+ '''
16676
+ Unique identifier of the Managed Secret Log.
16677
+ '''
16678
+ self.managed_secret_id = managed_secret_id if managed_secret_id is not None else ''
16679
+ '''
16680
+ An ID of the Managed Secret the action was performed against.
16681
+ '''
16682
+ self.secret_engine_id = secret_engine_id if secret_engine_id is not None else ''
16683
+ '''
16684
+ An ID of the Secret Engine linked with the Managed Secret.
16685
+ '''
16686
+
16687
+ def __repr__(self):
16688
+ return '<sdm.ManagedSecretLog ' + \
16689
+ 'account_id: ' + repr(self.account_id) + ' ' +\
16690
+ 'action: ' + repr(self.action) + ' ' +\
16691
+ 'created_at: ' + repr(self.created_at) + ' ' +\
16692
+ 'debug: ' + repr(self.debug) + ' ' +\
16693
+ 'id: ' + repr(self.id) + ' ' +\
16694
+ 'managed_secret_id: ' + repr(self.managed_secret_id) + ' ' +\
16695
+ 'secret_engine_id: ' + repr(self.secret_engine_id) + ' ' +\
16696
+ '>'
16697
+
16698
+ def to_dict(self):
16699
+ return {
16700
+ 'account_id': self.account_id,
16701
+ 'action': self.action,
16702
+ 'created_at': self.created_at,
16703
+ 'debug': self.debug,
16704
+ 'id': self.id,
16705
+ 'managed_secret_id': self.managed_secret_id,
16706
+ 'secret_engine_id': self.secret_engine_id,
16707
+ }
16708
+
16709
+ @classmethod
16710
+ def from_dict(cls, d):
16711
+ return cls(
16712
+ account_id=d.get('account_id'),
16713
+ action=d.get('action'),
16714
+ created_at=d.get('created_at'),
16715
+ debug=d.get('debug'),
16716
+ id=d.get('id'),
16717
+ managed_secret_id=d.get('managed_secret_id'),
16718
+ secret_engine_id=d.get('secret_engine_id'),
16719
+ )
16720
+
16721
+
16722
+ class ManagedSecretLogsRequest:
16723
+ '''
16724
+ ManagedSecretLogsRequest specifies criteria for retrieving a log of Managed
16725
+ Secrets actions.
16726
+ '''
16727
+ __slots__ = [
16728
+ 'filter',
16729
+ ]
16730
+
16731
+ def __init__(
16732
+ self,
16733
+ filter=None,
16734
+ ):
16735
+ self.filter = filter if filter is not None else ''
16736
+ '''
16737
+ A human-readable filter query string.
16738
+ '''
16739
+
16740
+ def __repr__(self):
16741
+ return '<sdm.ManagedSecretLogsRequest ' + \
16742
+ 'filter: ' + repr(self.filter) + ' ' +\
16743
+ '>'
16744
+
16745
+ def to_dict(self):
16746
+ return {
16747
+ 'filter': self.filter,
16748
+ }
16749
+
16750
+ @classmethod
16751
+ def from_dict(cls, d):
16752
+ return cls(filter=d.get('filter'), )
16753
+
16754
+
16755
+ class ManagedSecretLogsResponse:
16756
+ '''
16757
+ ManagedSecretLogsResponse contains a list of requested Managed Secrets
16758
+ '''
16759
+ __slots__ = [
16760
+ 'rate_limit',
16761
+ ]
16762
+
16763
+ def __init__(
16764
+ self,
16765
+ rate_limit=None,
16766
+ ):
16767
+ self.rate_limit = rate_limit if rate_limit is not None else None
16768
+ '''
16769
+ Rate limit information.
16770
+ '''
16771
+
16772
+ def __repr__(self):
16773
+ return '<sdm.ManagedSecretLogsResponse ' + \
16774
+ 'rate_limit: ' + repr(self.rate_limit) + ' ' +\
16775
+ '>'
16776
+
16777
+ def to_dict(self):
16778
+ return {
16779
+ 'rate_limit': self.rate_limit,
16780
+ }
16781
+
16782
+ @classmethod
16783
+ def from_dict(cls, d):
16784
+ return cls(rate_limit=d.get('rate_limit'), )
16785
+
16786
+
16787
+ class ManagedSecretPasswordPolicy:
16788
+ __slots__ = [
16789
+ 'allow_repeat',
16790
+ 'exclude_characters',
16791
+ 'exclude_upper_case',
16792
+ 'length',
16793
+ 'num_digits',
16794
+ 'num_symbols',
16795
+ ]
16796
+
16797
+ def __init__(
16798
+ self,
16799
+ allow_repeat=None,
16800
+ exclude_characters=None,
16801
+ exclude_upper_case=None,
16802
+ length=None,
16803
+ num_digits=None,
16804
+ num_symbols=None,
16805
+ ):
16806
+ self.allow_repeat = allow_repeat if allow_repeat is not None else False
16807
+ '''
16808
+ If set to true allows for consecutive characters to repeat itself
16809
+ '''
16810
+ self.exclude_characters = exclude_characters if exclude_characters is not None else ''
16811
+ '''
16812
+ Characters to exclude when generating password
16813
+ '''
16814
+ self.exclude_upper_case = exclude_upper_case if exclude_upper_case is not None else False
16815
+ '''
16816
+ If set to true do not include upper case letters when generating password
16817
+ '''
16818
+ self.length = length if length is not None else 0
16819
+ '''
16820
+ Password length
16821
+ '''
16822
+ self.num_digits = num_digits if num_digits is not None else 0
16823
+ '''
16824
+ Numbers of digits to use when generating password
16825
+ '''
16826
+ self.num_symbols = num_symbols if num_symbols is not None else 0
16827
+ '''
16828
+ Number of symbols to use when generating password
16829
+ '''
16830
+
16831
+ def __repr__(self):
16832
+ return '<sdm.ManagedSecretPasswordPolicy ' + \
16833
+ 'allow_repeat: ' + repr(self.allow_repeat) + ' ' +\
16834
+ 'exclude_characters: ' + repr(self.exclude_characters) + ' ' +\
16835
+ 'exclude_upper_case: ' + repr(self.exclude_upper_case) + ' ' +\
16836
+ 'length: ' + repr(self.length) + ' ' +\
16837
+ 'num_digits: ' + repr(self.num_digits) + ' ' +\
16838
+ 'num_symbols: ' + repr(self.num_symbols) + ' ' +\
16839
+ '>'
16840
+
16841
+ def to_dict(self):
16842
+ return {
16843
+ 'allow_repeat': self.allow_repeat,
16844
+ 'exclude_characters': self.exclude_characters,
16845
+ 'exclude_upper_case': self.exclude_upper_case,
16846
+ 'length': self.length,
16847
+ 'num_digits': self.num_digits,
16848
+ 'num_symbols': self.num_symbols,
16849
+ }
16850
+
16851
+ @classmethod
16852
+ def from_dict(cls, d):
16853
+ return cls(
16854
+ allow_repeat=d.get('allow_repeat'),
16855
+ exclude_characters=d.get('exclude_characters'),
16856
+ exclude_upper_case=d.get('exclude_upper_case'),
16857
+ length=d.get('length'),
16858
+ num_digits=d.get('num_digits'),
16859
+ num_symbols=d.get('num_symbols'),
16860
+ )
16861
+
16862
+
16863
+ class ManagedSecretPolicy:
16864
+ '''
16865
+ ManagedSecretPolicy contains password and rotation policy for managed secret
16866
+ '''
16867
+ __slots__ = [
16868
+ 'password_policy',
16869
+ 'rotation_policy',
16870
+ ]
16871
+
16872
+ def __init__(
16873
+ self,
16874
+ password_policy=None,
16875
+ rotation_policy=None,
16876
+ ):
16877
+ self.password_policy = password_policy if password_policy is not None else None
16878
+ '''
16879
+ Password policy for a managed secret
16880
+ '''
16881
+ self.rotation_policy = rotation_policy if rotation_policy is not None else None
16882
+ '''
16883
+ Rotation policy for a managed secret
16884
+ '''
16885
+
16886
+ def __repr__(self):
16887
+ return '<sdm.ManagedSecretPolicy ' + \
16888
+ 'password_policy: ' + repr(self.password_policy) + ' ' +\
16889
+ 'rotation_policy: ' + repr(self.rotation_policy) + ' ' +\
16890
+ '>'
16891
+
16892
+ def to_dict(self):
16893
+ return {
16894
+ 'password_policy': self.password_policy,
16895
+ 'rotation_policy': self.rotation_policy,
16896
+ }
16897
+
16898
+ @classmethod
16899
+ def from_dict(cls, d):
16900
+ return cls(
16901
+ password_policy=d.get('password_policy'),
16902
+ rotation_policy=d.get('rotation_policy'),
16903
+ )
16904
+
16905
+
16906
+ class ManagedSecretRetrieveRequest:
16907
+ '''
16908
+ ManagedSecretRetrieveRequest specifies which Managed Secret to retrieve
16909
+ '''
16910
+ __slots__ = [
16911
+ 'id',
16912
+ 'public_key',
16913
+ ]
16914
+
16915
+ def __init__(
16916
+ self,
16917
+ id=None,
16918
+ public_key=None,
16919
+ ):
16920
+ self.id = id if id is not None else ''
16921
+ '''
16922
+ The unique identifier of the Managed Secret to retrieve.
16923
+ '''
16924
+ self.public_key = public_key if public_key is not None else b''
16925
+ '''
16926
+ Public key to encrypt a sensitive value with
16927
+ '''
16928
+
16929
+ def __repr__(self):
16930
+ return '<sdm.ManagedSecretRetrieveRequest ' + \
16931
+ 'id: ' + repr(self.id) + ' ' +\
16932
+ 'public_key: ' + repr(self.public_key) + ' ' +\
16933
+ '>'
16934
+
16935
+ def to_dict(self):
16936
+ return {
16937
+ 'id': self.id,
16938
+ 'public_key': self.public_key,
16939
+ }
16940
+
16941
+ @classmethod
16942
+ def from_dict(cls, d):
16943
+ return cls(
16944
+ id=d.get('id'),
16945
+ public_key=d.get('public_key'),
16946
+ )
16947
+
16948
+
16949
+ class ManagedSecretRetrieveResponse:
16950
+ '''
16951
+ ManagedSecretRetrieveResponse contains information about requested Managed
16952
+ Secret
16953
+ '''
16954
+ __slots__ = [
16955
+ 'managed_secret',
16956
+ 'meta',
16957
+ 'rate_limit',
16958
+ ]
16959
+
16960
+ def __init__(
16961
+ self,
16962
+ managed_secret=None,
16963
+ meta=None,
16964
+ rate_limit=None,
16965
+ ):
16966
+ self.managed_secret = managed_secret if managed_secret is not None else None
16967
+ '''
16968
+ The requested Managed Secret.
16969
+ '''
16970
+ self.meta = meta if meta is not None else None
16971
+ '''
16972
+ Reserved for future use.
16973
+ '''
16974
+ self.rate_limit = rate_limit if rate_limit is not None else None
16975
+ '''
16976
+ Rate limit information.
16977
+ '''
16978
+
16979
+ def __repr__(self):
16980
+ return '<sdm.ManagedSecretRetrieveResponse ' + \
16981
+ 'managed_secret: ' + repr(self.managed_secret) + ' ' +\
16982
+ 'meta: ' + repr(self.meta) + ' ' +\
16983
+ 'rate_limit: ' + repr(self.rate_limit) + ' ' +\
16984
+ '>'
16985
+
16986
+ def to_dict(self):
16987
+ return {
16988
+ 'managed_secret': self.managed_secret,
16989
+ 'meta': self.meta,
16990
+ 'rate_limit': self.rate_limit,
16991
+ }
16992
+
16993
+ @classmethod
16994
+ def from_dict(cls, d):
16995
+ return cls(
16996
+ managed_secret=d.get('managed_secret'),
16997
+ meta=d.get('meta'),
16998
+ rate_limit=d.get('rate_limit'),
16999
+ )
17000
+
17001
+
17002
+ class ManagedSecretRotateRequest:
17003
+ '''
17004
+ ManagedSecretRotateRequest specifies Managed Secret to rotate
17005
+ '''
17006
+ __slots__ = [
17007
+ 'id',
17008
+ ]
17009
+
17010
+ def __init__(
17011
+ self,
17012
+ id=None,
17013
+ ):
17014
+ self.id = id if id is not None else ''
17015
+ '''
17016
+ The unique identifier of the Managed Secret to rotate.
17017
+ '''
17018
+
17019
+ def __repr__(self):
17020
+ return '<sdm.ManagedSecretRotateRequest ' + \
17021
+ 'id: ' + repr(self.id) + ' ' +\
17022
+ '>'
17023
+
17024
+ def to_dict(self):
17025
+ return {
17026
+ 'id': self.id,
17027
+ }
17028
+
17029
+ @classmethod
17030
+ def from_dict(cls, d):
17031
+ return cls(id=d.get('id'), )
17032
+
17033
+
17034
+ class ManagedSecretRotateResponse:
17035
+ '''
17036
+ ManagedSecretRotateResponse contains information about Secret Engine after
17037
+ successful rotation.
17038
+ '''
17039
+ __slots__ = [
17040
+ 'meta',
17041
+ 'rate_limit',
17042
+ ]
17043
+
17044
+ def __init__(
17045
+ self,
17046
+ meta=None,
17047
+ rate_limit=None,
17048
+ ):
17049
+ self.meta = meta if meta is not None else None
17050
+ '''
17051
+ Reserved for future use.
17052
+ '''
17053
+ self.rate_limit = rate_limit if rate_limit is not None else None
17054
+ '''
17055
+ Rate limit information.
17056
+ '''
17057
+
17058
+ def __repr__(self):
17059
+ return '<sdm.ManagedSecretRotateResponse ' + \
17060
+ 'meta: ' + repr(self.meta) + ' ' +\
17061
+ 'rate_limit: ' + repr(self.rate_limit) + ' ' +\
17062
+ '>'
17063
+
17064
+ def to_dict(self):
17065
+ return {
17066
+ 'meta': self.meta,
17067
+ 'rate_limit': self.rate_limit,
17068
+ }
17069
+
17070
+ @classmethod
17071
+ def from_dict(cls, d):
17072
+ return cls(
17073
+ meta=d.get('meta'),
17074
+ rate_limit=d.get('rate_limit'),
17075
+ )
17076
+
17077
+
17078
+ class ManagedSecretRotationPolicy:
17079
+ __slots__ = []
17080
+
17081
+ def __init__(self, ):
17082
+ pass
17083
+
17084
+ def __repr__(self):
17085
+ return '<sdm.ManagedSecretRotationPolicy ' + \
17086
+ '>'
17087
+
17088
+ def to_dict(self):
17089
+ return {}
17090
+
17091
+ @classmethod
17092
+ def from_dict(cls, d):
17093
+ return cls()
17094
+
17095
+
17096
+ class ManagedSecretUpdateRequest:
17097
+ '''
17098
+ ManagedSecretUpdateRequest specifies Managed Secret to update
17099
+ '''
17100
+ __slots__ = [
17101
+ 'managed_secret',
17102
+ ]
17103
+
17104
+ def __init__(
17105
+ self,
17106
+ managed_secret=None,
17107
+ ):
17108
+ self.managed_secret = managed_secret if managed_secret is not None else None
17109
+ '''
17110
+ Managed Secret to update
17111
+ '''
17112
+
17113
+ def __repr__(self):
17114
+ return '<sdm.ManagedSecretUpdateRequest ' + \
17115
+ 'managed_secret: ' + repr(self.managed_secret) + ' ' +\
17116
+ '>'
17117
+
17118
+ def to_dict(self):
17119
+ return {
17120
+ 'managed_secret': self.managed_secret,
17121
+ }
17122
+
17123
+ @classmethod
17124
+ def from_dict(cls, d):
17125
+ return cls(managed_secret=d.get('managed_secret'), )
17126
+
17127
+
17128
+ class ManagedSecretUpdateResponse:
17129
+ '''
17130
+ ManagedSecretUpdateResponse contains information about Secret Engine after
17131
+ successful update.
17132
+ '''
17133
+ __slots__ = [
17134
+ 'managed_secret',
17135
+ 'meta',
17136
+ 'rate_limit',
17137
+ ]
17138
+
17139
+ def __init__(
17140
+ self,
17141
+ managed_secret=None,
17142
+ meta=None,
17143
+ rate_limit=None,
17144
+ ):
17145
+ self.managed_secret = managed_secret if managed_secret is not None else None
17146
+ '''
17147
+ The requested Managed Secret.
17148
+ '''
17149
+ self.meta = meta if meta is not None else None
17150
+ '''
17151
+ Reserved for future use.
17152
+ '''
17153
+ self.rate_limit = rate_limit if rate_limit is not None else None
17154
+ '''
17155
+ Rate limit information.
17156
+ '''
17157
+
17158
+ def __repr__(self):
17159
+ return '<sdm.ManagedSecretUpdateResponse ' + \
17160
+ 'managed_secret: ' + repr(self.managed_secret) + ' ' +\
17161
+ 'meta: ' + repr(self.meta) + ' ' +\
17162
+ 'rate_limit: ' + repr(self.rate_limit) + ' ' +\
17163
+ '>'
17164
+
17165
+ def to_dict(self):
17166
+ return {
17167
+ 'managed_secret': self.managed_secret,
17168
+ 'meta': self.meta,
17169
+ 'rate_limit': self.rate_limit,
17170
+ }
17171
+
17172
+ @classmethod
17173
+ def from_dict(cls, d):
17174
+ return cls(
17175
+ managed_secret=d.get('managed_secret'),
17176
+ meta=d.get('meta'),
17177
+ rate_limit=d.get('rate_limit'),
17178
+ )
17179
+
17180
+
17181
+ class ManagedSecretValidateRequest:
17182
+ '''
17183
+ ManagedSecretValidateRequest specifies which Managed Secret to validate
17184
+ '''
17185
+ __slots__ = [
17186
+ 'id',
17187
+ ]
17188
+
17189
+ def __init__(
17190
+ self,
17191
+ id=None,
17192
+ ):
17193
+ self.id = id if id is not None else ''
17194
+ '''
17195
+ The unique identifier of the Managed Secret to validate.
17196
+ '''
17197
+
17198
+ def __repr__(self):
17199
+ return '<sdm.ManagedSecretValidateRequest ' + \
17200
+ 'id: ' + repr(self.id) + ' ' +\
17201
+ '>'
17202
+
17203
+ def to_dict(self):
17204
+ return {
17205
+ 'id': self.id,
17206
+ }
17207
+
17208
+ @classmethod
17209
+ def from_dict(cls, d):
17210
+ return cls(id=d.get('id'), )
17211
+
17212
+
17213
+ class ManagedSecretValidateResponse:
17214
+ '''
17215
+ ManagedSecretValidateResponse contains validity of requested Managed
17216
+ Secret
17217
+ '''
17218
+ __slots__ = [
17219
+ 'invalid_info',
17220
+ 'meta',
17221
+ 'rate_limit',
17222
+ 'valid',
17223
+ ]
17224
+
17225
+ def __init__(
17226
+ self,
17227
+ invalid_info=None,
17228
+ meta=None,
17229
+ rate_limit=None,
17230
+ valid=None,
17231
+ ):
17232
+ self.invalid_info = invalid_info if invalid_info is not None else ''
17233
+ '''
17234
+ Information about why secret is invalid
17235
+ '''
17236
+ self.meta = meta if meta is not None else None
17237
+ '''
17238
+ Reserved for future use.
17239
+ '''
17240
+ self.rate_limit = rate_limit if rate_limit is not None else None
17241
+ '''
17242
+ Rate limit information.
17243
+ '''
17244
+ self.valid = valid if valid is not None else False
17245
+ '''
17246
+ Whether the secret is valid
17247
+ '''
17248
+
17249
+ def __repr__(self):
17250
+ return '<sdm.ManagedSecretValidateResponse ' + \
17251
+ 'invalid_info: ' + repr(self.invalid_info) + ' ' +\
17252
+ 'meta: ' + repr(self.meta) + ' ' +\
17253
+ 'rate_limit: ' + repr(self.rate_limit) + ' ' +\
17254
+ 'valid: ' + repr(self.valid) + ' ' +\
17255
+ '>'
17256
+
17257
+ def to_dict(self):
17258
+ return {
17259
+ 'invalid_info': self.invalid_info,
17260
+ 'meta': self.meta,
17261
+ 'rate_limit': self.rate_limit,
17262
+ 'valid': self.valid,
17263
+ }
17264
+
17265
+ @classmethod
17266
+ def from_dict(cls, d):
17267
+ return cls(
17268
+ invalid_info=d.get('invalid_info'),
17269
+ meta=d.get('meta'),
17270
+ rate_limit=d.get('rate_limit'),
17271
+ valid=d.get('valid'),
17272
+ )
17273
+
17274
+
17275
+ class Maria:
17276
+ __slots__ = [
17277
+ 'bind_interface',
17278
+ 'database',
17279
+ 'egress_filter',
17280
+ 'healthy',
17281
+ 'hostname',
17282
+ 'id',
17283
+ 'name',
17284
+ 'password',
17285
+ 'port',
17286
+ 'port_override',
17287
+ 'proxy_cluster_id',
17288
+ 'require_native_auth',
17289
+ 'secret_store_id',
17290
+ 'subdomain',
17291
+ 'tags',
17292
+ 'use_azure_single_server_usernames',
17293
+ 'username',
17294
+ ]
17295
+
17296
+ def __init__(
17297
+ self,
17298
+ bind_interface=None,
17299
+ database=None,
17300
+ egress_filter=None,
17301
+ healthy=None,
17302
+ hostname=None,
17303
+ id=None,
17304
+ name=None,
17305
+ password=None,
17306
+ port=None,
17307
+ port_override=None,
17308
+ proxy_cluster_id=None,
17309
+ require_native_auth=None,
17310
+ secret_store_id=None,
17311
+ subdomain=None,
17312
+ tags=None,
17313
+ use_azure_single_server_usernames=None,
17314
+ username=None,
17315
+ ):
17316
+ self.bind_interface = bind_interface if bind_interface is not None else ''
17317
+ '''
17318
+ 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.
17319
+ '''
17320
+ self.database = database if database is not None else ''
17321
+ '''
17322
+ The database for healthchecks. Does not affect client requests.
17323
+ '''
17324
+ self.egress_filter = egress_filter if egress_filter is not None else ''
17325
+ '''
17326
+ A filter applied to the routing logic to pin datasource to nodes.
17327
+ '''
17328
+ self.healthy = healthy if healthy is not None else False
17329
+ '''
17330
+ True if the datasource is reachable and the credentials are valid.
17331
+ '''
17332
+ self.hostname = hostname if hostname is not None else ''
17333
+ '''
17334
+ The host to dial to initiate a connection from the egress node to this resource.
17335
+ '''
17336
+ self.id = id if id is not None else ''
17337
+ '''
17338
+ Unique identifier of the Resource.
17339
+ '''
17340
+ self.name = name if name is not None else ''
17341
+ '''
17342
+ Unique human-readable name of the Resource.
17343
+ '''
17344
+ self.password = password if password is not None else ''
17345
+ '''
17346
+ The password to authenticate with.
17347
+ '''
17348
+ self.port = port if port is not None else 0
17349
+ '''
17350
+ The port to dial to initiate a connection from the egress node to this resource.
17351
+ '''
17352
+ self.port_override = port_override if port_override is not None else 0
17353
+ '''
17354
+ The local port used by clients to connect to this resource.
17355
+ '''
17356
+ self.proxy_cluster_id = proxy_cluster_id if proxy_cluster_id is not None else ''
17357
+ '''
17358
+ ID of the proxy cluster for this resource, if any.
17359
+ '''
17360
+ self.require_native_auth = require_native_auth if require_native_auth is not None else False
17361
+ '''
17362
+ Whether native auth (mysql_native_password) is used for all connections (for backwards compatibility)
17363
+ '''
17364
+ self.secret_store_id = secret_store_id if secret_store_id is not None else ''
17365
+ '''
17366
+ ID of the secret store containing credentials for this resource, if any.
17367
+ '''
17368
+ self.subdomain = subdomain if subdomain is not None else ''
17369
+ '''
17370
+ Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
17371
+ '''
17372
+ self.tags = tags if tags is not None else _porcelain_zero_value_tags()
17373
+ '''
17374
+ Tags is a map of key, value pairs.
17375
+ '''
17376
+ self.use_azure_single_server_usernames = use_azure_single_server_usernames if use_azure_single_server_usernames is not None else False
17377
+ '''
17378
+ If true, appends the hostname to the username when hitting a database.azure.com address
17379
+ '''
17380
+ self.username = username if username is not None else ''
17381
+ '''
17382
+ The username to authenticate with.
17383
+ '''
17384
+
17385
+ def __repr__(self):
17386
+ return '<sdm.Maria ' + \
17387
+ 'bind_interface: ' + repr(self.bind_interface) + ' ' +\
17388
+ 'database: ' + repr(self.database) + ' ' +\
17389
+ 'egress_filter: ' + repr(self.egress_filter) + ' ' +\
17390
+ 'healthy: ' + repr(self.healthy) + ' ' +\
17391
+ 'hostname: ' + repr(self.hostname) + ' ' +\
17392
+ 'id: ' + repr(self.id) + ' ' +\
17393
+ 'name: ' + repr(self.name) + ' ' +\
17394
+ 'password: ' + repr(self.password) + ' ' +\
17395
+ 'port: ' + repr(self.port) + ' ' +\
17396
+ 'port_override: ' + repr(self.port_override) + ' ' +\
17397
+ 'proxy_cluster_id: ' + repr(self.proxy_cluster_id) + ' ' +\
17398
+ 'require_native_auth: ' + repr(self.require_native_auth) + ' ' +\
17399
+ 'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
17400
+ 'subdomain: ' + repr(self.subdomain) + ' ' +\
17401
+ 'tags: ' + repr(self.tags) + ' ' +\
17402
+ 'use_azure_single_server_usernames: ' + repr(self.use_azure_single_server_usernames) + ' ' +\
17403
+ 'username: ' + repr(self.username) + ' ' +\
17404
+ '>'
17405
+
17406
+ def to_dict(self):
17407
+ return {
17408
+ 'bind_interface': self.bind_interface,
17409
+ 'database': self.database,
17410
+ 'egress_filter': self.egress_filter,
17411
+ 'healthy': self.healthy,
17412
+ 'hostname': self.hostname,
17413
+ 'id': self.id,
17414
+ 'name': self.name,
17415
+ 'password': self.password,
17416
+ 'port': self.port,
17417
+ 'port_override': self.port_override,
17418
+ 'proxy_cluster_id': self.proxy_cluster_id,
17419
+ 'require_native_auth': self.require_native_auth,
17420
+ 'secret_store_id': self.secret_store_id,
17421
+ 'subdomain': self.subdomain,
17422
+ 'tags': self.tags,
17423
+ 'use_azure_single_server_usernames':
17424
+ self.use_azure_single_server_usernames,
17425
+ 'username': self.username,
17426
+ }
17427
+
17428
+ @classmethod
17429
+ def from_dict(cls, d):
17430
+ return cls(
17431
+ bind_interface=d.get('bind_interface'),
17432
+ database=d.get('database'),
17433
+ egress_filter=d.get('egress_filter'),
17434
+ healthy=d.get('healthy'),
17435
+ hostname=d.get('hostname'),
17436
+ id=d.get('id'),
17437
+ name=d.get('name'),
17438
+ password=d.get('password'),
17439
+ port=d.get('port'),
17440
+ port_override=d.get('port_override'),
17441
+ proxy_cluster_id=d.get('proxy_cluster_id'),
17442
+ require_native_auth=d.get('require_native_auth'),
17443
+ secret_store_id=d.get('secret_store_id'),
17444
+ subdomain=d.get('subdomain'),
17445
+ tags=d.get('tags'),
17446
+ use_azure_single_server_usernames=d.get(
17447
+ 'use_azure_single_server_usernames'),
17448
+ username=d.get('username'),
17449
+ )
17450
+
17451
+
17452
+ class Memcached:
17453
+ __slots__ = [
17454
+ 'bind_interface',
17455
+ 'egress_filter',
17456
+ 'healthy',
17457
+ 'hostname',
17458
+ 'id',
17459
+ 'name',
17460
+ 'port',
17461
+ 'port_override',
17462
+ 'proxy_cluster_id',
17463
+ 'secret_store_id',
17464
+ 'subdomain',
17465
+ 'tags',
17466
+ ]
17467
+
17468
+ def __init__(
17469
+ self,
17470
+ bind_interface=None,
17471
+ egress_filter=None,
17472
+ healthy=None,
17473
+ hostname=None,
17474
+ id=None,
17475
+ name=None,
17476
+ port=None,
17477
+ port_override=None,
17478
+ proxy_cluster_id=None,
17479
+ secret_store_id=None,
17480
+ subdomain=None,
17481
+ tags=None,
17482
+ ):
17483
+ self.bind_interface = bind_interface if bind_interface is not None else ''
17484
+ '''
17485
+ 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.
17486
+ '''
17487
+ self.egress_filter = egress_filter if egress_filter is not None else ''
17488
+ '''
17489
+ A filter applied to the routing logic to pin datasource to nodes.
17490
+ '''
17491
+ self.healthy = healthy if healthy is not None else False
17492
+ '''
17493
+ True if the datasource is reachable and the credentials are valid.
17494
+ '''
17495
+ self.hostname = hostname if hostname is not None else ''
17496
+ '''
17497
+ The host to dial to initiate a connection from the egress node to this resource.
17498
+ '''
17499
+ self.id = id if id is not None else ''
17500
+ '''
17501
+ Unique identifier of the Resource.
17502
+ '''
17503
+ self.name = name if name is not None else ''
17504
+ '''
17505
+ Unique human-readable name of the Resource.
17506
+ '''
17507
+ self.port = port if port is not None else 0
17508
+ '''
17509
+ The port to dial to initiate a connection from the egress node to this resource.
17510
+ '''
17511
+ self.port_override = port_override if port_override is not None else 0
17512
+ '''
17513
+ The local port used by clients to connect to this resource.
17514
+ '''
17515
+ self.proxy_cluster_id = proxy_cluster_id if proxy_cluster_id is not None else ''
17516
+ '''
17517
+ ID of the proxy cluster for this resource, if any.
17518
+ '''
17519
+ self.secret_store_id = secret_store_id if secret_store_id is not None else ''
17520
+ '''
17521
+ ID of the secret store containing credentials for this resource, if any.
17522
+ '''
17523
+ self.subdomain = subdomain if subdomain is not None else ''
17524
+ '''
17525
+ Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
17526
+ '''
17527
+ self.tags = tags if tags is not None else _porcelain_zero_value_tags()
17528
+ '''
17529
+ Tags is a map of key, value pairs.
17530
+ '''
17531
+
17532
+ def __repr__(self):
17533
+ return '<sdm.Memcached ' + \
17534
+ 'bind_interface: ' + repr(self.bind_interface) + ' ' +\
17535
+ 'egress_filter: ' + repr(self.egress_filter) + ' ' +\
17536
+ 'healthy: ' + repr(self.healthy) + ' ' +\
17537
+ 'hostname: ' + repr(self.hostname) + ' ' +\
17538
+ 'id: ' + repr(self.id) + ' ' +\
17539
+ 'name: ' + repr(self.name) + ' ' +\
17540
+ 'port: ' + repr(self.port) + ' ' +\
17541
+ 'port_override: ' + repr(self.port_override) + ' ' +\
17542
+ 'proxy_cluster_id: ' + repr(self.proxy_cluster_id) + ' ' +\
17543
+ 'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
17544
+ 'subdomain: ' + repr(self.subdomain) + ' ' +\
17545
+ 'tags: ' + repr(self.tags) + ' ' +\
17546
+ '>'
17547
+
17548
+ def to_dict(self):
17549
+ return {
17550
+ 'bind_interface': self.bind_interface,
17551
+ 'egress_filter': self.egress_filter,
17552
+ 'healthy': self.healthy,
17553
+ 'hostname': self.hostname,
17554
+ 'id': self.id,
17555
+ 'name': self.name,
17556
+ 'port': self.port,
17557
+ 'port_override': self.port_override,
17558
+ 'proxy_cluster_id': self.proxy_cluster_id,
17559
+ 'secret_store_id': self.secret_store_id,
17560
+ 'subdomain': self.subdomain,
17561
+ 'tags': self.tags,
17562
+ }
17563
+
17564
+ @classmethod
17565
+ def from_dict(cls, d):
17566
+ return cls(
17567
+ bind_interface=d.get('bind_interface'),
17568
+ egress_filter=d.get('egress_filter'),
17569
+ healthy=d.get('healthy'),
17570
+ hostname=d.get('hostname'),
17571
+ id=d.get('id'),
17572
+ name=d.get('name'),
17573
+ port=d.get('port'),
17574
+ port_override=d.get('port_override'),
17575
+ proxy_cluster_id=d.get('proxy_cluster_id'),
17576
+ secret_store_id=d.get('secret_store_id'),
17577
+ subdomain=d.get('subdomain'),
17578
+ tags=d.get('tags'),
17579
+ )
17580
+
17581
+
17582
+ class Memsql:
17583
+ __slots__ = [
17584
+ 'bind_interface',
17585
+ 'database',
17586
+ 'egress_filter',
17587
+ 'healthy',
17588
+ 'hostname',
17589
+ 'id',
17590
+ 'name',
17591
+ 'password',
17592
+ 'port',
17593
+ 'port_override',
17594
+ 'proxy_cluster_id',
17595
+ 'require_native_auth',
17596
+ 'secret_store_id',
17597
+ 'subdomain',
17598
+ 'tags',
17599
+ 'use_azure_single_server_usernames',
17600
+ 'username',
17601
+ ]
17602
+
17603
+ def __init__(
17604
+ self,
17605
+ bind_interface=None,
17606
+ database=None,
17607
+ egress_filter=None,
17608
+ healthy=None,
17609
+ hostname=None,
17610
+ id=None,
17611
+ name=None,
17612
+ password=None,
17613
+ port=None,
17614
+ port_override=None,
17615
+ proxy_cluster_id=None,
17616
+ require_native_auth=None,
17617
+ secret_store_id=None,
17618
+ subdomain=None,
17619
+ tags=None,
17620
+ use_azure_single_server_usernames=None,
17621
+ username=None,
17622
+ ):
17623
+ self.bind_interface = bind_interface if bind_interface is not None else ''
17624
+ '''
17625
+ 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.
17626
+ '''
17627
+ self.database = database if database is not None else ''
17628
+ '''
17629
+ The database for healthchecks. Does not affect client requests.
17630
+ '''
17631
+ self.egress_filter = egress_filter if egress_filter is not None else ''
17632
+ '''
17633
+ A filter applied to the routing logic to pin datasource to nodes.
15962
17634
  '''
15963
17635
  self.healthy = healthy if healthy is not None else False
15964
17636
  '''
@@ -24807,7 +26479,183 @@ class SSHCustomerKey:
24807
26479
  '''
24808
26480
  self.private_key = private_key if private_key is not None else ''
24809
26481
  '''
24810
- The private key used to authenticate with the server.
26482
+ The private key used to authenticate with the server.
26483
+ '''
26484
+ self.proxy_cluster_id = proxy_cluster_id if proxy_cluster_id is not None else ''
26485
+ '''
26486
+ ID of the proxy cluster for this resource, if any.
26487
+ '''
26488
+ self.secret_store_id = secret_store_id if secret_store_id is not None else ''
26489
+ '''
26490
+ ID of the secret store containing credentials for this resource, if any.
26491
+ '''
26492
+ self.subdomain = subdomain if subdomain is not None else ''
26493
+ '''
26494
+ Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
26495
+ '''
26496
+ self.tags = tags if tags is not None else _porcelain_zero_value_tags()
26497
+ '''
26498
+ Tags is a map of key, value pairs.
26499
+ '''
26500
+ self.username = username if username is not None else ''
26501
+ '''
26502
+ The username to authenticate with.
26503
+ '''
26504
+
26505
+ def __repr__(self):
26506
+ return '<sdm.SSHCustomerKey ' + \
26507
+ 'allow_deprecated_key_exchanges: ' + repr(self.allow_deprecated_key_exchanges) + ' ' +\
26508
+ 'bind_interface: ' + repr(self.bind_interface) + ' ' +\
26509
+ 'egress_filter: ' + repr(self.egress_filter) + ' ' +\
26510
+ 'healthy: ' + repr(self.healthy) + ' ' +\
26511
+ 'hostname: ' + repr(self.hostname) + ' ' +\
26512
+ 'id: ' + repr(self.id) + ' ' +\
26513
+ 'identity_alias_healthcheck_username: ' + repr(self.identity_alias_healthcheck_username) + ' ' +\
26514
+ 'identity_set_id: ' + repr(self.identity_set_id) + ' ' +\
26515
+ 'name: ' + repr(self.name) + ' ' +\
26516
+ 'port: ' + repr(self.port) + ' ' +\
26517
+ 'port_forwarding: ' + repr(self.port_forwarding) + ' ' +\
26518
+ 'port_override: ' + repr(self.port_override) + ' ' +\
26519
+ 'private_key: ' + repr(self.private_key) + ' ' +\
26520
+ 'proxy_cluster_id: ' + repr(self.proxy_cluster_id) + ' ' +\
26521
+ 'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
26522
+ 'subdomain: ' + repr(self.subdomain) + ' ' +\
26523
+ 'tags: ' + repr(self.tags) + ' ' +\
26524
+ 'username: ' + repr(self.username) + ' ' +\
26525
+ '>'
26526
+
26527
+ def to_dict(self):
26528
+ return {
26529
+ 'allow_deprecated_key_exchanges':
26530
+ self.allow_deprecated_key_exchanges,
26531
+ 'bind_interface': self.bind_interface,
26532
+ 'egress_filter': self.egress_filter,
26533
+ 'healthy': self.healthy,
26534
+ 'hostname': self.hostname,
26535
+ 'id': self.id,
26536
+ 'identity_alias_healthcheck_username':
26537
+ self.identity_alias_healthcheck_username,
26538
+ 'identity_set_id': self.identity_set_id,
26539
+ 'name': self.name,
26540
+ 'port': self.port,
26541
+ 'port_forwarding': self.port_forwarding,
26542
+ 'port_override': self.port_override,
26543
+ 'private_key': self.private_key,
26544
+ 'proxy_cluster_id': self.proxy_cluster_id,
26545
+ 'secret_store_id': self.secret_store_id,
26546
+ 'subdomain': self.subdomain,
26547
+ 'tags': self.tags,
26548
+ 'username': self.username,
26549
+ }
26550
+
26551
+ @classmethod
26552
+ def from_dict(cls, d):
26553
+ return cls(
26554
+ allow_deprecated_key_exchanges=d.get(
26555
+ 'allow_deprecated_key_exchanges'),
26556
+ bind_interface=d.get('bind_interface'),
26557
+ egress_filter=d.get('egress_filter'),
26558
+ healthy=d.get('healthy'),
26559
+ hostname=d.get('hostname'),
26560
+ id=d.get('id'),
26561
+ identity_alias_healthcheck_username=d.get(
26562
+ 'identity_alias_healthcheck_username'),
26563
+ identity_set_id=d.get('identity_set_id'),
26564
+ name=d.get('name'),
26565
+ port=d.get('port'),
26566
+ port_forwarding=d.get('port_forwarding'),
26567
+ port_override=d.get('port_override'),
26568
+ private_key=d.get('private_key'),
26569
+ proxy_cluster_id=d.get('proxy_cluster_id'),
26570
+ secret_store_id=d.get('secret_store_id'),
26571
+ subdomain=d.get('subdomain'),
26572
+ tags=d.get('tags'),
26573
+ username=d.get('username'),
26574
+ )
26575
+
26576
+
26577
+ class SSHPassword:
26578
+ __slots__ = [
26579
+ 'allow_deprecated_key_exchanges',
26580
+ 'bind_interface',
26581
+ 'egress_filter',
26582
+ 'healthy',
26583
+ 'hostname',
26584
+ 'id',
26585
+ 'name',
26586
+ 'password',
26587
+ 'port',
26588
+ 'port_forwarding',
26589
+ 'port_override',
26590
+ 'proxy_cluster_id',
26591
+ 'secret_store_id',
26592
+ 'subdomain',
26593
+ 'tags',
26594
+ 'username',
26595
+ ]
26596
+
26597
+ def __init__(
26598
+ self,
26599
+ allow_deprecated_key_exchanges=None,
26600
+ bind_interface=None,
26601
+ egress_filter=None,
26602
+ healthy=None,
26603
+ hostname=None,
26604
+ id=None,
26605
+ name=None,
26606
+ password=None,
26607
+ port=None,
26608
+ port_forwarding=None,
26609
+ port_override=None,
26610
+ proxy_cluster_id=None,
26611
+ secret_store_id=None,
26612
+ subdomain=None,
26613
+ tags=None,
26614
+ username=None,
26615
+ ):
26616
+ self.allow_deprecated_key_exchanges = allow_deprecated_key_exchanges if allow_deprecated_key_exchanges is not None else False
26617
+ '''
26618
+ Whether deprecated, insecure key exchanges are allowed for use to connect to the target ssh server.
26619
+ '''
26620
+ self.bind_interface = bind_interface if bind_interface is not None else ''
26621
+ '''
26622
+ 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.
26623
+ '''
26624
+ self.egress_filter = egress_filter if egress_filter is not None else ''
26625
+ '''
26626
+ A filter applied to the routing logic to pin datasource to nodes.
26627
+ '''
26628
+ self.healthy = healthy if healthy is not None else False
26629
+ '''
26630
+ True if the datasource is reachable and the credentials are valid.
26631
+ '''
26632
+ self.hostname = hostname if hostname is not None else ''
26633
+ '''
26634
+ The host to dial to initiate a connection from the egress node to this resource.
26635
+ '''
26636
+ self.id = id if id is not None else ''
26637
+ '''
26638
+ Unique identifier of the Resource.
26639
+ '''
26640
+ self.name = name if name is not None else ''
26641
+ '''
26642
+ Unique human-readable name of the Resource.
26643
+ '''
26644
+ self.password = password if password is not None else ''
26645
+ '''
26646
+ The password to authenticate with.
26647
+ '''
26648
+ self.port = port if port is not None else 0
26649
+ '''
26650
+ The port to dial to initiate a connection from the egress node to this resource.
26651
+ '''
26652
+ self.port_forwarding = port_forwarding if port_forwarding is not None else False
26653
+ '''
26654
+ Whether port forwarding is allowed through this server.
26655
+ '''
26656
+ self.port_override = port_override if port_override is not None else 0
26657
+ '''
26658
+ The local port used by clients to connect to this resource.
24811
26659
  '''
24812
26660
  self.proxy_cluster_id = proxy_cluster_id if proxy_cluster_id is not None else ''
24813
26661
  '''
@@ -24831,20 +26679,18 @@ class SSHCustomerKey:
24831
26679
  '''
24832
26680
 
24833
26681
  def __repr__(self):
24834
- return '<sdm.SSHCustomerKey ' + \
26682
+ return '<sdm.SSHPassword ' + \
24835
26683
  'allow_deprecated_key_exchanges: ' + repr(self.allow_deprecated_key_exchanges) + ' ' +\
24836
26684
  'bind_interface: ' + repr(self.bind_interface) + ' ' +\
24837
26685
  'egress_filter: ' + repr(self.egress_filter) + ' ' +\
24838
26686
  'healthy: ' + repr(self.healthy) + ' ' +\
24839
26687
  'hostname: ' + repr(self.hostname) + ' ' +\
24840
26688
  'id: ' + repr(self.id) + ' ' +\
24841
- 'identity_alias_healthcheck_username: ' + repr(self.identity_alias_healthcheck_username) + ' ' +\
24842
- 'identity_set_id: ' + repr(self.identity_set_id) + ' ' +\
24843
26689
  'name: ' + repr(self.name) + ' ' +\
26690
+ 'password: ' + repr(self.password) + ' ' +\
24844
26691
  'port: ' + repr(self.port) + ' ' +\
24845
26692
  'port_forwarding: ' + repr(self.port_forwarding) + ' ' +\
24846
26693
  'port_override: ' + repr(self.port_override) + ' ' +\
24847
- 'private_key: ' + repr(self.private_key) + ' ' +\
24848
26694
  'proxy_cluster_id: ' + repr(self.proxy_cluster_id) + ' ' +\
24849
26695
  'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
24850
26696
  'subdomain: ' + repr(self.subdomain) + ' ' +\
@@ -24861,14 +26707,11 @@ class SSHCustomerKey:
24861
26707
  'healthy': self.healthy,
24862
26708
  'hostname': self.hostname,
24863
26709
  'id': self.id,
24864
- 'identity_alias_healthcheck_username':
24865
- self.identity_alias_healthcheck_username,
24866
- 'identity_set_id': self.identity_set_id,
24867
26710
  'name': self.name,
26711
+ 'password': self.password,
24868
26712
  'port': self.port,
24869
26713
  'port_forwarding': self.port_forwarding,
24870
26714
  'port_override': self.port_override,
24871
- 'private_key': self.private_key,
24872
26715
  'proxy_cluster_id': self.proxy_cluster_id,
24873
26716
  'secret_store_id': self.secret_store_id,
24874
26717
  'subdomain': self.subdomain,
@@ -24886,14 +26729,11 @@ class SSHCustomerKey:
24886
26729
  healthy=d.get('healthy'),
24887
26730
  hostname=d.get('hostname'),
24888
26731
  id=d.get('id'),
24889
- identity_alias_healthcheck_username=d.get(
24890
- 'identity_alias_healthcheck_username'),
24891
- identity_set_id=d.get('identity_set_id'),
24892
26732
  name=d.get('name'),
26733
+ password=d.get('password'),
24893
26734
  port=d.get('port'),
24894
26735
  port_forwarding=d.get('port_forwarding'),
24895
26736
  port_override=d.get('port_override'),
24896
- private_key=d.get('private_key'),
24897
26737
  proxy_cluster_id=d.get('proxy_cluster_id'),
24898
26738
  secret_store_id=d.get('secret_store_id'),
24899
26739
  subdomain=d.get('subdomain'),
@@ -24902,171 +26742,558 @@ class SSHCustomerKey:
24902
26742
  )
24903
26743
 
24904
26744
 
24905
- class SSHPassword:
26745
+ class SecretEngineCreateRequest:
26746
+ '''
26747
+ SecretEngineCreateRequest specifies a Secret Engine to create.
26748
+ '''
26749
+ __slots__ = [
26750
+ 'secret_engine',
26751
+ ]
26752
+
26753
+ def __init__(
26754
+ self,
26755
+ secret_engine=None,
26756
+ ):
26757
+ self.secret_engine = secret_engine if secret_engine is not None else None
26758
+ '''
26759
+ Parameters to define the new Secret Engine.
26760
+ '''
26761
+
26762
+ def __repr__(self):
26763
+ return '<sdm.SecretEngineCreateRequest ' + \
26764
+ 'secret_engine: ' + repr(self.secret_engine) + ' ' +\
26765
+ '>'
26766
+
26767
+ def to_dict(self):
26768
+ return {
26769
+ 'secret_engine': self.secret_engine,
26770
+ }
26771
+
26772
+ @classmethod
26773
+ def from_dict(cls, d):
26774
+ return cls(secret_engine=d.get('secret_engine'), )
26775
+
26776
+
26777
+ class SecretEngineCreateResponse:
26778
+ '''
26779
+ SecretEngineCreateResponse contains information about a Secret Engine after successful creation.
26780
+ '''
26781
+ __slots__ = [
26782
+ 'meta',
26783
+ 'rate_limit',
26784
+ 'secret_engine',
26785
+ ]
26786
+
26787
+ def __init__(
26788
+ self,
26789
+ meta=None,
26790
+ rate_limit=None,
26791
+ secret_engine=None,
26792
+ ):
26793
+ self.meta = meta if meta is not None else None
26794
+ '''
26795
+ Reserved for future use.
26796
+ '''
26797
+ self.rate_limit = rate_limit if rate_limit is not None else None
26798
+ '''
26799
+ Rate limit information.
26800
+ '''
26801
+ self.secret_engine = secret_engine if secret_engine is not None else None
26802
+ '''
26803
+ The requested Secret Engine.
26804
+ '''
26805
+
26806
+ def __repr__(self):
26807
+ return '<sdm.SecretEngineCreateResponse ' + \
26808
+ 'meta: ' + repr(self.meta) + ' ' +\
26809
+ 'rate_limit: ' + repr(self.rate_limit) + ' ' +\
26810
+ 'secret_engine: ' + repr(self.secret_engine) + ' ' +\
26811
+ '>'
26812
+
26813
+ def to_dict(self):
26814
+ return {
26815
+ 'meta': self.meta,
26816
+ 'rate_limit': self.rate_limit,
26817
+ 'secret_engine': self.secret_engine,
26818
+ }
26819
+
26820
+ @classmethod
26821
+ def from_dict(cls, d):
26822
+ return cls(
26823
+ meta=d.get('meta'),
26824
+ rate_limit=d.get('rate_limit'),
26825
+ secret_engine=d.get('secret_engine'),
26826
+ )
26827
+
26828
+
26829
+ class SecretEngineDeleteRequest:
26830
+ '''
26831
+ SecretEngineDeleteRequest specified the ID of a Secret Engine to be deleted.
26832
+ '''
26833
+ __slots__ = [
26834
+ 'id',
26835
+ ]
26836
+
26837
+ def __init__(
26838
+ self,
26839
+ id=None,
26840
+ ):
26841
+ self.id = id if id is not None else ''
26842
+ '''
26843
+ The unique identifier of the Secret Engine to delete.
26844
+ '''
26845
+
26846
+ def __repr__(self):
26847
+ return '<sdm.SecretEngineDeleteRequest ' + \
26848
+ 'id: ' + repr(self.id) + ' ' +\
26849
+ '>'
26850
+
26851
+ def to_dict(self):
26852
+ return {
26853
+ 'id': self.id,
26854
+ }
26855
+
26856
+ @classmethod
26857
+ def from_dict(cls, d):
26858
+ return cls(id=d.get('id'), )
26859
+
26860
+
26861
+ class SecretEngineDeleteResponse:
26862
+ '''
26863
+ SecretEngineDeleteResponse contains information about a Secret Engine after it was deleted.
26864
+ '''
26865
+ __slots__ = [
26866
+ 'rate_limit',
26867
+ ]
26868
+
26869
+ def __init__(
26870
+ self,
26871
+ rate_limit=None,
26872
+ ):
26873
+ self.rate_limit = rate_limit if rate_limit is not None else None
26874
+ '''
26875
+ Rate limit information.
26876
+ '''
26877
+
26878
+ def __repr__(self):
26879
+ return '<sdm.SecretEngineDeleteResponse ' + \
26880
+ 'rate_limit: ' + repr(self.rate_limit) + ' ' +\
26881
+ '>'
26882
+
26883
+ def to_dict(self):
26884
+ return {
26885
+ 'rate_limit': self.rate_limit,
26886
+ }
26887
+
26888
+ @classmethod
26889
+ def from_dict(cls, d):
26890
+ return cls(rate_limit=d.get('rate_limit'), )
26891
+
26892
+
26893
+ class SecretEngineGetRequest:
26894
+ '''
26895
+ SecretEngineGetRequest specifies which Secret Engine to retrieve
26896
+ '''
26897
+ __slots__ = [
26898
+ 'id',
26899
+ ]
26900
+
26901
+ def __init__(
26902
+ self,
26903
+ id=None,
26904
+ ):
26905
+ self.id = id if id is not None else ''
26906
+ '''
26907
+ The unique identifier of the Secret Engine to retrieve.
26908
+ '''
26909
+
26910
+ def __repr__(self):
26911
+ return '<sdm.SecretEngineGetRequest ' + \
26912
+ 'id: ' + repr(self.id) + ' ' +\
26913
+ '>'
26914
+
26915
+ def to_dict(self):
26916
+ return {
26917
+ 'id': self.id,
26918
+ }
26919
+
26920
+ @classmethod
26921
+ def from_dict(cls, d):
26922
+ return cls(id=d.get('id'), )
26923
+
26924
+
26925
+ class SecretEngineGetResponse:
26926
+ '''
26927
+ SecretEngineGetResponse contains information about requested Secret Engine
26928
+ '''
26929
+ __slots__ = [
26930
+ 'meta',
26931
+ 'rate_limit',
26932
+ 'secret_engine',
26933
+ ]
26934
+
26935
+ def __init__(
26936
+ self,
26937
+ meta=None,
26938
+ rate_limit=None,
26939
+ secret_engine=None,
26940
+ ):
26941
+ self.meta = meta if meta is not None else None
26942
+ '''
26943
+ Reserved for future use.
26944
+ '''
26945
+ self.rate_limit = rate_limit if rate_limit is not None else None
26946
+ '''
26947
+ Rate limit information.
26948
+ '''
26949
+ self.secret_engine = secret_engine if secret_engine is not None else None
26950
+ '''
26951
+ The requested Secret Engine.
26952
+ '''
26953
+
26954
+ def __repr__(self):
26955
+ return '<sdm.SecretEngineGetResponse ' + \
26956
+ 'meta: ' + repr(self.meta) + ' ' +\
26957
+ 'rate_limit: ' + repr(self.rate_limit) + ' ' +\
26958
+ 'secret_engine: ' + repr(self.secret_engine) + ' ' +\
26959
+ '>'
26960
+
26961
+ def to_dict(self):
26962
+ return {
26963
+ 'meta': self.meta,
26964
+ 'rate_limit': self.rate_limit,
26965
+ 'secret_engine': self.secret_engine,
26966
+ }
26967
+
26968
+ @classmethod
26969
+ def from_dict(cls, d):
26970
+ return cls(
26971
+ meta=d.get('meta'),
26972
+ rate_limit=d.get('rate_limit'),
26973
+ secret_engine=d.get('secret_engine'),
26974
+ )
26975
+
26976
+
26977
+ class SecretEngineListRequest:
26978
+ '''
26979
+ SecretEngineListRequest specifies criteria for retrieving a list of Secret Engines
26980
+ '''
26981
+ __slots__ = [
26982
+ 'filter',
26983
+ ]
26984
+
26985
+ def __init__(
26986
+ self,
26987
+ filter=None,
26988
+ ):
26989
+ self.filter = filter if filter is not None else ''
26990
+ '''
26991
+ A human-readable filter query string.
26992
+ '''
26993
+
26994
+ def __repr__(self):
26995
+ return '<sdm.SecretEngineListRequest ' + \
26996
+ 'filter: ' + repr(self.filter) + ' ' +\
26997
+ '>'
26998
+
26999
+ def to_dict(self):
27000
+ return {
27001
+ 'filter': self.filter,
27002
+ }
27003
+
27004
+ @classmethod
27005
+ def from_dict(cls, d):
27006
+ return cls(filter=d.get('filter'), )
27007
+
27008
+
27009
+ class SecretEngineListResponse:
27010
+ '''
27011
+ SecretEngineListResponse contains a list of requested Secret Engine
27012
+ '''
27013
+ __slots__ = [
27014
+ 'rate_limit',
27015
+ ]
27016
+
27017
+ def __init__(
27018
+ self,
27019
+ rate_limit=None,
27020
+ ):
27021
+ self.rate_limit = rate_limit if rate_limit is not None else None
27022
+ '''
27023
+ Rate limit information.
27024
+ '''
27025
+
27026
+ def __repr__(self):
27027
+ return '<sdm.SecretEngineListResponse ' + \
27028
+ 'rate_limit: ' + repr(self.rate_limit) + ' ' +\
27029
+ '>'
27030
+
27031
+ def to_dict(self):
27032
+ return {
27033
+ 'rate_limit': self.rate_limit,
27034
+ }
27035
+
27036
+ @classmethod
27037
+ def from_dict(cls, d):
27038
+ return cls(rate_limit=d.get('rate_limit'), )
27039
+
27040
+
27041
+ class SecretEnginePasswordPolicy:
24906
27042
  __slots__ = [
24907
- 'allow_deprecated_key_exchanges',
24908
- 'bind_interface',
24909
- 'egress_filter',
24910
- 'healthy',
24911
- 'hostname',
24912
- 'id',
24913
- 'name',
24914
- 'password',
24915
- 'port',
24916
- 'port_forwarding',
24917
- 'port_override',
24918
- 'proxy_cluster_id',
24919
- 'secret_store_id',
24920
- 'subdomain',
24921
- 'tags',
24922
- 'username',
27043
+ 'allow_repeat',
27044
+ 'exclude_characters',
27045
+ 'exclude_upper_case',
27046
+ 'length',
27047
+ 'num_digits',
27048
+ 'num_symbols',
24923
27049
  ]
24924
27050
 
24925
27051
  def __init__(
24926
27052
  self,
24927
- allow_deprecated_key_exchanges=None,
24928
- bind_interface=None,
24929
- egress_filter=None,
24930
- healthy=None,
24931
- hostname=None,
24932
- id=None,
24933
- name=None,
24934
- password=None,
24935
- port=None,
24936
- port_forwarding=None,
24937
- port_override=None,
24938
- proxy_cluster_id=None,
24939
- secret_store_id=None,
24940
- subdomain=None,
24941
- tags=None,
24942
- username=None,
27053
+ allow_repeat=None,
27054
+ exclude_characters=None,
27055
+ exclude_upper_case=None,
27056
+ length=None,
27057
+ num_digits=None,
27058
+ num_symbols=None,
24943
27059
  ):
24944
- self.allow_deprecated_key_exchanges = allow_deprecated_key_exchanges if allow_deprecated_key_exchanges is not None else False
24945
- '''
24946
- Whether deprecated, insecure key exchanges are allowed for use to connect to the target ssh server.
24947
- '''
24948
- self.bind_interface = bind_interface if bind_interface is not None else ''
24949
- '''
24950
- 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.
24951
- '''
24952
- self.egress_filter = egress_filter if egress_filter is not None else ''
27060
+ self.allow_repeat = allow_repeat if allow_repeat is not None else False
24953
27061
  '''
24954
- A filter applied to the routing logic to pin datasource to nodes.
27062
+ If set to true allows for consecutive characters to repeat itself
24955
27063
  '''
24956
- self.healthy = healthy if healthy is not None else False
27064
+ self.exclude_characters = exclude_characters if exclude_characters is not None else ''
24957
27065
  '''
24958
- True if the datasource is reachable and the credentials are valid.
27066
+ Characters to exclude when generating password
24959
27067
  '''
24960
- self.hostname = hostname if hostname is not None else ''
27068
+ self.exclude_upper_case = exclude_upper_case if exclude_upper_case is not None else False
24961
27069
  '''
24962
- The host to dial to initiate a connection from the egress node to this resource.
27070
+ If set to true do not include upper case letters when generating password
24963
27071
  '''
24964
- self.id = id if id is not None else ''
27072
+ self.length = length if length is not None else 0
24965
27073
  '''
24966
- Unique identifier of the Resource.
27074
+ Password length.
24967
27075
  '''
24968
- self.name = name if name is not None else ''
27076
+ self.num_digits = num_digits if num_digits is not None else 0
24969
27077
  '''
24970
- Unique human-readable name of the Resource.
27078
+ Numbers of digits to use when generating password
24971
27079
  '''
24972
- self.password = password if password is not None else ''
27080
+ self.num_symbols = num_symbols if num_symbols is not None else 0
24973
27081
  '''
24974
- The password to authenticate with.
27082
+ Number of symbols to use when generating password
24975
27083
  '''
24976
- self.port = port if port is not None else 0
27084
+
27085
+ def __repr__(self):
27086
+ return '<sdm.SecretEnginePasswordPolicy ' + \
27087
+ 'allow_repeat: ' + repr(self.allow_repeat) + ' ' +\
27088
+ 'exclude_characters: ' + repr(self.exclude_characters) + ' ' +\
27089
+ 'exclude_upper_case: ' + repr(self.exclude_upper_case) + ' ' +\
27090
+ 'length: ' + repr(self.length) + ' ' +\
27091
+ 'num_digits: ' + repr(self.num_digits) + ' ' +\
27092
+ 'num_symbols: ' + repr(self.num_symbols) + ' ' +\
27093
+ '>'
27094
+
27095
+ def to_dict(self):
27096
+ return {
27097
+ 'allow_repeat': self.allow_repeat,
27098
+ 'exclude_characters': self.exclude_characters,
27099
+ 'exclude_upper_case': self.exclude_upper_case,
27100
+ 'length': self.length,
27101
+ 'num_digits': self.num_digits,
27102
+ 'num_symbols': self.num_symbols,
27103
+ }
27104
+
27105
+ @classmethod
27106
+ def from_dict(cls, d):
27107
+ return cls(
27108
+ allow_repeat=d.get('allow_repeat'),
27109
+ exclude_characters=d.get('exclude_characters'),
27110
+ exclude_upper_case=d.get('exclude_upper_case'),
27111
+ length=d.get('length'),
27112
+ num_digits=d.get('num_digits'),
27113
+ num_symbols=d.get('num_symbols'),
27114
+ )
27115
+
27116
+
27117
+ class SecretEnginePolicy:
27118
+ __slots__ = [
27119
+ 'password_policy',
27120
+ ]
27121
+
27122
+ def __init__(
27123
+ self,
27124
+ password_policy=None,
27125
+ ):
27126
+ self.password_policy = password_policy if password_policy is not None else None
24977
27127
  '''
24978
- The port to dial to initiate a connection from the egress node to this resource.
27128
+ Policy for password
24979
27129
  '''
24980
- self.port_forwarding = port_forwarding if port_forwarding is not None else False
27130
+
27131
+ def __repr__(self):
27132
+ return '<sdm.SecretEnginePolicy ' + \
27133
+ 'password_policy: ' + repr(self.password_policy) + ' ' +\
27134
+ '>'
27135
+
27136
+ def to_dict(self):
27137
+ return {
27138
+ 'password_policy': self.password_policy,
27139
+ }
27140
+
27141
+ @classmethod
27142
+ def from_dict(cls, d):
27143
+ return cls(password_policy=d.get('password_policy'), )
27144
+
27145
+
27146
+ class SecretEngineRotateRequest:
27147
+ __slots__ = [
27148
+ 'id',
27149
+ 'password_policy',
27150
+ ]
27151
+
27152
+ def __init__(
27153
+ self,
27154
+ id=None,
27155
+ password_policy=None,
27156
+ ):
27157
+ self.id = id if id is not None else ''
24981
27158
  '''
24982
- Whether port forwarding is allowed through this server.
27159
+ The unique identifier of the Secret Engine to rotate credentials for.
24983
27160
  '''
24984
- self.port_override = port_override if port_override is not None else 0
27161
+ self.password_policy = password_policy if password_policy is not None else None
24985
27162
  '''
24986
- The local port used by clients to connect to this resource.
27163
+ Optional password policy to use when generating a password
27164
+ If not provided it will use secret engine's password_policy
24987
27165
  '''
24988
- self.proxy_cluster_id = proxy_cluster_id if proxy_cluster_id is not None else ''
27166
+
27167
+ def __repr__(self):
27168
+ return '<sdm.SecretEngineRotateRequest ' + \
27169
+ 'id: ' + repr(self.id) + ' ' +\
27170
+ 'password_policy: ' + repr(self.password_policy) + ' ' +\
27171
+ '>'
27172
+
27173
+ def to_dict(self):
27174
+ return {
27175
+ 'id': self.id,
27176
+ 'password_policy': self.password_policy,
27177
+ }
27178
+
27179
+ @classmethod
27180
+ def from_dict(cls, d):
27181
+ return cls(
27182
+ id=d.get('id'),
27183
+ password_policy=d.get('password_policy'),
27184
+ )
27185
+
27186
+
27187
+ class SecretEngineRotateResponse:
27188
+ __slots__ = [
27189
+ 'rate_limit',
27190
+ ]
27191
+
27192
+ def __init__(
27193
+ self,
27194
+ rate_limit=None,
27195
+ ):
27196
+ self.rate_limit = rate_limit if rate_limit is not None else None
24989
27197
  '''
24990
- ID of the proxy cluster for this resource, if any.
27198
+ Rate limit information.
24991
27199
  '''
24992
- self.secret_store_id = secret_store_id if secret_store_id is not None else ''
27200
+
27201
+ def __repr__(self):
27202
+ return '<sdm.SecretEngineRotateResponse ' + \
27203
+ 'rate_limit: ' + repr(self.rate_limit) + ' ' +\
27204
+ '>'
27205
+
27206
+ def to_dict(self):
27207
+ return {
27208
+ 'rate_limit': self.rate_limit,
27209
+ }
27210
+
27211
+ @classmethod
27212
+ def from_dict(cls, d):
27213
+ return cls(rate_limit=d.get('rate_limit'), )
27214
+
27215
+
27216
+ class SecretEngineUpdateRequest:
27217
+ '''
27218
+ SecretEngineUpdateRequest specifies secret engine to update
27219
+ '''
27220
+ __slots__ = [
27221
+ 'secret_engine',
27222
+ ]
27223
+
27224
+ def __init__(
27225
+ self,
27226
+ secret_engine=None,
27227
+ ):
27228
+ self.secret_engine = secret_engine if secret_engine is not None else None
24993
27229
  '''
24994
- ID of the secret store containing credentials for this resource, if any.
27230
+ Secret engine to update
24995
27231
  '''
24996
- self.subdomain = subdomain if subdomain is not None else ''
27232
+
27233
+ def __repr__(self):
27234
+ return '<sdm.SecretEngineUpdateRequest ' + \
27235
+ 'secret_engine: ' + repr(self.secret_engine) + ' ' +\
27236
+ '>'
27237
+
27238
+ def to_dict(self):
27239
+ return {
27240
+ 'secret_engine': self.secret_engine,
27241
+ }
27242
+
27243
+ @classmethod
27244
+ def from_dict(cls, d):
27245
+ return cls(secret_engine=d.get('secret_engine'), )
27246
+
27247
+
27248
+ class SecretEngineUpdateResponse:
27249
+ '''
27250
+ SecretEngineUpdateResponse contains information about Secret Engine after successful update.
27251
+ '''
27252
+ __slots__ = [
27253
+ 'meta',
27254
+ 'rate_limit',
27255
+ 'secret_engine',
27256
+ ]
27257
+
27258
+ def __init__(
27259
+ self,
27260
+ meta=None,
27261
+ rate_limit=None,
27262
+ secret_engine=None,
27263
+ ):
27264
+ self.meta = meta if meta is not None else None
24997
27265
  '''
24998
- Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
27266
+ Reserved for future use.
24999
27267
  '''
25000
- self.tags = tags if tags is not None else _porcelain_zero_value_tags()
27268
+ self.rate_limit = rate_limit if rate_limit is not None else None
25001
27269
  '''
25002
- Tags is a map of key, value pairs.
27270
+ Rate limit information.
25003
27271
  '''
25004
- self.username = username if username is not None else ''
27272
+ self.secret_engine = secret_engine if secret_engine is not None else None
25005
27273
  '''
25006
- The username to authenticate with.
27274
+ The requested Secret Engine.
25007
27275
  '''
25008
27276
 
25009
27277
  def __repr__(self):
25010
- return '<sdm.SSHPassword ' + \
25011
- 'allow_deprecated_key_exchanges: ' + repr(self.allow_deprecated_key_exchanges) + ' ' +\
25012
- 'bind_interface: ' + repr(self.bind_interface) + ' ' +\
25013
- 'egress_filter: ' + repr(self.egress_filter) + ' ' +\
25014
- 'healthy: ' + repr(self.healthy) + ' ' +\
25015
- 'hostname: ' + repr(self.hostname) + ' ' +\
25016
- 'id: ' + repr(self.id) + ' ' +\
25017
- 'name: ' + repr(self.name) + ' ' +\
25018
- 'password: ' + repr(self.password) + ' ' +\
25019
- 'port: ' + repr(self.port) + ' ' +\
25020
- 'port_forwarding: ' + repr(self.port_forwarding) + ' ' +\
25021
- 'port_override: ' + repr(self.port_override) + ' ' +\
25022
- 'proxy_cluster_id: ' + repr(self.proxy_cluster_id) + ' ' +\
25023
- 'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
25024
- 'subdomain: ' + repr(self.subdomain) + ' ' +\
25025
- 'tags: ' + repr(self.tags) + ' ' +\
25026
- 'username: ' + repr(self.username) + ' ' +\
27278
+ return '<sdm.SecretEngineUpdateResponse ' + \
27279
+ 'meta: ' + repr(self.meta) + ' ' +\
27280
+ 'rate_limit: ' + repr(self.rate_limit) + ' ' +\
27281
+ 'secret_engine: ' + repr(self.secret_engine) + ' ' +\
25027
27282
  '>'
25028
27283
 
25029
27284
  def to_dict(self):
25030
27285
  return {
25031
- 'allow_deprecated_key_exchanges':
25032
- self.allow_deprecated_key_exchanges,
25033
- 'bind_interface': self.bind_interface,
25034
- 'egress_filter': self.egress_filter,
25035
- 'healthy': self.healthy,
25036
- 'hostname': self.hostname,
25037
- 'id': self.id,
25038
- 'name': self.name,
25039
- 'password': self.password,
25040
- 'port': self.port,
25041
- 'port_forwarding': self.port_forwarding,
25042
- 'port_override': self.port_override,
25043
- 'proxy_cluster_id': self.proxy_cluster_id,
25044
- 'secret_store_id': self.secret_store_id,
25045
- 'subdomain': self.subdomain,
25046
- 'tags': self.tags,
25047
- 'username': self.username,
27286
+ 'meta': self.meta,
27287
+ 'rate_limit': self.rate_limit,
27288
+ 'secret_engine': self.secret_engine,
25048
27289
  }
25049
27290
 
25050
27291
  @classmethod
25051
27292
  def from_dict(cls, d):
25052
27293
  return cls(
25053
- allow_deprecated_key_exchanges=d.get(
25054
- 'allow_deprecated_key_exchanges'),
25055
- bind_interface=d.get('bind_interface'),
25056
- egress_filter=d.get('egress_filter'),
25057
- healthy=d.get('healthy'),
25058
- hostname=d.get('hostname'),
25059
- id=d.get('id'),
25060
- name=d.get('name'),
25061
- password=d.get('password'),
25062
- port=d.get('port'),
25063
- port_forwarding=d.get('port_forwarding'),
25064
- port_override=d.get('port_override'),
25065
- proxy_cluster_id=d.get('proxy_cluster_id'),
25066
- secret_store_id=d.get('secret_store_id'),
25067
- subdomain=d.get('subdomain'),
25068
- tags=d.get('tags'),
25069
- username=d.get('username'),
27294
+ meta=d.get('meta'),
27295
+ rate_limit=d.get('rate_limit'),
27296
+ secret_engine=d.get('secret_engine'),
25070
27297
  )
25071
27298
 
25072
27299