pulumi-harness 0.5.0a1736833425__py3-none-any.whl

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.

Potentially problematic release.


This version of pulumi-harness might be problematic. Click here for more details.

Files changed (311) hide show
  1. pulumi_harness/__init__.py +1257 -0
  2. pulumi_harness/_inputs.py +4025 -0
  3. pulumi_harness/_utilities.py +327 -0
  4. pulumi_harness/add_user_to_group.py +241 -0
  5. pulumi_harness/application.py +393 -0
  6. pulumi_harness/application_git_sync.py +411 -0
  7. pulumi_harness/autostopping/__init__.py +27 -0
  8. pulumi_harness/autostopping/_inputs.py +2688 -0
  9. pulumi_harness/autostopping/aws_alb.py +640 -0
  10. pulumi_harness/autostopping/aws_proxy.py +760 -0
  11. pulumi_harness/autostopping/azure_gateway.py +798 -0
  12. pulumi_harness/autostopping/azure_proxy.py +855 -0
  13. pulumi_harness/autostopping/gcp_proxy.py +779 -0
  14. pulumi_harness/autostopping/get_aws_alb.py +278 -0
  15. pulumi_harness/autostopping/get_aws_proxy.py +335 -0
  16. pulumi_harness/autostopping/get_azure_gateway.py +343 -0
  17. pulumi_harness/autostopping/get_azure_proxy.py +375 -0
  18. pulumi_harness/autostopping/get_gcp_proxy.py +340 -0
  19. pulumi_harness/autostopping/get_rule_ecs.py +225 -0
  20. pulumi_harness/autostopping/get_rule_rds.py +205 -0
  21. pulumi_harness/autostopping/get_rule_vm.py +265 -0
  22. pulumi_harness/autostopping/get_schedule.py +193 -0
  23. pulumi_harness/autostopping/outputs.py +1971 -0
  24. pulumi_harness/autostopping/rule_ecs.py +450 -0
  25. pulumi_harness/autostopping/rule_rds.py +448 -0
  26. pulumi_harness/autostopping/rule_vm.py +663 -0
  27. pulumi_harness/autostopping/schedule.py +465 -0
  28. pulumi_harness/cloudprovider/__init__.py +17 -0
  29. pulumi_harness/cloudprovider/_inputs.py +777 -0
  30. pulumi_harness/cloudprovider/aws.py +586 -0
  31. pulumi_harness/cloudprovider/azure.py +393 -0
  32. pulumi_harness/cloudprovider/datacenter.py +233 -0
  33. pulumi_harness/cloudprovider/gcp.py +340 -0
  34. pulumi_harness/cloudprovider/get_delegate_ids.py +148 -0
  35. pulumi_harness/cloudprovider/kubernetes.py +310 -0
  36. pulumi_harness/cloudprovider/outputs.py +657 -0
  37. pulumi_harness/cloudprovider/spot.py +296 -0
  38. pulumi_harness/cloudprovider/tanzu.py +441 -0
  39. pulumi_harness/cluster/__init__.py +9 -0
  40. pulumi_harness/cluster/get_orchestrator.py +134 -0
  41. pulumi_harness/cluster/orchestrator.py +286 -0
  42. pulumi_harness/config/__init__.py +8 -0
  43. pulumi_harness/config/__init__.pyi +40 -0
  44. pulumi_harness/config/vars.py +54 -0
  45. pulumi_harness/delegate_approval.py +267 -0
  46. pulumi_harness/encrypted_text.py +499 -0
  47. pulumi_harness/environment.py +446 -0
  48. pulumi_harness/get_application.py +180 -0
  49. pulumi_harness/get_current_account.py +108 -0
  50. pulumi_harness/get_delegate.py +280 -0
  51. pulumi_harness/get_encrypted_text.py +136 -0
  52. pulumi_harness/get_environment.py +184 -0
  53. pulumi_harness/get_git_connector.py +255 -0
  54. pulumi_harness/get_secret_manager.py +142 -0
  55. pulumi_harness/get_service.py +198 -0
  56. pulumi_harness/get_ssh_credential.py +122 -0
  57. pulumi_harness/get_sso_provider.py +114 -0
  58. pulumi_harness/get_trigger.py +177 -0
  59. pulumi_harness/get_user.py +184 -0
  60. pulumi_harness/get_user_group.py +100 -0
  61. pulumi_harness/get_yaml_config.py +142 -0
  62. pulumi_harness/git_connector.py +738 -0
  63. pulumi_harness/governance/__init__.py +13 -0
  64. pulumi_harness/governance/get_rule.py +168 -0
  65. pulumi_harness/governance/get_rule_enforcement.py +266 -0
  66. pulumi_harness/governance/get_rule_set.py +150 -0
  67. pulumi_harness/governance/rule.py +337 -0
  68. pulumi_harness/governance/rule_enforcement.py +668 -0
  69. pulumi_harness/governance/rule_set.py +321 -0
  70. pulumi_harness/infrastructure_definition.py +1246 -0
  71. pulumi_harness/outputs.py +3306 -0
  72. pulumi_harness/platform/__init__.py +220 -0
  73. pulumi_harness/platform/_inputs.py +22314 -0
  74. pulumi_harness/platform/app_dynamics_connector.py +733 -0
  75. pulumi_harness/platform/artifactory_connector.py +748 -0
  76. pulumi_harness/platform/aws_cc_connector.py +716 -0
  77. pulumi_harness/platform/aws_connector.py +851 -0
  78. pulumi_harness/platform/aws_kms_connector.py +619 -0
  79. pulumi_harness/platform/aws_secret_manager_connector.py +712 -0
  80. pulumi_harness/platform/azure_cloud_cost_connector.py +675 -0
  81. pulumi_harness/platform/azure_cloud_provider_connector.py +826 -0
  82. pulumi_harness/platform/azure_key_vault_connector.py +843 -0
  83. pulumi_harness/platform/bitbucket_connector.py +713 -0
  84. pulumi_harness/platform/connector_azure_artifacts.py +529 -0
  85. pulumi_harness/platform/connector_custom_secret_manager.py +887 -0
  86. pulumi_harness/platform/connector_customhealthsource.py +807 -0
  87. pulumi_harness/platform/connector_jdbc.py +609 -0
  88. pulumi_harness/platform/connector_pdc.py +527 -0
  89. pulumi_harness/platform/connector_rancher.py +617 -0
  90. pulumi_harness/platform/datadog_connector.py +651 -0
  91. pulumi_harness/platform/db_instance.py +636 -0
  92. pulumi_harness/platform/db_schema.py +547 -0
  93. pulumi_harness/platform/delegatetoken.py +520 -0
  94. pulumi_harness/platform/docker_connector.py +669 -0
  95. pulumi_harness/platform/dynatrace_connector.py +601 -0
  96. pulumi_harness/platform/elasticsearch_connector.py +744 -0
  97. pulumi_harness/platform/environment.py +1173 -0
  98. pulumi_harness/platform/environment_clusters_mapping.py +454 -0
  99. pulumi_harness/platform/environment_group.py +560 -0
  100. pulumi_harness/platform/environment_service_overrides.py +688 -0
  101. pulumi_harness/platform/feature_flag.py +724 -0
  102. pulumi_harness/platform/feature_flag_api_key.py +550 -0
  103. pulumi_harness/platform/feature_flag_target.py +473 -0
  104. pulumi_harness/platform/feature_flag_target_group.py +577 -0
  105. pulumi_harness/platform/file_store_file.py +822 -0
  106. pulumi_harness/platform/file_store_folder.py +628 -0
  107. pulumi_harness/platform/filters.py +511 -0
  108. pulumi_harness/platform/gcp_cloud_cost_connector.py +669 -0
  109. pulumi_harness/platform/gcp_connector.py +663 -0
  110. pulumi_harness/platform/gcp_secret_manager_connector.py +594 -0
  111. pulumi_harness/platform/get_api_key.py +292 -0
  112. pulumi_harness/platform/get_app_dynamics_connector.py +271 -0
  113. pulumi_harness/platform/get_artifactory_connector.py +243 -0
  114. pulumi_harness/platform/get_aws_cc_connector.py +271 -0
  115. pulumi_harness/platform/get_aws_connector.py +313 -0
  116. pulumi_harness/platform/get_aws_kms_connector.py +253 -0
  117. pulumi_harness/platform/get_aws_secret_manager_connector.py +267 -0
  118. pulumi_harness/platform/get_azure_cloud_cost_connector.py +257 -0
  119. pulumi_harness/platform/get_azure_cloud_provider_connector.py +257 -0
  120. pulumi_harness/platform/get_azure_key_vault_connector.py +308 -0
  121. pulumi_harness/platform/get_bitbucket_connector.py +285 -0
  122. pulumi_harness/platform/get_ccm_filters.py +221 -0
  123. pulumi_harness/platform/get_connector_custom_secret_manager.py +330 -0
  124. pulumi_harness/platform/get_connector_customhealthsource.py +281 -0
  125. pulumi_harness/platform/get_connector_jdbc.py +243 -0
  126. pulumi_harness/platform/get_connector_pdc.py +229 -0
  127. pulumi_harness/platform/get_connector_rancher.py +236 -0
  128. pulumi_harness/platform/get_current_account.py +126 -0
  129. pulumi_harness/platform/get_current_user.py +252 -0
  130. pulumi_harness/platform/get_datadog_connector.py +262 -0
  131. pulumi_harness/platform/get_db_instance.py +268 -0
  132. pulumi_harness/platform/get_db_schema.py +233 -0
  133. pulumi_harness/platform/get_delegatetoken.py +214 -0
  134. pulumi_harness/platform/get_docker_connector.py +257 -0
  135. pulumi_harness/platform/get_dynatrace_connector.py +242 -0
  136. pulumi_harness/platform/get_elasticsearch_connector.py +257 -0
  137. pulumi_harness/platform/get_environment.py +263 -0
  138. pulumi_harness/platform/get_environment_clusters_mapping.py +262 -0
  139. pulumi_harness/platform/get_environment_group.py +190 -0
  140. pulumi_harness/platform/get_environment_list.py +172 -0
  141. pulumi_harness/platform/get_environment_service_overrides.py +212 -0
  142. pulumi_harness/platform/get_file_store_file.py +327 -0
  143. pulumi_harness/platform/get_file_store_folder.py +271 -0
  144. pulumi_harness/platform/get_filters.py +217 -0
  145. pulumi_harness/platform/get_gcp_cloud_cost_connector.py +257 -0
  146. pulumi_harness/platform/get_gcp_connector.py +243 -0
  147. pulumi_harness/platform/get_gcp_secret_manager_connector.py +238 -0
  148. pulumi_harness/platform/get_git_connector.py +271 -0
  149. pulumi_harness/platform/get_github_connector.py +296 -0
  150. pulumi_harness/platform/get_gitlab_connector.py +285 -0
  151. pulumi_harness/platform/get_gitops_agent.py +303 -0
  152. pulumi_harness/platform/get_gitops_agent_deploy_yaml.py +257 -0
  153. pulumi_harness/platform/get_gitops_app_project.py +191 -0
  154. pulumi_harness/platform/get_gitops_app_project_mapping.py +189 -0
  155. pulumi_harness/platform/get_gitops_applications.py +351 -0
  156. pulumi_harness/platform/get_gitops_cluster.py +216 -0
  157. pulumi_harness/platform/get_gitops_gnupg.py +219 -0
  158. pulumi_harness/platform/get_gitops_repo_cert.py +155 -0
  159. pulumi_harness/platform/get_gitops_repo_cred.py +223 -0
  160. pulumi_harness/platform/get_gitops_repository.py +230 -0
  161. pulumi_harness/platform/get_gitx_webhook.py +194 -0
  162. pulumi_harness/platform/get_helm_connector.py +243 -0
  163. pulumi_harness/platform/get_iacm_default_pipeline.py +168 -0
  164. pulumi_harness/platform/get_infra_module.py +320 -0
  165. pulumi_harness/platform/get_infrastructure.py +287 -0
  166. pulumi_harness/platform/get_input_set.py +238 -0
  167. pulumi_harness/platform/get_jenkins_connector.py +243 -0
  168. pulumi_harness/platform/get_jira_connector.py +285 -0
  169. pulumi_harness/platform/get_kubernetes_cloud_cost_connector.py +228 -0
  170. pulumi_harness/platform/get_kubernetes_connector.py +285 -0
  171. pulumi_harness/platform/get_manual_freeze.py +305 -0
  172. pulumi_harness/platform/get_monitored_service.py +134 -0
  173. pulumi_harness/platform/get_nexus_connector.py +257 -0
  174. pulumi_harness/platform/get_notification_rule.py +156 -0
  175. pulumi_harness/platform/get_oci_helm_connector.py +243 -0
  176. pulumi_harness/platform/get_organization.py +156 -0
  177. pulumi_harness/platform/get_overrides.py +198 -0
  178. pulumi_harness/platform/get_pagerduty_connector.py +224 -0
  179. pulumi_harness/platform/get_permissions.py +149 -0
  180. pulumi_harness/platform/get_pipeline.py +268 -0
  181. pulumi_harness/platform/get_pipeline_filters.py +197 -0
  182. pulumi_harness/platform/get_pipeline_list.py +269 -0
  183. pulumi_harness/platform/get_policy.py +220 -0
  184. pulumi_harness/platform/get_policy_set.py +298 -0
  185. pulumi_harness/platform/get_project.py +210 -0
  186. pulumi_harness/platform/get_project_list.py +249 -0
  187. pulumi_harness/platform/get_prometheus_connector.py +271 -0
  188. pulumi_harness/platform/get_provider.py +85 -0
  189. pulumi_harness/platform/get_repo.py +362 -0
  190. pulumi_harness/platform/get_repo_rule_branch.py +312 -0
  191. pulumi_harness/platform/get_repo_webhook.py +316 -0
  192. pulumi_harness/platform/get_resource_group.py +267 -0
  193. pulumi_harness/platform/get_role_assignments.py +223 -0
  194. pulumi_harness/platform/get_roles.py +240 -0
  195. pulumi_harness/platform/get_secret_file.py +224 -0
  196. pulumi_harness/platform/get_secret_sshkey.py +239 -0
  197. pulumi_harness/platform/get_secret_text.py +264 -0
  198. pulumi_harness/platform/get_service.py +235 -0
  199. pulumi_harness/platform/get_service_account.py +224 -0
  200. pulumi_harness/platform/get_service_list.py +172 -0
  201. pulumi_harness/platform/get_service_now_connector.py +285 -0
  202. pulumi_harness/platform/get_service_overrides_v2.py +220 -0
  203. pulumi_harness/platform/get_slo.py +134 -0
  204. pulumi_harness/platform/get_splunk_connector.py +270 -0
  205. pulumi_harness/platform/get_spot_connector.py +215 -0
  206. pulumi_harness/platform/get_sumologic_connector.py +256 -0
  207. pulumi_harness/platform/get_tas_connector.py +243 -0
  208. pulumi_harness/platform/get_template.py +386 -0
  209. pulumi_harness/platform/get_template_filters.py +221 -0
  210. pulumi_harness/platform/get_terraform_cloud_connector.py +233 -0
  211. pulumi_harness/platform/get_token.py +430 -0
  212. pulumi_harness/platform/get_triggers.py +260 -0
  213. pulumi_harness/platform/get_user.py +222 -0
  214. pulumi_harness/platform/get_usergroup.py +340 -0
  215. pulumi_harness/platform/get_variables.py +209 -0
  216. pulumi_harness/platform/get_vault_connector.py +574 -0
  217. pulumi_harness/platform/get_workspace.py +411 -0
  218. pulumi_harness/platform/get_workspace_output_value.py +168 -0
  219. pulumi_harness/platform/git_connector.py +713 -0
  220. pulumi_harness/platform/git_ops_agent.py +727 -0
  221. pulumi_harness/platform/git_ops_applications.py +1090 -0
  222. pulumi_harness/platform/git_ops_cluster.py +438 -0
  223. pulumi_harness/platform/git_ops_gnupg.py +453 -0
  224. pulumi_harness/platform/git_ops_repo_cert.py +437 -0
  225. pulumi_harness/platform/git_ops_repo_cred.py +533 -0
  226. pulumi_harness/platform/git_ops_repository.py +831 -0
  227. pulumi_harness/platform/github_connector.py +807 -0
  228. pulumi_harness/platform/gitlab_connector.py +713 -0
  229. pulumi_harness/platform/gitops_app_project.py +485 -0
  230. pulumi_harness/platform/gitops_app_project_mapping.py +423 -0
  231. pulumi_harness/platform/gitx_webhook.py +616 -0
  232. pulumi_harness/platform/helm_connector.py +617 -0
  233. pulumi_harness/platform/iacm_default_pipeline.py +343 -0
  234. pulumi_harness/platform/infra_module.py +755 -0
  235. pulumi_harness/platform/infrastructure.py +937 -0
  236. pulumi_harness/platform/input_set.py +689 -0
  237. pulumi_harness/platform/jenkins_connector.py +566 -0
  238. pulumi_harness/platform/jira_connector.py +714 -0
  239. pulumi_harness/platform/kubernetes_cloud_cost_connector.py +558 -0
  240. pulumi_harness/platform/kubernetes_connector.py +895 -0
  241. pulumi_harness/platform/manual_freeze.py +835 -0
  242. pulumi_harness/platform/monitored_service.py +1984 -0
  243. pulumi_harness/platform/newrelic_connector.py +651 -0
  244. pulumi_harness/platform/nexus_connector.py +622 -0
  245. pulumi_harness/platform/notification_rule.py +526 -0
  246. pulumi_harness/platform/oci_helm_connector.py +617 -0
  247. pulumi_harness/platform/organization.py +336 -0
  248. pulumi_harness/platform/outputs.py +23361 -0
  249. pulumi_harness/platform/overrides.py +669 -0
  250. pulumi_harness/platform/pagerduty_connector.py +547 -0
  251. pulumi_harness/platform/pipeline.py +991 -0
  252. pulumi_harness/platform/pipeline_filters.py +711 -0
  253. pulumi_harness/platform/policy.py +944 -0
  254. pulumi_harness/platform/policy_set.py +594 -0
  255. pulumi_harness/platform/project.py +453 -0
  256. pulumi_harness/platform/prometheus_connector.py +710 -0
  257. pulumi_harness/platform/provider.py +349 -0
  258. pulumi_harness/platform/repo.py +737 -0
  259. pulumi_harness/platform/repo_rule_branch.py +645 -0
  260. pulumi_harness/platform/repo_webhook.py +664 -0
  261. pulumi_harness/platform/resource_group.py +718 -0
  262. pulumi_harness/platform/role_assignments.py +524 -0
  263. pulumi_harness/platform/roles.py +546 -0
  264. pulumi_harness/platform/secret_file.py +548 -0
  265. pulumi_harness/platform/secret_sshkey.py +569 -0
  266. pulumi_harness/platform/secret_text.py +620 -0
  267. pulumi_harness/platform/service.py +1195 -0
  268. pulumi_harness/platform/service_account.py +548 -0
  269. pulumi_harness/platform/service_now_connector.py +714 -0
  270. pulumi_harness/platform/service_overrides_v2.py +915 -0
  271. pulumi_harness/platform/slo.py +462 -0
  272. pulumi_harness/platform/splunk_connector.py +701 -0
  273. pulumi_harness/platform/spot_connector.py +452 -0
  274. pulumi_harness/platform/sumologic_connector.py +651 -0
  275. pulumi_harness/platform/tas_connector.py +570 -0
  276. pulumi_harness/platform/template.py +861 -0
  277. pulumi_harness/platform/template_filters.py +515 -0
  278. pulumi_harness/platform/terraform_cloud_connector.py +545 -0
  279. pulumi_harness/platform/token.py +977 -0
  280. pulumi_harness/platform/triggers.py +680 -0
  281. pulumi_harness/platform/user.py +522 -0
  282. pulumi_harness/platform/usergroup.py +1104 -0
  283. pulumi_harness/platform/variables.py +509 -0
  284. pulumi_harness/platform/vault_connector.py +1919 -0
  285. pulumi_harness/platform/workspace.py +1145 -0
  286. pulumi_harness/platform_api_key.py +617 -0
  287. pulumi_harness/platform_ccm_filters.py +515 -0
  288. pulumi_harness/provider.py +227 -0
  289. pulumi_harness/pulumi-plugin.json +6 -0
  290. pulumi_harness/py.typed +0 -0
  291. pulumi_harness/service/__init__.py +18 -0
  292. pulumi_harness/service/_inputs.py +660 -0
  293. pulumi_harness/service/ami.py +336 -0
  294. pulumi_harness/service/codedeploy.py +336 -0
  295. pulumi_harness/service/ecs.py +336 -0
  296. pulumi_harness/service/helm.py +336 -0
  297. pulumi_harness/service/kubernetes.py +409 -0
  298. pulumi_harness/service/lambda_.py +336 -0
  299. pulumi_harness/service/outputs.py +388 -0
  300. pulumi_harness/service/ssh.py +386 -0
  301. pulumi_harness/service/tanzu.py +336 -0
  302. pulumi_harness/service/winrm.py +386 -0
  303. pulumi_harness/ssh_credential.py +361 -0
  304. pulumi_harness/user.py +423 -0
  305. pulumi_harness/user_group.py +713 -0
  306. pulumi_harness/user_group_permissions.py +247 -0
  307. pulumi_harness/yaml_config.py +336 -0
  308. pulumi_harness-0.5.0a1736833425.dist-info/METADATA +69 -0
  309. pulumi_harness-0.5.0a1736833425.dist-info/RECORD +311 -0
  310. pulumi_harness-0.5.0a1736833425.dist-info/WHEEL +5 -0
  311. pulumi_harness-0.5.0a1736833425.dist-info/top_level.txt +1 -0
