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
@@ -4,10 +4,17 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
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
10
15
  from . import _utilities
16
+ from . import outputs
17
+ from ._inputs import *
11
18
 
12
19
  __all__ = ['ServiceEndpointAzureEcrArgs', 'ServiceEndpointAzureEcr']
13
20
 
@@ -19,10 +26,12 @@ class ServiceEndpointAzureEcrArgs:
19
26
  azurecr_subscription_id: pulumi.Input[str],
20
27
  azurecr_subscription_name: pulumi.Input[str],
21
28
  project_id: pulumi.Input[str],
22
- resource_group: pulumi.Input[str],
23
29
  service_endpoint_name: pulumi.Input[str],
24
30
  authorization: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
25
- description: Optional[pulumi.Input[str]] = None):
31
+ credentials: Optional[pulumi.Input['ServiceEndpointAzureEcrCredentialsArgs']] = None,
32
+ description: Optional[pulumi.Input[str]] = None,
33
+ resource_group: Optional[pulumi.Input[str]] = None,
34
+ service_endpoint_authentication_scheme: Optional[pulumi.Input[str]] = None):
26
35
  """
27
36
  The set of arguments for constructing a ServiceEndpointAzureEcr resource.
28
37
  :param pulumi.Input[str] azurecr_name: The Azure container registry name.
@@ -30,20 +39,27 @@ class ServiceEndpointAzureEcrArgs:
30
39
  :param pulumi.Input[str] azurecr_subscription_id: The subscription id of the Azure targets.
31
40
  :param pulumi.Input[str] azurecr_subscription_name: The subscription name of the Azure targets.
32
41
  :param pulumi.Input[str] project_id: The ID of the project.
33
- :param pulumi.Input[str] resource_group: The resource group to which the container registry belongs.
34
42
  :param pulumi.Input[str] service_endpoint_name: The name you will use to refer to this service connection in task inputs.
43
+ :param pulumi.Input['ServiceEndpointAzureEcrCredentialsArgs'] credentials: A `credentials` block.
44
+ :param pulumi.Input[str] resource_group: The resource group to which the container registry belongs.
45
+ :param pulumi.Input[str] service_endpoint_authentication_scheme: Specifies the type of azurerm endpoint, either `WorkloadIdentityFederation`, `ManagedServiceIdentity` or `ServicePrincipal`. Defaults to `ServicePrincipal` for backwards compatibility. `ManagedServiceIdentity` has not yet been implemented for this resource.
35
46
  """
36
47
  pulumi.set(__self__, "azurecr_name", azurecr_name)
37
48
  pulumi.set(__self__, "azurecr_spn_tenantid", azurecr_spn_tenantid)
38
49
  pulumi.set(__self__, "azurecr_subscription_id", azurecr_subscription_id)
39
50
  pulumi.set(__self__, "azurecr_subscription_name", azurecr_subscription_name)
40
51
  pulumi.set(__self__, "project_id", project_id)
41
- pulumi.set(__self__, "resource_group", resource_group)
42
52
  pulumi.set(__self__, "service_endpoint_name", service_endpoint_name)
43
53
  if authorization is not None:
44
54
  pulumi.set(__self__, "authorization", authorization)
55
+ if credentials is not None:
56
+ pulumi.set(__self__, "credentials", credentials)
45
57
  if description is not None:
46
58
  pulumi.set(__self__, "description", description)
59
+ if resource_group is not None:
60
+ pulumi.set(__self__, "resource_group", resource_group)
61
+ if service_endpoint_authentication_scheme is not None:
62
+ pulumi.set(__self__, "service_endpoint_authentication_scheme", service_endpoint_authentication_scheme)
47
63
 
48
64
  @property
49
65
  @pulumi.getter(name="azurecrName")
@@ -105,18 +121,6 @@ class ServiceEndpointAzureEcrArgs:
105
121
  def project_id(self, value: pulumi.Input[str]):
106
122
  pulumi.set(self, "project_id", value)
107
123
 
108
- @property
109
- @pulumi.getter(name="resourceGroup")
110
- def resource_group(self) -> pulumi.Input[str]:
111
- """
112
- The resource group to which the container registry belongs.
113
- """
114
- return pulumi.get(self, "resource_group")
115
-
116
- @resource_group.setter
117
- def resource_group(self, value: pulumi.Input[str]):
118
- pulumi.set(self, "resource_group", value)
119
-
120
124
  @property
