strongdm 11.16.0__zip → 11.18.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 (145) hide show
  1. {strongdm-11.16.0 → strongdm-11.18.0}/PKG-INFO +2 -2
  2. {strongdm-11.16.0 → strongdm-11.18.0}/setup.py +2 -2
  3. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/client.py +1 -1
  4. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/drivers_pb2.py +308 -176
  5. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/models.py +483 -0
  6. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/plumbing.py +185 -0
  7. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/svc.py +3 -0
  8. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm.egg-info/PKG-INFO +2 -2
  9. {strongdm-11.16.0 → strongdm-11.18.0}/LICENSE +0 -0
  10. {strongdm-11.16.0 → strongdm-11.18.0}/README.md +0 -0
  11. {strongdm-11.16.0 → strongdm-11.18.0}/setup.cfg +0 -0
  12. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/__init__.py +0 -0
  13. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/access_request_events_history_pb2.py +0 -0
  14. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/access_request_events_history_pb2_grpc.py +0 -0
  15. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/access_requests_history_pb2.py +0 -0
  16. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/access_requests_history_pb2_grpc.py +0 -0
  17. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/access_requests_pb2.py +0 -0
  18. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/access_requests_pb2_grpc.py +0 -0
  19. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/account_attachments_history_pb2.py +0 -0
  20. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/account_attachments_history_pb2_grpc.py +0 -0
  21. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/account_attachments_pb2.py +0 -0
  22. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/account_attachments_pb2_grpc.py +0 -0
  23. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/account_grants_history_pb2.py +0 -0
  24. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/account_grants_history_pb2_grpc.py +0 -0
  25. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/account_grants_pb2.py +0 -0
  26. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/account_grants_pb2_grpc.py +0 -0
  27. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/account_permissions_pb2.py +0 -0
  28. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/account_permissions_pb2_grpc.py +0 -0
  29. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/account_resources_history_pb2.py +0 -0
  30. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/account_resources_history_pb2_grpc.py +0 -0
  31. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/account_resources_pb2.py +0 -0
  32. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/account_resources_pb2_grpc.py +0 -0
  33. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/accounts_history_pb2.py +0 -0
  34. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/accounts_history_pb2_grpc.py +0 -0
  35. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/accounts_pb2.py +0 -0
  36. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/accounts_pb2_grpc.py +0 -0
  37. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/activities_pb2.py +0 -0
  38. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/activities_pb2_grpc.py +0 -0
  39. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/approval_workflow_approvers_history_pb2.py +0 -0
  40. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/approval_workflow_approvers_history_pb2_grpc.py +0 -0
  41. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/approval_workflow_approvers_pb2.py +0 -0
  42. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/approval_workflow_approvers_pb2_grpc.py +0 -0
  43. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/approval_workflow_steps_history_pb2.py +0 -0
  44. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/approval_workflow_steps_history_pb2_grpc.py +0 -0
  45. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/approval_workflow_steps_pb2.py +0 -0
  46. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/approval_workflow_steps_pb2_grpc.py +0 -0
  47. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/approval_workflows_history_pb2.py +0 -0
  48. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/approval_workflows_history_pb2_grpc.py +0 -0
  49. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/approval_workflows_pb2.py +0 -0
  50. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/approval_workflows_pb2_grpc.py +0 -0
  51. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/constants.py +0 -0
  52. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/control_panel_pb2.py +0 -0
  53. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/control_panel_pb2_grpc.py +0 -0
  54. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/drivers_pb2_grpc.py +0 -0
  55. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/errors.py +0 -0
  56. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/health_checks_pb2.py +0 -0
  57. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/health_checks_pb2_grpc.py +0 -0
  58. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/identity_aliases_history_pb2.py +0 -0
  59. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/identity_aliases_history_pb2_grpc.py +0 -0
  60. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/identity_aliases_pb2.py +0 -0
  61. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/identity_aliases_pb2_grpc.py +0 -0
  62. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/identity_sets_history_pb2.py +0 -0
  63. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/identity_sets_history_pb2_grpc.py +0 -0
  64. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/identity_sets_pb2.py +0 -0
  65. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/identity_sets_pb2_grpc.py +0 -0
  66. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/nodes_history_pb2.py +0 -0
  67. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/nodes_history_pb2_grpc.py +0 -0
  68. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/nodes_pb2.py +0 -0
  69. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/nodes_pb2_grpc.py +0 -0
  70. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/options_pb2.py +0 -0
  71. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/options_pb2_grpc.py +0 -0
  72. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/organization_history_pb2.py +0 -0
  73. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/organization_history_pb2_grpc.py +0 -0
  74. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/peering_group_nodes_pb2.py +0 -0
  75. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/peering_group_nodes_pb2_grpc.py +0 -0
  76. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/peering_group_peers_pb2.py +0 -0
  77. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/peering_group_peers_pb2_grpc.py +0 -0
  78. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/peering_group_resources_pb2.py +0 -0
  79. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/peering_group_resources_pb2_grpc.py +0 -0
  80. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/peering_groups_pb2.py +0 -0
  81. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/peering_groups_pb2_grpc.py +0 -0
  82. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/policies_history_pb2.py +0 -0
  83. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/policies_history_pb2_grpc.py +0 -0
  84. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/policies_pb2.py +0 -0
  85. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/policies_pb2_grpc.py +0 -0
  86. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/proxy_cluster_keys_pb2.py +0 -0
  87. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/proxy_cluster_keys_pb2_grpc.py +0 -0
  88. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/queries_pb2.py +0 -0
  89. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/queries_pb2_grpc.py +0 -0
  90. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/remote_identities_history_pb2.py +0 -0
  91. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/remote_identities_history_pb2_grpc.py +0 -0
  92. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/remote_identities_pb2.py +0 -0
  93. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/remote_identities_pb2_grpc.py +0 -0
  94. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/remote_identity_groups_history_pb2.py +0 -0
  95. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/remote_identity_groups_history_pb2_grpc.py +0 -0
  96. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/remote_identity_groups_pb2.py +0 -0
  97. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/remote_identity_groups_pb2_grpc.py +0 -0
  98. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/replays_pb2.py +0 -0
  99. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/replays_pb2_grpc.py +0 -0
  100. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/resources_history_pb2.py +0 -0
  101. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/resources_history_pb2_grpc.py +0 -0
  102. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/resources_pb2.py +0 -0
  103. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/resources_pb2_grpc.py +0 -0
  104. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/role_resources_history_pb2.py +0 -0
  105. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/role_resources_history_pb2_grpc.py +0 -0
  106. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/role_resources_pb2.py +0 -0
  107. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/role_resources_pb2_grpc.py +0 -0
  108. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/roles_history_pb2.py +0 -0
  109. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/roles_history_pb2_grpc.py +0 -0
  110. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/roles_pb2.py +0 -0
  111. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/roles_pb2_grpc.py +0 -0
  112. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/secret_engine_policy_pb2_grpc.py +0 -0
  113. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/secret_engine_types_pb2_grpc.py +0 -0
  114. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/secret_store_healths_pb2.py +0 -0
  115. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/secret_store_healths_pb2_grpc.py +0 -0
  116. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/secret_store_types_pb2.py +0 -0
  117. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/secret_store_types_pb2_grpc.py +0 -0
  118. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/secret_stores_history_pb2.py +0 -0
  119. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/secret_stores_history_pb2_grpc.py +0 -0
  120. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/secret_stores_pb2.py +0 -0
  121. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/secret_stores_pb2_grpc.py +0 -0
  122. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/spec_pb2.py +0 -0
  123. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/spec_pb2_grpc.py +0 -0
  124. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/tags_pb2.py +0 -0
  125. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/tags_pb2_grpc.py +0 -0
  126. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/workflow_approvers_history_pb2.py +0 -0
  127. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/workflow_approvers_history_pb2_grpc.py +0 -0
  128. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/workflow_approvers_pb2.py +0 -0
  129. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/workflow_approvers_pb2_grpc.py +0 -0
  130. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/workflow_assignments_history_pb2.py +0 -0
  131. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/workflow_assignments_history_pb2_grpc.py +0 -0
  132. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/workflow_assignments_pb2.py +0 -0
  133. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/workflow_assignments_pb2_grpc.py +0 -0
  134. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/workflow_roles_history_pb2.py +0 -0
  135. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/workflow_roles_history_pb2_grpc.py +0 -0
  136. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/workflow_roles_pb2.py +0 -0
  137. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/workflow_roles_pb2_grpc.py +0 -0
  138. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/workflows_history_pb2.py +0 -0
  139. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/workflows_history_pb2_grpc.py +0 -0
  140. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/workflows_pb2.py +0 -0
  141. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm/workflows_pb2_grpc.py +0 -0
  142. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm.egg-info/SOURCES.txt +0 -0
  143. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm.egg-info/dependency_links.txt +0 -0
  144. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm.egg-info/requires.txt +0 -0
  145. {strongdm-11.16.0 → strongdm-11.18.0}/strongdm.egg-info/top_level.txt +0 -0