@@ -0,0 +1,1104 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = ['UsergroupArgs', 'Usergroup']
20
+
21
+ @pulumi.input_type
22
+ class UsergroupArgs:
23
+ def __init__(__self__, *,
24
+ identifier: pulumi.Input[str],
25
+ description: Optional[pulumi.Input[str]] = None,
26
+ externally_managed: Optional[pulumi.Input[bool]] = None,
27
+ linked_sso_display_name: Optional[pulumi.Input[str]] = None,
28
+ linked_sso_id: Optional[pulumi.Input[str]] = None,
29
+ linked_sso_type: Optional[pulumi.Input[str]] = None,
30
+ name: Optional[pulumi.Input[str]] = None,
31
+ notification_configs: Optional[pulumi.Input[Sequence[pulumi.Input['UsergroupNotificationConfigArgs']]]] = None,
32
+ org_id: Optional[pulumi.Input[str]] = None,
33
+ project_id: Optional[pulumi.Input[str]] = None,
34
+ sso_group_id: Optional[pulumi.Input[str]] = None,
35
+ sso_group_name: Optional[pulumi.Input[str]] = None,
36
+ sso_linked: Optional[pulumi.Input[bool]] = None,
37
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
38
+ user_emails: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
39
+ users: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
40
+ """
41
+ The set of arguments for constructing a Usergroup resource.
42
+ :param pulumi.Input[str] identifier: Unique identifier of the resource.
43
+ :param pulumi.Input[str] description: Description of the resource.
44
+ :param pulumi.Input[bool] externally_managed: Whether the user group is externally managed.
45
+ :param pulumi.Input[str] linked_sso_display_name: Name of the linked SSO.
46
+ :param pulumi.Input[str] linked_sso_id: The SSO account ID that the user group is linked to.
47
+ :param pulumi.Input[str] linked_sso_type: Type of linked SSO.
48
+ :param pulumi.Input[str] name: Name of the resource.
49
+ :param pulumi.Input[Sequence[pulumi.Input['UsergroupNotificationConfigArgs']]] notification_configs: List of notification settings.
50
+ :param pulumi.Input[str] org_id: Unique identifier of the organization.
51
+ :param pulumi.Input[str] project_id: Unique identifier of the project.
52
+ :param pulumi.Input[str] sso_group_id: Identifier of the userGroup in SSO.
53
+ :param pulumi.Input[str] sso_group_name: Name of the SSO userGroup.
54
+ :param pulumi.Input[bool] sso_linked: Whether sso is linked or not.
55
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: Tags to associate with the resource.
56
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] user_emails: List of user emails in the UserGroup. Either provide list of users or list of user emails.
57
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] users: List of users in the UserGroup. Either provide list of users or list of user emails.
58
+ """
59
+ pulumi.set(__self__, "identifier", identifier)
60
+ if description is not None:
61
+ pulumi.set(__self__, "description", description)
62
+ if externally_managed is not None:
63
+ pulumi.set(__self__, "externally_managed", externally_managed)
64
+ if linked_sso_display_name is not None:
65
+ pulumi.set(__self__, "linked_sso_display_name", linked_sso_display_name)
66
+ if linked_sso_id is not None:
67
+ pulumi.set(__self__, "linked_sso_id", linked_sso_id)
68
+ if linked_sso_type is not None:
69
+ pulumi.set(__self__, "linked_sso_type", linked_sso_type)
70
+ if name is not None:
71
+ pulumi.set(__self__, "name", name)
72
+ if notification_configs is not None:
73
+ pulumi.set(__self__, "notification_configs", notification_configs)
74
+ if org_id is not None:
75
+ pulumi.set(__self__, "org_id", org_id)
76
+ if project_id is not None:
77
+ pulumi.set(__self__, "project_id", project_id)
78
+ if sso_group_id is not None:
79
+ pulumi.set(__self__, "sso_group_id", sso_group_id)
80
+ if sso_group_name is not None:
81
+ pulumi.set(__self__, "sso_group_name", sso_group_name)
82
+ if sso_linked is not None:
83
+ pulumi.set(__self__, "sso_linked", sso_linked)
84
+ if tags is not None:
85
+ pulumi.set(__self__, "tags", tags)
86
+ if user_emails is not None:
87
+ pulumi.set(__self__, "user_emails", user_emails)
88
+ if users is not None:
89
+ pulumi.set(__self__, "users", users)
90
+
91
+ @property
92
+ @pulumi.getter
93
+ def identifier(self) -> pulumi.Input[str]:
94
+ """
95
+ Unique identifier of the resource.
96
+ """
97
+ return pulumi.get(self, "identifier")
98
+
99
+ @identifier.setter
100
+ def identifier(self, value: pulumi.Input[str]):
101
+ pulumi.set(self, "identifier", value)
102
+
103
+ @property
104
+ @pulumi.getter
105
+ def description(self) -> Optional[pulumi.Input[str]]:
106
+ """
107
+ Description of the resource.
108
+ """
109
+ return pulumi.get(self, "description")
110
+
111
+ @description.setter
112
+ def description(self, value: Optional[pulumi.Input[str]]):
113
+ pulumi.set(self, "description", value)
114
+
115
+ @property
116
+ @pulumi.getter(name="externallyManaged")
117
+ def externally_managed(self) -> Optional[pulumi.Input[bool]]:
118
+ """
119
+ Whether the user group is externally managed.
120
+ """
121
+ return pulumi.get(self, "externally_managed")
122
+
123
+ @externally_managed.setter
124
+ def externally_managed(self, value: Optional[pulumi.Input[bool]]):
125
+ pulumi.set(self, "externally_managed", value)
126
+
127
+ @property
128
+ @pulumi.getter(name="linkedSsoDisplayName")
129
+ def linked_sso_display_name(self) -> Optional[pulumi.Input[str]]:
130
+ """
131
+ Name of the linked SSO.
132
+ """
133
+ return pulumi.get(self, "linked_sso_display_name")
134
+
135
+ @linked_sso_display_name.setter
136
+ def linked_sso_display_name(self, value: Optional[pulumi.Input[str]]):
137
+ pulumi.set(self, "linked_sso_display_name", value)
138
+
139
+ @property
140
+ @pulumi.getter(name="linkedSsoId")
141
+ def linked_sso_id(self) -> Optional[pulumi.Input[str]]:
142
+ """
143
+ The SSO account ID that the user group is linked to.
144
+ """
145
+ return pulumi.get(self, "linked_sso_id")
146
+
147
+ @linked_sso_id.setter
148
+ def linked_sso_id(self, value: Optional[pulumi.Input[str]]):
149
+ pulumi.set(self, "linked_sso_id", value)
150
+
151
+ @property
152
+ @pulumi.getter(name="linkedSsoType")
153
+ def linked_sso_type(self) -> Optional[pulumi.Input[str]]:
154
+ """
155
+ Type of linked SSO.
156
+ """
157
+ return pulumi.get(self, "linked_sso_type")
158
+
159
+ @linked_sso_type.setter
160
+ def linked_sso_type(self, value: Optional[pulumi.Input[str]]):
161
+ pulumi.set(self, "linked_sso_type", value)
162
+
163
+ @property
164
+ @pulumi.getter
165
+ def name(self) -> Optional[pulumi.Input[str]]:
166
+ """
167
+ Name of the resource.
168
+ """
169
+ return pulumi.get(self, "name")
170
+
171
+ @name.setter
172
+ def name(self, value: Optional[pulumi.Input[str]]):
173
+ pulumi.set(self, "name", value)
174
+
175
+ @property
176
+ @pulumi.getter(name="notificationConfigs")
177
+ def notification_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['UsergroupNotificationConfigArgs']]]]:
178
+ """
179
+ List of notification settings.
180
+ """
181
+ return pulumi.get(self, "notification_configs")
182
+
183
+ @notification_configs.setter
184
+ def notification_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['UsergroupNotificationConfigArgs']]]]):
185
+ pulumi.set(self, "notification_configs", value)
186
+
187
+ @property
188
+ @pulumi.getter(name="orgId")
189
+ def org_id(self) -> Optional[pulumi.Input[str]]:
190
+ """
191
+ Unique identifier of the organization.
192
+ """
193
+ return pulumi.get(self, "org_id")
194
+
195
+ @org_id.setter
196
+ def org_id(self, value: Optional[pulumi.Input[str]]):
197
+ pulumi.set(self, "org_id", value)
198
+
199
+ @property
200
+ @pulumi.getter(name="projectId")
201
+ def project_id(self) -> Optional[pulumi.Input[str]]:
202
+ """
203
+ Unique identifier of the project.
204
+ """
205
+ return pulumi.get(self, "project_id")
206
+
207
+ @project_id.setter
208
+ def project_id(self, value: Optional[pulumi.Input[str]]):
209
+ pulumi.set(self, "project_id", value)
210
+
211
+ @property
212
+ @pulumi.getter(name="ssoGroupId")
213
+ def sso_group_id(self) -> Optional[pulumi.Input[str]]:
214
+ """
215
+ Identifier of the userGroup in SSO.
216
+ """
217
+ return pulumi.get(self, "sso_group_id")
218
+
219
+ @sso_group_id.setter
220
+ def sso_group_id(self, value: Optional[pulumi.Input[str]]):
221
+ pulumi.set(self, "sso_group_id", value)
222
+
223
+ @property
224
+ @pulumi.getter(name="ssoGroupName")
225
+ def sso_group_name(self) -> Optional[pulumi.Input[str]]:
226
+ """
227
+ Name of the SSO userGroup.
228
+ """
229
+ return pulumi.get(self, "sso_group_name")
230
+
231
+ @sso_group_name.setter
232
+ def sso_group_name(self, value: Optional[pulumi.Input[str]]):
233
+ pulumi.set(self, "sso_group_name", value)
234
+
235
+ @property
236
+ @pulumi.getter(name="ssoLinked")
237
+ def sso_linked(self) -> Optional[pulumi.Input[bool]]:
238
+ """
239
+ Whether sso is linked or not.
240
+ """
241
+ return pulumi.get(self, "sso_linked")
242
+
243
+ @sso_linked.setter
244
+ def sso_linked(self, value: Optional[pulumi.Input[bool]]):
245
+ pulumi.set(self, "sso_linked", value)
246
+
247
+ @property
248
+ @pulumi.getter
249
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
250
+ """
251
+ Tags to associate with the resource.
252
+ """
253
+ return pulumi.get(self, "tags")
254
+
255
+ @tags.setter
256
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
257
+ pulumi.set(self, "tags", value)
258
+
259
+ @property
260
+ @pulumi.getter(name="userEmails")
261
+ def user_emails(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
262
+ """
263
+ List of user emails in the UserGroup. Either provide list of users or list of user emails.
264
+ """
265
+ return pulumi.get(self, "user_emails")
266
+
267
+ @user_emails.setter
268
+ def user_emails(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
269
+ pulumi.set(self, "user_emails", value)
270
+
271
+ @property
272
+ @pulumi.getter
273
+ def users(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
274
+ """
275
+ List of users in the UserGroup. Either provide list of users or list of user emails.
276
+ """
277
+ return pulumi.get(self, "users")
278
+
279
+ @users.setter
280
+ def users(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
281
+ pulumi.set(self, "users", value)
282
+
283
+
284
+ @pulumi.input_type
285
+ class _UsergroupState:
286
+ def __init__(__self__, *,
287
+ description: Optional[pulumi.Input[str]] = None,
288
+ externally_managed: Optional[pulumi.Input[bool]] = None,
289
+ identifier: Optional[pulumi.Input[str]] = None,
290
+ linked_sso_display_name: Optional[pulumi.Input[str]] = None,
291
+ linked_sso_id: Optional[pulumi.Input[str]] = None,
292
+ linked_sso_type: Optional[pulumi.Input[str]] = None,
293
+ name: Optional[pulumi.Input[str]] = None,
294
+ notification_configs: Optional[pulumi.Input[Sequence[pulumi.Input['UsergroupNotificationConfigArgs']]]] = None,
295
+ org_id: Optional[pulumi.Input[str]] = None,
296
+ project_id: Optional[pulumi.Input[str]] = None,
297
+ sso_group_id: Optional[pulumi.Input[str]] = None,
298
+ sso_group_name: Optional[pulumi.Input[str]] = None,
299
+ sso_linked: Optional[pulumi.Input[bool]] = None,
300
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
301
+ user_emails: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
302
+ users: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
303
+ """
304
+ Input properties used for looking up and filtering Usergroup resources.
305
+ :param pulumi.Input[str] description: Description of the resource.
306
+ :param pulumi.Input[bool] externally_managed: Whether the user group is externally managed.
307
+ :param pulumi.Input[str] identifier: Unique identifier of the resource.
308
+ :param pulumi.Input[str] linked_sso_display_name: Name of the linked SSO.
309
+ :param pulumi.Input[str] linked_sso_id: The SSO account ID that the user group is linked to.
310
+ :param pulumi.Input[str] linked_sso_type: Type of linked SSO.
311
+ :param pulumi.Input[str] name: Name of the resource.
312
+ :param pulumi.Input[Sequence[pulumi.Input['UsergroupNotificationConfigArgs']]] notification_configs: List of notification settings.
313
+ :param pulumi.Input[str] org_id: Unique identifier of the organization.
314
+ :param pulumi.Input[str] project_id: Unique identifier of the project.
315
+ :param pulumi.Input[str] sso_group_id: Identifier of the userGroup in SSO.
316
+ :param pulumi.Input[str] sso_group_name: Name of the SSO userGroup.
317
+ :param pulumi.Input[bool] sso_linked: Whether sso is linked or not.
318
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: Tags to associate with the resource.
319
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] user_emails: List of user emails in the UserGroup. Either provide list of users or list of user emails.
320
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] users: List of users in the UserGroup. Either provide list of users or list of user emails.
321
+ """
322
+ if description is not None:
323
+ pulumi.set(__self__, "description", description)
324
+ if externally_managed is not None:
325
+ pulumi.set(__self__, "externally_managed", externally_managed)
326
+ if identifier is not None:
327
+ pulumi.set(__self__, "identifier", identifier)
328
+ if linked_sso_display_name is not None:
329
+ pulumi.set(__self__, "linked_sso_display_name", linked_sso_display_name)
330
+ if linked_sso_id is not None:
331
+ pulumi.set(__self__, "linked_sso_id", linked_sso_id)
332
+ if linked_sso_type is not None:
333
+ pulumi.set(__self__, "linked_sso_type", linked_sso_type)
334
+ if name is not None:
335
+ pulumi.set(__self__, "name", name)
336
+ if notification_configs is not None:
337
+ pulumi.set(__self__, "notification_configs", notification_configs)
338
+ if org_id is not None:
339
+ pulumi.set(__self__, "org_id", org_id)
340
+ if project_id is not None:
341
+ pulumi.set(__self__, "project_id", project_id)
342
+ if sso_group_id is not None:
343
+ pulumi.set(__self__, "sso_group_id", sso_group_id)
344
+ if sso_group_name is not None:
345
+ pulumi.set(__self__, "sso_group_name", sso_group_name)
346
+ if sso_linked is not None:
347
+ pulumi.set(__self__, "sso_linked", sso_linked)
348
+ if tags is not None:
349
+ pulumi.set(__self__, "tags", tags)
350
+ if user_emails is not None:
351
+ pulumi.set(__self__, "user_emails", user_emails)
352
+ if users is not None:
353
+ pulumi.set(__self__, "users", users)
354
+
355
+ @property
356
+ @pulumi.getter
357
+ def description(self) -> Optional[pulumi.Input[str]]:
358
+ """
359
+ Description of the resource.
360
+ """
361
+ return pulumi.get(self, "description")
362
+
363
+ @description.setter
364
+ def description(self, value: Optional[pulumi.Input[str]]):
365
+ pulumi.set(self, "description", value)
366
+
367
+ @property
368
+ @pulumi.getter(name="externallyManaged")
369
+ def externally_managed(self) -> Optional[pulumi.Input[bool]]:
370
+ """
371
+ Whether the user group is externally managed.
372
+ """
373
+ return pulumi.get(self, "externally_managed")
374
+
375
+ @externally_managed.setter
376
+ def externally_managed(self, value: Optional[pulumi.Input[bool]]):
377
+ pulumi.set(self, "externally_managed", value)
378
+
379
+ @property
380
+ @pulumi.getter
381
+ def identifier(self) -> Optional[pulumi.Input[str]]:
382
+ """
383
+ Unique identifier of the resource.
384
+ """
385
+ return pulumi.get(self, "identifier")
386
+
387
+ @identifier.setter
388
+ def identifier(self, value: Optional[pulumi.Input[str]]):
389
+ pulumi.set(self, "identifier", value)
390
+
391
+ @property
392
+ @pulumi.getter(name="linkedSsoDisplayName")
393
+ def linked_sso_display_name(self) -> Optional[pulumi.Input[str]]:
394
+ """
395
+ Name of the linked SSO.
396
+ """
397
+ return pulumi.get(self, "linked_sso_display_name")
398
+
399
+ @linked_sso_display_name.setter
400
+ def linked_sso_display_name(self, value: Optional[pulumi.Input[str]]):
401
+ pulumi.set(self, "linked_sso_display_name", value)
402
+
403
+ @property
404
+ @pulumi.getter(name="linkedSsoId")
405
+ def linked_sso_id(self) -> Optional[pulumi.Input[str]]:
406
+ """
407
+ The SSO account ID that the user group is linked to.
408
+ """
409
+ return pulumi.get(self, "linked_sso_id")
410
+
411
+ @linked_sso_id.setter
412
+ def linked_sso_id(self, value: Optional[pulumi.Input[str]]):
413
+ pulumi.set(self, "linked_sso_id", value)
414
+
415
+ @property
416
+ @pulumi.getter(name="linkedSsoType")
417
+ def linked_sso_type(self) -> Optional[pulumi.Input[str]]:
418
+ """
419
+ Type of linked SSO.
420
+ """
421
+ return pulumi.get(self, "linked_sso_type")
422
+
423
+ @linked_sso_type.setter
424
+ def linked_sso_type(self, value: Optional[pulumi.Input[str]]):
425
+ pulumi.set(self, "linked_sso_type", value)
426
+
427
+ @property
428
+ @pulumi.getter
429
+ def name(self) -> Optional[pulumi.Input[str]]:
430
+ """
431
+ Name of the resource.
432
+ """
433
+ return pulumi.get(self, "name")
434
+
435
+ @name.setter
436
+ def name(self, value: Optional[pulumi.Input[str]]):
437
+ pulumi.set(self, "name", value)
438
+
439
+ @property
440
+ @pulumi.getter(name="notificationConfigs")
441
+ def notification_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['UsergroupNotificationConfigArgs']]]]:
442
+ """
443
+ List of notification settings.
444
+ """
445
+ return pulumi.get(self, "notification_configs")
446
+
447
+ @notification_configs.setter
448
+ def notification_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['UsergroupNotificationConfigArgs']]]]):
449
+ pulumi.set(self, "notification_configs", value)
450
+
451
+ @property
452
+ @pulumi.getter(name="orgId")
453
+ def org_id(self) -> Optional[pulumi.Input[str]]:
454
+ """
455
+ Unique identifier of the organization.
456
+ """
457
+ return pulumi.get(self, "org_id")
458
+
459
+ @org_id.setter
460
+ def org_id(self, value: Optional[pulumi.Input[str]]):
461
+ pulumi.set(self, "org_id", value)
462
+
463
+ @property
464
+ @pulumi.getter(name="projectId")
465
+ def project_id(self) -> Optional[pulumi.Input[str]]:
466
+ """
467
+ Unique identifier of the project.
468
+ """
469
+ return pulumi.get(self, "project_id")
470
+
471
+ @project_id.setter
472
+ def project_id(self, value: Optional[pulumi.Input[str]]):
473
+ pulumi.set(self, "project_id", value)
474
+
475
+ @property
476
+ @pulumi.getter(name="ssoGroupId")
477
+ def sso_group_id(self) -> Optional[pulumi.Input[str]]:
478
+ """
479
+ Identifier of the userGroup in SSO.
480
+ """
481
+ return pulumi.get(self, "sso_group_id")
482
+
483
+ @sso_group_id.setter
484
+ def sso_group_id(self, value: Optional[pulumi.Input[str]]):
485
+ pulumi.set(self, "sso_group_id", value)
486
+
487
+ @property
488
+ @pulumi.getter(name="ssoGroupName")
489
+ def sso_group_name(self) -> Optional[pulumi.Input[str]]:
490
+ """
491
+ Name of the SSO userGroup.
492
+ """
493
+ return pulumi.get(self, "sso_group_name")
494
+
495
+ @sso_group_name.setter
496
+ def sso_group_name(self, value: Optional[pulumi.Input[str]]):
497
+ pulumi.set(self, "sso_group_name", value)
498
+
499
+ @property
500
+ @pulumi.getter(name="ssoLinked")
501
+ def sso_linked(self) -> Optional[pulumi.Input[bool]]:
502
+ """
503
+ Whether sso is linked or not.
504
+ """
505
+ return pulumi.get(self, "sso_linked")
506
+
507
+ @sso_linked.setter
508
+ def sso_linked(self, value: Optional[pulumi.Input[bool]]):
509
+ pulumi.set(self, "sso_linked", value)
510
+
511
+ @property
512
+ @pulumi.getter
513
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
514
+ """
515
+ Tags to associate with the resource.
516
+ """
517
+ return pulumi.get(self, "tags")
518
+
519
+ @tags.setter
520
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
521
+ pulumi.set(self, "tags", value)
522
+
523
+ @property
524
+ @pulumi.getter(name="userEmails")
525
+ def user_emails(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
526
+ """
527
+ List of user emails in the UserGroup. Either provide list of users or list of user emails.
528
+ """
529
+ return pulumi.get(self, "user_emails")
530
+
531
+ @user_emails.setter
532
+ def user_emails(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
533
+ pulumi.set(self, "user_emails", value)
534
+
535
+ @property
536
+ @pulumi.getter
537
+ def users(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
538
+ """
539
+ List of users in the UserGroup. Either provide list of users or list of user emails.
540
+ """
541
+ return pulumi.get(self, "users")
542
+
543
+ @users.setter
544
+ def users(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
545
+ pulumi.set(self, "users", value)
546
+
547
+
548
+ class Usergroup(pulumi.CustomResource):
549
+ @overload
550
+ def __init__(__self__,
551
+ resource_name: str,
552
+ opts: Optional[pulumi.ResourceOptions] = None,
553
+ description: Optional[pulumi.Input[str]] = None,
554
+ externally_managed: Optional[pulumi.Input[bool]] = None,
555
+ identifier: Optional[pulumi.Input[str]] = None,
556
+ linked_sso_display_name: Optional[pulumi.Input[str]] = None,
557
+ linked_sso_id: Optional[pulumi.Input[str]] = None,
558
+ linked_sso_type: Optional[pulumi.Input[str]] = None,
559
+ name: Optional[pulumi.Input[str]] = None,
560
+ notification_configs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['UsergroupNotificationConfigArgs', 'UsergroupNotificationConfigArgsDict']]]]] = None,
561
+ org_id: Optional[pulumi.Input[str]] = None,
562
+ project_id: Optional[pulumi.Input[str]] = None,
563
+ sso_group_id: Optional[pulumi.Input[str]] = None,
564
+ sso_group_name: Optional[pulumi.Input[str]] = None,
565
+ sso_linked: Optional[pulumi.Input[bool]] = None,
566
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
567
+ user_emails: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
568
+ users: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
569
+ __props__=None):
570
+ """
571
+ ## Example Usage
572
+
573
+ ```python
574
+ import pulumi
575
+ import pulumi_harness as harness
576
+
577
+ sso_type_saml = harness.platform.Usergroup("sso_type_saml",
578
+ identifier="identifier",
579
+ name="name",
580
+ org_id="org_id",
581
+ project_id="project_id",
582
+ linked_sso_id="linked_sso_id",
583
+ externally_managed=False,
584
+ users=["user_id"],
585
+ notification_configs=[
586
+ {
587
+ "type": "SLACK",
588
+ "slack_webhook_url": "https://google.com",
589
+ },
590
+ {
591
+ "type": "EMAIL",
592
+ "group_email": "email@email.com",
593
+ "send_email_to_all_users": True,
594
+ },
595
+ {
596
+ "type": "MSTEAMS",
597
+ "microsoft_teams_webhook_url": "https://google.com",
598
+ },
599
+ {
600
+ "type": "PAGERDUTY",
601
+ "pager_duty_key": "pagerDutyKey",
602
+ },
603
+ ],
604
+ linked_sso_display_name="linked_sso_display_name",
605
+ sso_group_id="sso_group_name",
606
+ sso_group_name="sso_group_name",
607
+ linked_sso_type="SAML",
608
+ sso_linked=True)
609
+ sso_type_ldap = harness.platform.Usergroup("sso_type_ldap",
610
+ identifier="identifier",
611
+ name="name",
612
+ org_id="org_id",
613
+ project_id="project_id",
614
+ linked_sso_id="linked_sso_id",
615
+ externally_managed=False,
616
+ users=["user_id"],
617
+ notification_configs=[
618
+ {
619
+ "type": "SLACK",
620
+ "slack_webhook_url": "https://google.com",
621
+ },
622
+ {
623
+ "type": "EMAIL",
624
+ "group_email": "email@email.com",
625
+ "send_email_to_all_users": True,
626
+ },
627
+ {
628
+ "type": "MSTEAMS",
629
+ "microsoft_teams_webhook_url": "https://google.com",
630
+ },
631
+ {
632
+ "type": "PAGERDUTY",
633
+ "pager_duty_key": "pagerDutyKey",
634
+ },
635
+ ],
636
+ linked_sso_display_name="linked_sso_display_name",
637
+ sso_group_id="sso_group_id",
638
+ sso_group_name="sso_group_name",
639
+ linked_sso_type="LDAP",
640
+ sso_linked=True)
641
+ # Create user group by adding user emails
642
+ example = harness.platform.Usergroup("example",
643
+ identifier="identifier",
644
+ name="name",
645
+ org_id="org_id",
646
+ project_id="project_id",
647
+ linked_sso_id="linked_sso_id",
648
+ externally_managed=False,
649
+ user_emails=["user@email.com"],
650
+ notification_configs=[
651
+ {
652
+ "type": "SLACK",
653
+ "slack_webhook_url": "https://google.com",
654
+ },
655
+ {
656
+ "type": "EMAIL",
657
+ "group_email": "email@email.com",
658
+ "send_email_to_all_users": True,
659
+ },
660
+ {
661
+ "type": "MSTEAMS",
662
+ "microsoft_teams_webhook_url": "https://google.com",
663
+ },
664
+ {
665
+ "type": "PAGERDUTY",
666
+ "pager_duty_key": "pagerDutyKey",
667
+ },
668
+ ],
669
+ linked_sso_display_name="linked_sso_display_name",
670
+ sso_group_id="sso_group_name",
671
+ sso_group_name="sso_group_name",
672
+ linked_sso_type="SAML",
673
+ sso_linked=True)
674
+ ```
675
+
676
+ ## Import
677
+
678
+ Import account level user group
679
+
680
+ ```sh
681
+ $ pulumi import harness:platform/usergroup:Usergroup example <usergroup_id>
682
+ ```
683
+
684
+ Import org level user group
685
+
686
+ ```sh
687
+ $ pulumi import harness:platform/usergroup:Usergroup example <ord_id>/<usergroup_id>
688
+ ```
689
+
690
+ Import project level user group
691
+
692
+ ```sh
693
+ $ pulumi import harness:platform/usergroup:Usergroup example <org_id>/<project_id>/<usergroup_id>
694
+ ```
695
+
696
+ :param str resource_name: The name of the resource.
697
+ :param pulumi.ResourceOptions opts: Options for the resource.
698
+ :param pulumi.Input[str] description: Description of the resource.
699
+ :param pulumi.Input[bool] externally_managed: Whether the user group is externally managed.
700
+ :param pulumi.Input[str] identifier: Unique identifier of the resource.
701
+ :param pulumi.Input[str] linked_sso_display_name: Name of the linked SSO.
702
+ :param pulumi.Input[str] linked_sso_id: The SSO account ID that the user group is linked to.
703
+ :param pulumi.Input[str] linked_sso_type: Type of linked SSO.
704
+ :param pulumi.Input[str] name: Name of the resource.
705
+ :param pulumi.Input[Sequence[pulumi.Input[Union['UsergroupNotificationConfigArgs', 'UsergroupNotificationConfigArgsDict']]]] notification_configs: List of notification settings.
706
+ :param pulumi.Input[str] org_id: Unique identifier of the organization.
707
+ :param pulumi.Input[str] project_id: Unique identifier of the project.
708
+ :param pulumi.Input[str] sso_group_id: Identifier of the userGroup in SSO.
709
+ :param pulumi.Input[str] sso_group_name: Name of the SSO userGroup.
710
+ :param pulumi.Input[bool] sso_linked: Whether sso is linked or not.
711
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: Tags to associate with the resource.
712
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] user_emails: List of user emails in the UserGroup. Either provide list of users or list of user emails.
713
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] users: List of users in the UserGroup. Either provide list of users or list of user emails.
714
+ """
715
+ ...
716
+ @overload
717
+ def __init__(__self__,
718
+ resource_name: str,
719
+ args: UsergroupArgs,
720
+ opts: Optional[pulumi.ResourceOptions] = None):
721
+ """
722
+ ## Example Usage
723
+
724
+ ```python
725
+ import pulumi
726
+ import pulumi_harness as harness
727
+
728
+ sso_type_saml = harness.platform.Usergroup("sso_type_saml",
729
+ identifier="identifier",
730
+ name="name",
731
+ org_id="org_id",
732
+ project_id="project_id",
733
+ linked_sso_id="linked_sso_id",
734
+ externally_managed=False,
735
+ users=["user_id"],
736
+ notification_configs=[
737
+ {
738
+ "type": "SLACK",
739
+ "slack_webhook_url": "https://google.com",
740
+ },
741
+ {
742
+ "type": "EMAIL",
743
+ "group_email": "email@email.com",
744
+ "send_email_to_all_users": True,
745
+ },
746
+ {
747
+ "type": "MSTEAMS",
748
+ "microsoft_teams_webhook_url": "https://google.com",
749
+ },
750
+ {
751
+ "type": "PAGERDUTY",
752
+ "pager_duty_key": "pagerDutyKey",
753
+ },
754
+ ],
755
+ linked_sso_display_name="linked_sso_display_name",
756
+ sso_group_id="sso_group_name",
757
+ sso_group_name="sso_group_name",
758
+ linked_sso_type="SAML",
759
+ sso_linked=True)
760
+ sso_type_ldap = harness.platform.Usergroup("sso_type_ldap",
761
+ identifier="identifier",
762
+ name="name",
763
+ org_id="org_id",
764
+ project_id="project_id",
765
+ linked_sso_id="linked_sso_id",
766
+ externally_managed=False,
767
+ users=["user_id"],
768
+ notification_configs=[
769
+ {
770
+ "type": "SLACK",
771
+ "slack_webhook_url": "https://google.com",
772
+ },
773
+ {
774
+ "type": "EMAIL",
775
+ "group_email": "email@email.com",
776
+ "send_email_to_all_users": True,
777
+ },
778
+ {
779
+ "type": "MSTEAMS",
780
+ "microsoft_teams_webhook_url": "https://google.com",
781
+ },
782
+ {
783
+ "type": "PAGERDUTY",
784
+ "pager_duty_key": "pagerDutyKey",
785
+ },
786
+ ],
787
+ linked_sso_display_name="linked_sso_display_name",
788
+ sso_group_id="sso_group_id",
789
+ sso_group_name="sso_group_name",
790
+ linked_sso_type="LDAP",
791
+ sso_linked=True)
792
+ # Create user group by adding user emails
793
+ example = harness.platform.Usergroup("example",
794
+ identifier="identifier",
795
+ name="name",
796
+ org_id="org_id",
797
+ project_id="project_id",
798
+ linked_sso_id="linked_sso_id",
799
+ externally_managed=False,
800
+ user_emails=["user@email.com"],
801
+ notification_configs=[
802
+ {
803
+ "type": "SLACK",
804
+ "slack_webhook_url": "https://google.com",
805
+ },
806
+ {
807
+ "type": "EMAIL",
808
+ "group_email": "email@email.com",
809
+ "send_email_to_all_users": True,
810
+ },
811
+ {
812
+ "type": "MSTEAMS",
813
+ "microsoft_teams_webhook_url": "https://google.com",
814
+ },
815
+ {
816
+ "type": "PAGERDUTY",
817
+ "pager_duty_key": "pagerDutyKey",
818
+ },
819
+ ],
820
+ linked_sso_display_name="linked_sso_display_name",
821
+ sso_group_id="sso_group_name",
822
+ sso_group_name="sso_group_name",
823
+ linked_sso_type="SAML",
824
+ sso_linked=True)
825
+ ```
826
+
827
+ ## Import
828
+
829
+ Import account level user group
830
+
831
+ ```sh
832
+ $ pulumi import harness:platform/usergroup:Usergroup example <usergroup_id>
833
+ ```
834
+
835
+ Import org level user group
836
+
837
+ ```sh
838
+ $ pulumi import harness:platform/usergroup:Usergroup example <ord_id>/<usergroup_id>
839
+ ```
840
+
841
+ Import project level user group
842
+
843
+ ```sh
844
+ $ pulumi import harness:platform/usergroup:Usergroup example <org_id>/<project_id>/<usergroup_id>
845
+ ```
846
+
847
+ :param str resource_name: The name of the resource.
848
+ :param UsergroupArgs args: The arguments to use to populate this resource's properties.
849
+ :param pulumi.ResourceOptions opts: Options for the resource.
850
+ """
851
+ ...
852
+ def __init__(__self__, resource_name: str, *args, **kwargs):
853
+ resource_args, opts = _utilities.get_resource_args_opts(UsergroupArgs, pulumi.ResourceOptions, *args, **kwargs)
854
+ if resource_args is not None:
855
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
856
+ else:
857
+ __self__._internal_init(resource_name, *args, **kwargs)
858
+
859
+ def _internal_init(__self__,
860
+ resource_name: str,
861
+ opts: Optional[pulumi.ResourceOptions] = None,
862
+ description: Optional[pulumi.Input[str]] = None,
863
+ externally_managed: Optional[pulumi.Input[bool]] = None,
864
+ identifier: Optional[pulumi.Input[str]] = None,
865
+ linked_sso_display_name: Optional[pulumi.Input[str]] = None,
866
+ linked_sso_id: Optional[pulumi.Input[str]] = None,
867
+ linked_sso_type: Optional[pulumi.Input[str]] = None,
868
+ name: Optional[pulumi.Input[str]] = None,
869
+ notification_configs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['UsergroupNotificationConfigArgs', 'UsergroupNotificationConfigArgsDict']]]]] = None,
870
+ org_id: Optional[pulumi.Input[str]] = None,
871
+ project_id: Optional[pulumi.Input[str]] = None,
872
+ sso_group_id: Optional[pulumi.Input[str]] = None,
873
+ sso_group_name: Optional[pulumi.Input[str]] = None,
874
+ sso_linked: Optional[pulumi.Input[bool]] = None,
875
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
876
+ user_emails: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
877
+ users: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
878
+ __props__=None):
879
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
880
+ if not isinstance(opts, pulumi.ResourceOptions):
881
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
882
+ if opts.id is None:
883
+ if __props__ is not None:
884
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
885
+ __props__ = UsergroupArgs.__new__(UsergroupArgs)
886
+
887
+ __props__.__dict__["description"] = description
888
+ __props__.__dict__["externally_managed"] = externally_managed
889
+ if identifier is None and not opts.urn:
890
+ raise TypeError("Missing required property 'identifier'")
891
+ __props__.__dict__["identifier"] = identifier
892
+ __props__.__dict__["linked_sso_display_name"] = linked_sso_display_name
893
+ __props__.__dict__["linked_sso_id"] = linked_sso_id
894
+ __props__.__dict__["linked_sso_type"] = linked_sso_type
895
+ __props__.__dict__["name"] = name
896
+ __props__.__dict__["notification_configs"] = notification_configs
897
+ __props__.__dict__["org_id"] = org_id
898
+ __props__.__dict__["project_id"] = project_id
899
+ __props__.__dict__["sso_group_id"] = sso_group_id
900
+ __props__.__dict__["sso_group_name"] = sso_group_name
901
+ __props__.__dict__["sso_linked"] = sso_linked
902
+ __props__.__dict__["tags"] = tags
903
+ __props__.__dict__["user_emails"] = user_emails
904
+ __props__.__dict__["users"] = users
905
+ super(Usergroup, __self__).__init__(
906
+ 'harness:platform/usergroup:Usergroup',
907
+ resource_name,
908
+ __props__,
909
+ opts)
910
+
911
+ @staticmethod
912
+ def get(resource_name: str,
913
+ id: pulumi.Input[str],
914
+ opts: Optional[pulumi.ResourceOptions] = None,
915
+ description: Optional[pulumi.Input[str]] = None,
916
+ externally_managed: Optional[pulumi.Input[bool]] = None,
917
+ identifier: Optional[pulumi.Input[str]] = None,
918
+ linked_sso_display_name: Optional[pulumi.Input[str]] = None,
919
+ linked_sso_id: Optional[pulumi.Input[str]] = None,
920
+ linked_sso_type: Optional[pulumi.Input[str]] = None,
921
+ name: Optional[pulumi.Input[str]] = None,
922
+ notification_configs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['UsergroupNotificationConfigArgs', 'UsergroupNotificationConfigArgsDict']]]]] = None,
923
+ org_id: Optional[pulumi.Input[str]] = None,
924
+ project_id: Optional[pulumi.Input[str]] = None,
925
+ sso_group_id: Optional[pulumi.Input[str]] = None,
926
+ sso_group_name: Optional[pulumi.Input[str]] = None,
927
+ sso_linked: Optional[pulumi.Input[bool]] = None,
928
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
929
+ user_emails: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
930
+ users: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None) -> 'Usergroup':
931
+ """
932
+ Get an existing Usergroup resource's state with the given name, id, and optional extra
933
+ properties used to qualify the lookup.
934
+
935
+ :param str resource_name: The unique name of the resulting resource.
936
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
937
+ :param pulumi.ResourceOptions opts: Options for the resource.
938
+ :param pulumi.Input[str] description: Description of the resource.
939
+ :param pulumi.Input[bool] externally_managed: Whether the user group is externally managed.
940
+ :param pulumi.Input[str] identifier: Unique identifier of the resource.
941
+ :param pulumi.Input[str] linked_sso_display_name: Name of the linked SSO.
942
+ :param pulumi.Input[str] linked_sso_id: The SSO account ID that the user group is linked to.
943
+ :param pulumi.Input[str] linked_sso_type: Type of linked SSO.
944
+ :param pulumi.Input[str] name: Name of the resource.
945
+ :param pulumi.Input[Sequence[pulumi.Input[Union['UsergroupNotificationConfigArgs', 'UsergroupNotificationConfigArgsDict']]]] notification_configs: List of notification settings.
946
+ :param pulumi.Input[str] org_id: Unique identifier of the organization.
947
+ :param pulumi.Input[str] project_id: Unique identifier of the project.
948
+ :param pulumi.Input[str] sso_group_id: Identifier of the userGroup in SSO.
949
+ :param pulumi.Input[str] sso_group_name: Name of the SSO userGroup.
950
+ :param pulumi.Input[bool] sso_linked: Whether sso is linked or not.
951
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: Tags to associate with the resource.
952
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] user_emails: List of user emails in the UserGroup. Either provide list of users or list of user emails.
953
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] users: List of users in the UserGroup. Either provide list of users or list of user emails.
954
+ """
955
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
956
+
957
+ __props__ = _UsergroupState.__new__(_UsergroupState)
958
+
959
+ __props__.__dict__["description"] = description
960
+ __props__.__dict__["externally_managed"] = externally_managed
961
+ __props__.__dict__["identifier"] = identifier
962
+ __props__.__dict__["linked_sso_display_name"] = linked_sso_display_name
963
+ __props__.__dict__["linked_sso_id"] = linked_sso_id
964
+ __props__.__dict__["linked_sso_type"] = linked_sso_type
965
+ __props__.__dict__["name"] = name
966
+ __props__.__dict__["notification_configs"] = notification_configs
967
+ __props__.__dict__["org_id"] = org_id
968
+ __props__.__dict__["project_id"] = project_id
969
+ __props__.__dict__["sso_group_id"] = sso_group_id
970
+ __props__.__dict__["sso_group_name"] = sso_group_name
971
+ __props__.__dict__["sso_linked"] = sso_linked
972
+ __props__.__dict__["tags"] = tags
973
+ __props__.__dict__["user_emails"] = user_emails
974
+ __props__.__dict__["users"] = users
975
+ return Usergroup(resource_name, opts=opts, __props__=__props__)
976
+
977
+ @property
978
+ @pulumi.getter
979
+ def description(self) -> pulumi.Output[Optional[str]]:
980
+ """
981
+ Description of the resource.
982
+ """
983
+ return pulumi.get(self, "description")
984
+
985
+ @property
986
+ @pulumi.getter(name="externallyManaged")
987
+ def externally_managed(self) -> pulumi.Output[Optional[bool]]:
988
+ """
989
+ Whether the user group is externally managed.
990
+ """
991
+ return pulumi.get(self, "externally_managed")
992
+
993
+ @property
994
+ @pulumi.getter
995
+ def identifier(self) -> pulumi.Output[str]:
996
+ """
997
+ Unique identifier of the resource.
998
+ """
999
+ return pulumi.get(self, "identifier")
1000
+
1001
+ @property
1002
+ @pulumi.getter(name="linkedSsoDisplayName")
1003
+ def linked_sso_display_name(self) -> pulumi.Output[Optional[str]]:
1004
+ """
1005
+ Name of the linked SSO.
1006
+ """
1007
+ return pulumi.get(self, "linked_sso_display_name")
1008
+
1009
+ @property
1010
+ @pulumi.getter(name="linkedSsoId")
1011
+ def linked_sso_id(self) -> pulumi.Output[Optional[str]]:
1012
+ """
1013
+ The SSO account ID that the user group is linked to.
1014
+ """
1015
+ return pulumi.get(self, "linked_sso_id")
1016
+
1017
+ @property
1018
+ @pulumi.getter(name="linkedSsoType")
1019
+ def linked_sso_type(self) -> pulumi.Output[Optional[str]]:
1020
+ """
1021
+ Type of linked SSO.
1022
+ """
1023
+ return pulumi.get(self, "linked_sso_type")
1024
+
1025
+ @property
1026
+ @pulumi.getter
1027
+ def name(self) -> pulumi.Output[str]:
1028
+ """
1029
+ Name of the resource.
1030
+ """
1031
+ return pulumi.get(self, "name")
1032
+
1033
+ @property
1034
+ @pulumi.getter(name="notificationConfigs")
1035
+ def notification_configs(self) -> pulumi.Output[Optional[Sequence['outputs.UsergroupNotificationConfig']]]:
1036
+ """
1037
+ List of notification settings.
1038
+ """
1039
+ return pulumi.get(self, "notification_configs")
1040
+
1041
+ @property
1042
+ @pulumi.getter(name="orgId")
1043
+ def org_id(self) -> pulumi.Output[Optional[str]]:
1044
+ """
1045
+ Unique identifier of the organization.
1046
+ """
1047
+ return pulumi.get(self, "org_id")
1048
+
1049
+ @property
1050
+ @pulumi.getter(name="projectId")
1051
+ def project_id(self) -> pulumi.Output[Optional[str]]:
1052
+ """
1053
+ Unique identifier of the project.
1054
+ """
1055
+ return pulumi.get(self, "project_id")
1056
+
1057
+ @property
1058
+ @pulumi.getter(name="ssoGroupId")
1059
+ def sso_group_id(self) -> pulumi.Output[Optional[str]]:
1060
+ """
1061
+ Identifier of the userGroup in SSO.
1062
+ """
1063
+ return pulumi.get(self, "sso_group_id")
1064
+
1065
+ @property
1066
+ @pulumi.getter(name="ssoGroupName")
1067
+ def sso_group_name(self) -> pulumi.Output[Optional[str]]:
1068
+ """
1069
+ Name of the SSO userGroup.
1070
+ """
1071
+ return pulumi.get(self, "sso_group_name")
1072
+
1073
+ @property
1074
+ @pulumi.getter(name="ssoLinked")
1075
+ def sso_linked(self) -> pulumi.Output[bool]:
1076
+ """
1077
+ Whether sso is linked or not.
1078
+ """
1079
+ return pulumi.get(self, "sso_linked")
1080
+
1081
+ @property
1082
+ @pulumi.getter
1083
+ def tags(self) -> pulumi.Output[Optional[Sequence[str]]]:
1084
+ """
1085
+ Tags to associate with the resource.
1086
+ """
1087
+ return pulumi.get(self, "tags")
1088
+
1089
+ @property
1090
+ @pulumi.getter(name="userEmails")
1091
+ def user_emails(self) -> pulumi.Output[Optional[Sequence[str]]]:
1092
+ """
1093
+ List of user emails in the UserGroup. Either provide list of users or list of user emails.
1094
+ """
1095
+ return pulumi.get(self, "user_emails")
1096
+
1097
+ @property
1098
+ @pulumi.getter
1099
+ def users(self) -> pulumi.Output[Optional[Sequence[str]]]:
1100
+ """
1101
+ List of users in the UserGroup. Either provide list of users or list of user emails.
1102
+ """
1103
+ return pulumi.get(self, "users")
1104
+