121
125
  @pulumi.getter(name="serviceEndpointName")
122
126
  def service_endpoint_name(self) -> pulumi.Input[str]:
@@ -138,6 +142,18 @@ class ServiceEndpointAzureEcrArgs:
138
142
  def authorization(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
139
143
  pulumi.set(self, "authorization", value)
140
144
 
145
+ @property
146
+ @pulumi.getter
147
+ def credentials(self) -> Optional[pulumi.Input['ServiceEndpointAzureEcrCredentialsArgs']]:
148
+ """
149
+ A `credentials` block.
150
+ """
151
+ return pulumi.get(self, "credentials")
152
+
153
+ @credentials.setter
154
+ def credentials(self, value: Optional[pulumi.Input['ServiceEndpointAzureEcrCredentialsArgs']]):
155
+ pulumi.set(self, "credentials", value)
156
+
141
157
  @property
142
158
  @pulumi.getter
143
159
  def description(self) -> Optional[pulumi.Input[str]]:
@@ -147,6 +163,30 @@ class ServiceEndpointAzureEcrArgs:
147
163
  def description(self, value: Optional[pulumi.Input[str]]):
148
164
  pulumi.set(self, "description", value)
149
165
 
166
+ @property
167
+ @pulumi.getter(name="resourceGroup")
168
+ def resource_group(self) -> Optional[pulumi.Input[str]]:
169
+ """
170
+ The resource group to which the container registry belongs.
171
+ """
172
+ return pulumi.get(self, "resource_group")
173
+
174
+ @resource_group.setter
175
+ def resource_group(self, value: Optional[pulumi.Input[str]]):
176
+ pulumi.set(self, "resource_group", value)
177
+
178
+ @property
179
+ @pulumi.getter(name="serviceEndpointAuthenticationScheme")
180
+ def service_endpoint_authentication_scheme(self) -> Optional[pulumi.Input[str]]:
181
+ """
182
+ Specifies the type of azurerm endpoint, either `WorkloadIdentityFederation`, `ManagedServiceIdentity` or `ServicePrincipal`. Defaults to `ServicePrincipal` for backwards compatibility. `ManagedServiceIdentity` has not yet been implemented for this resource.
183
+ """
184
+ return pulumi.get(self, "service_endpoint_authentication_scheme")
185
+
186
+ @service_endpoint_authentication_scheme.setter
187
+ def service_endpoint_authentication_scheme(self, value: Optional[pulumi.Input[str]]):
188
+ pulumi.set(self, "service_endpoint_authentication_scheme", value)
189
+
150
190
 
151
191
  @pulumi.input_type
152
192
  class _ServiceEndpointAzureEcrState:
@@ -159,22 +199,30 @@ class _ServiceEndpointAzureEcrState:
159
199
  azurecr_spn_tenantid: Optional[pulumi.Input[str]] = None,
160
200
  azurecr_subscription_id: Optional[pulumi.Input[str]] = None,
161
201
  azurecr_subscription_name: Optional[pulumi.Input[str]] = None,
202
+ credentials: Optional[pulumi.Input['ServiceEndpointAzureEcrCredentialsArgs']] = None,
162
203
  description: Optional[pulumi.Input[str]] = None,
163
204
  project_id: Optional[pulumi.Input[str]] = None,
164
205
  resource_group: Optional[pulumi.Input[str]] = None,
206
+ service_endpoint_authentication_scheme: Optional[pulumi.Input[str]] = None,
165
207
  service_endpoint_name: Optional[pulumi.Input[str]] = None,
166
208
  service_principal_id: Optional[pulumi.Input[str]] = None,
167
- spn_object_id: Optional[pulumi.Input[str]] = None):
209
+ spn_object_id: Optional[pulumi.Input[str]] = None,
210
+ workload_identity_federation_issuer: Optional[pulumi.Input[str]] = None,
211
+ workload_identity_federation_subject: Optional[pulumi.Input[str]] = None):
168
212
  """
169
213
  Input properties used for looking up and filtering ServiceEndpointAzureEcr resources.
170
214
  :param pulumi.Input[str] azurecr_name: The Azure container registry name.
171
215
  :param pulumi.Input[str] azurecr_spn_tenantid: The tenant id of the service principal.
172
216
  :param pulumi.Input[str] azurecr_subscription_id: The subscription id of the Azure targets.
173
217
  :param pulumi.Input[str] azurecr_subscription_name: The subscription name of the Azure targets.
218
+ :param pulumi.Input['ServiceEndpointAzureEcrCredentialsArgs'] credentials: A `credentials` block.
174
219
  :param pulumi.Input[str] project_id: The ID of the project.
175
220
  :param pulumi.Input[str] resource_group: The resource group to which the container registry belongs.
221
+ :param pulumi.Input[str] service_endpoint_authentication_scheme: Specifies the type of azurerm endpoint, either `WorkloadIdentityFederation`, `ManagedServiceIdentity` or `ServicePrincipal`. Defaults to `ServicePrincipal` for backwards compatibility. `ManagedServiceIdentity` has not yet been implemented for this resource.
176
222
  :param pulumi.Input[str] service_endpoint_name: The name you will use to refer to this service connection in task inputs.
177
223
  :param pulumi.Input[str] service_principal_id: The service principal ID.
224
+ :param pulumi.Input[str] workload_identity_federation_issuer: The issuer of the workload identity federation service principal.
225
+ :param pulumi.Input[str] workload_identity_federation_subject: The subject of the workload identity federation service principal.
178
226
  """