@@ -1519,6 +1519,154 @@ class AWSConsoleStaticKeyPair:
1519
1519
  )
1520
1520
 
1521
1521
 
1522
+ class AWSInstanceProfile:
1523
+ __slots__ = [
1524
+ 'bind_interface',
1525
+ 'egress_filter',
1526
+ 'enable_env_variables',
1527
+ 'healthy',
1528
+ 'id',
1529
+ 'name',
1530
+ 'port_override',
1531
+ 'proxy_cluster_id',
1532
+ 'region',
1533
+ 'role_arn',
1534
+ 'role_external_id',
1535
+ 'secret_store_id',
1536
+ 'subdomain',
1537
+ 'tags',
1538
+ ]
1539
+
1540
+ def __init__(
1541
+ self,
1542
+ bind_interface=None,
1543
+ egress_filter=None,
1544
+ enable_env_variables=None,
1545
+ healthy=None,
1546
+ id=None,
1547
+ name=None,
1548
+ port_override=None,
1549
+ proxy_cluster_id=None,
1550
+ region=None,
1551
+ role_arn=None,
1552
+ role_external_id=None,
1553
+ secret_store_id=None,
1554
+ subdomain=None,
1555
+ tags=None,
1556
+ ):
1557
+ self.bind_interface = bind_interface if bind_interface is not None else ''
1558
+ '''
1559
+ 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.
1560
+ '''
1561
+ self.egress_filter = egress_filter if egress_filter is not None else ''
1562
+ '''
1563
+ A filter applied to the routing logic to pin datasource to nodes.
1564
+ '''
1565
+ self.enable_env_variables = enable_env_variables if enable_env_variables is not None else False
1566
+ '''
1567
+ If true, prefer environment variables to authenticate connection even if EC2 roles are configured.
1568
+ '''
1569
+ self.healthy = healthy if healthy is not None else False
1570
+ '''
1571
+ True if the datasource is reachable and the credentials are valid.
1572
+ '''
1573
+ self.id = id if id is not None else ''
1574
+ '''
1575
+ Unique identifier of the Resource.
1576
+ '''
1577
+ self.name = name if name is not None else ''
1578
+ '''
1579
+ Unique human-readable name of the Resource.
1580
+ '''
1581
+ self.port_override = port_override if port_override is not None else 0
1582
+ '''
1583
+ The local port used by clients to connect to this resource.
1584
+ '''
1585
+ self.proxy_cluster_id = proxy_cluster_id if proxy_cluster_id is not None else ''
1586
+ '''
1587
+ ID of the proxy cluster for this resource, if any.
1588
+ '''
1589
+ self.region = region if region is not None else ''
1590
+ '''
1591
+ The AWS region to connect to.
1592
+ '''
1593
+ self.role_arn = role_arn if role_arn is not None else ''
1594
+ '''
1595
+ The role to assume after logging in.
1596
+ '''
1597
+ self.role_external_id = role_external_id if role_external_id is not None else ''
1598
+ '''
1599
+ The external ID to associate with assume role requests. Does nothing if a role ARN is not provided.
1600
+ '''
1601
+ self.secret_store_id = secret_store_id if secret_store_id is not None else ''
1602
+ '''
1603
+ ID of the secret store containing credentials for this resource, if any.
1604
+ '''
1605
+ self.subdomain = subdomain if subdomain is not None else ''
1606
+ '''
1607
+ Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
1608
+ '''
1609
+ self.tags = tags if tags is not None else _porcelain_zero_value_tags()
1610
+ '''
1611
+ Tags is a map of key, value pairs.
1612
+ '''
1613
+
1614
+ def __repr__(self):
1615
+ return '<sdm.AWSInstanceProfile ' + \
1616
+ 'bind_interface: ' + repr(self.bind_interface) + ' ' +\
1617
+ 'egress_filter: ' + repr(self.egress_filter) + ' ' +\
1618
+ 'enable_env_variables: ' + repr(self.enable_env_variables) + ' ' +\
1619
+ 'healthy: ' + repr(self.healthy) + ' ' +\
1620
+ 'id: ' + repr(self.id) + ' ' +\
1621
+ 'name: ' + repr(self.name) + ' ' +\
1622
+ 'port_override: ' + repr(self.port_override) + ' ' +\
1623
+ 'proxy_cluster_id: ' + repr(self.proxy_cluster_id) + ' ' +\
1624
+ 'region: ' + repr(self.region) + ' ' +\
1625
+ 'role_arn: ' + repr(self.role_arn) + ' ' +\
1626
+ 'role_external_id: ' + repr(self.role_external_id) + ' ' +\
1627
+ 'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
1628
+ 'subdomain: ' + repr(self.subdomain) + ' ' +\
1629
+ 'tags: ' + repr(self.tags) + ' ' +\
1630
+ '>'
1631
+
1632
+ def to_dict(self):
1633
+ return {
1634
+ 'bind_interface': self.bind_interface,
1635
+ 'egress_filter': self.egress_filter,
1636
+ 'enable_env_variables': self.enable_env_variables,
1637
+ 'healthy': self.healthy,
1638
+ 'id': self.id,
1639
+ 'name': self.name,
1640
+ 'port_override': self.port_override,
1641
+ 'proxy_cluster_id': self.proxy_cluster_id,
1642
+ 'region': self.region,
1643
+ 'role_arn': self.role_arn,
1644
+ 'role_external_id': self.role_external_id,
1645
+ 'secret_store_id': self.secret_store_id,
1646
+ 'subdomain': self.subdomain,
1647
+ 'tags': self.tags,
1648
+ }
1649
+
1650
+ @classmethod
1651
+ def from_dict(cls, d):
1652
+ return cls(
1653
+ bind_interface=d.get('bind_interface'),
1654
+ egress_filter=d.get('egress_filter'),
1655
+ enable_env_variables=d.get('enable_env_variables'),
1656
+ healthy=d.get('healthy'),
1657
+ id=d.get('id'),
1658
+ name=d.get('name'),
1659
+ port_override=d.get('port_override'),
1660
+ proxy_cluster_id=d.get('proxy_cluster_id'),
1661
+ region=d.get('region'),
1662
+ role_arn=d.get('role_arn'),
1663
+ role_external_id=d.get('role_external_id'),
1664
+ secret_store_id=d.get('secret_store_id'),
1665
+ subdomain=d.get('subdomain'),
1666
+ tags=d.get('tags'),
1667
+ )
1668
+
1669
+
1522
1670
  class AWSStore:
