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,451 @@
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__ = ['LibraryPermissionsArgs', 'LibraryPermissions']
18
+
19
+ @pulumi.input_type
20
+ class LibraryPermissionsArgs:
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
+ replace: Optional[pulumi.Input[bool]] = None):
26
+ """
27
+ The set of arguments for constructing a LibraryPermissions resource.
28
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] permissions: the permissions to assign. The following permissions are available.
29
+ :param pulumi.Input[str] principal: The **group** principal to assign the permissions.
30
+ :param pulumi.Input[str] project_id: The ID of the project.
31
+ :param pulumi.Input[bool] replace: Replace (`true`) or merge (`false`) the permissions. Default: `true`
32
+
33
+ | Permission | Description |
34
+ | ----------------- | ----------------------------------- |
35
+ | View | View library item |
36
+ | Administer | Administer library item |
37
+ | Create | Create library item |
38
+ | ViewSecrets | View library item secrets |
39
+ | Use | Use library item |
40
+ | Owner | Owner library item |
41
+ """
42
+ pulumi.set(__self__, "permissions", permissions)
43
+ pulumi.set(__self__, "principal", principal)
44
+ pulumi.set(__self__, "project_id", project_id)
45
+ if replace is not None:
46
+ pulumi.set(__self__, "replace", replace)
47
+
48
+ @property
49
+ @pulumi.getter
50
+ def permissions(self) -> pulumi.Input[Mapping[str, pulumi.Input[str]]]:
51
+ """
52
+ the permissions to assign. The following permissions are available.
53
+ """
54
+ return pulumi.get(self, "permissions")
55
+
56
+ @permissions.setter
57
+ def permissions(self, value: pulumi.Input[Mapping[str, pulumi.Input[str]]]):
58
+ pulumi.set(self, "permissions", value)
59
+
60
+ @property
61
+ @pulumi.getter
62
+ def principal(self) -> pulumi.Input[str]:
63
+ """
64
+ The **group** principal to assign the permissions.
65
+ """
66
+ return pulumi.get(self, "principal")
67
+
68
+ @principal.setter
69
+ def principal(self, value: pulumi.Input[str]):
70
+ pulumi.set(self, "principal", value)
71
+
72
+ @property
73
+ @pulumi.getter(name="projectId")
74
+ def project_id(self) -> pulumi.Input[str]:
75
+ """
76
+ The ID of the project.
77
+ """
78
+ return pulumi.get(self, "project_id")
79
+
80
+ @project_id.setter
81
+ def project_id(self, value: pulumi.Input[str]):
82
+ pulumi.set(self, "project_id", value)
83
+
84
+ @property
85
+ @pulumi.getter
86
+ def replace(self) -> Optional[pulumi.Input[bool]]:
87
+ """
88
+ Replace (`true`) or merge (`false`) the permissions. Default: `true`
89
+
90
+ | Permission | Description |
91
+ | ----------------- | ----------------------------------- |
92
+ | View | View library item |
93
+ | Administer | Administer library item |
94
+ | Create | Create library item |
95
+ | ViewSecrets | View library item secrets |
96
+ | Use | Use library item |
97
+ | Owner | Owner library item |
98
+ """
99
+ return pulumi.get(self, "replace")
100
+
101
+ @replace.setter
102
+ def replace(self, value: Optional[pulumi.Input[bool]]):
103
+ pulumi.set(self, "replace", value)
104
+
105
+
106
+ @pulumi.input_type
107
+ class _LibraryPermissionsState:
108
+ def __init__(__self__, *,
109
+ permissions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
110
+ principal: Optional[pulumi.Input[str]] = None,
111
+ project_id: Optional[pulumi.Input[str]] = None,
112
+ replace: Optional[pulumi.Input[bool]] = None):
113
+ """
114
+ Input properties used for looking up and filtering LibraryPermissions resources.
115
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] permissions: the permissions to assign. The following permissions are available.
116
+ :param pulumi.Input[str] principal: The **group** principal to assign the permissions.
117
+ :param pulumi.Input[str] project_id: The ID of the project.
118
+ :param pulumi.Input[bool] replace: Replace (`true`) or merge (`false`) the permissions. Default: `true`
119
+
120
+ | Permission | Description |
121
+ | ----------------- | ----------------------------------- |
122
+ | View | View library item |
123
+ | Administer | Administer library item |
124
+ | Create | Create library item |
125
+ | ViewSecrets | View library item secrets |
126
+ | Use | Use library item |
127
+ | Owner | Owner library item |
128
+ """
129
+ if permissions is not None:
130
+ pulumi.set(__self__, "permissions", permissions)
131
+ if principal is not None:
132
+ pulumi.set(__self__, "principal", principal)
133
+ if project_id is not None:
134
+ pulumi.set(__self__, "project_id", project_id)
135
+ if replace is not None:
136
+ pulumi.set(__self__, "replace", replace)
137
+
138
+ @property
139
+ @pulumi.getter
140
+ def permissions(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
141
+ """
142
+ the permissions to assign. The following permissions are available.
143
+ """
144
+ return pulumi.get(self, "permissions")
145
+
146
+ @permissions.setter
147
+ def permissions(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
148
+ pulumi.set(self, "permissions", value)
149
+
150
+ @property
151
+ @pulumi.getter
152
+ def principal(self) -> Optional[pulumi.Input[str]]:
153
+ """
154
+ The **group** principal to assign the permissions.
155
+ """
156
+ return pulumi.get(self, "principal")
157
+
158
+ @principal.setter
159
+ def principal(self, value: Optional[pulumi.Input[str]]):
160
+ pulumi.set(self, "principal", value)
161
+
162
+ @property
163
+ @pulumi.getter(name="projectId")
164
+ def project_id(self) -> Optional[pulumi.Input[str]]:
165
+ """
166
+ The ID of the project.
167
+ """
168
+ return pulumi.get(self, "project_id")
169
+
170
+ @project_id.setter
171
+ def project_id(self, value: Optional[pulumi.Input[str]]):
172
+ pulumi.set(self, "project_id", value)
173
+
174
+ @property
175
+ @pulumi.getter
176
+ def replace(self) -> Optional[pulumi.Input[bool]]:
177
+ """
178
+ Replace (`true`) or merge (`false`) the permissions. Default: `true`
179
+
180
+ | Permission | Description |
181
+ | ----------------- | ----------------------------------- |
182
+ | View | View library item |
183
+ | Administer | Administer library item |
184
+ | Create | Create library item |
185
+ | ViewSecrets | View library item secrets |
186
+ | Use | Use library item |
187
+ | Owner | Owner library item |
188
+ """
189
+ return pulumi.get(self, "replace")
190
+
191
+ @replace.setter
192
+ def replace(self, value: Optional[pulumi.Input[bool]]):
193
+ pulumi.set(self, "replace", value)
194
+
195
+
196
+ class LibraryPermissions(pulumi.CustomResource):
197
+ @overload
198
+ def __init__(__self__,
199
+ resource_name: str,
200
+ opts: Optional[pulumi.ResourceOptions] = None,
201
+ permissions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
202
+ principal: Optional[pulumi.Input[str]] = None,
203
+ project_id: Optional[pulumi.Input[str]] = None,
204
+ replace: Optional[pulumi.Input[bool]] = None,
205
+ __props__=None):
206
+ """
207
+ Manages permissions for a Library
208
+
209
+ ## Example Usage
210
+
211
+ ```python
212
+ import pulumi
213
+ import pulumi_azuredevops as azuredevops
214
+
215
+ project = azuredevops.Project("project",
216
+ name="Testing",
217
+ description="Testing-description",
218
+ visibility="private",
219
+ version_control="Git",
220
+ work_item_template="Agile")
221
+ tf_project_readers = azuredevops.get_group_output(project_id=project.id,
222
+ name="Readers")
223
+ permissions = azuredevops.LibraryPermissions("permissions",
224
+ project_id=project.id,
225
+ principal=tf_project_readers.id,
226
+ permissions={
227
+ "View": "allow",
228
+ "Administer": "allow",
229
+ "Use": "allow",
230
+ })
231
+ ```
232
+
233
+ ## Roles
234
+
235
+ The Azure DevOps UI uses roles to assign permissions for the Library.
236
+
237
+ | Role | Allowed Permissions |
238
+ | ------------- | ---------------------- |
239
+ | Reader | View |
240
+ | Creator | View, Create |
241
+ | User | View, Use |
242
+ | Administrator | View, Use, Administer |
243
+
244
+ ## Relevant Links
245
+
246
+ * [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)
247
+
248
+ ## PAT Permissions Required
249
+
250
+ - **Project & Team**: vso.security_manage - Grants the ability to read, write, and manage security permissions.
251
+
252
+ ## Import
253
+
254
+ The resource does not support import.
255
+
256
+ :param str resource_name: The name of the resource.
257
+ :param pulumi.ResourceOptions opts: Options for the resource.
258
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] permissions: the permissions to assign. The following permissions are available.
259
+ :param pulumi.Input[str] principal: The **group** principal to assign the permissions.
260
+ :param pulumi.Input[str] project_id: The ID of the project.
261
+ :param pulumi.Input[bool] replace: Replace (`true`) or merge (`false`) the permissions. Default: `true`
262
+
263
+ | Permission | Description |
264
+ | ----------------- | ----------------------------------- |
265
+ | View | View library item |
266
+ | Administer | Administer library item |
267
+ | Create | Create library item |
268
+ | ViewSecrets | View library item secrets |
269
+ | Use | Use library item |
270
+ | Owner | Owner library item |
271
+ """
272
+ ...
273
+ @overload
274
+ def __init__(__self__,
275
+ resource_name: str,
276
+ args: LibraryPermissionsArgs,
277
+ opts: Optional[pulumi.ResourceOptions] = None):
278
+ """
279
+ Manages permissions for a Library
280
+
281
+ ## Example Usage
282
+
283
+ ```python
284
+ import pulumi
285
+ import pulumi_azuredevops as azuredevops
286
+
287
+ project = azuredevops.Project("project",
288
+ name="Testing",
289
+ description="Testing-description",
290
+ visibility="private",
291
+ version_control="Git",
292
+ work_item_template="Agile")
293
+ tf_project_readers = azuredevops.get_group_output(project_id=project.id,
294
+ name="Readers")
295
+ permissions = azuredevops.LibraryPermissions("permissions",
296
+ project_id=project.id,
297
+ principal=tf_project_readers.id,
298
+ permissions={
299
+ "View": "allow",
300
+ "Administer": "allow",
301
+ "Use": "allow",
302
+ })
303
+ ```
304
+
305
+ ## Roles
306
+
307
+ The Azure DevOps UI uses roles to assign permissions for the Library.
308
+
309
+ | Role | Allowed Permissions |
310
+ | ------------- | ---------------------- |
311
+ | Reader | View |
312
+ | Creator | View, Create |
313
+ | User | View, Use |
314
+ | Administrator | View, Use, Administer |
315
+
316
+ ## Relevant Links
317
+
318
+ * [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)
319
+
320
+ ## PAT Permissions Required
321
+
322
+ - **Project & Team**: vso.security_manage - Grants the ability to read, write, and manage security permissions.
323
+
324
+ ## Import
325
+
326
+ The resource does not support import.
327
+
328
+ :param str resource_name: The name of the resource.
329
+ :param LibraryPermissionsArgs args: The arguments to use to populate this resource's properties.
330
+ :param pulumi.ResourceOptions opts: Options for the resource.
331
+ """
332
+ ...
333
+ def __init__(__self__, resource_name: str, *args, **kwargs):
334
+ resource_args, opts = _utilities.get_resource_args_opts(LibraryPermissionsArgs, pulumi.ResourceOptions, *args, **kwargs)
335
+ if resource_args is not None:
336
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
337
+ else:
338
+ __self__._internal_init(resource_name, *args, **kwargs)
339
+
340
+ def _internal_init(__self__,
341
+ resource_name: str,
342
+ opts: Optional[pulumi.ResourceOptions] = None,
343
+ permissions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
344
+ principal: Optional[pulumi.Input[str]] = None,
345
+ project_id: Optional[pulumi.Input[str]] = None,
346
+ replace: Optional[pulumi.Input[bool]] = None,
347
+ __props__=None):
348
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
349
+ if not isinstance(opts, pulumi.ResourceOptions):
350
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
351
+ if opts.id is None:
352
+ if __props__ is not None:
353
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
354
+ __props__ = LibraryPermissionsArgs.__new__(LibraryPermissionsArgs)
355
+
356
+ if permissions is None and not opts.urn:
357
+ raise TypeError("Missing required property 'permissions'")
358
+ __props__.__dict__["permissions"] = permissions
359
+ if principal is None and not opts.urn:
360
+ raise TypeError("Missing required property 'principal'")
361
+ __props__.__dict__["principal"] = principal
362
+ if project_id is None and not opts.urn:
363
+ raise TypeError("Missing required property 'project_id'")
364
+ __props__.__dict__["project_id"] = project_id
365
+ __props__.__dict__["replace"] = replace
366
+ super(LibraryPermissions, __self__).__init__(
367
+ 'azuredevops:index/libraryPermissions:LibraryPermissions',
368
+ resource_name,
369
+ __props__,
370
+ opts)
371
+
372
+ @staticmethod
373
+ def get(resource_name: str,
374
+ id: pulumi.Input[str],
375
+ opts: Optional[pulumi.ResourceOptions] = None,
376
+ permissions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
377
+ principal: Optional[pulumi.Input[str]] = None,
378
+ project_id: Optional[pulumi.Input[str]] = None,
379
+ replace: Optional[pulumi.Input[bool]] = None) -> 'LibraryPermissions':
380
+ """
381
+ Get an existing LibraryPermissions resource's state with the given name, id, and optional extra
382
+ properties used to qualify the lookup.
383
+
384
+ :param str resource_name: The unique name of the resulting resource.
385
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
386
+ :param pulumi.ResourceOptions opts: Options for the resource.
387
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] permissions: the permissions to assign. The following permissions are available.
388
+ :param pulumi.Input[str] principal: The **group** principal to assign the permissions.
389
+ :param pulumi.Input[str] project_id: The ID of the project.
390
+ :param pulumi.Input[bool] replace: Replace (`true`) or merge (`false`) the permissions. Default: `true`
391
+
392
+ | Permission | Description |
393
+ | ----------------- | ----------------------------------- |
394
+ | View | View library item |
395
+ | Administer | Administer library item |
396
+ | Create | Create library item |
397
+ | ViewSecrets | View library item secrets |
398
+ | Use | Use library item |
399
+ | Owner | Owner library item |
400
+ """
401
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
402
+
403
+ __props__ = _LibraryPermissionsState.__new__(_LibraryPermissionsState)
404
+
405
+ __props__.__dict__["permissions"] = permissions
406
+ __props__.__dict__["principal"] = principal
407
+ __props__.__dict__["project_id"] = project_id
408
+ __props__.__dict__["replace"] = replace
409
+ return LibraryPermissions(resource_name, opts=opts, __props__=__props__)
410
+
411
+ @property
412
+ @pulumi.getter
413
+ def permissions(self) -> pulumi.Output[Mapping[str, str]]:
414
+ """
415
+ the permissions to assign. The following permissions are available.
416
+ """
417
+ return pulumi.get(self, "permissions")
418
+
419
+ @property
420
+ @pulumi.getter
421
+ def principal(self) -> pulumi.Output[str]:
422
+ """
423
+ The **group** principal to assign the permissions.
424
+ """
425
+ return pulumi.get(self, "principal")
426
+
427
+ @property
428
+ @pulumi.getter(name="projectId")
429
+ def project_id(self) -> pulumi.Output[str]:
430
+ """
431
+ The ID of the project.
432
+ """
433
+ return pulumi.get(self, "project_id")
434
+
435
+ @property
436
+ @pulumi.getter
437
+ def replace(self) -> pulumi.Output[Optional[bool]]:
438
+ """
439
+ Replace (`true`) or merge (`false`) the permissions. Default: `true`
440
+
441
+ | Permission | Description |
442
+ | ----------------- | ----------------------------------- |
443
+ | View | View library item |
444
+ | Administer | Administer library item |
445
+ | Create | Create library item |
446
+ | ViewSecrets | View library item secrets |
447
+ | Use | Use library item |
448
+ | Owner | Owner library item |
449
+ """
450
+ return pulumi.get(self, "replace")
451
+