179
227
  if app_object_id is not None:
180
228
  pulumi.set(__self__, "app_object_id", app_object_id)
@@ -192,18 +240,26 @@ class _ServiceEndpointAzureEcrState:
192
240
  pulumi.set(__self__, "azurecr_subscription_id", azurecr_subscription_id)
193
241
  if azurecr_subscription_name is not None:
194
242
  pulumi.set(__self__, "azurecr_subscription_name", azurecr_subscription_name)
243
+ if credentials is not None:
244
+ pulumi.set(__self__, "credentials", credentials)
195
245
  if description is not None:
196
246
  pulumi.set(__self__, "description", description)
197
247
  if project_id is not None:
198
248
  pulumi.set(__self__, "project_id", project_id)
199
249
  if resource_group is not None:
200
250
  pulumi.set(__self__, "resource_group", resource_group)
251
+ if service_endpoint_authentication_scheme is not None:
252
+ pulumi.set(__self__, "service_endpoint_authentication_scheme", service_endpoint_authentication_scheme)
201
253
  if service_endpoint_name is not None:
202
254
  pulumi.set(__self__, "service_endpoint_name", service_endpoint_name)
203
255
  if service_principal_id is not None:
204
256
  pulumi.set(__self__, "service_principal_id", service_principal_id)
205
257
  if spn_object_id is not None:
206
258
  pulumi.set(__self__, "spn_object_id", spn_object_id)
259
+ if workload_identity_federation_issuer is not None:
260
+ pulumi.set(__self__, "workload_identity_federation_issuer", workload_identity_federation_issuer)
261
+ if workload_identity_federation_subject is not None:
262
+ pulumi.set(__self__, "workload_identity_federation_subject", workload_identity_federation_subject)
207
263
 
208
264
  @property
209
265
  @pulumi.getter(name="appObjectId")
@@ -289,6 +345,18 @@ class _ServiceEndpointAzureEcrState:
289
345
  def azurecr_subscription_name(self, value: Optional[pulumi.Input[str]]):
290
346
  pulumi.set(self, "azurecr_subscription_name", value)
291
347
 
348
+ @property
349
+ @pulumi.getter
350
+ def credentials(self) -> Optional[pulumi.Input['ServiceEndpointAzureEcrCredentialsArgs']]:
351
+ """
352
+ A `credentials` block.
353
+ """
354
+ return pulumi.get(self, "credentials")
355
+
356
+ @credentials.setter
357
+ def credentials(self, value: Optional[pulumi.Input['ServiceEndpointAzureEcrCredentialsArgs']]):
358
+ pulumi.set(self, "credentials", value)
359
+
292
360
  @property
293
361
  @pulumi.getter
294
362
  def description(self) -> Optional[pulumi.Input[str]]:
@@ -322,6 +390,18 @@ class _ServiceEndpointAzureEcrState:
322
390
  def resource_group(self, value: Optional[pulumi.Input[str]]):
323
391
  pulumi.set(self, "resource_group", value)
324
392
 