1523
1671
  __slots__ = [
1524
1672
  'id',
@@ -10120,6 +10268,169 @@ class GCPCertX509Store:
10120
10268
  )
10121
10269
 
10122
10270
 
10271
+ class GCPConsole:
10272
+ '''
10273
+ GCPConsole is currently unstable, and its API may change, or it may be removed,
10274
+ without a major version bump.
10275
+ '''
10276
+ __slots__ = [
10277
+ 'bind_interface',
10278
+ 'egress_filter',
10279
+ 'healthy',
10280
+ 'id',
10281
+ 'identity_alias_healthcheck_username',
10282
+ 'identity_set_id',
10283
+ 'name',
10284
+ 'port_override',
10285
+ 'proxy_cluster_id',
10286
+ 'secret_store_id',
10287
+ 'session_expiry',
10288
+ 'subdomain',
10289
+ 'tags',
10290
+ 'workforce_pool_id',
10291
+ 'workforce_provider_id',
10292
+ ]
10293
+
10294
+ def __init__(
10295
+ self,
10296
+ bind_interface=None,
10297
+ egress_filter=None,
10298
+ healthy=None,
10299
+ id=None,
10300
+ identity_alias_healthcheck_username=None,
10301
+ identity_set_id=None,
10302
+ name=None,
10303
+ port_override=None,
10304
+ proxy_cluster_id=None,
10305
+ secret_store_id=None,
10306
+ session_expiry=None,
10307
+ subdomain=None,
10308
+ tags=None,
10309
+ workforce_pool_id=None,
10310
+ workforce_provider_id=None,
10311
+ ):
10312
+ self.bind_interface = bind_interface if bind_interface is not None else ''
10313
+ '''
10314
+ 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.
10315
+ '''
10316
+ self.egress_filter = egress_filter if egress_filter is not None else ''
10317
+ '''
10318
+ A filter applied to the routing logic to pin datasource to nodes.
10319
+ '''
10320
+ self.healthy = healthy if healthy is not None else False
10321
+ '''
10322
+ True if the datasource is reachable and the credentials are valid.
10323
+ '''
10324
+ self.id = id if id is not None else ''
10325
+ '''
10326
+ Unique identifier of the Resource.
10327
+ '''
10328
+ self.identity_alias_healthcheck_username = identity_alias_healthcheck_username if identity_alias_healthcheck_username is not None else ''
10329
+ '''
10330
+ The username to use for healthchecks, when clients otherwise connect with their own identity alias username.
10331
+ '''
10332
+ self.identity_set_id = identity_set_id if identity_set_id is not None else ''
10333
+ '''
10334
+ The ID of the identity set to use for identity connections.
10335
+ '''
10336
+ self.name = name if name is not None else ''
10337
+ '''
10338
+ Unique human-readable name of the Resource.
10339
+ '''
10340
+ self.port_override = port_override if port_override is not None else 0
10341
+ '''
10342
+ The local port used by clients to connect to this resource.
10343
+ '''
10344
+ self.proxy_cluster_id = proxy_cluster_id if proxy_cluster_id is not None else ''
10345
+ '''
10346
+ ID of the proxy cluster for this resource, if any.
10347
+ '''
10348
+ self.secret_store_id = secret_store_id if secret_store_id is not None else ''
10349
+ '''
10350
+ ID of the secret store containing credentials for this resource, if any.
10351
+ '''
10352
+ self.session_expiry = session_expiry if session_expiry is not None else 0
10353
+ '''
10354
+ The length of time in seconds console sessions will live before needing to reauthenticate.
10355
+ '''
10356
+ self.subdomain = subdomain if subdomain is not None else ''
10357
+ '''
10358
+ Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
10359
+ '''
10360
+ self.tags = tags if tags is not None else _porcelain_zero_value_tags()
10361
+ '''
10362
+ Tags is a map of key, value pairs.
10363
+ '''
10364
+ self.workforce_pool_id = workforce_pool_id if workforce_pool_id is not None else ''
10365
+ '''
10366
+ The ID of the Workforce Identity Pool in GCP to use for federated authentication.
10367
+ '''
10368
+ self.workforce_provider_id = workforce_provider_id if workforce_provider_id is not None else ''
10369
+ '''
10370
+ The ID of the Workforce Identity Provider in GCP to use for federated authentication.
10371
+ '''
10372
+
10373
+ def __repr__(self):
10374
+ return '<sdm.GCPConsole ' + \
10375
+ 'bind_interface: ' + repr(self.bind_interface) + ' ' +\
10376
+ 'egress_filter: ' + repr(self.egress_filter) + ' ' +\
10377
+ 'healthy: ' + repr(self.healthy) + ' ' +\
10378
+ 'id: ' + repr(self.id) + ' ' +\
10379
+ 'identity_alias_healthcheck_username: ' + repr(self.identity_alias_healthcheck_username) + ' ' +\
10380
+ 'identity_set_id: ' + repr(self.identity_set_id) + ' ' +\
10381
+ 'name: ' + repr(self.name) + ' ' +\
10382
+ 'port_override: ' + repr(self.port_override) + ' ' +\
10383
+ 'proxy_cluster_id: ' + repr(self.proxy_cluster_id) + ' ' +\
10384
+ 'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
10385
+ 'session_expiry: ' + repr(self.session_expiry) + ' ' +\
10386
+ 'subdomain: ' + repr(self.subdomain) + ' ' +\
10387
+ 'tags: ' + repr(self.tags) + ' ' +\
10388
+ 'workforce_pool_id: ' + repr(self.workforce_pool_id) + ' ' +\
10389
+ 'workforce_provider_id: ' + repr(self.workforce_provider_id) + ' ' +\
10390
+ '>'
10391
+
10392
+ def to_dict(self):
10393
+ return {
10394
+ 'bind_interface': self.bind_interface,
10395
+ 'egress_filter': self.egress_filter,
10396
+ 'healthy': self.healthy,
10397
+ 'id': self.id,
10398
+ 'identity_alias_healthcheck_username':
10399
+ self.identity_alias_healthcheck_username,
10400
+ 'identity_set_id': self.identity_set_id,
10401
+ 'name': self.name,
10402
+ 'port_override': self.port_override,
10403
+ 'proxy_cluster_id': self.proxy_cluster_id,
10404
+ 'secret_store_id': self.secret_store_id,
10405
+ 'session_expiry': self.session_expiry,
10406
+ 'subdomain': self.subdomain,
10407
+ 'tags': self.tags,
10408
+ 'workforce_pool_id': self.workforce_pool_id,
10409
+ 'workforce_provider_id': self.workforce_provider_id,
10410
+ }
10411
+
10412
+ @classmethod
10413
+ def from_dict(cls, d):
10414
+ return cls(
10415
+ bind_interface=d.get('bind_interface'),
10416
+ egress_filter=d.get('egress_filter'),
10417
+ healthy=d.get('healthy'),
10418
+ id=d.get('id'),
10419
+ identity_alias_healthcheck_username=d.get(
10420
+ 'identity_alias_healthcheck_username'),
10421
+ identity_set_id=d.get('identity_set_id'),
10422
+ name=d.get('name'),
10423
+ port_override=d.get('port_override'),
10424
+ proxy_cluster_id=d.get('proxy_cluster_id'),
10425
+ secret_store_id=d.get('secret_store_id'),
10426
+ session_expiry=d.get('session_expiry'),
10427
+ subdomain=d.get('subdomain'),
10428
+ tags=d.get('tags'),
10429
+ workforce_pool_id=d.get('workforce_pool_id'),
10430
+ workforce_provider_id=d.get('workforce_provider_id'),
10431
+ )
10432
+
10433
+
10123
10434
  class GCPStore:
10124
10435
  __slots__ = [
10125
10436
  'id',
@@ -10178,6 +10489,178 @@ class GCPStore:
10178
10489
  )
10179
10490
 
10180
10491
 
10492
+ class GCPWIF:
10493
+ '''
10494
+ GCPWIF is currently unstable, and its API may change, or it may be removed,
10495
+ without a major version bump.
10496
+ '''
10497
+ __slots__ = [
10498
+ 'bind_interface',
10499
+ 'egress_filter',
10500
+ 'healthy',
10501
+ 'id',
10502
+ 'identity_alias_healthcheck_username',
10503
+ 'identity_set_id',
10504
+ 'name',
10505
+ 'port_override',
10506
+ 'proxy_cluster_id',
10507
+ 'scopes',
10508
+ 'secret_store_id',
10509
+ 'session_expiry',
10510
+ 'subdomain',
10511
+ 'tags',
10512
+ 'workforce_pool_id',
10513
+ 'workforce_provider_id',
10514
+ ]
10515
+
10516
+ def __init__(
10517
+ self,
10518
+ bind_interface=None,
10519
+ egress_filter=None,
10520
+ healthy=None,
10521
+ id=None,
10522
+ identity_alias_healthcheck_username=None,
10523
+ identity_set_id=None,
10524
+ name=None,
10525
+ port_override=None,
10526
+ proxy_cluster_id=None,
10527
+ scopes=None,
10528
+ secret_store_id=None,
10529
+ session_expiry=None,
10530
+ subdomain=None,
10531
+ tags=None,
10532
+ workforce_pool_id=None,
10533
+ workforce_provider_id=None,
10534
+ ):
10535
+ self.bind_interface = bind_interface if bind_interface is not None else ''
10536
+ '''
10537
+ 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.
10538
+ '''
10539
+ self.egress_filter = egress_filter if egress_filter is not None else ''
10540
+ '''
10541
+ A filter applied to the routing logic to pin datasource to nodes.
10542
+ '''
10543
+ self.healthy = healthy if healthy is not None else False
10544
+ '''
10545
+ True if the datasource is reachable and the credentials are valid.
10546
+ '''
10547
+ self.id = id if id is not None else ''
10548
+ '''
10549
+ Unique identifier of the Resource.
10550
+ '''
10551
+ self.identity_alias_healthcheck_username = identity_alias_healthcheck_username if identity_alias_healthcheck_username is not None else ''
10552
+ '''
10553
+ The username to use for healthchecks, when clients otherwise connect with their own identity alias username.
10554
+ '''
10555
+ self.identity_set_id = identity_set_id if identity_set_id is not None else ''
10556
+ '''
10557
+ The ID of the identity set to use for identity connections.
10558
+ '''
10559
+ self.name = name if name is not None else ''
10560
+ '''
10561
+ Unique human-readable name of the Resource.
10562
+ '''
10563
+ self.port_override = port_override if port_override is not None else 0
10564
+ '''
10565
+ The local port used by clients to connect to this resource.
10566
+ '''
10567
+ self.proxy_cluster_id = proxy_cluster_id if proxy_cluster_id is not None else ''
10568
+ '''
10569
+ ID of the proxy cluster for this resource, if any.
10570
+ '''
10571
+ self.scopes = scopes if scopes is not None else ''
10572
+ '''
10573
+ Space separated scopes that this login should assume into when authenticating.
10574
+ '''
10575
+ self.secret_store_id = secret_store_id if secret_store_id is not None else ''
10576
+ '''
10577
+ ID of the secret store containing credentials for this resource, if any.
10578
+ '''
10579
+ self.session_expiry = session_expiry if session_expiry is not None else 0
10580
+ '''
10581
+ The length of time in seconds console sessions will live before needing to reauthenticate.
10582
+ '''
10583
+ self.subdomain = subdomain if subdomain is not None else ''
10584
+ '''
10585
+ Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
10586
+ '''
10587
+ self.tags = tags if tags is not None else _porcelain_zero_value_tags()
10588
+ '''
10589
+ Tags is a map of key, value pairs.
10590
+ '''
10591
+ self.workforce_pool_id = workforce_pool_id if workforce_pool_id is not None else ''
10592
+ '''
10593
+ The ID of the Workforce Identity Pool in GCP to use for federated authentication.
10594
+ '''
10595
+ self.workforce_provider_id = workforce_provider_id if workforce_provider_id is not None else ''
10596
+ '''
10597
+ The ID of the Workforce Identity Provider in GCP to use for federated authentication.
10598
+ '''
10599
+
10600
+ def __repr__(self):
10601
+ return '<sdm.GCPWIF ' + \
10602
+ 'bind_interface: ' + repr(self.bind_interface) + ' ' +\
10603
+ 'egress_filter: ' + repr(self.egress_filter) + ' ' +\
10604
+ 'healthy: ' + repr(self.healthy) + ' ' +\
10605
+ 'id: ' + repr(self.id) + ' ' +\
10606
+ 'identity_alias_healthcheck_username: ' + repr(self.identity_alias_healthcheck_username) + ' ' +\
10607
+ 'identity_set_id: ' + repr(self.identity_set_id) + ' ' +\
10608
+ 'name: ' + repr(self.name) + ' ' +\
10609
+ 'port_override: ' + repr(self.port_override) + ' ' +\
10610
+ 'proxy_cluster_id: ' + repr(self.proxy_cluster_id) + ' ' +\
10611
+ 'scopes: ' + repr(self.scopes) + ' ' +\
10612
+ 'secret_store_id: ' + repr(self.secret_store_id) + ' ' +\
10613
+ 'session_expiry: ' + repr(self.session_expiry) + ' ' +\
10614
+ 'subdomain: ' + repr(self.subdomain) + ' ' +\
10615
+ 'tags: ' + repr(self.tags) + ' ' +\
10616
+ 'workforce_pool_id: ' + repr(self.workforce_pool_id) + ' ' +\
10617
+ 'workforce_provider_id: ' + repr(self.workforce_provider_id) + ' ' +\
10618
+ '>'
10619
+
10620
+ def to_dict(self):
10621
+ return {
10622
+ 'bind_interface': self.bind_interface,
10623
+ 'egress_filter': self.egress_filter,
10624
+ 'healthy': self.healthy,
10625
+ 'id': self.id,
10626
+ 'identity_alias_healthcheck_username':
10627
+ self.identity_alias_healthcheck_username,
10628
+ 'identity_set_id': self.identity_set_id,
10629
+ 'name': self.name,
10630
+ 'port_override': self.port_override,
10631
+ 'proxy_cluster_id': self.proxy_cluster_id,
10632
+ 'scopes': self.scopes,
10633
+ 'secret_store_id': self.secret_store_id,
10634
+ 'session_expiry': self.session_expiry,
10635
+ 'subdomain': self.subdomain,
10636
+ 'tags': self.tags,
10637
+ 'workforce_pool_id': self.workforce_pool_id,
10638
+ 'workforce_provider_id': self.workforce_provider_id,
10639
+ }
10640
+
10641
+ @classmethod
10642
+ def from_dict(cls, d):
10643
+ return cls(
10644
+ bind_interface=d.get('bind_interface'),
10645
+ egress_filter=d.get('egress_filter'),
10646
+ healthy=d.get('healthy'),
10647
+ id=d.get('id'),
10648
+ identity_alias_healthcheck_username=d.get(
10649
+ 'identity_alias_healthcheck_username'),
10650
+ identity_set_id=d.get('identity_set_id'),
10651
+ name=d.get('name'),
10652
+ port_override=d.get('port_override'),
10653
+ proxy_cluster_id=d.get('proxy_cluster_id'),
10654
+ scopes=d.get('scopes'),
10655
+ secret_store_id=d.get('secret_store_id'),
10656
+ session_expiry=d.get('session_expiry'),
10657
+ subdomain=d.get('subdomain'),
10658
+ tags=d.get('tags'),
10659
+ workforce_pool_id=d.get('workforce_pool_id'),
10660
+ workforce_provider_id=d.get('workforce_provider_id'),
10661
+ )
10662
+
10663
+
10181
10664
  class Gateway:
10182
10665
  '''
10183
10666
  Gateway represents a StrongDM CLI installation running in gateway mode.