pulumi-azuredevops 2.16.0a1710156155__py3-none-any.whl → 3.6.0a1736832240__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.
Files changed (188) hide show
  1. pulumi_azuredevops/__init__.py +123 -174
  2. pulumi_azuredevops/_inputs.py +1742 -110
  3. pulumi_azuredevops/_utilities.py +41 -5
  4. pulumi_azuredevops/area_permissions.py +9 -6
  5. pulumi_azuredevops/branch_policy_auto_reviewers.py +52 -49
  6. pulumi_azuredevops/branch_policy_build_validation.py +86 -79
  7. pulumi_azuredevops/branch_policy_comment_resolution.py +60 -57
  8. pulumi_azuredevops/branch_policy_merge_types.py +68 -65
  9. pulumi_azuredevops/branch_policy_min_reviewers.py +72 -71
  10. pulumi_azuredevops/branch_policy_status_check.py +66 -61
  11. pulumi_azuredevops/branch_policy_work_item_linking.py +60 -57
  12. pulumi_azuredevops/build_definition.py +380 -200
  13. pulumi_azuredevops/build_definition_permissions.py +186 -165
  14. pulumi_azuredevops/build_folder.py +13 -10
  15. pulumi_azuredevops/build_folder_permissions.py +33 -32
  16. pulumi_azuredevops/check_approval.py +49 -16
  17. pulumi_azuredevops/check_branch_control.py +139 -110
  18. pulumi_azuredevops/check_business_hours.py +137 -108
  19. pulumi_azuredevops/check_exclusive_lock.py +107 -30
  20. pulumi_azuredevops/check_required_template.py +96 -67
  21. pulumi_azuredevops/config/__init__.pyi +87 -0
  22. pulumi_azuredevops/config/vars.py +125 -0
  23. pulumi_azuredevops/elastic_pool.py +78 -26
  24. pulumi_azuredevops/environment.py +17 -10
  25. pulumi_azuredevops/environment_resource_kubernetes.py +534 -0
  26. pulumi_azuredevops/feed.py +372 -0
  27. pulumi_azuredevops/feed_permission.py +415 -0
  28. pulumi_azuredevops/get_agent_queue.py +28 -19
  29. pulumi_azuredevops/get_area.py +28 -15
  30. pulumi_azuredevops/get_build_definition.py +32 -15
  31. pulumi_azuredevops/get_client_config.py +12 -9
  32. pulumi_azuredevops/get_environment.py +72 -5
  33. pulumi_azuredevops/get_feed.py +186 -0
  34. pulumi_azuredevops/get_git_repository.py +39 -10
  35. pulumi_azuredevops/get_group.py +55 -22
  36. pulumi_azuredevops/get_groups.py +18 -9
  37. pulumi_azuredevops/get_identity_group.py +152 -0
  38. pulumi_azuredevops/get_identity_groups.py +140 -0
  39. pulumi_azuredevops/get_identity_users.py +122 -0
  40. pulumi_azuredevops/get_iteration.py +24 -11
  41. pulumi_azuredevops/get_pool.py +16 -9
  42. pulumi_azuredevops/get_pools.py +12 -9
  43. pulumi_azuredevops/get_project.py +22 -10
  44. pulumi_azuredevops/get_projects.py +16 -9
  45. pulumi_azuredevops/get_repositories.py +22 -9
  46. pulumi_azuredevops/get_securityrole_definitions.py +141 -0
  47. pulumi_azuredevops/get_service_endpoint_azure_rm.py +70 -26
  48. pulumi_azuredevops/get_service_endpoint_github.py +19 -13
  49. pulumi_azuredevops/get_serviceendpoint_azurecr.py +31 -11
  50. pulumi_azuredevops/get_serviceendpoint_bitbucket.py +219 -0
  51. pulumi_azuredevops/get_serviceendpoint_npm.py +22 -11
  52. pulumi_azuredevops/get_serviceendpoint_sonarcloud.py +21 -11
  53. pulumi_azuredevops/get_team.py +29 -15
  54. pulumi_azuredevops/get_teams.py +16 -9
  55. pulumi_azuredevops/get_users.py +26 -87
  56. pulumi_azuredevops/get_variable_group.py +27 -17
  57. pulumi_azuredevops/git.py +57 -99
  58. pulumi_azuredevops/git_permissions.py +78 -75
  59. pulumi_azuredevops/git_repository_branch.py +29 -20
  60. pulumi_azuredevops/git_repository_file.py +23 -18
  61. pulumi_azuredevops/group.py +43 -16
  62. pulumi_azuredevops/group_entitlement.py +5 -8
  63. pulumi_azuredevops/group_membership.py +57 -30
  64. pulumi_azuredevops/iterative_permissions.py +9 -6
  65. pulumi_azuredevops/library_permissions.py +451 -0
  66. pulumi_azuredevops/outputs.py +460 -56
  67. pulumi_azuredevops/pipeline_authorization.py +136 -47
  68. pulumi_azuredevops/pool.py +7 -6
  69. pulumi_azuredevops/project.py +19 -18
  70. pulumi_azuredevops/project_features.py +9 -8
  71. pulumi_azuredevops/project_permissions.py +9 -6
  72. pulumi_azuredevops/project_pipeline_settings.py +15 -12
  73. pulumi_azuredevops/provider.py +491 -2
  74. pulumi_azuredevops/pulumi-plugin.json +2 -1
  75. pulumi_azuredevops/queue.py +23 -24
  76. pulumi_azuredevops/repository_policy_author_email_pattern.py +37 -34
  77. pulumi_azuredevops/repository_policy_case_enforcement.py +37 -34
  78. pulumi_azuredevops/repository_policy_check_credentials.py +37 -34
  79. pulumi_azuredevops/repository_policy_file_path_pattern.py +31 -28
  80. pulumi_azuredevops/repository_policy_max_file_size.py +44 -41
  81. pulumi_azuredevops/repository_policy_max_path_length.py +37 -34
  82. pulumi_azuredevops/repository_policy_reserved_names.py +37 -34
  83. pulumi_azuredevops/resource_authorization.py +23 -20
  84. pulumi_azuredevops/securityrole_assignment.py +295 -0
  85. pulumi_azuredevops/service_endpoint_artifactory.py +49 -48
  86. pulumi_azuredevops/service_endpoint_aws.py +99 -51
  87. pulumi_azuredevops/service_endpoint_azure_dev_ops.py +17 -14
  88. pulumi_azuredevops/service_endpoint_azure_ecr.py +275 -33
  89. pulumi_azuredevops/service_endpoint_azure_rm.py +236 -114
  90. pulumi_azuredevops/service_endpoint_bit_bucket.py +19 -18
  91. pulumi_azuredevops/service_endpoint_docker_registry.py +17 -16
  92. pulumi_azuredevops/service_endpoint_generic.py +19 -20
  93. pulumi_azuredevops/service_endpoint_generic_git.py +17 -14
  94. pulumi_azuredevops/service_endpoint_git_hub.py +57 -60
  95. pulumi_azuredevops/service_endpoint_git_hub_enterprise.py +26 -23
  96. pulumi_azuredevops/{serviceendpoint/bit_bucket.py → service_endpoint_git_lab.py} +147 -100
  97. pulumi_azuredevops/service_endpoint_kubernetes.py +160 -17
  98. pulumi_azuredevops/service_endpoint_npm.py +17 -14
  99. pulumi_azuredevops/service_endpoint_pipeline.py +28 -25
  100. pulumi_azuredevops/service_endpoint_service_fabric.py +42 -95
  101. pulumi_azuredevops/service_endpoint_sonar_cloud.py +17 -14
  102. pulumi_azuredevops/service_endpoint_sonar_qube.py +17 -14
  103. pulumi_azuredevops/service_endpoint_ssh.py +17 -14
  104. pulumi_azuredevops/serviceendpoint_argocd.py +51 -50
  105. pulumi_azuredevops/serviceendpoint_azure_service_bus.py +429 -0
  106. pulumi_azuredevops/serviceendpoint_dynamics_lifecycle_services.py +579 -0
  107. pulumi_azuredevops/serviceendpoint_externaltfs.py +10 -5
  108. pulumi_azuredevops/serviceendpoint_gcp_terraform.py +17 -14
  109. pulumi_azuredevops/serviceendpoint_incomingwebhook.py +17 -14
  110. pulumi_azuredevops/serviceendpoint_jenkins.py +15 -12
  111. pulumi_azuredevops/serviceendpoint_jfrog_artifactory_v2.py +53 -52
  112. pulumi_azuredevops/serviceendpoint_jfrog_distribution_v2.py +53 -52
  113. pulumi_azuredevops/serviceendpoint_jfrog_platform_v2.py +53 -52
  114. pulumi_azuredevops/serviceendpoint_jfrog_xray_v2.py +53 -52
  115. pulumi_azuredevops/serviceendpoint_maven.py +49 -48
  116. pulumi_azuredevops/serviceendpoint_nexus.py +15 -12
  117. pulumi_azuredevops/serviceendpoint_nuget.py +17 -14
  118. pulumi_azuredevops/serviceendpoint_octopusdeploy.py +17 -14
  119. pulumi_azuredevops/serviceendpoint_permissions.py +21 -18
  120. pulumi_azuredevops/serviceendpoint_snyk.py +429 -0
  121. pulumi_azuredevops/serviceendpoint_visualstudiomarketplace.py +543 -0
  122. pulumi_azuredevops/servicehook_permissions.py +9 -6
  123. pulumi_azuredevops/servicehook_storage_queue_pipelines.py +55 -48
  124. pulumi_azuredevops/tagging_permissions.py +9 -6
  125. pulumi_azuredevops/team.py +21 -16
  126. pulumi_azuredevops/team_administrators.py +19 -12
  127. pulumi_azuredevops/team_members.py +19 -12
  128. pulumi_azuredevops/user.py +27 -8
  129. pulumi_azuredevops/variable_group.py +91 -88
  130. pulumi_azuredevops/variable_group_permissions.py +517 -0
  131. pulumi_azuredevops/wiki.py +509 -0
  132. pulumi_azuredevops/wiki_page.py +377 -0
  133. pulumi_azuredevops/work_item_query_permissions.py +17 -18
  134. pulumi_azuredevops/workitem.py +25 -24
  135. {pulumi_azuredevops-2.16.0a1710156155.dist-info → pulumi_azuredevops-3.6.0a1736832240.dist-info}/METADATA +9 -8
  136. pulumi_azuredevops-3.6.0a1736832240.dist-info/RECORD +140 -0
  137. {pulumi_azuredevops-2.16.0a1710156155.dist-info → pulumi_azuredevops-3.6.0a1736832240.dist-info}/WHEEL +1 -1
  138. pulumi_azuredevops/agent/__init__.py +0 -12
  139. pulumi_azuredevops/agent/get_pool.py +0 -155
  140. pulumi_azuredevops/agent/get_pools.py +0 -120
  141. pulumi_azuredevops/agent/outputs.py +0 -73
  142. pulumi_azuredevops/agent/pool.py +0 -342
  143. pulumi_azuredevops/agent/queue.py +0 -376
  144. pulumi_azuredevops/build/__init__.py +0 -10
  145. pulumi_azuredevops/build/_inputs.py +0 -1164
  146. pulumi_azuredevops/build/build_definition.py +0 -987
  147. pulumi_azuredevops/build/outputs.py +0 -1170
  148. pulumi_azuredevops/core/__init__.py +0 -13
  149. pulumi_azuredevops/core/get_client_config.py +0 -102
  150. pulumi_azuredevops/core/get_project.py +0 -194
  151. pulumi_azuredevops/core/get_projects.py +0 -166
  152. pulumi_azuredevops/core/outputs.py +0 -70
  153. pulumi_azuredevops/core/project.py +0 -538
  154. pulumi_azuredevops/core/project_features.py +0 -303
  155. pulumi_azuredevops/entitlement/__init__.py +0 -8
  156. pulumi_azuredevops/entitlement/user.py +0 -429
  157. pulumi_azuredevops/identities/__init__.py +0 -13
  158. pulumi_azuredevops/identities/_inputs.py +0 -42
  159. pulumi_azuredevops/identities/get_group.py +0 -185
  160. pulumi_azuredevops/identities/get_users.py +0 -257
  161. pulumi_azuredevops/identities/group.py +0 -632
  162. pulumi_azuredevops/identities/group_membership.py +0 -333
  163. pulumi_azuredevops/identities/outputs.py +0 -124
  164. pulumi_azuredevops/pipeline/__init__.py +0 -10
  165. pulumi_azuredevops/pipeline/_inputs.py +0 -175
  166. pulumi_azuredevops/pipeline/outputs.py +0 -175
  167. pulumi_azuredevops/pipeline/variable_group.py +0 -594
  168. pulumi_azuredevops/policy/__init__.py +0 -11
  169. pulumi_azuredevops/policy/_inputs.py +0 -382
  170. pulumi_azuredevops/policy/branch_policy_build_validation.py +0 -424
  171. pulumi_azuredevops/policy/branch_policy_min_reviewers.py +0 -406
  172. pulumi_azuredevops/policy/outputs.py +0 -397
  173. pulumi_azuredevops/repository/__init__.py +0 -11
  174. pulumi_azuredevops/repository/_inputs.py +0 -85
  175. pulumi_azuredevops/repository/get_repositories.py +0 -177
  176. pulumi_azuredevops/repository/git.py +0 -627
  177. pulumi_azuredevops/repository/outputs.py +0 -199
  178. pulumi_azuredevops/security/__init__.py +0 -8
  179. pulumi_azuredevops/security/resource_authorization.py +0 -404
  180. pulumi_azuredevops/serviceendpoint/__init__.py +0 -14
  181. pulumi_azuredevops/serviceendpoint/_inputs.py +0 -341
  182. pulumi_azuredevops/serviceendpoint/azure_rm.py +0 -1140
  183. pulumi_azuredevops/serviceendpoint/docker_registry.py +0 -595
  184. pulumi_azuredevops/serviceendpoint/git_hub.py +0 -489
  185. pulumi_azuredevops/serviceendpoint/kubernetes.py +0 -523
  186. pulumi_azuredevops/serviceendpoint/outputs.py +0 -370
  187. pulumi_azuredevops-2.16.0a1710156155.dist-info/RECORD +0 -171
  188. {pulumi_azuredevops-2.16.0a1710156155.dist-info → pulumi_azuredevops-3.6.0a1736832240.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,517 @@
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
+
17
+ __all__ = ['VariableGroupPermissionsArgs', 'VariableGroupPermissions']
18
+
19
+ @pulumi.input_type
20
+ class VariableGroupPermissionsArgs:
21
+ def __init__(__self__, *,
22
+ permissions: pulumi.Input[Mapping[str, pulumi.Input[str]]],
23
+ principal: pulumi.Input[str],
24
+ project_id: pulumi.Input[str],
25
+ variable_group_id: pulumi.Input[str],
26
+ replace: Optional[pulumi.Input[bool]] = None):
27
+ """
28
+ The set of arguments for constructing a VariableGroupPermissions resource.
29
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] permissions: the permissions to assign. The following permissions are available.
30
+ :param pulumi.Input[str] principal: The **group** principal to assign the permissions.
31
+ :param pulumi.Input[str] project_id: The ID of the project.
32
+ :param pulumi.Input[str] variable_group_id: The id of the variable group to assign the permissions.
33
+ :param pulumi.Input[bool] replace: Replace (`true`) or merge (`false`) the permissions. Default: `true`
34
+
35
+ | Permission | Description |
36
+ | ----------------- | ----------------------------------- |
37
+ | View | View library item |
38
+ | Administer | Administer library item |
39
+ | Create | Create library item |
40
+ | ViewSecrets | View library item secrets |
41
+ | Use | Use library item |
42
+ | Owner | Owner library item |
43
+ """
44
+ pulumi.set(__self__, "permissions", permissions)
45
+ pulumi.set(__self__, "principal", principal)
46
+ pulumi.set(__self__, "project_id", project_id)
47
+ pulumi.set(__self__, "variable_group_id", variable_group_id)
48
+ if replace is not None:
49
+ pulumi.set(__self__, "replace", replace)
50
+
51
+ @property
52
+ @pulumi.getter
53
+ def permissions(self) -> pulumi.Input[Mapping[str, pulumi.Input[str]]]:
54
+ """
55
+ the permissions to assign. The following permissions are available.
56
+ """
57
+ return pulumi.get(self, "permissions")
58
+
59
+ @permissions.setter
60
+ def permissions(self, value: pulumi.Input[Mapping[str, pulumi.Input[str]]]):
61
+ pulumi.set(self, "permissions", value)
62
+
63
+ @property
64
+ @pulumi.getter
65
+ def principal(self) -> pulumi.Input[str]:
66
+ """
67
+ The **group** principal to assign the permissions.
68
+ """
69
+ return pulumi.get(self, "principal")
70
+
71
+ @principal.setter
72
+ def principal(self, value: pulumi.Input[str]):
73
+ pulumi.set(self, "principal", value)
74
+
75
+ @property
76
+ @pulumi.getter(name="projectId")
77
+ def project_id(self) -> pulumi.Input[str]:
78
+ """
79
+ The ID of the project.
80
+ """
81
+ return pulumi.get(self, "project_id")
82
+
83
+ @project_id.setter
84
+ def project_id(self, value: pulumi.Input[str]):
85
+ pulumi.set(self, "project_id", value)
86
+
87
+ @property
88
+ @pulumi.getter(name="variableGroupId")
89
+ def variable_group_id(self) -> pulumi.Input[str]:
90
+ """
91
+ The id of the variable group to assign the permissions.
92
+ """
93
+ return pulumi.get(self, "variable_group_id")
94
+
95
+ @variable_group_id.setter
96
+ def variable_group_id(self, value: pulumi.Input[str]):
97
+ pulumi.set(self, "variable_group_id", value)
98
+
99
+ @property
100
+ @pulumi.getter
101
+ def replace(self) -> Optional[pulumi.Input[bool]]:
102
+ """
103
+ Replace (`true`) or merge (`false`) the permissions. Default: `true`
104
+
105
+ | Permission | Description |
106
+ | ----------------- | ----------------------------------- |
107
+ | View | View library item |
108
+ | Administer | Administer library item |
109
+ | Create | Create library item |
110
+ | ViewSecrets | View library item secrets |
111
+ | Use | Use library item |
112
+ | Owner | Owner library item |
113
+ """
114
+ return pulumi.get(self, "replace")
115
+
116
+ @replace.setter
117
+ def replace(self, value: Optional[pulumi.Input[bool]]):
118
+ pulumi.set(self, "replace", value)
119
+
120
+
121
+ @pulumi.input_type
122
+ class _VariableGroupPermissionsState:
123
+ def __init__(__self__, *,
124
+ permissions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
125
+ principal: Optional[pulumi.Input[str]] = None,
126
+ project_id: Optional[pulumi.Input[str]] = None,
127
+ replace: Optional[pulumi.Input[bool]] = None,
128
+ variable_group_id: Optional[pulumi.Input[str]] = None):
129
+ """
130
+ Input properties used for looking up and filtering VariableGroupPermissions resources.
131
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] permissions: the permissions to assign. The following permissions are available.
132
+ :param pulumi.Input[str] principal: The **group** principal to assign the permissions.
133
+ :param pulumi.Input[str] project_id: The ID of the project.
134
+ :param pulumi.Input[bool] replace: Replace (`true`) or merge (`false`) the permissions. Default: `true`
135
+
136
+ | Permission | Description |
137
+ | ----------------- | ----------------------------------- |
138
+ | View | View library item |
139
+ | Administer | Administer library item |
140
+ | Create | Create library item |
141
+ | ViewSecrets | View library item secrets |
142
+ | Use | Use library item |
143
+ | Owner | Owner library item |
144
+ :param pulumi.Input[str] variable_group_id: The id of the variable group to assign the permissions.
145
+ """
146
+ if permissions is not None:
147
+ pulumi.set(__self__, "permissions", permissions)
148
+ if principal is not None:
149
+ pulumi.set(__self__, "principal", principal)
150
+ if project_id is not None:
151
+ pulumi.set(__self__, "project_id", project_id)
152
+ if replace is not None:
153
+ pulumi.set(__self__, "replace", replace)
154
+ if variable_group_id is not None:
155
+ pulumi.set(__self__, "variable_group_id", variable_group_id)
156
+
157
+ @property
158
+ @pulumi.getter
159
+ def permissions(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
160
+ """
161
+ the permissions to assign. The following permissions are available.
162
+ """
163
+ return pulumi.get(self, "permissions")
164
+
165
+ @permissions.setter
166
+ def permissions(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
167
+ pulumi.set(self, "permissions", value)
168
+
169
+ @property
170
+ @pulumi.getter
171
+ def principal(self) -> Optional[pulumi.Input[str]]:
172
+ """
173
+ The **group** principal to assign the permissions.
174
+ """
175
+ return pulumi.get(self, "principal")
176
+
177
+ @principal.setter
178
+ def principal(self, value: Optional[pulumi.Input[str]]):
179
+ pulumi.set(self, "principal", value)
180
+
181
+ @property
182
+ @pulumi.getter(name="projectId")
183
+ def project_id(self) -> Optional[pulumi.Input[str]]:
184
+ """
185
+ The ID of the project.
186
+ """
187
+ return pulumi.get(self, "project_id")
188
+
189
+ @project_id.setter
190
+ def project_id(self, value: Optional[pulumi.Input[str]]):
191
+ pulumi.set(self, "project_id", value)
192
+
193
+ @property
194
+ @pulumi.getter
195
+ def replace(self) -> Optional[pulumi.Input[bool]]:
196
+ """
197
+ Replace (`true`) or merge (`false`) the permissions. Default: `true`
198
+
199
+ | Permission | Description |
200
+ | ----------------- | ----------------------------------- |
201
+ | View | View library item |
202
+ | Administer | Administer library item |
203
+ | Create | Create library item |
204
+ | ViewSecrets | View library item secrets |
205
+ | Use | Use library item |
206
+ | Owner | Owner library item |
207
+ """
208
+ return pulumi.get(self, "replace")
209
+
210
+ @replace.setter
211
+ def replace(self, value: Optional[pulumi.Input[bool]]):
212
+ pulumi.set(self, "replace", value)
213
+
214
+ @property
215
+ @pulumi.getter(name="variableGroupId")
216
+ def variable_group_id(self) -> Optional[pulumi.Input[str]]:
217
+ """
218
+ The id of the variable group to assign the permissions.
219
+ """
220
+ return pulumi.get(self, "variable_group_id")
221
+
222
+ @variable_group_id.setter
223
+ def variable_group_id(self, value: Optional[pulumi.Input[str]]):
224
+ pulumi.set(self, "variable_group_id", value)
225
+
226
+
227
+ class VariableGroupPermissions(pulumi.CustomResource):
228
+ @overload
229
+ def __init__(__self__,
230
+ resource_name: str,
231
+ opts: Optional[pulumi.ResourceOptions] = None,
232
+ permissions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
233
+ principal: Optional[pulumi.Input[str]] = None,
234
+ project_id: Optional[pulumi.Input[str]] = None,
235
+ replace: Optional[pulumi.Input[bool]] = None,
236
+ variable_group_id: Optional[pulumi.Input[str]] = None,
237
+ __props__=None):
238
+ """
239
+ Manages permissions for a Variable Group
240
+
241
+ ## Example Usage
242
+
243
+ ```python
244
+ import pulumi
245
+ import pulumi_azuredevops as azuredevops
246
+
247
+ project = azuredevops.Project("project",
248
+ name="Testing",
249
+ description="Testing-description",
250
+ visibility="private",
251
+ version_control="Git",
252
+ work_item_template="Agile")
253
+ example = azuredevops.VariableGroup("example",
254
+ project_id=project.id,
255
+ name="test",
256
+ description="Test Description",
257
+ allow_access=True,
258
+ variables=[{
259
+ "name": "key1",
260
+ "value": "val1",
261
+ }])
262
+ tf_project_readers = azuredevops.get_group_output(project_id=project.id,
263
+ name="Readers")
264
+ permissions = azuredevops.VariableGroupPermissions("permissions",
265
+ project_id=project.id,
266
+ variable_group_id=example.id,
267
+ principal=tf_project_readers.id,
268
+ permissions={
269
+ "View": "allow",
270
+ "Administer": "allow",
271
+ "Use": "allow",
272
+ })
273
+ ```
274
+
275
+ ## Roles
276
+
277
+ The Azure DevOps UI uses roles to assign permissions for variable groups.
278
+
279
+ | Role | Allow Permissions |
280
+ | ------------- | ---------------------- |
281
+ | Reader | View |
282
+ | User | View, Use |
283
+ | Administrator | View, Use, Administer |
284
+
285
+ ## Relevant Links
286
+
287
+ * [Azure DevOps Service REST API 6.0 - Security](https://docs.microsoft.com/en-us/rest/api/azure/devops/security/?view=azure-devops-rest-6.0)
288
+
289
+ ## PAT Permissions Required
290
+
291
+ - **Project & Team**: vso.security_manage - Grants the ability to read, write, and manage security permissions.
292
+
293
+ ## Import
294
+
295
+ The resource does not support import.
296
+
297
+ :param str resource_name: The name of the resource.
298
+ :param pulumi.ResourceOptions opts: Options for the resource.
299
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] permissions: the permissions to assign. The following permissions are available.
300
+ :param pulumi.Input[str] principal: The **group** principal to assign the permissions.
301
+ :param pulumi.Input[str] project_id: The ID of the project.
302
+ :param pulumi.Input[bool] replace: Replace (`true`) or merge (`false`) the permissions. Default: `true`
303
+
304
+ | Permission | Description |
305
+ | ----------------- | ----------------------------------- |
306
+ | View | View library item |
307
+ | Administer | Administer library item |
308
+ | Create | Create library item |
309
+ | ViewSecrets | View library item secrets |
310
+ | Use | Use library item |
311
+ | Owner | Owner library item |
312
+ :param pulumi.Input[str] variable_group_id: The id of the variable group to assign the permissions.
313
+ """
314
+ ...
315
+ @overload
316
+ def __init__(__self__,
317
+ resource_name: str,
318
+ args: VariableGroupPermissionsArgs,
319
+ opts: Optional[pulumi.ResourceOptions] = None):
320
+ """
321
+ Manages permissions for a Variable Group
322
+
323
+ ## Example Usage
324
+
325
+ ```python
326
+ import pulumi
327
+ import pulumi_azuredevops as azuredevops
328
+
329
+ project = azuredevops.Project("project",
330
+ name="Testing",
331
+ description="Testing-description",
332
+ visibility="private",
333
+ version_control="Git",
334
+ work_item_template="Agile")
335
+ example = azuredevops.VariableGroup("example",
336
+ project_id=project.id,
337
+ name="test",
338
+ description="Test Description",
339
+ allow_access=True,
340
+ variables=[{
341
+ "name": "key1",
342
+ "value": "val1",
343
+ }])
344
+ tf_project_readers = azuredevops.get_group_output(project_id=project.id,
345
+ name="Readers")
346
+ permissions = azuredevops.VariableGroupPermissions("permissions",
347
+ project_id=project.id,
348
+ variable_group_id=example.id,
349
+ principal=tf_project_readers.id,
350
+ permissions={
351
+ "View": "allow",
352
+ "Administer": "allow",
353
+ "Use": "allow",
354
+ })
355
+ ```
356
+
357
+ ## Roles
358
+
359
+ The Azure DevOps UI uses roles to assign permissions for variable groups.
360
+
361
+ | Role | Allow Permissions |
362
+ | ------------- | ---------------------- |
363
+ | Reader | View |
364
+ | User | View, Use |
365
+ | Administrator | View, Use, Administer |
366
+
367
+ ## Relevant Links
368
+
369
+ * [Azure DevOps Service REST API 6.0 - Security](https://docs.microsoft.com/en-us/rest/api/azure/devops/security/?view=azure-devops-rest-6.0)
370
+
371
+ ## PAT Permissions Required
372
+
373
+ - **Project & Team**: vso.security_manage - Grants the ability to read, write, and manage security permissions.
374
+
375
+ ## Import
376
+
377
+ The resource does not support import.
378
+
379
+ :param str resource_name: The name of the resource.
380
+ :param VariableGroupPermissionsArgs args: The arguments to use to populate this resource's properties.
381
+ :param pulumi.ResourceOptions opts: Options for the resource.
382
+ """
383
+ ...
384
+ def __init__(__self__, resource_name: str, *args, **kwargs):
385
+ resource_args, opts = _utilities.get_resource_args_opts(VariableGroupPermissionsArgs, pulumi.ResourceOptions, *args, **kwargs)
386
+ if resource_args is not None:
387
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
388
+ else:
389
+ __self__._internal_init(resource_name, *args, **kwargs)
390
+
391
+ def _internal_init(__self__,
392
+ resource_name: str,
393
+ opts: Optional[pulumi.ResourceOptions] = None,
394
+ permissions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
395
+ principal: Optional[pulumi.Input[str]] = None,
396
+ project_id: Optional[pulumi.Input[str]] = None,
397
+ replace: Optional[pulumi.Input[bool]] = None,
398
+ variable_group_id: Optional[pulumi.Input[str]] = None,
399
+ __props__=None):
400
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
401
+ if not isinstance(opts, pulumi.ResourceOptions):
402
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
403
+ if opts.id is None:
404
+ if __props__ is not None:
405
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
406
+ __props__ = VariableGroupPermissionsArgs.__new__(VariableGroupPermissionsArgs)
407
+
408
+ if permissions is None and not opts.urn:
409
+ raise TypeError("Missing required property 'permissions'")
410
+ __props__.__dict__["permissions"] = permissions
411
+ if principal is None and not opts.urn:
412
+ raise TypeError("Missing required property 'principal'")
413
+ __props__.__dict__["principal"] = principal
414
+ if project_id is None and not opts.urn:
415
+ raise TypeError("Missing required property 'project_id'")
416
+ __props__.__dict__["project_id"] = project_id
417
+ __props__.__dict__["replace"] = replace
418
+ if variable_group_id is None and not opts.urn:
419
+ raise TypeError("Missing required property 'variable_group_id'")
420
+ __props__.__dict__["variable_group_id"] = variable_group_id
421
+ super(VariableGroupPermissions, __self__).__init__(
422
+ 'azuredevops:index/variableGroupPermissions:VariableGroupPermissions',
423
+ resource_name,
424
+ __props__,
425
+ opts)
426
+
427
+ @staticmethod
428
+ def get(resource_name: str,
429
+ id: pulumi.Input[str],
430
+ opts: Optional[pulumi.ResourceOptions] = None,
431
+ permissions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
432
+ principal: Optional[pulumi.Input[str]] = None,
433
+ project_id: Optional[pulumi.Input[str]] = None,
434
+ replace: Optional[pulumi.Input[bool]] = None,
435
+ variable_group_id: Optional[pulumi.Input[str]] = None) -> 'VariableGroupPermissions':
436
+ """
437
+ Get an existing VariableGroupPermissions resource's state with the given name, id, and optional extra
438
+ properties used to qualify the lookup.
439
+
440
+ :param str resource_name: The unique name of the resulting resource.
441
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
442
+ :param pulumi.ResourceOptions opts: Options for the resource.
443
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] permissions: the permissions to assign. The following permissions are available.
444
+ :param pulumi.Input[str] principal: The **group** principal to assign the permissions.
445
+ :param pulumi.Input[str] project_id: The ID of the project.
446
+ :param pulumi.Input[bool] replace: Replace (`true`) or merge (`false`) the permissions. Default: `true`
447
+
448
+ | Permission | Description |
449
+ | ----------------- | ----------------------------------- |
450
+ | View | View library item |
451
+ | Administer | Administer library item |
452
+ | Create | Create library item |
453
+ | ViewSecrets | View library item secrets |
454
+ | Use | Use library item |
455
+ | Owner | Owner library item |
456
+ :param pulumi.Input[str] variable_group_id: The id of the variable group to assign the permissions.
457
+ """
458
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
459
+
460
+ __props__ = _VariableGroupPermissionsState.__new__(_VariableGroupPermissionsState)
461
+
462
+ __props__.__dict__["permissions"] = permissions
463
+ __props__.__dict__["principal"] = principal
464
+ __props__.__dict__["project_id"] = project_id
465
+ __props__.__dict__["replace"] = replace
466
+ __props__.__dict__["variable_group_id"] = variable_group_id
467
+ return VariableGroupPermissions(resource_name, opts=opts, __props__=__props__)
468
+
469
+ @property
470
+ @pulumi.getter
471
+ def permissions(self) -> pulumi.Output[Mapping[str, str]]:
472
+ """
473
+ the permissions to assign. The following permissions are available.
474
+ """
475
+ return pulumi.get(self, "permissions")
476
+
477
+ @property
478
+ @pulumi.getter
479
+ def principal(self) -> pulumi.Output[str]:
480
+ """
481
+ The **group** principal to assign the permissions.
482
+ """
483
+ return pulumi.get(self, "principal")
484
+
485
+ @property
486
+ @pulumi.getter(name="projectId")
487
+ def project_id(self) -> pulumi.Output[str]:
488
+ """
489
+ The ID of the project.
490
+ """
491
+ return pulumi.get(self, "project_id")
492
+
493
+ @property
494
+ @pulumi.getter
495
+ def replace(self) -> pulumi.Output[Optional[bool]]:
496
+ """
497
+ Replace (`true`) or merge (`false`) the permissions. Default: `true`
498
+
499
+ | Permission | Description |
500
+ | ----------------- | ----------------------------------- |
501
+ | View | View library item |
502
+ | Administer | Administer library item |
503
+ | Create | Create library item |
504
+ | ViewSecrets | View library item secrets |
505
+ | Use | Use library item |
506
+ | Owner | Owner library item |
507
+ """
508
+ return pulumi.get(self, "replace")
509
+
510
+ @property
511
+ @pulumi.getter(name="variableGroupId")
512
+ def variable_group_id(self) -> pulumi.Output[str]:
513
+ """
514
+ The id of the variable group to assign the permissions.
515
+ """
516
+ return pulumi.get(self, "variable_group_id")
517
+