393
+ @property
394
+ @pulumi.getter(name="serviceEndpointAuthenticationScheme")
395
+ def service_endpoint_authentication_scheme(self) -> Optional[pulumi.Input[str]]:
396
+ """
397
+ Specifies the type of azurerm endpoint, either `WorkloadIdentityFederation`, `ManagedServiceIdentity` or `ServicePrincipal`. Defaults to `ServicePrincipal` for backwards compatibility. `ManagedServiceIdentity` has not yet been implemented for this resource.
398
+ """
399
+ return pulumi.get(self, "service_endpoint_authentication_scheme")
400
+
401
+ @service_endpoint_authentication_scheme.setter
402
+ def service_endpoint_authentication_scheme(self, value: Optional[pulumi.Input[str]]):
403
+ pulumi.set(self, "service_endpoint_authentication_scheme", value)
404
+
325
405
  @property
326
406
  @pulumi.getter(name="serviceEndpointName")
327
407
  def service_endpoint_name(self) -> Optional[pulumi.Input[str]]:
@@ -355,6 +435,30 @@ class _ServiceEndpointAzureEcrState:
355
435
  def spn_object_id(self, value: Optional[pulumi.Input[str]]):
356
436
  pulumi.set(self, "spn_object_id", value)
357
437
 
438
+ @property
439
+ @pulumi.getter(name="workloadIdentityFederationIssuer")
440
+ def workload_identity_federation_issuer(self) -> Optional[pulumi.Input[str]]:
441
+ """
442
+ The issuer of the workload identity federation service principal.
443
+ """
444
+ return pulumi.get(self, "workload_identity_federation_issuer")
445
+
446
+ @workload_identity_federation_issuer.setter
447
+ def workload_identity_federation_issuer(self, value: Optional[pulumi.Input[str]]):
448
+ pulumi.set(self, "workload_identity_federation_issuer", value)
449
+
450
+ @property
451
+ @pulumi.getter(name="workloadIdentityFederationSubject")
452
+ def workload_identity_federation_subject(self) -> Optional[pulumi.Input[str]]:
453
+ """
454
+ The subject of the workload identity federation service principal.
455
+ """
456
+ return pulumi.get(self, "workload_identity_federation_subject")
457
+
458
+ @workload_identity_federation_subject.setter
459
+ def workload_identity_federation_subject(self, value: Optional[pulumi.Input[str]]):
460
+ pulumi.set(self, "workload_identity_federation_subject", value)
461
+
358
462
 
359
463
  class ServiceEndpointAzureEcr(pulumi.CustomResource):
360
464
  @overload
@@ -366,9 +470,11 @@ class ServiceEndpointAzureEcr(pulumi.CustomResource):
366
470
  azurecr_spn_tenantid: Optional[pulumi.Input[str]] = None,
367
471
  azurecr_subscription_id: Optional[pulumi.Input[str]] = None,
368
472
  azurecr_subscription_name: Optional[pulumi.Input[str]] = None,
473
+ credentials: Optional[pulumi.Input[Union['ServiceEndpointAzureEcrCredentialsArgs', 'ServiceEndpointAzureEcrCredentialsArgsDict']]] = None,
369
474
  description: Optional[pulumi.Input[str]] = None,
370
475
  project_id: Optional[pulumi.Input[str]] = None,
371
476
  resource_group: Optional[pulumi.Input[str]] = None,
477
+ service_endpoint_authentication_scheme: Optional[pulumi.Input[str]] = None,
372
478
  service_endpoint_name: Optional[pulumi.Input[str]] = None,
373
479
  __props__=None):
