pulumi-azuredevops 3.9.0a1745040263__py3-none-any.whl → 3.10.0__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 (121) hide show
  1. pulumi_azuredevops/__init__.py +29 -0
  2. pulumi_azuredevops/_inputs.py +206 -26
  3. pulumi_azuredevops/area_permissions.py +1 -0
  4. pulumi_azuredevops/branch_policy_auto_reviewers.py +1 -0
  5. pulumi_azuredevops/branch_policy_build_validation.py +1 -0
  6. pulumi_azuredevops/branch_policy_comment_resolution.py +1 -0
  7. pulumi_azuredevops/branch_policy_merge_types.py +1 -0
  8. pulumi_azuredevops/branch_policy_min_reviewers.py +1 -0
  9. pulumi_azuredevops/branch_policy_status_check.py +1 -0
  10. pulumi_azuredevops/branch_policy_work_item_linking.py +1 -0
  11. pulumi_azuredevops/build_definition.py +1 -0
  12. pulumi_azuredevops/build_definition_permissions.py +1 -0
  13. pulumi_azuredevops/build_folder.py +1 -0
  14. pulumi_azuredevops/build_folder_permissions.py +8 -0
  15. pulumi_azuredevops/check_approval.py +1 -0
  16. pulumi_azuredevops/check_branch_control.py +1 -0
  17. pulumi_azuredevops/check_business_hours.py +1 -0
  18. pulumi_azuredevops/check_exclusive_lock.py +1 -0
  19. pulumi_azuredevops/check_required_template.py +1 -0
  20. pulumi_azuredevops/check_rest_api.py +1 -0
  21. pulumi_azuredevops/dashboard.py +1 -0
  22. pulumi_azuredevops/elastic_pool.py +1 -0
  23. pulumi_azuredevops/environment.py +1 -0
  24. pulumi_azuredevops/environment_resource_kubernetes.py +1 -0
  25. pulumi_azuredevops/extension.py +427 -0
  26. pulumi_azuredevops/feed.py +1 -0
  27. pulumi_azuredevops/feed_permission.py +29 -0
  28. pulumi_azuredevops/feed_retention_policy.py +1 -0
  29. pulumi_azuredevops/get_git_repository_file.py +201 -0
  30. pulumi_azuredevops/get_group.py +1 -1
  31. pulumi_azuredevops/get_serviceendpoint_dockerregistry.py +282 -0
  32. pulumi_azuredevops/git.py +1 -0
  33. pulumi_azuredevops/git_permissions.py +22 -0
  34. pulumi_azuredevops/git_repository_branch.py +1 -0
  35. pulumi_azuredevops/git_repository_file.py +257 -0
  36. pulumi_azuredevops/group.py +1 -0
  37. pulumi_azuredevops/group_entitlement.py +1 -0
  38. pulumi_azuredevops/group_membership.py +1 -0
  39. pulumi_azuredevops/iterative_permissions.py +1 -0
  40. pulumi_azuredevops/library_permissions.py +1 -0
  41. pulumi_azuredevops/outputs.py +156 -18
  42. pulumi_azuredevops/pipeline_authorization.py +1 -0
  43. pulumi_azuredevops/pool.py +1 -0
  44. pulumi_azuredevops/project.py +1 -0
  45. pulumi_azuredevops/project_features.py +1 -0
  46. pulumi_azuredevops/project_permissions.py +1 -0
  47. pulumi_azuredevops/project_pipeline_settings.py +1 -0
  48. pulumi_azuredevops/project_tags.py +1 -0
  49. pulumi_azuredevops/provider.py +21 -0
  50. pulumi_azuredevops/pulumi-plugin.json +1 -1
  51. pulumi_azuredevops/queue.py +1 -0
  52. pulumi_azuredevops/repository_policy_author_email_pattern.py +1 -0
  53. pulumi_azuredevops/repository_policy_case_enforcement.py +1 -0
  54. pulumi_azuredevops/repository_policy_check_credentials.py +1 -0
  55. pulumi_azuredevops/repository_policy_file_path_pattern.py +1 -0
  56. pulumi_azuredevops/repository_policy_max_file_size.py +1 -0
  57. pulumi_azuredevops/repository_policy_max_path_length.py +1 -0
  58. pulumi_azuredevops/repository_policy_reserved_names.py +1 -0
  59. pulumi_azuredevops/resource_authorization.py +1 -0
  60. pulumi_azuredevops/securityrole_assignment.py +1 -0
  61. pulumi_azuredevops/service_endpoint_artifactory.py +1 -0
  62. pulumi_azuredevops/service_endpoint_aws.py +1 -0
  63. pulumi_azuredevops/service_endpoint_azure_dev_ops.py +1 -0
  64. pulumi_azuredevops/service_endpoint_azure_ecr.py +1 -0
  65. pulumi_azuredevops/service_endpoint_azure_rm.py +1 -0
  66. pulumi_azuredevops/service_endpoint_bit_bucket.py +1 -0
  67. pulumi_azuredevops/service_endpoint_docker_registry.py +1 -0
  68. pulumi_azuredevops/service_endpoint_generic.py +1 -0
  69. pulumi_azuredevops/service_endpoint_generic_git.py +1 -0
  70. pulumi_azuredevops/service_endpoint_git_hub.py +1 -0
  71. pulumi_azuredevops/service_endpoint_git_hub_enterprise.py +123 -31
  72. pulumi_azuredevops/service_endpoint_git_lab.py +1 -0
  73. pulumi_azuredevops/service_endpoint_kubernetes.py +1 -0
  74. pulumi_azuredevops/service_endpoint_npm.py +1 -0
  75. pulumi_azuredevops/service_endpoint_pipeline.py +1 -0
  76. pulumi_azuredevops/service_endpoint_service_fabric.py +1 -0
  77. pulumi_azuredevops/service_endpoint_sonar_cloud.py +1 -0
  78. pulumi_azuredevops/service_endpoint_sonar_qube.py +1 -0
  79. pulumi_azuredevops/service_endpoint_ssh.py +1 -0
  80. pulumi_azuredevops/service_principal_entitlement.py +1 -0
  81. pulumi_azuredevops/serviceendpoint_argocd.py +1 -0
  82. pulumi_azuredevops/serviceendpoint_azure_service_bus.py +1 -0
  83. pulumi_azuredevops/serviceendpoint_black_duck.py +417 -0
  84. pulumi_azuredevops/serviceendpoint_checkmarx_one.py +1 -0
  85. pulumi_azuredevops/serviceendpoint_checkmarx_sast.py +1 -0
  86. pulumi_azuredevops/serviceendpoint_checkmarx_sca.py +1 -0
  87. pulumi_azuredevops/serviceendpoint_dynamics_lifecycle_services.py +1 -0
  88. pulumi_azuredevops/serviceendpoint_externaltfs.py +1 -0
  89. pulumi_azuredevops/serviceendpoint_gcp_terraform.py +8 -7
  90. pulumi_azuredevops/serviceendpoint_incomingwebhook.py +1 -0
  91. pulumi_azuredevops/serviceendpoint_jenkins.py +1 -0
  92. pulumi_azuredevops/serviceendpoint_jfrog_artifactory_v2.py +1 -0
  93. pulumi_azuredevops/serviceendpoint_jfrog_distribution_v2.py +1 -0
  94. pulumi_azuredevops/serviceendpoint_jfrog_platform_v2.py +1 -0
  95. pulumi_azuredevops/serviceendpoint_jfrog_xray_v2.py +1 -0
  96. pulumi_azuredevops/serviceendpoint_maven.py +1 -0
  97. pulumi_azuredevops/serviceendpoint_nexus.py +1 -0
  98. pulumi_azuredevops/serviceendpoint_nuget.py +1 -0
  99. pulumi_azuredevops/serviceendpoint_octopusdeploy.py +1 -0
  100. pulumi_azuredevops/serviceendpoint_openshift.py +689 -0
  101. pulumi_azuredevops/serviceendpoint_permissions.py +1 -0
  102. pulumi_azuredevops/serviceendpoint_snyk.py +1 -0
  103. pulumi_azuredevops/serviceendpoint_visualstudiomarketplace.py +1 -0
  104. pulumi_azuredevops/servicehook_permissions.py +1 -0
  105. pulumi_azuredevops/servicehook_storage_queue_pipelines.py +1 -0
  106. pulumi_azuredevops/tagging_permissions.py +1 -0
  107. pulumi_azuredevops/team.py +1 -0
  108. pulumi_azuredevops/team_administrators.py +1 -0
  109. pulumi_azuredevops/team_members.py +1 -0
  110. pulumi_azuredevops/user.py +1 -0
  111. pulumi_azuredevops/variable_group.py +1 -0
  112. pulumi_azuredevops/variable_group_permissions.py +1 -0
  113. pulumi_azuredevops/wiki.py +1 -0
  114. pulumi_azuredevops/wiki_page.py +1 -0
  115. pulumi_azuredevops/work_item_query_permissions.py +1 -0
  116. pulumi_azuredevops/workitem.py +166 -4
  117. {pulumi_azuredevops-3.9.0a1745040263.dist-info → pulumi_azuredevops-3.10.0.dist-info}/METADATA +3 -3
  118. pulumi_azuredevops-3.10.0.dist-info/RECORD +158 -0
  119. {pulumi_azuredevops-3.9.0a1745040263.dist-info → pulumi_azuredevops-3.10.0.dist-info}/WHEEL +1 -1
  120. pulumi_azuredevops-3.9.0a1745040263.dist-info/RECORD +0 -153
  121. {pulumi_azuredevops-3.9.0a1745040263.dist-info → pulumi_azuredevops-3.10.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,427 @@
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 builtins
6
+ import copy
7
+ import warnings
8
+ import sys
9
+ import pulumi
10
+ import pulumi.runtime
11
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
12
+ if sys.version_info >= (3, 11):
13
+ from typing import NotRequired, TypedDict, TypeAlias
14
+ else:
15
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
16
+ from . import _utilities
17
+
18
+ __all__ = ['ExtensionArgs', 'Extension']
19
+
20
+ @pulumi.input_type
21
+ class ExtensionArgs:
22
+ def __init__(__self__, *,
23
+ extension_id: pulumi.Input[builtins.str],
24
+ publisher_id: pulumi.Input[builtins.str],
25
+ disabled: Optional[pulumi.Input[builtins.bool]] = None,
26
+ version: Optional[pulumi.Input[builtins.str]] = None):
27
+ """
28
+ The set of arguments for constructing a Extension resource.
29
+ :param pulumi.Input[builtins.str] extension_id: The publisher ID of the extension.
30
+ :param pulumi.Input[builtins.str] publisher_id: The extension ID of the extension.
31
+ :param pulumi.Input[builtins.bool] disabled: Whether to disable the extension.
32
+ :param pulumi.Input[builtins.str] version: The version of the extension.
33
+ """
34
+ pulumi.set(__self__, "extension_id", extension_id)
35
+ pulumi.set(__self__, "publisher_id", publisher_id)
36
+ if disabled is not None:
37
+ pulumi.set(__self__, "disabled", disabled)
38
+ if version is not None:
39
+ pulumi.set(__self__, "version", version)
40
+
41
+ @property
42
+ @pulumi.getter(name="extensionId")
43
+ def extension_id(self) -> pulumi.Input[builtins.str]:
44
+ """
45
+ The publisher ID of the extension.
46
+ """
47
+ return pulumi.get(self, "extension_id")
48
+
49
+ @extension_id.setter
50
+ def extension_id(self, value: pulumi.Input[builtins.str]):
51
+ pulumi.set(self, "extension_id", value)
52
+
53
+ @property
54
+ @pulumi.getter(name="publisherId")
55
+ def publisher_id(self) -> pulumi.Input[builtins.str]:
56
+ """
57
+ The extension ID of the extension.
58
+ """
59
+ return pulumi.get(self, "publisher_id")
60
+
61
+ @publisher_id.setter
62
+ def publisher_id(self, value: pulumi.Input[builtins.str]):
63
+ pulumi.set(self, "publisher_id", value)
64
+
65
+ @property
66
+ @pulumi.getter
67
+ def disabled(self) -> Optional[pulumi.Input[builtins.bool]]:
68
+ """
69
+ Whether to disable the extension.
70
+ """
71
+ return pulumi.get(self, "disabled")
72
+
73
+ @disabled.setter
74
+ def disabled(self, value: Optional[pulumi.Input[builtins.bool]]):
75
+ pulumi.set(self, "disabled", value)
76
+
77
+ @property
78
+ @pulumi.getter
79
+ def version(self) -> Optional[pulumi.Input[builtins.str]]:
80
+ """
81
+ The version of the extension.
82
+ """
83
+ return pulumi.get(self, "version")
84
+
85
+ @version.setter
86
+ def version(self, value: Optional[pulumi.Input[builtins.str]]):
87
+ pulumi.set(self, "version", value)
88
+
89
+
90
+ @pulumi.input_type
91
+ class _ExtensionState:
92
+ def __init__(__self__, *,
93
+ disabled: Optional[pulumi.Input[builtins.bool]] = None,
94
+ extension_id: Optional[pulumi.Input[builtins.str]] = None,
95
+ extension_name: Optional[pulumi.Input[builtins.str]] = None,
96
+ publisher_id: Optional[pulumi.Input[builtins.str]] = None,
97
+ publisher_name: Optional[pulumi.Input[builtins.str]] = None,
98
+ scopes: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
99
+ version: Optional[pulumi.Input[builtins.str]] = None):
100
+ """
101
+ Input properties used for looking up and filtering Extension resources.
102
+ :param pulumi.Input[builtins.bool] disabled: Whether to disable the extension.
103
+ :param pulumi.Input[builtins.str] extension_id: The publisher ID of the extension.
104
+ :param pulumi.Input[builtins.str] extension_name: The name of the extension.
105
+ :param pulumi.Input[builtins.str] publisher_id: The extension ID of the extension.
106
+ :param pulumi.Input[builtins.str] publisher_name: The name of the publisher.
107
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] scopes: List of all oauth scopes required by this extension.
108
+ :param pulumi.Input[builtins.str] version: The version of the extension.
109
+ """
110
+ if disabled is not None:
111
+ pulumi.set(__self__, "disabled", disabled)
112
+ if extension_id is not None:
113
+ pulumi.set(__self__, "extension_id", extension_id)
114
+ if extension_name is not None:
115
+ pulumi.set(__self__, "extension_name", extension_name)
116
+ if publisher_id is not None:
117
+ pulumi.set(__self__, "publisher_id", publisher_id)
118
+ if publisher_name is not None:
119
+ pulumi.set(__self__, "publisher_name", publisher_name)
120
+ if scopes is not None:
121
+ pulumi.set(__self__, "scopes", scopes)
122
+ if version is not None:
123
+ pulumi.set(__self__, "version", version)
124
+
125
+ @property
126
+ @pulumi.getter
127
+ def disabled(self) -> Optional[pulumi.Input[builtins.bool]]:
128
+ """
129
+ Whether to disable the extension.
130
+ """
131
+ return pulumi.get(self, "disabled")
132
+
133
+ @disabled.setter
134
+ def disabled(self, value: Optional[pulumi.Input[builtins.bool]]):
135
+ pulumi.set(self, "disabled", value)
136
+
137
+ @property
138
+ @pulumi.getter(name="extensionId")
139
+ def extension_id(self) -> Optional[pulumi.Input[builtins.str]]:
140
+ """
141
+ The publisher ID of the extension.
142
+ """
143
+ return pulumi.get(self, "extension_id")
144
+
145
+ @extension_id.setter
146
+ def extension_id(self, value: Optional[pulumi.Input[builtins.str]]):
147
+ pulumi.set(self, "extension_id", value)
148
+
149
+ @property
150
+ @pulumi.getter(name="extensionName")
151
+ def extension_name(self) -> Optional[pulumi.Input[builtins.str]]:
152
+ """
153
+ The name of the extension.
154
+ """
155
+ return pulumi.get(self, "extension_name")
156
+
157
+ @extension_name.setter
158
+ def extension_name(self, value: Optional[pulumi.Input[builtins.str]]):
159
+ pulumi.set(self, "extension_name", value)
160
+
161
+ @property
162
+ @pulumi.getter(name="publisherId")
163
+ def publisher_id(self) -> Optional[pulumi.Input[builtins.str]]:
164
+ """
165
+ The extension ID of the extension.
166
+ """
167
+ return pulumi.get(self, "publisher_id")
168
+
169
+ @publisher_id.setter
170
+ def publisher_id(self, value: Optional[pulumi.Input[builtins.str]]):
171
+ pulumi.set(self, "publisher_id", value)
172
+
173
+ @property
174
+ @pulumi.getter(name="publisherName")
175
+ def publisher_name(self) -> Optional[pulumi.Input[builtins.str]]:
176
+ """
177
+ The name of the publisher.
178
+ """
179
+ return pulumi.get(self, "publisher_name")
180
+
181
+ @publisher_name.setter
182
+ def publisher_name(self, value: Optional[pulumi.Input[builtins.str]]):
183
+ pulumi.set(self, "publisher_name", value)
184
+
185
+ @property
186
+ @pulumi.getter
187
+ def scopes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
188
+ """
189
+ List of all oauth scopes required by this extension.
190
+ """
191
+ return pulumi.get(self, "scopes")
192
+
193
+ @scopes.setter
194
+ def scopes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
195
+ pulumi.set(self, "scopes", value)
196
+
197
+ @property
198
+ @pulumi.getter
199
+ def version(self) -> Optional[pulumi.Input[builtins.str]]:
200
+ """
201
+ The version of the extension.
202
+ """
203
+ return pulumi.get(self, "version")
204
+
205
+ @version.setter
206
+ def version(self, value: Optional[pulumi.Input[builtins.str]]):
207
+ pulumi.set(self, "version", value)
208
+
209
+
210
+ @pulumi.type_token("azuredevops:index/extension:Extension")
211
+ class Extension(pulumi.CustomResource):
212
+ @overload
213
+ def __init__(__self__,
214
+ resource_name: str,
215
+ opts: Optional[pulumi.ResourceOptions] = None,
216
+ disabled: Optional[pulumi.Input[builtins.bool]] = None,
217
+ extension_id: Optional[pulumi.Input[builtins.str]] = None,
218
+ publisher_id: Optional[pulumi.Input[builtins.str]] = None,
219
+ version: Optional[pulumi.Input[builtins.str]] = None,
220
+ __props__=None):
221
+ """
222
+ Manages extension within Azure DevOps organization.
223
+
224
+ ## Example Usage
225
+
226
+ ### Install Extension
227
+ ```python
228
+ import pulumi
229
+ import pulumi_azuredevops as azuredevops
230
+
231
+ example = azuredevops.Extension("example",
232
+ extension_id="extension ID",
233
+ publisher_id="publisher ID")
234
+ ```
235
+
236
+ ## Relevant Links
237
+
238
+ - [Azure DevOps Service REST API 7.1 - Extension Management](https://learn.microsoft.com/en-us/rest/api/azure/devops/extensionmanagement/installed-extensions?view=azure-devops-rest-7.1)
239
+
240
+ ## Import
241
+
242
+ Azure DevOps Extension can be imported using the publisher ID and extension ID:
243
+
244
+ ```sh
245
+ $ pulumi import azuredevops:index/extension:Extension example publisherId/extensionId
246
+ ```
247
+
248
+ :param str resource_name: The name of the resource.
249
+ :param pulumi.ResourceOptions opts: Options for the resource.
250
+ :param pulumi.Input[builtins.bool] disabled: Whether to disable the extension.
251
+ :param pulumi.Input[builtins.str] extension_id: The publisher ID of the extension.
252
+ :param pulumi.Input[builtins.str] publisher_id: The extension ID of the extension.
253
+ :param pulumi.Input[builtins.str] version: The version of the extension.
254
+ """
255
+ ...
256
+ @overload
257
+ def __init__(__self__,
258
+ resource_name: str,
259
+ args: ExtensionArgs,
260
+ opts: Optional[pulumi.ResourceOptions] = None):
261
+ """
262
+ Manages extension within Azure DevOps organization.
263
+
264
+ ## Example Usage
265
+
266
+ ### Install Extension
267
+ ```python
268
+ import pulumi
269
+ import pulumi_azuredevops as azuredevops
270
+
271
+ example = azuredevops.Extension("example",
272
+ extension_id="extension ID",
273
+ publisher_id="publisher ID")
274
+ ```
275
+
276
+ ## Relevant Links
277
+
278
+ - [Azure DevOps Service REST API 7.1 - Extension Management](https://learn.microsoft.com/en-us/rest/api/azure/devops/extensionmanagement/installed-extensions?view=azure-devops-rest-7.1)
279
+
280
+ ## Import
281
+
282
+ Azure DevOps Extension can be imported using the publisher ID and extension ID:
283
+
284
+ ```sh
285
+ $ pulumi import azuredevops:index/extension:Extension example publisherId/extensionId
286
+ ```
287
+
288
+ :param str resource_name: The name of the resource.
289
+ :param ExtensionArgs args: The arguments to use to populate this resource's properties.
290
+ :param pulumi.ResourceOptions opts: Options for the resource.
291
+ """
292
+ ...
293
+ def __init__(__self__, resource_name: str, *args, **kwargs):
294
+ resource_args, opts = _utilities.get_resource_args_opts(ExtensionArgs, pulumi.ResourceOptions, *args, **kwargs)
295
+ if resource_args is not None:
296
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
297
+ else:
298
+ __self__._internal_init(resource_name, *args, **kwargs)
299
+
300
+ def _internal_init(__self__,
301
+ resource_name: str,
302
+ opts: Optional[pulumi.ResourceOptions] = None,
303
+ disabled: Optional[pulumi.Input[builtins.bool]] = None,
304
+ extension_id: Optional[pulumi.Input[builtins.str]] = None,
305
+ publisher_id: Optional[pulumi.Input[builtins.str]] = None,
306
+ version: Optional[pulumi.Input[builtins.str]] = None,
307
+ __props__=None):
308
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
309
+ if not isinstance(opts, pulumi.ResourceOptions):
310
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
311
+ if opts.id is None:
312
+ if __props__ is not None:
313
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
314
+ __props__ = ExtensionArgs.__new__(ExtensionArgs)
315
+
316
+ __props__.__dict__["disabled"] = disabled
317
+ if extension_id is None and not opts.urn:
318
+ raise TypeError("Missing required property 'extension_id'")
319
+ __props__.__dict__["extension_id"] = extension_id
320
+ if publisher_id is None and not opts.urn:
321
+ raise TypeError("Missing required property 'publisher_id'")
322
+ __props__.__dict__["publisher_id"] = publisher_id
323
+ __props__.__dict__["version"] = version
324
+ __props__.__dict__["extension_name"] = None
325
+ __props__.__dict__["publisher_name"] = None
326
+ __props__.__dict__["scopes"] = None
327
+ super(Extension, __self__).__init__(
328
+ 'azuredevops:index/extension:Extension',
329
+ resource_name,
330
+ __props__,
331
+ opts)
332
+
333
+ @staticmethod
334
+ def get(resource_name: str,
335
+ id: pulumi.Input[str],
336
+ opts: Optional[pulumi.ResourceOptions] = None,
337
+ disabled: Optional[pulumi.Input[builtins.bool]] = None,
338
+ extension_id: Optional[pulumi.Input[builtins.str]] = None,
339
+ extension_name: Optional[pulumi.Input[builtins.str]] = None,
340
+ publisher_id: Optional[pulumi.Input[builtins.str]] = None,
341
+ publisher_name: Optional[pulumi.Input[builtins.str]] = None,
342
+ scopes: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
343
+ version: Optional[pulumi.Input[builtins.str]] = None) -> 'Extension':
344
+ """
345
+ Get an existing Extension resource's state with the given name, id, and optional extra
346
+ properties used to qualify the lookup.
347
+
348
+ :param str resource_name: The unique name of the resulting resource.
349
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
350
+ :param pulumi.ResourceOptions opts: Options for the resource.
351
+ :param pulumi.Input[builtins.bool] disabled: Whether to disable the extension.
352
+ :param pulumi.Input[builtins.str] extension_id: The publisher ID of the extension.
353
+ :param pulumi.Input[builtins.str] extension_name: The name of the extension.
354
+ :param pulumi.Input[builtins.str] publisher_id: The extension ID of the extension.
355
+ :param pulumi.Input[builtins.str] publisher_name: The name of the publisher.
356
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] scopes: List of all oauth scopes required by this extension.
357
+ :param pulumi.Input[builtins.str] version: The version of the extension.
358
+ """
359
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
360
+
361
+ __props__ = _ExtensionState.__new__(_ExtensionState)
362
+
363
+ __props__.__dict__["disabled"] = disabled
364
+ __props__.__dict__["extension_id"] = extension_id
365
+ __props__.__dict__["extension_name"] = extension_name
366
+ __props__.__dict__["publisher_id"] = publisher_id
367
+ __props__.__dict__["publisher_name"] = publisher_name
368
+ __props__.__dict__["scopes"] = scopes
369
+ __props__.__dict__["version"] = version
370
+ return Extension(resource_name, opts=opts, __props__=__props__)
371
+
372
+ @property
373
+ @pulumi.getter
374
+ def disabled(self) -> pulumi.Output[builtins.bool]:
375
+ """
376
+ Whether to disable the extension.
377
+ """
378
+ return pulumi.get(self, "disabled")
379
+
380
+ @property
381
+ @pulumi.getter(name="extensionId")
382
+ def extension_id(self) -> pulumi.Output[builtins.str]:
383
+ """
384
+ The publisher ID of the extension.
385
+ """
386
+ return pulumi.get(self, "extension_id")
387
+
388
+ @property
389
+ @pulumi.getter(name="extensionName")
390
+ def extension_name(self) -> pulumi.Output[builtins.str]:
391
+ """
392
+ The name of the extension.
393
+ """
394
+ return pulumi.get(self, "extension_name")
395
+
396
+ @property
397
+ @pulumi.getter(name="publisherId")
398
+ def publisher_id(self) -> pulumi.Output[builtins.str]:
399
+ """
400
+ The extension ID of the extension.
401
+ """
402
+ return pulumi.get(self, "publisher_id")
403
+
404
+ @property
405
+ @pulumi.getter(name="publisherName")
406
+ def publisher_name(self) -> pulumi.Output[builtins.str]:
407
+ """
408
+ The name of the publisher.
409
+ """
410
+ return pulumi.get(self, "publisher_name")
411
+
412
+ @property
413
+ @pulumi.getter
414
+ def scopes(self) -> pulumi.Output[Sequence[builtins.str]]:
415
+ """
416
+ List of all oauth scopes required by this extension.
417
+ """
418
+ return pulumi.get(self, "scopes")
419
+
420
+ @property
421
+ @pulumi.getter
422
+ def version(self) -> pulumi.Output[builtins.str]:
423
+ """
424
+ The version of the extension.
425
+ """
426
+ return pulumi.get(self, "version")
427
+
@@ -139,6 +139,7 @@ class _FeedState:
139
139
  pulumi.set(self, "project_id", value)
140
140
 
141
141
 
142
+ @pulumi.type_token("azuredevops:index/feed:Feed")
142
143
  class Feed(pulumi.CustomResource):
143
144
  @overload
144
145
  def __init__(__self__,
@@ -206,6 +206,7 @@ class _FeedPermissionState:
206
206
  pulumi.set(self, "role", value)
207
207
 
208
208
 
209
+ @pulumi.type_token("azuredevops:index/feedPermission:FeedPermission")
209
210
  class FeedPermission(pulumi.CustomResource):
210
211
  @overload
211
212
  def __init__(__self__,
@@ -243,6 +244,20 @@ class FeedPermission(pulumi.CustomResource):
243
244
 
244
245
  - [Azure DevOps Service REST API 7.0 - Feed Management](https://learn.microsoft.com/en-us/rest/api/azure/devops/artifacts/feed-management?view=azure-devops-rest-7.0)
245
246
 
247
+ ## Import
248
+
249
+ Azure DevOps Feed Permission can be imported using the `Project ID/Feed ID/Identity Descriptor` or `Feed ID/Identity Descriptor` e.g.:
250
+
251
+ ```sh
252
+ $ pulumi import azuredevops:index/feedPermission:FeedPermission permission 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000/vssgp.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
253
+ ```
254
+
255
+ or
256
+
257
+ ```sh
258
+ $ pulumi import azuredevops:index/feedPermission:FeedPermission permission 00000000-0000-0000-0000-000000000000/vssgp.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
259
+ ```
260
+
246
261
  :param str resource_name: The name of the resource.
247
262
  :param pulumi.ResourceOptions opts: Options for the resource.
248
263
  :param pulumi.Input[builtins.str] display_name: The display name of the assignment
@@ -283,6 +298,20 @@ class FeedPermission(pulumi.CustomResource):
283
298
 
284
299
  - [Azure DevOps Service REST API 7.0 - Feed Management](https://learn.microsoft.com/en-us/rest/api/azure/devops/artifacts/feed-management?view=azure-devops-rest-7.0)
285
300
 
301
+ ## Import
302
+
303
+ Azure DevOps Feed Permission can be imported using the `Project ID/Feed ID/Identity Descriptor` or `Feed ID/Identity Descriptor` e.g.:
304
+
305
+ ```sh
306
+ $ pulumi import azuredevops:index/feedPermission:FeedPermission permission 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000/vssgp.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
307
+ ```
308
+
309
+ or
310
+
311
+ ```sh
312
+ $ pulumi import azuredevops:index/feedPermission:FeedPermission permission 00000000-0000-0000-0000-000000000000/vssgp.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
313
+ ```
314
+
286
315
  :param str resource_name: The name of the resource.
287
316
  :param FeedPermissionArgs args: The arguments to use to populate this resource's properties.
288
317
  :param pulumi.ResourceOptions opts: Options for the resource.
@@ -158,6 +158,7 @@ class _FeedRetentionPolicyState:
158
158
  pulumi.set(self, "project_id", value)
159
159
 
160
160
 
161
+ @pulumi.type_token("azuredevops:index/feedRetentionPolicy:FeedRetentionPolicy")
161
162
  class FeedRetentionPolicy(pulumi.CustomResource):
162
163
  @overload
163
164
  def __init__(__self__,