374
480
  """
@@ -376,19 +482,21 @@ class ServiceEndpointAzureEcr(pulumi.CustomResource):
376
482
 
377
483
  ## Example Usage
378
484
 
379
- <!--Start PulumiCodeChooser -->
485
+ ### Service Principal
486
+
380
487
  ```python
381
488
  import pulumi
382
489
  import pulumi_azuredevops as azuredevops
383
490
 
384
- example_project = azuredevops.Project("exampleProject",
491
+ example = azuredevops.Project("example",
492
+ name="Example Project",
385
493
  visibility="private",
386
494
  version_control="Git",
387
495
  work_item_template="Agile",
388
- description="Managed by Terraform")
496
+ description="Managed by Pulumi")
389
497
  # azure container registry service connection
390
- example_service_endpoint_azure_ecr = azuredevops.ServiceEndpointAzureEcr("exampleServiceEndpointAzureEcr",
391
- project_id=example_project.id,
498
+ example_service_endpoint_azure_ecr = azuredevops.ServiceEndpointAzureEcr("example",
499
+ project_id=example.id,
392
500
  service_endpoint_name="Example AzureCR",
393
501
  resource_group="example-rg",
394
502
  azurecr_spn_tenantid="00000000-0000-0000-0000-000000000000",
@@ -396,7 +504,48 @@ class ServiceEndpointAzureEcr(pulumi.CustomResource):
396
504
  azurecr_subscription_id="00000000-0000-0000-0000-000000000000",
397
505
  azurecr_subscription_name="subscription name")
398
506
  ```
399
- <!--End PulumiCodeChooser -->
507
+
508
+ ### WorkloadIdentityFederation
509
+
510
+ ```python
511
+ import pulumi
512
+ import pulumi_azure as azure
513
+ import pulumi_azuredevops as azuredevops
514
+
515
+ example = azuredevops.Project("example",
516
+ name="Example Project",
517
+ visibility="private",
518
+ version_control="Git",
519
+ work_item_template="Agile",
520
+ description="Managed by Pulumi")
521
+ identity = azure.core.ResourceGroup("identity",
522
+ name="identity",
523
+ location="UK South")
524
+ example_user_assigned_identity = azure.authorization.UserAssignedIdentity("example",
525
+ location=identity.location,
526
+ name="example-identity",
527
+ resource_group_name=identity.name)
528
+ # azure container registry service connection
529
+ example_service_endpoint_azure_ecr = azuredevops.ServiceEndpointAzureEcr("example",
530
+ project_id=example.id,
531
+ resource_group="Example AzureCR ResourceGroup",
532
+ service_endpoint_name="Example AzureCR",
533
+ service_endpoint_authentication_scheme="WorkloadIdentityFederation",
534
+ azurecr_spn_tenantid="00000000-0000-0000-0000-000000000000",
535
+ azurecr_name="ExampleAcr",
536
+ azurecr_subscription_id="00000000-0000-0000-0000-000000000000",
537
+ azurecr_subscription_name="subscription name",
538
+ credentials={
539
+ "serviceprincipalid": example_user_assigned_identity.client_id,
540
+ })
541
+ example_federated_identity_credential = azure.armmsi.FederatedIdentityCredential("example",
542
+ name="example-federated-credential",
543
+ resource_group_name=identity.name,
544
+ parent_id=example_user_assigned_identity.id,
545
+ audience="api://AzureADTokenExchange",
546
+ issuer=example_service_endpoint_azure_ecr.workload_identity_federation_issuer,
547
+ subject=example_service_endpoint_azure_ecr.workload_identity_federation_subject)
548
+ ```
400
549
 
401
550
  ## Relevant Links
402
551
 
@@ -417,8 +566,10 @@ class ServiceEndpointAzureEcr(pulumi.CustomResource):
417
566
  :param pulumi.Input[str] azurecr_spn_tenantid: The tenant id of the service principal.
418
567
  :param pulumi.Input[str] azurecr_subscription_id: The subscription id of the Azure targets.
419
568
  :param pulumi.Input[str] azurecr_subscription_name: The subscription name of the Azure targets.
569
+ :param pulumi.Input[Union['ServiceEndpointAzureEcrCredentialsArgs', 'ServiceEndpointAzureEcrCredentialsArgsDict']] credentials: A `credentials` block.
420
570
  :param pulumi.Input[str] project_id: The ID of the project.
421
571
  :param pulumi.Input[str] resource_group: The resource group to which the container registry belongs.
572
+ :param pulumi.Input[str] service_endpoint_authentication_scheme: Specifies the type of azurerm endpoint, either `WorkloadIdentityFederation`, `ManagedServiceIdentity` or `ServicePrincipal`. Defaults to `ServicePrincipal` for backwards compatibility. `ManagedServiceIdentity` has not yet been implemented for this resource.
422
573
  :param pulumi.Input[str] service_endpoint_name: The name you will use to refer to this service connection in task inputs.
423
574
  """
424
575
  ...
@@ -432,19 +583,21 @@ class ServiceEndpointAzureEcr(pulumi.CustomResource):
432
583
 
433
584
  ## Example Usage
434
585
 
435
- <!--Start PulumiCodeChooser -->
586
+ ### Service Principal
587
+
436
588
  ```python
437
589
  import pulumi
438
590
  import pulumi_azuredevops as azuredevops
439
591
 
440
- example_project = azuredevops.Project("exampleProject",
592
+ example = azuredevops.Project("example",
593
+ name="Example Project",
441
594
  visibility="private",
442
595
  version_control="Git",
443
596
  work_item_template="Agile",
444
- description="Managed by Terraform")
597
+ description="Managed by Pulumi")
445
598
  # azure container registry service connection
446
- example_service_endpoint_azure_ecr = azuredevops.ServiceEndpointAzureEcr("exampleServiceEndpointAzureEcr",
447
- project_id=example_project.id,
599
+ example_service_endpoint_azure_ecr = azuredevops.ServiceEndpointAzureEcr("example",
600
+ project_id=example.id,
448
601
  service_endpoint_name="Example AzureCR",
449
602
  resource_group="example-rg",
450
603
  azurecr_spn_tenantid="00000000-0000-0000-0000-000000000000",
@@ -452,7 +605,48 @@ class ServiceEndpointAzureEcr(pulumi.CustomResource):
452
605
  azurecr_subscription_id="00000000-0000-0000-0000-000000000000",
453
606
  azurecr_subscription_name="subscription name")
454
607
  ```
455
- <!--End PulumiCodeChooser -->
608
+
609
+ ### WorkloadIdentityFederation
610
+
611
+ ```python
612
+ import pulumi
613
+ import pulumi_azure as azure
614
+ import pulumi_azuredevops as azuredevops
615
+
616
+ example = azuredevops.Project("example",
617
+ name="Example Project",
618
+ visibility="private",
619
+ version_control="Git",
620
+ work_item_template="Agile",
621
+ description="Managed by Pulumi")
622
+ identity = azure.core.ResourceGroup("identity",
623
+ name="identity",
624
+ location="UK South")
625
+ example_user_assigned_identity = azure.authorization.UserAssignedIdentity("example",
626
+ location=identity.location,
627
+ name="example-identity",
628
+ resource_group_name=identity.name)
629
+ # azure container registry service connection
630
+ example_service_endpoint_azure_ecr = azuredevops.ServiceEndpointAzureEcr("example",
631
+ project_id=example.id,
632
+ resource_group="Example AzureCR ResourceGroup",
633
+ service_endpoint_name="Example AzureCR",
634
+ service_endpoint_authentication_scheme="WorkloadIdentityFederation",
635
+ azurecr_spn_tenantid="00000000-0000-0000-0000-000000000000",
636
+ azurecr_name="ExampleAcr",
637
+ azurecr_subscription_id="00000000-0000-0000-0000-000000000000",
638
+ azurecr_subscription_name="subscription name",
639
+ credentials={
640
+ "serviceprincipalid": example_user_assigned_identity.client_id,
641
+ })
642
+ example_federated_identity_credential = azure.armmsi.FederatedIdentityCredential("example",
643
+ name="example-federated-credential",
644
+ resource_group_name=identity.name,
645
+ parent_id=example_user_assigned_identity.id,
646
+ audience="api://AzureADTokenExchange",
647
+ issuer=example_service_endpoint_azure_ecr.workload_identity_federation_issuer,
648
+ subject=example_service_endpoint_azure_ecr.workload_identity_federation_subject)
649
+ ```
456
650
 
457
651
  ## Relevant Links
458
652
 
@@ -487,9 +681,11 @@ class ServiceEndpointAzureEcr(pulumi.CustomResource):
487
681
  azurecr_spn_tenantid: Optional[pulumi.Input[str]] = None,
488
682
  azurecr_subscription_id: Optional[pulumi.Input[str]] = None,
489
683
  azurecr_subscription_name: Optional[pulumi.Input[str]] = None,
684
+ credentials: Optional[pulumi.Input[Union['ServiceEndpointAzureEcrCredentialsArgs', 'ServiceEndpointAzureEcrCredentialsArgsDict']]] = None,
490
685
  description: Optional[pulumi.Input[str]] = None,
491
686
  project_id: Optional[pulumi.Input[str]] = None,
492
687
  resource_group: Optional[pulumi.Input[str]] = None,
688
+ service_endpoint_authentication_scheme: Optional[pulumi.Input[str]] = None,
493
689
  service_endpoint_name: Optional[pulumi.Input[str]] = None,
494
690
  __props__=None):
495
691
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
@@ -513,13 +709,13 @@ class ServiceEndpointAzureEcr(pulumi.CustomResource):
513
709
  if azurecr_subscription_name is None and not opts.urn:
514
710
  raise TypeError("Missing required property 'azurecr_subscription_name'")
515
711
  __props__.__dict__["azurecr_subscription_name"] = azurecr_subscription_name
712
+ __props__.__dict__["credentials"] = credentials
516
713
  __props__.__dict__["description"] = description
517
714
  if project_id is None and not opts.urn:
518
715
  raise TypeError("Missing required property 'project_id'")
519
716
  __props__.__dict__["project_id"] = project_id
520
- if resource_group is None and not opts.urn:
521
- raise TypeError("Missing required property 'resource_group'")
522
717
  __props__.__dict__["resource_group"] = resource_group
718
+ __props__.__dict__["service_endpoint_authentication_scheme"] = service_endpoint_authentication_scheme
523
719
  if service_endpoint_name is None and not opts.urn:
524
720
  raise TypeError("Missing required property 'service_endpoint_name'")
525
721
  __props__.__dict__["service_endpoint_name"] = service_endpoint_name
@@ -528,6 +724,8 @@ class ServiceEndpointAzureEcr(pulumi.CustomResource):
528
724
  __props__.__dict__["az_spn_role_permissions"] = None
529
725
  __props__.__dict__["service_principal_id"] = None
530
726
  __props__.__dict__["spn_object_id"] = None
727
+ __props__.__dict__["workload_identity_federation_issuer"] = None
728
+ __props__.__dict__["workload_identity_federation_subject"] = None
531
729
  super(ServiceEndpointAzureEcr, __self__).__init__(
532
730
  'azuredevops:index/serviceEndpointAzureEcr:ServiceEndpointAzureEcr',
533
731
  resource_name,
@@ -546,12 +744,16 @@ class ServiceEndpointAzureEcr(pulumi.CustomResource):
546
744
  azurecr_spn_tenantid: Optional[pulumi.Input[str]] = None,
547
745
  azurecr_subscription_id: Optional[pulumi.Input[str]] = None,
548
746
  azurecr_subscription_name: Optional[pulumi.Input[str]] = None,
747
+ credentials: Optional[pulumi.Input[Union['ServiceEndpointAzureEcrCredentialsArgs', 'ServiceEndpointAzureEcrCredentialsArgsDict']]] = None,
549
748
  description: Optional[pulumi.Input[str]] = None,
550
749
  project_id: Optional[pulumi.Input[str]] = None,
551
750
  resource_group: Optional[pulumi.Input[str]] = None,
751
+ service_endpoint_authentication_scheme: Optional[pulumi.Input[str]] = None,
552
752
  service_endpoint_name: Optional[pulumi.Input[str]] = None,
553
753
  service_principal_id: Optional[pulumi.Input[str]] = None,
554
- spn_object_id: Optional[pulumi.Input[str]] = None) -> 'ServiceEndpointAzureEcr':
754
+ spn_object_id: Optional[pulumi.Input[str]] = None,
755
+ workload_identity_federation_issuer: Optional[pulumi.Input[str]] = None,
756
+ workload_identity_federation_subject: Optional[pulumi.Input[str]] = None) -> 'ServiceEndpointAzureEcr':
555
757
  """
556
758
  Get an existing ServiceEndpointAzureEcr resource's state with the given name, id, and optional extra
557
759
  properties used to qualify the lookup.
@@ -563,10 +765,14 @@ class ServiceEndpointAzureEcr(pulumi.CustomResource):
563
765
  :param pulumi.Input[str] azurecr_spn_tenantid: The tenant id of the service principal.
564
766
  :param pulumi.Input[str] azurecr_subscription_id: The subscription id of the Azure targets.
565
767
  :param pulumi.Input[str] azurecr_subscription_name: The subscription name of the Azure targets.
768
+ :param pulumi.Input[Union['ServiceEndpointAzureEcrCredentialsArgs', 'ServiceEndpointAzureEcrCredentialsArgsDict']] credentials: A `credentials` block.
566
769
  :param pulumi.Input[str] project_id: The ID of the project.
567
770
  :param pulumi.Input[str] resource_group: The resource group to which the container registry belongs.
771
+ :param pulumi.Input[str] service_endpoint_authentication_scheme: Specifies the type of azurerm endpoint, either `WorkloadIdentityFederation`, `ManagedServiceIdentity` or `ServicePrincipal`. Defaults to `ServicePrincipal` for backwards compatibility. `ManagedServiceIdentity` has not yet been implemented for this resource.
568
772
  :param pulumi.Input[str] service_endpoint_name: The name you will use to refer to this service connection in task inputs.
569
773
  :param pulumi.Input[str] service_principal_id: The service principal ID.
774
+ :param pulumi.Input[str] workload_identity_federation_issuer: The issuer of the workload identity federation service principal.
775
+ :param pulumi.Input[str] workload_identity_federation_subject: The subject of the workload identity federation service principal.
570
776
  """
571
777
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
572
778
 
@@ -580,12 +786,16 @@ class ServiceEndpointAzureEcr(pulumi.CustomResource):
580
786
  __props__.__dict__["azurecr_spn_tenantid"] = azurecr_spn_tenantid
581
787
  __props__.__dict__["azurecr_subscription_id"] = azurecr_subscription_id
582
788
  __props__.__dict__["azurecr_subscription_name"] = azurecr_subscription_name
789
+ __props__.__dict__["credentials"] = credentials
583
790
  __props__.__dict__["description"] = description
584
791
  __props__.__dict__["project_id"] = project_id
585
792
  __props__.__dict__["resource_group"] = resource_group
793
+ __props__.__dict__["service_endpoint_authentication_scheme"] = service_endpoint_authentication_scheme
586
794
  __props__.__dict__["service_endpoint_name"] = service_endpoint_name
587
795
  __props__.__dict__["service_principal_id"] = service_principal_id
588
796
  __props__.__dict__["spn_object_id"] = spn_object_id
797
+ __props__.__dict__["workload_identity_federation_issuer"] = workload_identity_federation_issuer
798
+ __props__.__dict__["workload_identity_federation_subject"] = workload_identity_federation_subject
589
799
  return ServiceEndpointAzureEcr(resource_name, opts=opts, __props__=__props__)
590
800
 
591
801
  @property
@@ -640,6 +850,14 @@ class ServiceEndpointAzureEcr(pulumi.CustomResource):
640
850
  """
641
851
  return pulumi.get(self, "azurecr_subscription_name")
642
852
 
853
+ @property
854
+ @pulumi.getter
855
+ def credentials(self) -> pulumi.Output[Optional['outputs.ServiceEndpointAzureEcrCredentials']]:
856
+ """
857
+ A `credentials` block.
858
+ """
859
+ return pulumi.get(self, "credentials")
860
+
643
861
  @property
644
862
  @pulumi.getter
645
863
  def description(self) -> pulumi.Output[Optional[str]]:
@@ -655,12 +873,20 @@ class ServiceEndpointAzureEcr(pulumi.CustomResource):
655
873
 
656
874
  @property
657
875
  @pulumi.getter(name="resourceGroup")
658
- def resource_group(self) -> pulumi.Output[str]:
876
+ def resource_group(self) -> pulumi.Output[Optional[str]]:
659
877
  """
660
878
  The resource group to which the container registry belongs.
661
879
  """
662
880
  return pulumi.get(self, "resource_group")
663
881
 
882
+ @property
883
+ @pulumi.getter(name="serviceEndpointAuthenticationScheme")
884
+ def service_endpoint_authentication_scheme(self) -> pulumi.Output[Optional[str]]:
885
+ """
886
+ Specifies the type of azurerm endpoint, either `WorkloadIdentityFederation`, `ManagedServiceIdentity` or `ServicePrincipal`. Defaults to `ServicePrincipal` for backwards compatibility. `ManagedServiceIdentity` has not yet been implemented for this resource.
887
+ """
888
+ return pulumi.get(self, "service_endpoint_authentication_scheme")
889
+
664
890
  @property
665
891
  @pulumi.getter(name="serviceEndpointName")
666
892
  def service_endpoint_name(self) -> pulumi.Output[str]:
@@ -682,3 +908,19 @@ class ServiceEndpointAzureEcr(pulumi.CustomResource):
682
908
  def spn_object_id(self) -> pulumi.Output[str]:
683
909
  return pulumi.get(self, "spn_object_id")
684
910
 
911
+ @property
912
+ @pulumi.getter(name="workloadIdentityFederationIssuer")
913
+ def workload_identity_federation_issuer(self) -> pulumi.Output[str]:
914
+ """
915
+ The issuer of the workload identity federation service principal.
916
+ """
917
+ return pulumi.get(self, "workload_identity_federation_issuer")
918
+
919
+ @property
920
+ @pulumi.getter(name="workloadIdentityFederationSubject")
921
+ def workload_identity_federation_subject(self) -> pulumi.Output[str]:
922
+ """
923
+ The subject of the workload identity federation service principal.
924
+ """
925
+ return pulumi.get(self, "workload_identity_federation_subject")
926
+